diff --git a/LICENSE b/LICENSE
new file mode 100644
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,30 @@
+Copyright (c) 2016-2018, John MacFarlane.
+All rights reserved.
+
+Redistribution and use in source and binary forms, with or without
+modification, are permitted provided that the following conditions are
+met:
+
+    * Redistributions of source code must retain the above copyright
+      notice, this list of conditions and the following disclaimer.
+
+    * Redistributions in binary form must reproduce the above
+      copyright notice, this list of conditions and the following
+      disclaimer in the documentation and/or other materials provided
+      with the distribution.
+
+    * The names of the contributors may not be used to endorse or
+      promote products derived from this software without specific
+      prior written permission.
+
+THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
+A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
+HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
+SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
+LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
+DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
+OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
diff --git a/README.md b/README.md
new file mode 100644
--- /dev/null
+++ b/README.md
@@ -0,0 +1,17 @@
+skylighting-core
+================
+
+[![license](https://img.shields.io/badge/license-BSD3-brightgreen.svg)](https://opensource.org/licenses/BSD-3-Clause)
+[![skylighting-core build status](https://img.shields.io/travis/jgm/skylighting-core.svg)](https://travis-ci.org/jgm/skylighting-core)
+
+This package provides the core functionality of the Skylighting project,
+a Haskell syntax highlighting library with support for KDE XML syntax
+highlighting descriptions.
+
+For details on how to use this package, see the Haddock documentation and
+the [Skylighting README](https://github.com/jgm/skylighting/blob/master/skylighting/README.md).
+
+The Haskell code and related files in this package are licensed under
+the BSD3 license. This package also includes KDE XML syntax definitions
+which are provided under various licenses; see the XML files for
+details.
diff --git a/Setup.hs b/Setup.hs
new file mode 100644
--- /dev/null
+++ b/Setup.hs
@@ -0,0 +1,2 @@
+import Distribution.Simple
+main = defaultMain
diff --git a/benchmark/benchmark.hs b/benchmark/benchmark.hs
new file mode 100644
--- /dev/null
+++ b/benchmark/benchmark.hs
@@ -0,0 +1,45 @@
+import Criterion.Main
+import Criterion.Types (Config (..))
+import qualified Data.Map as Map
+import Data.Text (Text)
+import qualified Data.Text as Text
+import Skylighting
+import System.FilePath
+-- import System.Directory
+
+main :: IO ()
+main = do
+  let inputs = ["abc.haskell", "abc.java", "abc.c", "archive.rhtml",
+                "life.lua", "abc.javascript"]
+  let getCase fp = do
+        let fp' = "test" </> "cases" </> fp
+        contents <- readFile fp'
+        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"
+  let xmlfiles = ["haskell.xml"]
+  defaultMainWith defaultConfig{ timeLimit = 10.0 }
+    $ 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) =
+  bench (Text.unpack format) $ nf
+    (sum . map length . either (error "tokenize failed") id .
+     tokenize TokenizerConfig{ traceOutput = False
+                             , syntaxMap = defaultSyntaxMap } syntax) contents
+
+  where syntax = maybe (error "could not find syntax") id
+                       (lookupSyntax format defaultSyntaxMap)
+
diff --git a/bin/extract.hs b/bin/extract.hs
new file mode 100644
--- /dev/null
+++ b/bin/extract.hs
@@ -0,0 +1,94 @@
+{-# LANGUAGE Arrows #-}
+
+import Data.Binary (encode)
+import Data.Either (partitionEithers)
+import Data.List (intercalate, isInfixOf)
+import qualified Data.Text as Text
+import Skylighting.Parser (missingIncludes, parseSyntaxDefinition)
+import Skylighting.Types
+import System.Directory
+import System.Environment (getArgs)
+import System.Exit
+import System.IO (hPutStrLn, stderr)
+
+main :: IO ()
+main = do
+  createDirectoryIfMissing True "src/Skylighting/Syntax"
+  files <- getArgs
+  (errs, syntaxes) <- partitionEithers <$> mapM parseSyntaxDefinition files
+  mapM_ (hPutStrLn stderr) errs
+  mapM_ writeModuleFor syntaxes
+
+  case missingIncludes syntaxes of
+       [] -> return ()
+       ns -> do
+         mapM_ (\(syn,dep) -> hPutStrLn stderr
+             ("Missing syntax definition: " ++ Text.unpack syn ++ " requires " ++
+               Text.unpack dep ++ " through IncludeRules.")) ns
+         hPutStrLn stderr "Fatal error."
+         exitWith (ExitFailure 1)
+
+  putStrLn "Backing up skylighting.cabal to skylighting.cabal.orig"
+  copyFile "skylighting.cabal" "skylighting.cabal.orig"
+
+  putStrLn "Updating module list in skylighting.cabal"
+  cabalLines <- lines <$> readFile "skylighting.cabal.orig"
+  let (top, rest) = break ("other-modules:" `isInfixOf`) cabalLines
+  let (_, bottom) = span ("Skylighting.Syntax." `isInfixOf`) (drop 1 rest)
+  let modulenames = map (\s -> "Skylighting.Syntax." ++
+                          Text.unpack (sShortname s)) syntaxes
+  let autogens = map ((replicate 23 ' ') ++) modulenames
+  let newcabal = unlines $ top ++ ("  other-modules:" : autogens) ++ bottom
+  writeFile "skylighting.cabal" newcabal
+
+  putStrLn "Writing src/Skylighting/Syntax.hs"
+  writeFile "src/Skylighting/Syntax.hs" $ unlines (
+     [ "{-# LANGUAGE OverloadedStrings #-}"
+     , "-- | Provides syntax highlighting definitions."
+     , "-- THIS FILE IS AUTOMATICALLY GENERATED. DO NOT EDIT IT MANUALLY."
+     , "module Skylighting.Syntax (defaultSyntaxMap) where"
+     , "import qualified Data.Map as Map"
+     , "import Skylighting.Types" ] ++
+     [ "import qualified " ++ m | m <- modulenames ]
+     ++
+     [ ""
+     , "-- | Default mapping from short names to syntax definitions."
+     , "defaultSyntaxMap :: SyntaxMap"
+     , "defaultSyntaxMap = Map.fromList ["
+     ]) ++ "   " ++
+     (intercalate "\n  ,"
+       ["  (" ++ show (Text.unpack $ sName s) ++ ", "
+              ++ "Skylighting.Syntax." ++ Text.unpack (sShortname s) ++ ".syntax)"
+                  | s <- syntaxes ]) ++ " ]"
+
+writeModuleFor :: Syntax -> IO ()
+writeModuleFor syn = do
+  let fp = toPathName syn
+  putStrLn $ "Writing " ++ fp
+  writeFile fp $ unlines $
+    [ "{-# LANGUAGE OverloadedStrings #-}"
+    , "-- | Automatically generated syntax definition for " ++
+        Text.unpack (sName syn) ++ "."
+    , "-- DO NOT EDIT THIS FILE MANUALLY."
+    , "-- Instead, modify xml/" ++ sFilename syn ++ " and 'make bootstrap'."
+    , "module Skylighting.Syntax." ++ Text.unpack (sShortname syn) ++
+        " (syntax) where"
+    , ""
+    , "import Skylighting.Types"
+    , "import Data.Binary"
+    , ""
+    , "-- | Syntax definition for " ++ Text.unpack (sName syn) ++ "."
+    , "syntax :: Syntax"
+    , "syntax = decode " ++ show (encode syn) ]
+
+-- NOTE:  we include string representation of the Syntax,
+-- which we then 'decode', rather than the code for the Syntax,
+-- because ghc doesn't deal well with large data structure
+-- literals.  For background see jgm/skylighting#7 and
+--  http://stackoverflow.com/questions/16348340/compiling-very-large-constants-with-ghc
+
+toPathName :: Syntax -> String
+toPathName s =
+  "src/Skylighting/Syntax/" ++
+  map (\c -> if c == '.' then '/' else c)
+      (Text.unpack (sShortname s)) ++ ".hs"
diff --git a/changelog.md b/changelog.md
new file mode 100644
--- /dev/null
+++ b/changelog.md
@@ -0,0 +1,297 @@
+# Revision history for skylighting
+
+## 0.6 -- 2018-01-18
+
+  * Add ANSI color output (Alexander Ronald Altman, #22).
+
+    + New package dependencies: `ansi-terminal` and `colour`.
+    + New module: `Skylighting.Format.ANSI`, exporting `formatANSI`,
+      (also reexported from the module `Skylighting`).
+    + In `Skylighting.Types`, new types `ANSIColorLevel` and
+      `Xterm256ColorCode`, and a new field `ansiColorLevel` in
+      `FormatOptions`.
+    + Main `skylighting` executable now supports ANSI output (use
+      `ansi` as argument to `--format`), which is now the default output
+      format. A new flag `--color-level` has been added to select
+      the number of colors (with options `16`, `256`, `true`, and
+      the default `auto`).
+
+  * Reword error for missing contexts in IncludeRules.
+
+  * Use ordNub instead of nub for missingIncludes.
+
+## 0.5.1 -- 2018-01-07
+
+  * Fixed tokenizer exceptions (#31).  Previously `throwError`
+    did not actually generate `Left` results in `tokenize`,
+    because of the way the MonadPlus instance worked. Rewrote
+    the TokenizerM monad from scratch so that exceptions would
+    not be skipped.
+
+  * Improved error message about undefined contexts.
+
+  * Makefile: use cabal for bootstrap target.
+
+  * README: remove stack bootstrap instructions.
+    You can no longer bootstrap with stack, because it
+    insists on building ALL the executables the first time,
+    and of course that can't be done with this library.
+
+  * Use quickcheck for fuzz test.
+
+## 0.5.0.1 -- 2017-12-18
+
+  * Small improvements to fuzz tests in test suite.  We now
+    ensure that we print the random text on test failure.  Also,
+    we now run the test with many smaller samples rather than
+    one big one.
+
+  * Add aeson lower bound (because of toEncoding) (#28).
+
+## 0.5 -- 2017-12-10
+
+  * Fix line spacing and overflowing content in generated HTML
+    (David Baynard, #25, see jgm/pandoc#4128).
+
+    + Fix empty line height, explicitly
+    + Ensure long lines scroll on screen
+    + Only apply colour to the outer div
+    + Don't reset line number colour
+    + Fix borders on empty code lines
+    + Collapse divs correctly.
+
+  * Changes to Style types and JSON instances.  Previously we could not
+    successfully round-trip through JSON.
+
+    + `tokenStyles` is now a map rather than an association list.
+    + We now use `line-number-color` instead of `line-numbers` at
+      the top level in the JSON instances, falling back to
+      `line-numbers` in `editor-colors`, for KDE theme compatibility.
+    + We use `line-number-background-color` at the top level, falling
+      back to the text background color.
+    + We use `text-color` at the top level, falling back to the `text-color`
+      of the `Normal` token style if it exists, for KDE compatibility.
+    + We use `background-color` at the top level, falling back to
+      the `background-color` in `editor-colors`, for KDE compatibility.
+    + A round-trip JSON test has been added.
+
+## 0.4.4.1 -- 2017-11-27
+
+  * HTML formatting: fix color, bgcolor when numbering enabled.
+    Previously, the code got the color and background color
+    the numbers were supposed to get.  See jgm/pandoc #4103.
+  * Updated syntax descriptions for bash, clojure, commonlisp, diff,
+    dockerfile, doxygen, doxygenlua, fsharp, hamlet, haskell, haxe,
+    java, javascript, julia, latex, literate-curry, literate-haskell,
+    makefile, mediawiki, monobasic, ocaml, prolog, r, relaxng, scala,
+    sci, sql-mysql, sql-postgresql, sql, xslt.
+  * test program:  use --accept instead of --regen.
+
+## 0.4.4 -- 2017-11-21
+
+  * HTML formatter: always use an a element (rather than a div)
+    for source lines.  The divs were invalid, because code
+    elements must contain phrasing content.  Previously we used
+    a elements when line anchors were called for, but there is
+    no clear reason not to use them always.
+  * skylighting binary: add doctype to generated HTML.
+
+## 0.4.3.2 -- 2017-11-04
+
+  * Fixed regression in `data-line-number` attributes in HTML
+    output.  We should not include the `lineIdPrefix` in
+    front of this.
+
+## 0.4.3.1 -- 2017-11-03
+
+  * Fixed typo in css (Artymort).
+  * Fixed travis build times.
+
+## 0.4.3 --- 2017-11-02
+
+  * `FormatOptions`: added `lineIdPrefix` (jgm/pandoc#4031).
+    This is needed because a web page may contain several
+    code samples, and we need to make sure that the ids on
+    lines are unique.
+  * HTML formatter: use `lineIdPrefix` in ids for lines.
+  * HTML formatter: Don't put href attributes on divs.
+
+## 0.4.2 --- 2017-10-26
+
+  * HTML output: remove outer div.  This prevented margin
+    collapsing between the pre and surrounding block elements,
+    and often gave us excess white space around code blocks.
+    See jgm/pandoc#3996.
+
+## 0.4.1 --- 2017-09-28
+
+  * Updated XML definitions from KDE repository.
+    Changed: actionscript, ada, agda, alert, alert_indent, asn1, awk, bash,
+    boo, c, changelog, clojure, cmake, coldfusion, commonlisp, cpp, cs, css,
+    curry, d, dockerfile, dot, doxygen, doxygenlua, eiffel, email, erlang,
+    fortran, fsharp, gcc, haskell, haxe, isocpp, java, javascript, jsp, julia,
+    lilypond, lua, m4, makefile, matlab, maxima, mips, modelines, modula-2,
+    monobasic, objectivec, objectivecpp, ocaml, octave, opencl, pascal, perl,
+    php, pike, postscript, prolog, purebasic, python, r, relaxng,
+    relaxngcompact, rest, rhtml, ruby, rust, scala, scheme, sci, sql-mysql,
+    sql-postgresql, sql, tcl, tcsh, verilog, vhdl, xml, xslt, xul, zsh.
+  * Added support for powershell, using definition from KDE repository.
+  * Stop terminating long builds on TravisCI (Kyle Ondy).
+
+## 0.4 --- 2017-09-15
+
+  * Removed ToJSON/FromJSON instances for KeywordAttr,
+    WordSet, Matcher, Context, ContextSwitch, Rule, Syntax
+    (added in 0.3.5).  Creating these increased the memory
+    requirements for compiling skylighting to a degree not
+    justified by the usefulness of these instances.
+
+## 0.3.5 --- 2017-09-14
+
+  * Added ToJSON/FromJSON instances for all basic types.
+  * Added some background colors to 'kate' style, matching default.theme,
+    and made FromJSON for Style sensitive to background-color.
+
+## 0.3.4.1 -- 2017-09-09
+
+  * HTML formatting: do not use `div` elements for source
+    lines in inline output.
+
+## 0.3.4 -- 2017-09-09
+
+  * HTML formatting changes (David Baynard).  Note that these
+    changes may require changes in hard-coded CSS that is
+    used with skylighting's HTML output.
+
+    + Wrap lines of source code in a `div` with `display` set to
+      `inline-block`.  The `div`s make per-line processing easier.
+      They cannot be set as `display: block` as that introduces extra
+      new lines when copying and pasting.
+    + Render line numbers in html using CSS pseudo elements rather than
+      a table.  The line numbers are always produced, as `data-line-number`
+      attributes, and css to display them as `::before` elements are
+      always produced. The option to switch on line numbering only
+      toggles a class; this means it is possible to toggle line numbering
+      without re-running skylighting.
+    + If the `linkAnchors` option is set, wrap with an `a` element rather
+      than a `div`, set so that clicking the line number (and only the
+      line number) will jump to that line.
+    + Code wraps by default when html is printed, with wrapped lines
+      indented.
+
+## 0.3.3.1 -- 2017-06-26
+
+  * Updated xml syntax definitions and clojure test.
+  * Improved 'make update-xml' target.
+  * Updated version bound for criterion.
+
+## 0.3.3 -- 2017-04-22
+
+  * Revert change from 0.3.2; now entities from a DTD are
+    resolved if the DTD element is included.  This is needed
+    for agda.xml and some others.  If you want to use a custom
+    xml definition without needing language.dtd, just remove
+    the reference to language.dtd in your xml file.
+  * Added `case` keyword for ats (Hanwen (Steinway) Wu).
+
+## 0.3.2 -- 2017-04-01
+
+  * Parse xml definitions without resolving entities from
+    language.dtd.  This allows xml definitions to be used even
+    when language.dtd isn't available.  Existing definitions
+    don't rely on the two or three entities definied in
+    language.dtd, so this is harmless.
+  * Small optimizations.
+
+## 0.3.1 -- 2017-02-28
+
+  * Use handwritten parser for Float instead of regex.  Fixes
+    jgm/highlighting-kate#57 (again).
+  * Added float parsing tests.
+  * Use parsec parsers, not regex, for CStringChar and CChar.
+  * Rewrote Int, Hex, Oct, CStringChar, CCHar parsers with parsec
+    instead of regex.  This speeds things up.
+  * Don't include leading + in Int, Hex, Oct parsers.  That gives
+    bad results for things like `i+1`.
+
+## 0.3 -- 2017-02-19
+
+  * Store literal binary-encoded representations of the Syntax
+    structure in Skylighting.Syntax.*.hs, instead of the
+    structure itself.  This works around a problem ghc has
+    compiling modules with large structures.  This indirect method
+    produces faster compile times and avoids massive memory usage by
+    ghc (especially in profiling builds).  For background see
+    http://stackoverflow.com/questions/16348340/.  Closes #7.
+  * Types: Internals of 'WordSet' are no longer exposed.
+
+## 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.
+  * Skylighting.Syntax.*:  use string representation of the Syntax,
+    which is then 'read', rather than including the code for the data
+    structure directly (#7).  This indirect method produces faster compile
+    times and avoids massive memory usage by ghc (especially in profiling
+    builds).  For background see
+    http://stackoverflow.com/questions/16348340/compiling-very-large-constants-with-ghc
+  * 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).
+    This isn't provided in some older versions of the text library.
+    This change should allow the package to build on older platforms.
+
+## 0.1.1.4  -- 2017-01-31
+
+  * Properly escape characters in subDynamic.
+    This fixes a problem that caused failures with
+
+        echo -e "s\0b\0c" | skylighting -s perl
+
+  * More efficient rewrite of char escaping for regexes.
+
+## 0.1.1.3  -- 2017-01-29
+
+  * Increase test timeout to 6s.
+  * Avoid double {{}} in latex macros.
+  * Fixed problem compiling Format.LaTeX on older ghc versions (7.8.3)
+    that can't take a Text as PrintfArg.
+
+## 0.1.1.2  -- 2017-01-28
+
+  * Added much more extensive testing to ensure that tokenizers
+    don't hang or drop input.
+  * Fixed some issues with line-end and fallthrough context
+    handling.
+  * Fixed a bug in WordDetect handling which caused it to drop
+    input (#2).
+
+## 0.1.1.1  -- 2017-01-21
+
+  * Optimized.  Speed is now comparable to highlighting-kate
+    and often better.
+  * Added benchmarks.
+
+## 0.1.1    -- 2017-01-19
+
+  * Added breezeDark style, from breeze-dark.theme.
+  * Fixed performance bug in regex application (#1).  This gives a
+    significant speedup, especially for inputs with long lines.
+
+## 0.1.0.1  -- 2016-12-23
+
+  * Fixed bug in LaTeX renderer (backslash in wrong position).
+
+## 0.1.0.0  -- 2016-12-23
+
+  * Initial release
+
diff --git a/skylighting-core.cabal b/skylighting-core.cabal
new file mode 100644
--- /dev/null
+++ b/skylighting-core.cabal
@@ -0,0 +1,214 @@
+name:                skylighting-core
+version:             0.7
+synopsis:            syntax highlighting library
+description:         Skylighting is a syntax highlighting library.
+                     It derives its tokenizers from XML syntax
+                     definitions used by KDE's KSyntaxHighlighting
+                     framework, so any syntax supported by that
+                     framework can be added. An optional command-line
+                     program is provided.
+
+                     Skylighting is intended to be the successor to
+                     highlighting-kate.
+
+                     This package provides the core highlighting
+                     functionality under a permissive license. It also
+                     bundles XML parser definitions licensed under the
+                     GPL.
+
+homepage:            https://github.com/jgm/skylighting
+license:             BSD3
+license-file:        LICENSE
+author:              John MacFarlane
+maintainer:          jgm@berkeley.edu
+copyright:           (C) 2016-2018 John MacFarlane
+category:            Text
+build-type:          Simple
+extra-source-files:  README.md
+                     changelog.md
+                     xml/*.xml
+                     xml/language.dtd
+                     test/default.theme
+                     test/cases/abc.ada
+                     test/cases/abc.agda
+                     test/cases/abc.c
+                     test/cases/abc.clojure
+                     test/cases/abc.cpp
+                     test/cases/abc.cs
+                     test/cases/abc.d
+                     test/cases/abc.fortran
+                     test/cases/abc.go
+                     test/cases/abc.haskell
+                     test/cases/abc.java
+                     test/cases/abc.javascript
+                     test/cases/abc.julia
+                     test/cases/abc.kotlin
+                     test/cases/abc.lisp
+                     test/cases/abc.matlab
+                     test/cases/abc.ocaml
+                     test/cases/abc.perl
+                     test/cases/abc.php
+                     test/cases/abc.prolog
+                     test/cases/abc.python
+                     test/cases/abc.r
+                     test/cases/abc.ruby
+                     test/cases/abc.scala
+                     test/cases/abc.scheme
+                     test/cases/abc.tcl
+                     test/cases/archive.rhtml
+                     test/cases/life.lua
+                     test/cases/hk91.html
+                     test/cases/if.cmake
+                     test/expected/abc.ada.native
+                     test/expected/abc.agda.native
+                     test/expected/abc.c.native
+                     test/expected/abc.clojure.native
+                     test/expected/abc.cpp.native
+                     test/expected/abc.cs.native
+                     test/expected/abc.d.native
+                     test/expected/abc.fortran.native
+                     test/expected/abc.go.native
+                     test/expected/abc.haskell.native
+                     test/expected/abc.java.native
+                     test/expected/abc.javascript.native
+                     test/expected/abc.julia.native
+                     test/expected/abc.kotlin.native
+                     test/expected/abc.lisp.native
+                     test/expected/abc.matlab.native
+                     test/expected/abc.ocaml.native
+                     test/expected/abc.perl.native
+                     test/expected/abc.php.native
+                     test/expected/abc.prolog.native
+                     test/expected/abc.python.native
+                     test/expected/abc.r.native
+                     test/expected/abc.ruby.native
+                     test/expected/abc.scala.native
+                     test/expected/abc.scheme.native
+                     test/expected/abc.tcl.native
+                     test/expected/archive.rhtml.native
+                     test/expected/life.lua.native
+                     test/expected/hk91.html.native
+                     test/expected/if.cmake.native
+
+cabal-version:       >=1.10
+
+source-repository head
+  type:              git
+  location:          https://github.com/jgm/skylighting.git
+
+library
+  exposed-modules:     Skylighting.Core
+                       Skylighting.Types
+                       Skylighting.Regex
+                       Skylighting.Parser
+                       Skylighting.Styles
+                       Skylighting.Loader
+                       Skylighting.Tokenizer
+                       Skylighting.Format.ANSI
+                       Skylighting.Format.HTML
+                       Skylighting.Format.LaTeX
+  other-extensions:    CPP, Arrows
+  build-depends:       base >= 4.7 && < 5.0,
+                       mtl,
+                       transformers,
+                       text,
+                       binary,
+                       bytestring,
+                       directory >= 1.2.5,
+                       filepath,
+                       aeson >= 1.0,
+                       case-insensitive,
+                       attoparsec,
+                       utf8-string,
+                       hxt,
+                       safe,
+                       base64-bytestring,
+                       blaze-html >= 0.5,
+                       containers,
+                       ansi-terminal >= 0.7,
+                       colour >= 2.0
+  if flag(system-pcre)
+    build-depends:     regex-pcre
+  else
+    build-depends:     regex-pcre-builtin
+  hs-source-dirs:      src
+  ghc-prof-options:    -fprof-auto-exported
+  default-language:    Haskell2010
+  ghc-options:         -Wall
+
+Flag executable
+  Description:   Build skylighting CLI tools
+  Default:       False
+
+Flag system-pcre
+  Description:   Use regex-pcre instead of regex-pcre-builtin
+  Default:       False
+
+test-suite test-skylighting
+  type:           exitcode-stdio-1.0
+  main-is:        test-skylighting.hs
+  hs-source-dirs: test
+  build-depends:  base >= 4.7 && < 5.0,
+                  HUnit,
+                  tasty,
+                  tasty-golden,
+                  tasty-hunit,
+                  tasty-quickcheck,
+                  QuickCheck,
+                  containers,
+                  random,
+                  Diff,
+                  text,
+                  pretty-show,
+                  aeson >= 1.0,
+                  bytestring,
+                  directory,
+                  filepath,
+                  skylighting-core
+  default-language: Haskell2010
+  ghc-options:    -Wall
+
+benchmark benchmark-skylighting
+  Type:            exitcode-stdio-1.0
+  Main-Is:         benchmark.hs
+  Hs-Source-Dirs:  benchmark
+  Build-Depends:   skylighting-core,
+                   base >= 4.2 && < 5,
+                   filepath,
+                   text,
+                   containers,
+                   directory,
+                   criterion >= 1.0 && < 1.4
+  Ghc-Options:   -rtsopts -Wall -fno-warn-unused-do-bind
+  Default-Language: Haskell2010
+
+executable skylighting-extract
+  build-depends:       base >= 4.7 && < 5.0,
+                       skylighting-core,
+                       filepath,
+                       bytestring,
+                       base64-bytestring,
+                       text,
+                       safe,
+                       hxt,
+                       utf8-string,
+                       case-insensitive,
+                       aeson >= 1.0,
+                       binary,
+                       containers,
+                       directory,
+                       ansi-terminal >= 0.7,
+                       colour >= 2.0
+  if flag(system-pcre)
+    build-depends:     regex-pcre
+  else
+    build-depends:     regex-pcre-builtin
+  if flag(executable)
+    buildable:         True
+  else
+    buildable:         False
+  hs-source-dirs:      bin
+  main-is:             extract.hs
+  default-language:    Haskell2010
+  other-extensions:    CPP
+  ghc-options:         -Wall
diff --git a/src/Skylighting/Core.hs b/src/Skylighting/Core.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Core.hs
@@ -0,0 +1,75 @@
+module Skylighting.Core (
+    lookupSyntax
+  , syntaxByName
+  , syntaxByShortName
+  , syntaxesByExtension
+  , syntaxesByFilename
+  , module Skylighting.Types
+  , module Skylighting.Tokenizer
+  , module Skylighting.Parser
+  , module Skylighting.Regex
+  , module Skylighting.Styles
+  , module Skylighting.Format.ANSI
+  , module Skylighting.Format.HTML
+  , module Skylighting.Format.LaTeX
+  ) where
+import Control.Monad
+import Data.List (tails)
+import qualified Data.Map as Map
+import Data.Maybe (listToMaybe)
+import Data.Text (Text)
+import qualified Data.Text as Text
+import Skylighting.Format.ANSI
+import Skylighting.Format.HTML
+import Skylighting.Format.LaTeX
+import Skylighting.Parser
+import Skylighting.Regex
+import Skylighting.Styles
+import Skylighting.Tokenizer
+import Skylighting.Types
+
+-- | Returns a list of syntaxes appropriate for the given file extension.
+syntaxesByExtension :: SyntaxMap -> String -> [Syntax]
+syntaxesByExtension syntaxmap ('.':ext) =
+  syntaxesByFilename syntaxmap ("*." ++ ext)
+syntaxesByExtension syntaxmap ext =
+  syntaxesByFilename syntaxmap ("*." ++ ext)
+
+-- | Returns a list of syntaxes appropriate for the given filename.
+syntaxesByFilename :: SyntaxMap -> String -> [Syntax]
+syntaxesByFilename syntaxmap fn = [s | s <- Map.elems syntaxmap
+                                , matchGlobs fn (sExtensions s)]
+
+-- | Lookup a syntax by full name (case insensitive).
+syntaxByName :: SyntaxMap -> Text -> Maybe Syntax
+syntaxByName syntaxmap name =
+  Map.lookup (Text.toLower name) (Map.mapKeys Text.toLower syntaxmap)
+
+-- | Lookup a syntax by short name (case insensitive).
+syntaxByShortName :: SyntaxMap -> Text -> Maybe Syntax
+syntaxByShortName syntaxmap name = listToMaybe
+  [s | s <- Map.elems syntaxmap
+     , Text.toLower (sShortname s) == Text.toLower name ]
+
+-- | Lookup syntax by (in order) full name (case insensitive),
+-- short name (case insensitive), extension.
+lookupSyntax :: Text -> SyntaxMap -> Maybe Syntax
+lookupSyntax lang syntaxmap
+  -- special cases:
+  | lang == Text.pack "csharp" = lookupSyntax (Text.pack "cs") syntaxmap
+  | otherwise =
+    syntaxByName syntaxmap lang `mplus`
+    syntaxByShortName syntaxmap lang `mplus`
+    listToMaybe (syntaxesByExtension syntaxmap (Text.unpack lang))
+
+-- | Match filename against a list of globs contained in a semicolon-separated
+-- string.
+matchGlobs :: String -> [String] -> Bool
+matchGlobs fn globs = any (flip matchGlob fn) globs
+
+-- | Match filename against a glob pattern with asterisks.
+matchGlob :: String -> String -> Bool
+matchGlob ('*':xs) fn   = any (matchGlob xs) (tails fn)
+matchGlob (x:xs) (y:ys) = x == y && matchGlob xs ys
+matchGlob "" ""         = True
+matchGlob _ _           = False
diff --git a/src/Skylighting/Format/ANSI.hs b/src/Skylighting/Format/ANSI.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Format/ANSI.hs
@@ -0,0 +1,77 @@
+{-# LANGUAGE OverloadedStrings #-}
+module Skylighting.Format.ANSI (
+         formatANSI
+       ) where
+import Control.Monad (mplus)
+import qualified Data.Map as Map
+import Data.Maybe (fromMaybe, isNothing, maybeToList)
+import Data.Monoid
+import Data.Text (Text)
+import qualified Data.Text as Text
+import Skylighting.Types
+import qualified System.Console.ANSI.Codes as ANSI
+
+formatANSI :: FormatOptions -> Style -> [SourceLine] -> Text
+formatANSI opts sty = (beforeText <>)
+                        . (<> afterText)
+                        . Text.intercalate (Text.singleton '\n')
+                        . zipWith (sourceLineToANSI opts sty) [startNum..]
+    where beforeText = ansiResetText <> ansiStyleText clv (defaultColor sty) (backgroundColor sty) False False False
+          afterText = ansiResetText
+          startNum = LineNo $ startNumber opts
+          clv = ansiColorLevel opts
+
+sourceLineToANSI :: FormatOptions -> Style -> LineNo -> SourceLine -> Text
+sourceLineToANSI opts sty lno = prependLineNoText
+                                 . mconcat
+                                 . map (tokenToANSI clv sty)
+    where prependLineNoText = if numberLines opts
+                                 then (lineNoText <>)
+                                 else id
+          lineNoText = ansiStyleText clv lineNoFgc lineNoBgc False False False
+                         <> Text.pack (show $ lineNo lno)
+                         <> ansiStyleText clv (defaultColor sty) (backgroundColor sty) False False False
+                         <> "\t"
+          lineNoFgc = lineNumberColor sty `mplus` defaultColor sty
+          lineNoBgc = lineNumberBackgroundColor sty `mplus` backgroundColor sty
+          clv = ansiColorLevel opts
+
+tokenToANSI :: ANSIColorLevel -> Style -> Token -> Text
+tokenToANSI clv sty (tokTy, tokText) = ansiStyleText clv tokFgc tokBgc tokB tokI tokU
+                                         <> tokText
+                                         <> ansiStyleText clv (defaultColor sty) (backgroundColor sty) False False False
+    where TokenStyle tokFgcRaw tokBgcRaw tokB tokI tokU = fromMaybe defStyle . Map.lookup tokTy $ tokenStyles sty
+          tokFgc = tokFgcRaw `mplus` defaultColor sty
+          tokBgc = tokBgcRaw `mplus` backgroundColor sty
+
+ansiStyleText :: ANSIColorLevel -- ^ color support level
+            -> Maybe Color -- ^ foreground
+            -> Maybe Color -- ^ background
+            -> Bool -- ^ bold
+            -> Bool -- ^ italic
+            -> Bool -- ^ underlined
+            -> Text
+ansiStyleText clv fgc bgc b i u = optReset <> sgrTextFg <> sgrTextBg
+                                    <> (Text.pack . ANSI.setSGRCode $ concat [sgrCodeFg,
+                                                                              sgrCodeBg,
+                                                                              sgrCodeBold,
+                                                                              sgrCodeItal,
+                                                                              sgrCodeUndl])
+    -- FIXME: the @ansi-terminal@ library should do the 256-color parts more cleanly someday
+    where (sgrCodeFg, sgrTextFg) = case clv of
+            ANSITrueColor -> (maybeToList $ fmap (ANSI.SetRGBColor ANSI.Foreground . fromColor) fgc, "")
+            ANSI256Color -> ([], fromMaybe "" $ fmap (\c -> Text.pack $ ANSI.csi [38, 5,
+              fromIntegral . getXterm256ColorCode $ fromColor c] "m") fgc)
+            ANSI16Color -> (maybeToList $ fmap (uncurry (ANSI.SetColor ANSI.Foreground) . fromColor) fgc, "")
+          (sgrCodeBg, sgrTextBg) = case clv of
+            ANSITrueColor -> (maybeToList $ fmap (ANSI.SetRGBColor ANSI.Background . fromColor) bgc, "")
+            ANSI256Color -> ([], fromMaybe "" $ fmap (\c -> Text.pack $ ANSI.csi [48, 5,
+              fromIntegral . getXterm256ColorCode $ fromColor c] "m") bgc)
+            ANSI16Color -> (maybeToList $ fmap (uncurry (ANSI.SetColor ANSI.Background) . fromColor) bgc, "")
+          optReset = if isNothing fgc && isNothing bgc then ansiResetText else ""
+          sgrCodeBold = [ANSI.SetConsoleIntensity $ if b then ANSI.BoldIntensity else ANSI.NormalIntensity]
+          sgrCodeItal = [ANSI.SetItalicized i] -- FIXME: Not very widely supported in terminals
+          sgrCodeUndl = [ANSI.SetUnderlining $ if u then ANSI.SingleUnderline else ANSI.NoUnderline]
+
+ansiResetText :: Text
+ansiResetText = Text.pack $ ANSI.setSGRCode [ANSI.Reset]
diff --git a/src/Skylighting/Format/HTML.hs b/src/Skylighting/Format/HTML.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Format/HTML.hs
@@ -0,0 +1,209 @@
+module Skylighting.Format.HTML (
+      formatHtmlInline
+    , formatHtmlBlock
+    , styleToCss
+    ) where
+
+import Data.List (intersperse, sort)
+import qualified Data.Map as Map
+import Data.Monoid ((<>))
+import Data.String (fromString)
+import qualified Data.Text as Text
+import Skylighting.Types
+import Text.Blaze.Html
+import qualified Text.Blaze.Html5 as H
+import qualified Text.Blaze.Html5.Attributes as A
+
+-- | Format tokens using HTML spans inside @code@ tags. For example,
+-- A @KeywordTok@ is rendered as a span with class @kw@.
+-- Short class names correspond to 'TokenType's as follows:
+-- 'KeywordTok'        = @kw@,
+-- 'DataTypeTok'       = @dt@,
+-- 'DecValTok'         = @dv@,
+-- 'BaseNTok'          = @bn@,
+-- 'FloatTok'          = @fl@,
+-- 'CharTok'           = @ch@,
+-- 'StringTok'         = @st@,
+-- 'CommentTok'        = @co@,
+-- 'OtherTok'          = @ot@,
+-- 'AlertTok'          = @al@,
+-- 'FunctionTok'       = @fu@,
+-- 'RegionMarkerTok'   = @re@,
+-- 'ErrorTok'          = @er@,
+-- 'ConstantTok'       = @cn@,
+-- 'SpecialCharTok'    = @sc@,
+-- 'VerbatimStringTok' = @vs@,
+-- 'SpecialStringTok'  = @ss@,
+-- 'ImportTok'         = @im@,
+-- 'DocumentationTok'  = @do@,
+-- 'AnnotationTok'     = @an@,
+-- 'CommentVarTok'     = @cv@,
+-- 'VariableTok'       = @va@,
+-- 'ControlFlowTok'    = @cf@,
+-- 'OperatorTok'       = @op@,
+-- 'BuiltInTok'        = @bu@,
+-- 'ExtensionTok'      = @ex@,
+-- 'PreprocessorTok'   = @pp@,
+-- 'AttributeTok'      = @at@,
+-- 'InformationTok'    = @in@,
+-- 'WarningTok'        = @wa@.
+-- A 'NormalTok' is not marked up at all.
+formatHtmlInline :: FormatOptions -> [SourceLine] -> Html
+formatHtmlInline opts = wrapCode opts
+                      . mconcat . intersperse (toHtml "\n")
+                      . map (mapM_ (tokenToHtml opts))
+
+-- | Format tokens as an HTML @pre@ block. Each line is wrapped in an a
+-- element with the class ‘source-line’. If line numbering
+-- is selected, the surrounding pre is given the class ‘numberSource’,
+-- and the resulting html will display line numbers thanks to the included
+-- CSS.  See the documentation for 'formatHtmlInline' for information about how
+-- tokens are encoded.
+formatHtmlBlock :: FormatOptions -> [SourceLine] -> Html
+formatHtmlBlock opts ls =
+  H.div ! A.class_ (toValue "sourceCode") $
+  H.pre ! A.class_ (toValue $ Text.unwords classes)
+        $ wrapCode opts
+        $ mconcat . intersperse (toHtml "\n")
+        $ zipWith (sourceLineToHtml opts) [startNum..] ls
+  where  classes = Text.pack "sourceCode" :
+                   [Text.pack "numberSource" | numberLines opts] ++
+                   [x | x <- containerClasses opts
+                      , x /= Text.pack "sourceCode"]
+         startNum = LineNo $ startNumber opts
+
+wrapCode :: FormatOptions -> Html -> Html
+wrapCode opts h = H.code ! A.class_ (toValue $ Text.unwords
+                                             $ Text.pack "sourceCode"
+                                               : codeClasses opts) $ h
+
+-- | Each line of source is wrapped in an (inline-block) anchor that makes
+-- subsequent per-line processing (e.g. adding line numnbers) possible.
+sourceLineToHtml :: FormatOptions -> LineNo -> SourceLine -> Html
+sourceLineToHtml opts lno cont =
+  (if lineAnchors opts
+      then H.a   ! A.class_ sourceLine
+                 ! A.id lineNum
+                 ! A.href lineRef
+                 ! dataAttrib
+      else H.a   ! A.class_ sourceLine
+                 ! A.id lineNum
+                 ! dataAttrib) $ mapM_ (tokenToHtml opts) cont
+  where  sourceLine = toValue "sourceLine"
+         lineNum = toValue prefixedLineNo
+         lineRef = toValue ('#':prefixedLineNo)
+         prefixedLineNo = Text.unpack (lineIdPrefix opts) <> show (lineNo lno)
+         dataAttrib = H.dataAttribute (fromString "line-number")
+                          (toValue (show (lineNo lno)))
+
+tokenToHtml :: FormatOptions -> Token -> Html
+tokenToHtml _ (NormalTok, txt)  = toHtml txt
+tokenToHtml opts (toktype, txt) =
+  if titleAttributes opts
+     then sp ! A.title (toValue $ show toktype)
+     else sp
+   where sp = H.span ! A.class_ (toValue $ short toktype) $ toHtml txt
+
+short :: TokenType -> String
+short KeywordTok        = "kw"
+short DataTypeTok       = "dt"
+short DecValTok         = "dv"
+short BaseNTok          = "bn"
+short FloatTok          = "fl"
+short CharTok           = "ch"
+short StringTok         = "st"
+short CommentTok        = "co"
+short OtherTok          = "ot"
+short AlertTok          = "al"
+short FunctionTok       = "fu"
+short RegionMarkerTok   = "re"
+short ErrorTok          = "er"
+short ConstantTok       = "cn"
+short SpecialCharTok    = "sc"
+short VerbatimStringTok = "vs"
+short SpecialStringTok  = "ss"
+short ImportTok         = "im"
+short DocumentationTok  = "do"
+short AnnotationTok     = "an"
+short CommentVarTok     = "cv"
+short VariableTok       = "va"
+short ControlFlowTok    = "cf"
+short OperatorTok       = "op"
+short BuiltInTok        = "bu"
+short ExtensionTok      = "ex"
+short PreprocessorTok   = "pp"
+short AttributeTok      = "at"
+short InformationTok    = "in"
+short WarningTok        = "wa"
+short NormalTok         = ""
+
+-- | Returns CSS for styling highlighted code according to the given style.
+styleToCss :: Style -> String
+styleToCss f = unlines $
+  divspec ++ numberspec ++ colorspec ++ linkspec ++
+    sort (map toCss (Map.toList (tokenStyles f)))
+   where colorspec = [
+           "div.sourceCode\n  { "
+           ++ case (defaultColor f, backgroundColor f) of
+                (Nothing, Nothing) -> ""
+                (Just c, Nothing)  -> "color: " ++ fromColor c ++ ";"
+                (Nothing, Just c)  -> "background-color: " ++ fromColor c ++ ";"
+                (Just c1, Just c2) -> "color: " ++ fromColor c1
+                     ++ "; background-color: " ++ fromColor c2 ++ ";"
+           ++ " }"]
+         numberspec = [
+            "pre.numberSource a.sourceLine"
+          , "  { position: relative; }"
+          , "pre.numberSource a.sourceLine:empty"
+          , "  { position: absolute; }"
+          , "pre.numberSource a.sourceLine::before"
+          , "  { content: attr(data-line-number);"
+          , "    position: absolute; left: -5em; text-align: right; vertical-align: baseline;"
+          , "    border: none; pointer-events: all;"
+          , "    -webkit-touch-callout: none; -webkit-user-select: none;"
+          , "    -khtml-user-select: none; -moz-user-select: none;"
+          , "    -ms-user-select: none; user-select: none;"
+          , "    padding: 0 4px; width: 4em;"
+          , maybe "" (\c -> "    background-color: " ++ fromColor c ++ ";\n")
+              (lineNumberBackgroundColor f) ++
+            maybe "" (\c -> "    color: " ++ fromColor c ++ ";\n")
+              (lineNumberColor f) ++
+            "  }"
+          , "pre.numberSource { margin-left: 3em; " ++
+              maybe "" (\c -> "border-left: 1px solid " ++ fromColor c ++ "; ") (lineNumberColor f) ++
+              " padding-left: 4px; }"
+          ]
+         divspec = [
+            "a.sourceLine { display: inline-block; line-height: 1.25; }"
+          , "a.sourceLine { pointer-events: none; color: inherit; text-decoration: inherit; }"
+          , "a.sourceLine:empty { height: 1.2em; position: absolute; }" -- correct empty line height
+          , ".sourceCode { overflow: visible; }" -- needed for line numbers
+          , "code.sourceCode { white-space: pre; position: relative; }" -- position relative needed for absolute contents
+          , "div.sourceCode { margin: 1em 0; }" -- Collapse neighbours correctly
+          , "pre.sourceCode { margin: 0; }" -- Collapse neighbours correctly
+          , "@media screen {"
+          , "div.sourceCode { overflow: auto; }" -- do not overflow on screen
+          , "}"
+          , "@media print {"
+          , "code.sourceCode { white-space: pre-wrap; }"
+          , "a.sourceLine { text-indent: -1em; padding-left: 1em; }"
+          , "}"
+          ]
+         linkspec = [ "@media screen {"
+          , "a.sourceLine::before { text-decoration: underline; }"
+          , "}"
+          ]
+
+toCss :: (TokenType, TokenStyle) -> String
+toCss (t,tf) = "code span." ++ short t ++ " { "
+                ++ colorspec ++ backgroundspec ++ weightspec ++ stylespec
+                ++ decorationspec ++ "} /* " ++ showTokenType t ++ " */"
+  where colorspec = maybe "" (\col -> "color: " ++ fromColor col ++ "; ") $ tokenColor tf
+        backgroundspec = maybe "" (\col -> "background-color: " ++ fromColor col ++ "; ") $ tokenBackground tf
+        weightspec = if tokenBold tf then "font-weight: bold; " else ""
+        stylespec  = if tokenItalic tf then "font-style: italic; " else ""
+        decorationspec = if tokenUnderline tf then "text-decoration: underline; " else ""
+        showTokenType t' = case reverse (show t') of
+                             'k':'o':'T':xs -> reverse xs
+                             _              -> ""
+
diff --git a/src/Skylighting/Format/LaTeX.hs b/src/Skylighting/Format/LaTeX.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Format/LaTeX.hs
@@ -0,0 +1,138 @@
+{-# LANGUAGE OverloadedStrings   #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+module Skylighting.Format.LaTeX (
+         formatLaTeXInline
+       , formatLaTeXBlock
+       , styleToLaTeX
+       ) where
+
+import Control.Monad (mplus)
+import Data.Char (isSpace)
+import Data.List (sort)
+import qualified Data.Map as Map
+import Data.Monoid
+import Data.Text (Text)
+import qualified Data.Text as Text
+import Skylighting.Types
+import Text.Printf
+
+formatLaTeX :: Bool -> [SourceLine] -> Text
+formatLaTeX inline = Text.intercalate (Text.singleton '\n')
+                       . map (sourceLineToLaTeX inline)
+
+-- | Formats tokens as LaTeX using custom commands inside
+-- @|@ characters. Assumes that @|@ is defined as a short verbatim
+-- command by the macros produced by 'styleToLaTeX'.
+-- A @KeywordTok@ is rendered using @\\KeywordTok{..}@, and so on.
+formatLaTeXInline :: FormatOptions -> [SourceLine] -> Text
+formatLaTeXInline _opts ls = "\\VERB|" <> formatLaTeX True ls <> "|"
+
+sourceLineToLaTeX :: Bool -> SourceLine -> Text
+sourceLineToLaTeX inline = mconcat . map (tokenToLaTeX inline)
+
+tokenToLaTeX :: Bool -> Token -> Text
+tokenToLaTeX inline (NormalTok, txt)
+  | Text.all isSpace txt = escapeLaTeX inline txt
+tokenToLaTeX inline (toktype, txt)   = Text.cons '\\'
+  (Text.pack (show toktype) <> "{" <> escapeLaTeX inline txt <> "}")
+
+escapeLaTeX :: Bool -> Text -> Text
+escapeLaTeX inline = Text.concatMap escapeLaTeXChar
+  where escapeLaTeXChar '\\' = "\\textbackslash{}"
+        escapeLaTeXChar '{'  = "\\{"
+        escapeLaTeXChar '}'  = "\\}"
+        escapeLaTeXChar '|'  = if inline
+                                  then "\\VerbBar{}" -- used in inline verbatim
+                                  else "|"
+        escapeLaTeXChar x    = Text.singleton x
+
+-- LaTeX
+
+-- | Format tokens as a LaTeX @Highlighting@ environment inside a
+-- @Shaded@ environment.  @Highlighting@ and @Shaded@ are
+-- defined by the macros produced by 'styleToLaTeX'.  @Highlighting@
+-- is a verbatim environment using @fancyvrb@; @\\@, @{@, and @}@
+-- have their normal meanings inside this environment, so that
+-- formatting commands work.  @Shaded@ is either nothing
+-- (if the style's background color is default) or a @snugshade@
+-- environment from @framed@, providing a background color
+-- for the whole code block, even if it spans multiple pages.
+formatLaTeXBlock :: FormatOptions -> [SourceLine] -> Text
+formatLaTeXBlock opts ls = Text.unlines
+  ["\\begin{Shaded}"
+  ,"\\begin{Highlighting}[" <>
+   (if numberLines opts
+       then "numbers=left," <>
+            (if startNumber opts == 1
+                then ""
+                else ",firstnumber=" <>
+                     Text.pack (show (startNumber opts))) <> ","
+       else Text.empty) <> "]"
+  ,formatLaTeX False ls
+  ,"\\end{Highlighting}"
+  ,"\\end{Shaded}"]
+
+-- | Converts a 'Style' to a set of LaTeX macro definitions,
+-- which should be placed in the document's preamble.
+-- Note: default LaTeX setup doesn't allow boldface typewriter font.
+-- To make boldface work in styles, you need to use a different typewriter
+-- font. This will work for computer modern:
+--
+-- > \DeclareFontShape{OT1}{cmtt}{bx}{n}{<5><6><7><8><9><10><10.95><12><14.4><17.28><20.74><24.88>cmttb10}{}
+--
+-- Or, with xelatex:
+--
+-- > \usepackage{fontspec}
+-- > \setmainfont[SmallCapsFont={* Caps}]{Latin Modern Roman}
+-- > \setsansfont{Latin Modern Sans}
+-- > \setmonofont[SmallCapsFont={Latin Modern Mono Caps}]{Latin Modern Mono Light}
+--
+styleToLaTeX :: Style -> Text
+styleToLaTeX f = Text.unlines $
+  [ "\\usepackage{color}"
+  , "\\usepackage{fancyvrb}"
+  , "\\newcommand{\\VerbBar}{|}"
+  , "\\newcommand{\\VERB}{\\Verb[commandchars=\\\\\\{\\}]}"
+  , "\\DefineVerbatimEnvironment{Highlighting}{Verbatim}{commandchars=\\\\\\{\\}}"
+  , "% Add ',fontsize=\\small' for more characters per line"
+  ] ++
+  (case backgroundColor f of
+        Nothing          -> ["\\newenvironment{Shaded}{}{}"]
+        Just (RGB r g b) -> ["\\usepackage{framed}"
+                            ,Text.pack
+                              (printf "\\definecolor{shadecolor}{RGB}{%d,%d,%d}" r g b)
+                            ,"\\newenvironment{Shaded}{\\begin{snugshade}}{\\end{snugshade}}"])
+  ++ sort (map (macrodef (defaultColor f) (Map.toList (tokenStyles f)))
+            (enumFromTo KeywordTok NormalTok))
+
+macrodef :: Maybe Color -> [(TokenType, TokenStyle)] -> TokenType -> Text
+macrodef defaultcol tokstyles tokt = "\\newcommand{\\"
+  <> Text.pack (show tokt)
+  <> "}[1]{"
+  <> Text.pack (co . ul . bf . it . bg $ "#1")
+  <> "}"
+  where tokf = case lookup tokt tokstyles of
+                     Nothing -> defStyle
+                     Just x  -> x
+        ul x = if tokenUnderline tokf
+                  then "\\underline{" <> x <> "}"
+                  else x
+        it x = if tokenItalic tokf
+                  then "\\textit{" <> x <> "}"
+                  else x
+        bf x = if tokenBold tokf
+                  then "\\textbf{" <> x <> "}"
+                  else x
+        bcol = fromColor `fmap` tokenBackground tokf
+                  :: Maybe (Double, Double, Double)
+        bg x = case bcol of
+                    Nothing        -> x
+                    Just (r, g, b) ->
+                       printf "\\colorbox[rgb]{%0.2f,%0.2f,%0.2f}{%s}" r g b x
+        col  = fromColor `fmap` (tokenColor tokf `mplus` defaultcol)
+                  :: Maybe (Double, Double, Double)
+        co x = case col of
+                    Nothing        -> x
+                    Just (r, g, b) ->
+                        printf "\\textcolor[rgb]{%0.2f,%0.2f,%0.2f}{%s}" r g b x
+
diff --git a/src/Skylighting/Loader.hs b/src/Skylighting/Loader.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Loader.hs
@@ -0,0 +1,51 @@
+-- | This module provides routines to load syntax definitions from disk
+-- files.
+module Skylighting.Loader ( loadSyntaxFromFile
+                          , loadSyntaxesFromDir
+                          )
+                          where
+
+import Control.Monad (filterM, foldM)
+import Control.Monad.Except (ExceptT(ExceptT), runExceptT)
+import Control.Monad.IO.Class (liftIO)
+import Data.Monoid ((<>))
+import System.Directory (listDirectory, doesFileExist)
+import System.FilePath ((</>), takeExtension)
+
+import Skylighting.Types (SyntaxMap, Syntax)
+import Skylighting.Parser (addSyntaxDefinition, parseSyntaxDefinition)
+
+syntaxFileExtension :: String
+syntaxFileExtension = ".xml"
+
+isSyntaxFile :: FilePath -> Bool
+isSyntaxFile = (== syntaxFileExtension) . takeExtension
+
+-- | Loads a syntax definition from the specifed file path. The file
+-- path must refer to a file containing an XML Kate syntax definition.
+loadSyntaxFromFile :: FilePath -> IO (Either String Syntax)
+loadSyntaxFromFile path = do
+    result <- parseSyntaxDefinition path
+    case result of
+        Left e -> return $ Left $ "Error parsing file " <> show path <> ": " <> e
+        Right s -> return $ Right s
+
+-- | Loads all syntax definitions from the specified directory by
+-- looking for files with an ".xml" extension. This function assumes
+-- such files are Kate XML syntax definitions, so XML files with
+-- unexpected contents will cause a parsing error returned as a 'Left'.
+loadSyntaxesFromDir :: FilePath -> IO (Either String SyntaxMap)
+loadSyntaxesFromDir path = runExceptT $ do
+    files <- liftIO $ syntaxFiles path
+
+    let loadSyntax sMap file = do
+            s <- ExceptT $ loadSyntaxFromFile file
+            return $ addSyntaxDefinition s sMap
+
+    foldM loadSyntax mempty files
+
+syntaxFiles :: FilePath -> IO [FilePath]
+syntaxFiles dir = do
+    entries <- listDirectory dir
+    let absEntries = (dir </>) <$> filter isSyntaxFile entries
+    filterM doesFileExist absEntries
diff --git a/src/Skylighting/Parser.hs b/src/Skylighting/Parser.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Parser.hs
@@ -0,0 +1,349 @@
+{-# LANGUAGE Arrows #-}
+module Skylighting.Parser ( parseSyntaxDefinition
+                          , addSyntaxDefinition
+                          , missingIncludes
+                          ) where
+
+import Data.ByteString.UTF8 (fromString)
+import Data.Char (isAlphaNum, toUpper)
+import qualified Data.Map as Map
+import Data.Maybe (fromMaybe)
+import qualified Data.Set as Set
+import Data.Text (Text)
+import qualified Data.Text as Text
+import Safe
+import Skylighting.Regex
+import Skylighting.Types
+import System.FilePath
+import Text.XML.HXT.Core
+
+-- | Adds a syntax definition to a syntax map,
+-- replacing any existing definition with the same name.
+addSyntaxDefinition :: Syntax -> SyntaxMap -> SyntaxMap
+addSyntaxDefinition s = Map.insert (sName s) s
+
+-- | Scan a list of 'Syntax's and make sure that
+-- `IncludeRules` never asks for a syntax not in this
+-- list.  Produces a list of pairs where the first
+-- element is the including syntax name and the second
+-- element is the (missing) included syntax name.
+-- This is intended for sanity checks to avoid run-time
+-- errors.
+missingIncludes :: [Syntax] -> [(Text, Text)]
+missingIncludes syns = ordNub
+  [(sName s, lang)
+     | s <- syns
+     , c <- Map.elems (sContexts s)
+     , IncludeRules (lang, _) <- map rMatcher (cRules c)
+     , not (lang `Set.member` syntaxNames)]
+   where syntaxNames = Set.fromList $ map sName syns
+
+ordNub :: (Ord a) => [a] -> [a]
+ordNub l = go Set.empty l
+  where
+    go _ [] = []
+    go s (x:xs) = if x `Set.member` s then go s xs
+                                      else x : go (Set.insert x s) xs
+
+standardDelims :: Set.Set Char
+standardDelims = Set.fromList " \n\t.():!+,-<=>%&*/;?[]^{|}~\\"
+
+defaultKeywordAttr :: KeywordAttr
+defaultKeywordAttr = KeywordAttr { keywordCaseSensitive = True
+                                 , keywordDelims = standardDelims }
+
+stripWhitespace :: String -> String
+stripWhitespace = reverse . stripWhitespaceLeft . reverse . stripWhitespaceLeft
+  where stripWhitespaceLeft = dropWhile isWhitespace
+        isWhitespace x = x `elem` [' ', '\t', '\n']
+
+vBool :: Bool -> String -> Bool
+vBool defaultVal value = case value of
+                           z | z `elem` ["true","yes","1"] -> True
+                           z | z `elem` ["false","no","0"] -> False
+                           _ -> defaultVal
+
+-- | Parses a file containing a Kate XML syntax definition
+-- into a 'Syntax' description.
+parseSyntaxDefinition :: String -> IO (Either String Syntax)
+parseSyntaxDefinition xml = do
+  res <- runX (application xml)
+  case res of
+       [s] -> return $ Right s
+       _   -> return $ Left $ "Could not parse syntax definition " ++ xml
+
+application :: String -> IOSArrow b Syntax
+application fp
+    = readDocument [withValidate no, withInputEncoding utf8] fp
+      >>>
+      multi (hasName "language")
+      >>>
+      extractSyntaxDefinition (takeFileName fp)
+
+extractSyntaxDefinition :: String -> IOSArrow XmlTree Syntax
+extractSyntaxDefinition filename =
+  proc x -> do
+     lang <- getAttrValue "name" -< x
+     author <- getAttrValue "author" -< x
+     version <- getAttrValue "version" -< x
+     license <- getAttrValue "license" -< x
+     extensions <- getAttrValue "extensions" -< x
+     contexts <- getContexts $<
+                    (arr (vBool True) <<< getAttrValue "casesensitive") &&&
+                    (getAttrValue "name") &&&
+                    (arr toItemDataTable <<< getItemDatas) &&&
+                    getLists &&&
+                    (arr (headDef defaultKeywordAttr) <<< getKeywordAttrs) -< x
+     startingContext <- case contexts of
+                             (c:_) -> returnA -< cName c
+                             []    -> issueErr "No contexts" >>> none -< ()
+     returnA -< Syntax{
+                  sName     = Text.pack lang
+                , sFilename = filename
+                , sShortname = Text.pack $ pathToLangName filename
+                , sAuthor   = Text.pack $ author
+                , sVersion  = Text.pack $ version
+                , sLicense  = Text.pack $ license
+                , sExtensions = words $ map
+                     (\c -> if c == ';'
+                               then ' '
+                               else c) extensions
+                , sContexts = Map.fromList
+                       [(cName c, c) | c <- contexts]
+                , sStartingContext = startingContext
+                }
+
+toItemDataTable :: [(String,String)] -> Map.Map String TokenType
+toItemDataTable = Map.fromList . map (\(s,t) -> (s, toTokenType t))
+
+getItemDatas :: IOSArrow XmlTree [(String,String)]
+getItemDatas =
+  multi (hasName "itemDatas")
+     >>>
+     (listA $ getChildren
+             >>>
+             hasName "itemData"
+             >>>
+             getAttrValue "name" &&& getAttrValue "defStyleNum")
+
+toTokenType :: String -> TokenType
+toTokenType s =
+  case s of
+       "dsNormal"         -> NormalTok
+       "dsKeyword"        -> KeywordTok
+       "dsDataType"       -> DataTypeTok
+       "dsDecVal"         -> DecValTok
+       "dsBaseN"          -> BaseNTok
+       "dsFloat"          -> FloatTok
+       "dsConstant"       -> ConstantTok
+       "dsChar"           -> CharTok
+       "dsSpecialChar"    -> SpecialCharTok
+       "dsString"         -> StringTok
+       "dsVerbatimString" -> VerbatimStringTok
+       "dsSpecialString"  -> SpecialStringTok
+       "dsImport"         -> ImportTok
+       "dsComment"        -> CommentTok
+       "dsDocumentation"  -> DocumentationTok
+       "dsAnnotation"     -> AnnotationTok
+       "dsCommentVar"     -> CommentVarTok
+       "dsOthers"         -> OtherTok
+       "dsFunction"       -> FunctionTok
+       "dsVariable"       -> VariableTok
+       "dsControlFlow"    -> ControlFlowTok
+       "dsOperator"       -> OperatorTok
+       "dsBuiltIn"        -> BuiltInTok
+       "dsExtension"      -> ExtensionTok
+       "dsPreprocessor"   -> PreprocessorTok
+       "dsAttribute"      -> AttributeTok
+       "dsRegionMarker"   -> RegionMarkerTok
+       "dsInformation"    -> InformationTok
+       "dsWarning"        -> WarningTok
+       "dsAlert"          -> AlertTok
+       "dsError"          -> ErrorTok
+       _                  -> NormalTok
+
+getLists :: IOSArrow XmlTree [(String, [String])]
+getLists =
+  listA $ multi (hasName "list")
+     >>>
+     getAttrValue "name" &&& getListContents
+
+getListContents :: IOSArrow XmlTree [String]
+getListContents =
+  listA $ getChildren
+     >>>
+     hasName "item"
+     >>>
+     getChildren
+     >>>
+     getText
+     >>>
+     arr stripWhitespace
+
+getContexts ::
+     (Bool,
+       (String,
+         (Map.Map String TokenType,
+           ([(String, [String])], KeywordAttr))))
+            -> IOSArrow XmlTree [Context]
+getContexts (casesensitive, (syntaxname, (itemdatas, (lists, kwattr)))) =
+  listA $ multi (hasName "context")
+     >>>
+     proc x -> do
+       name <- getAttrValue "name" -< x
+       attribute <- getAttrValue "attribute" -< x
+       lineEmptyContext <- getAttrValue "lineEmptyContext" -< x
+       lineEndContext <- getAttrValue "lineEndContext" -< x
+       lineBeginContext <- getAttrValue "lineBeginContext" -< x
+       fallthrough <- arr (vBool False) <<< getAttrValue "fallthrough" -< x
+       fallthroughContext <- getAttrValue "fallthroughContext" -< x
+       dynamic <- arr (vBool False) <<< getAttrValue "dynamic" -< x
+       parsers <- getParsers (casesensitive, (syntaxname,
+                                (itemdatas, (lists, kwattr)))) $<
+                            getAttrValue "attribute" -< x
+       returnA -< Context {
+                     cName = Text.pack name
+                   , cSyntax = Text.pack syntaxname
+                   , cRules = parsers
+                   , cAttribute = fromMaybe NormalTok $
+                           Map.lookup attribute itemdatas
+                   , cLineEmptyContext =
+                        parseContextSwitch syntaxname lineEmptyContext
+                   , cLineEndContext =
+                        parseContextSwitch syntaxname lineEndContext
+                   , cLineBeginContext =
+                        parseContextSwitch syntaxname lineBeginContext
+                   , cFallthrough = fallthrough
+                   , cFallthroughContext =
+                        parseContextSwitch syntaxname fallthroughContext
+                   , cDynamic = dynamic
+                   }
+
+-- Note, some xml files have "\\" for a backslash,
+-- others have "\".  Not sure what the rules are, but
+-- this covers both bases:
+readChar :: String -> Char
+readChar s = case s of
+                  [c] -> c
+                  _   -> readDef '\xffff' $ "'" ++ s ++ "'"
+
+
+getParsers :: (Bool,
+                (String,
+                  (Map.Map String TokenType,
+                    ([(String, [String])], KeywordAttr))))
+            -> String  -- context attribute
+            -> IOSArrow XmlTree [Rule]
+getParsers (casesensitive, (syntaxname, (itemdatas, (lists, kwattr)))) cattr =
+  listA $ getChildren
+     >>>
+     proc x -> do
+       name <- getName -< x
+       attribute <- getAttrValue "attribute" -< x
+       context <- getAttrValue "context" -< x
+       char0 <- arr readChar <<< getAttrValue "char" -< x
+       char1 <- arr readChar <<< getAttrValue "char1" -< x
+       str' <- getAttrValue "String" -< x
+       insensitive <- arr (vBool (not casesensitive))
+                            <<< getAttrValue "insensitive" -< x
+       includeAttrib <- arr (vBool False) <<< getAttrValue "includeAttrib" -< x
+       lookahead <- arr (vBool False) <<< getAttrValue "lookAhead" -< x
+       firstNonSpace <- arr (vBool False) <<< getAttrValue "firstNonSpace" -< x
+       column' <- getAttrValue "column" -< x
+       dynamic <- arr (vBool False) <<< getAttrValue "dynamic" -< x
+       children <- getParsers
+                     (casesensitive, (syntaxname, (itemdatas, (lists, kwattr))))
+                     cattr -< x
+       let tildeRegex = name == "RegExpr" && take 1 str' == "^"
+       let str = if tildeRegex then drop 1 str' else str'
+       let column = if tildeRegex
+                       then Just (0 :: Int)
+                       else readMay column'
+       let re = RegExpr RE{ reString = fromString $ convertOctalEscapes str
+                          , reCaseSensitive = not insensitive }
+       let (incsyntax, inccontext) =
+               case break (=='#') context of
+                     (cont, '#':'#':lang) -> (lang, cont)
+                     _                    -> (syntaxname, context)
+       let mbmatcher = case name of
+                         "DetectChar" -> Just $ DetectChar char0
+                         "Detect2Chars" -> Just $ Detect2Chars char0 char1
+                         "AnyChar" -> Just $ AnyChar str
+                         "RangeDetect" -> Just $ RangeDetect char0 char1
+                         "StringDetect" -> Just $ StringDetect $ Text.pack str
+                         "WordDetect" -> Just $ WordDetect $ Text.pack str
+                         "RegExpr" -> Just $ re
+                         "keyword" -> Just $ Keyword kwattr $
+                            maybe (makeWordSet True [])
+                              (makeWordSet (keywordCaseSensitive kwattr) . map Text.pack)
+                              (lookup str lists)
+                         "Int" -> Just $ Int
+                         "Float" -> Just $ Float
+                         "HlCOct" -> Just $ HlCOct
+                         "HlCHex" -> Just $ HlCHex
+                         "HlCStringChar" -> Just $ HlCStringChar
+                         "HlCChar" -> Just $ HlCChar
+                         "LineContinue" -> Just $ LineContinue
+                         "IncludeRules" -> Just $
+                           IncludeRules (Text.pack incsyntax, Text.pack inccontext)
+                         "DetectSpaces" -> Just $ DetectSpaces
+                         "DetectIdentifier" -> Just $ DetectIdentifier
+                         _ -> Nothing
+
+       matcher <- case mbmatcher of
+                       Nothing -> none
+                                   <<< applyA (arr issueWarn)
+                                   <<< arr ("Unknown element " ++)
+                                   <<< getName -< x
+                       Just m  -> returnA -< m
+
+       let contextSwitch = if name == "IncludeRules"
+                              then []  -- is this right?
+                              else parseContextSwitch syntaxname context
+       returnA -< Rule{ rMatcher = matcher,
+                        rAttribute = fromMaybe NormalTok $
+                           if null attribute
+                              then Map.lookup cattr itemdatas
+                              else Map.lookup attribute itemdatas,
+                        rIncludeAttribute = includeAttrib,
+                        rDynamic = dynamic,
+                        rCaseSensitive = not insensitive,
+                        rChildren = children,
+                        rContextSwitch = contextSwitch,
+                        rLookahead = lookahead,
+                        rFirstNonspace = firstNonSpace ,
+                        rColumn = column }
+
+parseContextSwitch :: String -> String -> [ContextSwitch]
+parseContextSwitch _ [] = []
+parseContextSwitch _ "#stay" = []
+parseContextSwitch syntaxname ('#':'p':'o':'p':xs) =
+  Pop : parseContextSwitch syntaxname xs
+parseContextSwitch syntaxname ('!':xs) = [Push (Text.pack syntaxname, Text.pack xs)]
+parseContextSwitch syntaxname xs = [Push (Text.pack syntaxname, Text.pack xs)]
+
+getKeywordAttrs :: IOSArrow XmlTree [KeywordAttr]
+getKeywordAttrs =
+  listA $ multi $ hasName "keywords"
+     >>>
+     proc x -> do
+       caseSensitive <- arr (vBool True) <<< getAttrValue "casesensitive" -< x
+       weakDelim <- getAttrValue "weakDeliminator" -< x
+       additionalDelim <- getAttrValue "additionalDeliminator" -< x
+       returnA -< KeywordAttr
+                         { keywordCaseSensitive = caseSensitive
+                         , keywordDelims = (Set.union standardDelims
+                             (Set.fromList additionalDelim)) Set.\\
+                                Set.fromList weakDelim }
+
+pathToLangName :: String -> String
+pathToLangName s = capitalize (camelize (takeBaseName s))
+
+camelize :: String -> String
+camelize (d:c:cs) | not (isAlphaNum d) = toUpper c : camelize cs
+camelize (c:cs)   = c : camelize cs
+camelize []       = []
+
+capitalize :: String -> String
+capitalize (c:cs) = toUpper c : cs
+capitalize []     = []
diff --git a/src/Skylighting/Regex.hs b/src/Skylighting/Regex.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Regex.hs
@@ -0,0 +1,106 @@
+{-# LANGUAGE DeriveDataTypeable  #-}
+{-# LANGUAGE DeriveGeneric       #-}
+{-# LANGUAGE OverloadedStrings   #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+
+module Skylighting.Regex (
+                Regex
+              , RegexException
+              , RE(..)
+              , compileRegex
+              , matchRegex
+              , convertOctalEscapes
+              ) where
+
+import qualified Control.Exception as E
+import Data.Aeson
+import Data.Binary (Binary)
+import qualified Data.ByteString.Base64 as Base64
+import qualified Data.ByteString.Char8 as BS
+import Data.ByteString.UTF8 (toString)
+import Data.Data
+import qualified Data.Text as Text
+import qualified Data.Text.Encoding as TE
+import GHC.Generics (Generic)
+import System.IO.Unsafe (unsafePerformIO)
+import Text.Printf
+import Text.Regex.PCRE.ByteString
+
+-- | An exception in compiling or executing a regex.
+newtype RegexException = RegexException String
+      deriving (Show, Typeable, Generic)
+
+instance E.Exception RegexException
+
+-- | A representation of a regular expression.
+data RE = RE{
+    reString        :: BS.ByteString
+  , reCaseSensitive :: Bool
+} deriving (Show, Read, Ord, Eq, Data, Typeable, Generic)
+
+instance Binary RE
+
+instance ToJSON RE where
+  toJSON re = object [ "reString"        .= encodeToText (reString re)
+                     , "reCaseSensitive" .= reCaseSensitive re ]
+instance FromJSON RE where
+  parseJSON = withObject "RE" $ \v ->
+    RE <$> ((v .: "reString") >>= decodeFromText)
+       <*> v .: "reCaseSensitive"
+
+-- | Compile a PCRE regex.  If the first parameter is True, the regex is
+-- case-sensitive, otherwise caseless.  The regex is compiled from
+-- a bytestring interpreted as UTF-8.  If the regex cannot be compiled,
+-- a 'RegexException' is thrown.
+compileRegex :: Bool -> BS.ByteString -> Regex
+compileRegex caseSensitive regexpStr =
+  let opts = compAnchored + compUTF8 +
+               if caseSensitive then 0 else compCaseless
+  in  case unsafePerformIO $ compile opts (execNotEmpty) regexpStr of
+            Left (off,msg) -> E.throw $ RegexException $
+                        "Error compiling regex /" ++ toString regexpStr ++
+                        "/ at offset " ++ show off ++ "\n" ++ msg
+            Right r -> r
+
+-- | Convert octal escapes to the form pcre wants.  Note:
+-- need at least pcre 8.34 for the form \o{dddd}.
+-- So we prefer \ddd or \x{...}.
+convertOctalEscapes :: String -> String
+convertOctalEscapes [] = ""
+convertOctalEscapes ('\\':'0':x:y:z:rest)
+  | all isOctalDigit [x,y,z] = '\\':x:y:z: convertOctalEscapes rest
+convertOctalEscapes ('\\':x:y:z:rest)
+  | all isOctalDigit [x,y,z] ='\\':x:y:z: convertOctalEscapes rest
+convertOctalEscapes ('\\':'o':'{':zs) =
+  case break (=='}') zs of
+       (ds, '}':rest) | all isOctalDigit ds && not (null ds) ->
+            case reads ('0':'o':ds) of
+                 ((n :: Int,[]):_) ->
+                     printf "\\x{%x}" n ++ convertOctalEscapes rest
+                 _          -> E.throw $ RegexException $
+                                   "Unable to read octal number: " ++ ds
+       _  -> '\\':'o':'{': convertOctalEscapes zs
+convertOctalEscapes (x:xs) = x : convertOctalEscapes xs
+
+isOctalDigit :: Char -> Bool
+isOctalDigit c = c >= '0' && c <= '7'
+
+-- | Match a 'Regex' against a bytestring.  Returns 'Nothing' if
+-- no match, otherwise 'Just' a nonempty list of bytestrings. The first
+-- bytestring in the list is the match, the others the captures, if any.
+-- If there are errors in executing the regex, a 'RegexException' is
+-- thrown.
+matchRegex :: Regex -> BS.ByteString -> Maybe [BS.ByteString]
+matchRegex r s = case unsafePerformIO (regexec r s) of
+                      Right (Just (_, mat, _ , capts)) ->
+                                       Just (mat : capts)
+                      Right Nothing -> Nothing
+                      Left (_rc, msg) -> E.throw $ RegexException msg
+
+-- functions to marshall bytestrings to text
+
+encodeToText :: BS.ByteString -> Text.Text
+encodeToText = TE.decodeUtf8 . Base64.encode
+
+decodeFromText :: (Monad m) => Text.Text -> m BS.ByteString
+decodeFromText = either fail return . Base64.decode . TE.encodeUtf8
diff --git a/src/Skylighting/Styles.hs b/src/Skylighting/Styles.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Styles.hs
@@ -0,0 +1,323 @@
+module Skylighting.Styles (
+    parseTheme
+  , kate
+  , breezeDark
+  , pygments
+  , espresso
+  , tango
+  , haddock
+  , monochrome
+  , zenburn) where
+
+import Data.Aeson (eitherDecode)
+import Data.ByteString.Lazy (ByteString)
+import qualified Data.Map as Map
+import Skylighting.Types
+
+-- | Parse a KDE theme JSON document into a skylighting Style.
+parseTheme :: ByteString -> Either String Style
+parseTheme = eitherDecode
+
+color :: Int -> Maybe Color
+color = toColor
+
+-- | Style based on kate's default colors.
+kate :: Style
+kate = Style{
+      tokenStyles = Map.fromList
+        [ ( KeywordTok, defStyle { tokenColor = Just (RGB 31 28 27), tokenBold = True })
+        , ( DataTypeTok, defStyle { tokenColor = Just (RGB 0 87 174) })
+        , ( DecValTok, defStyle { tokenColor = Just (RGB 176 128 0) })
+        , ( BaseNTok, defStyle { tokenColor = Just (RGB 176 128 0) })
+        , ( FloatTok, defStyle { tokenColor = Just (RGB 176 128 0) })
+        , ( ConstantTok, defStyle { tokenColor = Just (RGB 170 85 0) })
+        , ( CharTok, defStyle { tokenColor = Just (RGB 146 76 157) })
+        , ( SpecialCharTok, defStyle { tokenColor = Just (RGB 61 174 233) })
+        , ( StringTok, defStyle { tokenColor = Just (RGB 191 3 3) })
+        , ( VerbatimStringTok, defStyle { tokenColor = Just (RGB 191 3 3) })
+        , ( SpecialStringTok, defStyle { tokenColor = Just (RGB 255 85 0) })
+        , ( ImportTok, defStyle { tokenColor = Just (RGB 255 85 0) })
+        , ( CommentTok, defStyle { tokenColor = Just (RGB 137 136 135) })
+        , ( DocumentationTok, defStyle { tokenColor = Just (RGB 96 120 128) })
+        , ( AnnotationTok, defStyle { tokenColor = Just (RGB 202 96 202) })
+        , ( CommentVarTok, defStyle { tokenColor = Just (RGB 0 149 255) })
+        , ( OtherTok, defStyle { tokenColor = Just (RGB 0 110 40) })
+        , ( FunctionTok, defStyle { tokenColor = Just (RGB 100 74 155) })
+        , ( VariableTok, defStyle { tokenColor = Just (RGB 0 87 174) })
+        , ( ControlFlowTok, defStyle { tokenColor = Just (RGB 31 28 27), tokenBold = True })
+        , ( OperatorTok, defStyle { tokenColor = Just (RGB 31 28 27) })
+        , ( BuiltInTok, defStyle { tokenColor = Just (RGB 100 74 155), tokenBold = True })
+        , ( ExtensionTok, defStyle { tokenColor = Just (RGB 0 149 255), tokenBold = True })
+        , ( PreprocessorTok, defStyle { tokenColor = Just (RGB 0 110 40) })
+        , ( AttributeTok, defStyle { tokenColor = Just (RGB 0 87 174) })
+        , ( RegionMarkerTok, defStyle { tokenColor = Just (RGB 0 87 174), tokenBackground = Just (RGB 224 233 248)} )
+        , ( InformationTok, defStyle { tokenColor = Just (RGB 176 128 0) })
+        , ( WarningTok, defStyle { tokenColor = Just (RGB 191 3 3) })
+        , ( AlertTok, defStyle { tokenColor = Just (RGB 191 3 3), tokenBackground = Just (RGB 247 230 230), tokenBold = True })
+        , ( ErrorTok, defStyle { tokenColor = Just (RGB 191 3 3), tokenUnderline = True })
+        , ( NormalTok, defStyle { tokenColor = Just (RGB 31 28 27) })
+        ]
+    , defaultColor = Just (RGB 31 28 27)
+    , backgroundColor = Just (RGB 255 255 255)
+    , lineNumberColor = Just (RGB 160 160 160)
+    , lineNumberBackgroundColor = Just (RGB 255 255 255)
+    }
+
+-- | Style from the breeze-dark KDE syntax highlighting theme.
+breezeDark :: Style
+breezeDark = Style
+    { tokenStyles = Map.fromList
+        [ ( KeywordTok, defStyle { tokenColor = Just (RGB 207 207 194) })
+        , ( DataTypeTok, defStyle { tokenColor = Just (RGB 41 128 185) })
+        , ( DecValTok, defStyle { tokenColor = Just (RGB 246 116 0) })
+        , ( BaseNTok, defStyle { tokenColor = Just (RGB 246 116 0) })
+        , ( FloatTok, defStyle { tokenColor = Just (RGB 246 116 0) })
+        , ( ConstantTok, defStyle { tokenColor = Just (RGB 39 174 174) })
+        , ( CharTok, defStyle { tokenColor = Just (RGB 61 174 233) })
+        , ( SpecialCharTok, defStyle { tokenColor = Just (RGB 61 174 233) })
+        , ( StringTok, defStyle { tokenColor = Just (RGB 244 79 79) })
+        , ( VerbatimStringTok, defStyle { tokenColor = Just (RGB 218 68 83) })
+        , ( SpecialStringTok, defStyle { tokenColor = Just (RGB 218 68 83) })
+        , ( ImportTok, defStyle { tokenColor = Just (RGB 39 174 96) })
+        , ( CommentTok, defStyle { tokenColor = Just (RGB 122 124 125) })
+        , ( DocumentationTok, defStyle { tokenColor = Just (RGB 164 51 64) })
+        , ( AnnotationTok, defStyle { tokenColor = Just (RGB 63 128 88) })
+        , ( CommentVarTok, defStyle { tokenColor = Just (RGB 127 140 141) })
+        , ( OtherTok, defStyle { tokenColor = Just (RGB 39 174 96) })
+        , ( FunctionTok, defStyle { tokenColor = Just (RGB 142 68 173) })
+        , ( VariableTok, defStyle { tokenColor = Just (RGB 39 174 174) })
+        , ( ControlFlowTok, defStyle { tokenColor = Just (RGB 253 188 75) })
+        , ( OperatorTok, defStyle { tokenColor = Just (RGB 207 207 194) })
+        , ( BuiltInTok, defStyle { tokenColor = Just (RGB 127 140 141) })
+        , ( ExtensionTok, defStyle { tokenColor = Just (RGB 0 153 255) })
+        , ( PreprocessorTok, defStyle { tokenColor = Just (RGB 39 174 96) })
+        , ( AttributeTok, defStyle { tokenColor = Just (RGB 41 128 185) })
+        , ( RegionMarkerTok, defStyle { tokenColor = Just (RGB 41 128 185) })
+        , ( InformationTok, defStyle { tokenColor = Just (RGB 196 91 0) })
+        , ( WarningTok, defStyle { tokenColor = Just (RGB 218 68 83) })
+        , ( AlertTok, defStyle { tokenColor = Just (RGB 149 218 76) })
+        , ( ErrorTok, defStyle { tokenColor = Just (RGB 218 68 83) })
+        , ( NormalTok, defStyle { tokenColor = Just (RGB 207 207 194) })
+        ]
+    , defaultColor = Just (RGB 207 207 194)
+    , backgroundColor = Just (RGB 35 38 41)
+    , lineNumberColor = Just (RGB 122 124 125)
+    , lineNumberBackgroundColor = Just (RGB 35 38 41)
+    }
+
+-- | Style based on pygments's default colors.
+pygments :: Style
+pygments = Style{
+    backgroundColor = Nothing
+  , defaultColor = Nothing
+  , lineNumberColor = color 0xaaaaaa
+  , lineNumberBackgroundColor = Nothing
+  , tokenStyles = Map.fromList
+    [ (KeywordTok, defStyle{ tokenColor = color 0x007020, tokenBold = True })
+    , (DataTypeTok, defStyle{ tokenColor = color 0x902000 })
+    , (DecValTok, defStyle{ tokenColor = color 0x40a070 })
+    , (BaseNTok, defStyle{ tokenColor = color 0x40a070 })
+    , (FloatTok, defStyle{ tokenColor = color 0x40a070 })
+    , (CharTok, defStyle{ tokenColor = color 0x4070a0 })
+    , (StringTok, defStyle{ tokenColor = color 0x4070a0 })
+    , (CommentTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True })
+    , (OtherTok, defStyle{ tokenColor = color 0x007020 })
+    , (AlertTok, defStyle{ tokenColor = color 0xff0000, tokenBold = True })
+    , (FunctionTok, defStyle{ tokenColor = color 0x06287e })
+    , (ErrorTok, defStyle{ tokenColor = color 0xff0000, tokenBold = True })
+    , (WarningTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True, tokenBold = True })
+    , (ConstantTok, defStyle{ tokenColor = color 0x880000 })
+    , (SpecialCharTok, defStyle{ tokenColor = color 0x4070a0 })
+    , (VerbatimStringTok, defStyle{ tokenColor = color 0x4070a0 })
+    , (SpecialStringTok, defStyle{ tokenColor = color 0xBB6688 })
+    , (ImportTok, defStyle)
+    , (VariableTok, defStyle{ tokenColor = color 0x19177C })
+    , (ControlFlowTok, defStyle{ tokenColor = color 0x007020, tokenBold = True })
+    , (OperatorTok, defStyle{ tokenColor = color 0x666666 })
+    , (BuiltInTok, defStyle)
+    , (ExtensionTok, defStyle)
+    , (PreprocessorTok, defStyle{ tokenColor = color 0xBC7A00 })
+    , (AttributeTok, defStyle{ tokenColor = color 0x7D9029 })
+    , (DocumentationTok, defStyle{ tokenColor = color 0xBA2121, tokenItalic = True })
+    , (AnnotationTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True, tokenBold = True })
+    , (CommentVarTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True, tokenBold = True })
+    , (InformationTok, defStyle{ tokenColor = color 0x60a0b0, tokenItalic = True, tokenBold = True })
+    ]
+  }
+
+
+-- | Style based on pygments's tango colors.
+tango :: Style
+tango = Style{
+    backgroundColor = color 0xf8f8f8
+  , defaultColor = Nothing
+  , lineNumberColor = color 0xaaaaaa
+  , lineNumberBackgroundColor = Nothing
+  , tokenStyles = Map.fromList
+    [ (KeywordTok, defStyle{ tokenColor = color 0x204a87, tokenBold = True })
+    , (DataTypeTok, defStyle{ tokenColor = color 0x204a87 })
+    , (DecValTok, defStyle{ tokenColor = color 0x0000cf })
+    , (BaseNTok, defStyle{ tokenColor = color 0x0000cf })
+    , (FloatTok, defStyle{ tokenColor = color 0x0000cf })
+    , (CharTok, defStyle{ tokenColor = color 0x4e9a06 })
+    , (StringTok, defStyle{ tokenColor = color 0x4e9a06 })
+    , (CommentTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True })
+    , (OtherTok, defStyle{ tokenColor = color 0x8f5902 })
+    , (AlertTok, defStyle{ tokenColor = color 0xef2929 })
+    , (FunctionTok, defStyle{ tokenColor = color 0x000000 })
+    , (ErrorTok, defStyle{ tokenColor = color 0xa40000, tokenBold = True })
+    , (WarningTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True,tokenBold = True })
+    , (ConstantTok, defStyle{ tokenColor = color 0x000000 })
+    , (SpecialCharTok, defStyle{ tokenColor = color 0x000000 })
+    , (VerbatimStringTok, defStyle{ tokenColor = color 0x4e9a06 })
+    , (SpecialStringTok, defStyle{ tokenColor = color 0x4e9a06 })
+    , (ImportTok, defStyle)
+    , (VariableTok, defStyle{ tokenColor = color 0x000000 })
+    , (ControlFlowTok, defStyle{ tokenColor = color 0x204a87, tokenBold = True })
+    , (OperatorTok, defStyle{ tokenColor = color 0xce5c00, tokenBold = True })
+    , (PreprocessorTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True} )
+    , (ExtensionTok, defStyle)
+    , (AttributeTok, defStyle{ tokenColor = color 0xc4a000 })
+    , (DocumentationTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True, tokenBold = True })
+    , (AnnotationTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True,tokenBold = True })
+    , (CommentVarTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True,tokenBold = True })
+    , (InformationTok, defStyle{ tokenColor = color 0x8f5902, tokenItalic = True,tokenBold = True })
+    ]
+  }
+
+-- | Style based on ultraviolet's espresso_libre.css (dark background).
+espresso :: Style
+espresso = Style{
+    backgroundColor = color 0x2A211C
+  , defaultColor = color 0xBDAE9D
+  , lineNumberColor = color 0xBDAE9D
+  , lineNumberBackgroundColor = color 0x2A211C
+  , tokenStyles = Map.fromList
+    [ (KeywordTok, defStyle{ tokenColor = color 0x43A8ED, tokenBold = True })
+    , (DataTypeTok, defStyle{ tokenUnderline = True })
+    , (DecValTok, defStyle{ tokenColor = color 0x44AA43 })
+    , (BaseNTok, defStyle{ tokenColor = color 0x44AA43 })
+    , (FloatTok, defStyle{ tokenColor = color 0x44AA43 })
+    , (CharTok, defStyle{ tokenColor = color 0x049B0A })
+    , (StringTok, defStyle{ tokenColor = color 0x049B0A })
+    , (CommentTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True })
+    , (AlertTok, defStyle{ tokenColor = color 0xffff00 })
+    , (FunctionTok, defStyle{ tokenColor = color 0xFF9358, tokenBold = True })
+    , (ErrorTok, defStyle{ tokenColor = color 0xffff00, tokenBold = True })
+    , (WarningTok, defStyle{ tokenColor = color 0xffff00, tokenBold = True })
+    , (ConstantTok, defStyle)
+    , (SpecialCharTok, defStyle{ tokenColor = color 0x049B0A })
+    , (VerbatimStringTok, defStyle{ tokenColor = color 0x049B0A })
+    , (SpecialStringTok, defStyle{ tokenColor = color 0x049B0A })
+    , (ImportTok, defStyle)
+    , (VariableTok, defStyle)
+    , (ControlFlowTok, defStyle{ tokenColor = color 0x43A8ED, tokenBold = True })
+    , (OperatorTok, defStyle)
+    , (BuiltInTok, defStyle)
+    , (ExtensionTok, defStyle)
+    , (PreprocessorTok, defStyle{ tokenBold = True })
+    , (AttributeTok, defStyle)
+    , (DocumentationTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True })
+    , (AnnotationTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True, tokenBold = True })
+    , (CommentTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True, tokenBold = True })
+    , (InformationTok, defStyle{ tokenColor = color 0x0066FF, tokenItalic = True, tokenBold = True })
+    ]
+  }
+
+-- | Style based on haddock's source highlighting.
+haddock :: Style
+haddock = Style{
+    backgroundColor = Nothing
+  , defaultColor = Nothing
+  , lineNumberColor = color 0xaaaaaa
+  , lineNumberBackgroundColor = Nothing
+  , tokenStyles = Map.fromList
+    [ (KeywordTok, defStyle{ tokenColor = color 0x0000FF })
+    , (CharTok, defStyle{ tokenColor = color 0x008080 })
+    , (StringTok, defStyle{ tokenColor = color 0x008080 })
+    , (CommentTok, defStyle{ tokenColor = color 0x008000 })
+    , (OtherTok, defStyle{ tokenColor = color 0xff4000 })
+    , (AlertTok, defStyle{ tokenColor = color 0xff0000 })
+    , (ErrorTok, defStyle{ tokenColor = color 0xff0000, tokenBold = True })
+    , (WarningTok, defStyle{ tokenColor = color 0x008000, tokenBold = True })
+    , (ConstantTok, defStyle)
+    , (SpecialCharTok, defStyle{ tokenColor = color 0x008080 })
+    , (VerbatimStringTok, defStyle{ tokenColor = color 0x008080 })
+    , (SpecialStringTok, defStyle{ tokenColor = color 0x008080 })
+    , (ImportTok, defStyle)
+    , (VariableTok, defStyle)
+    , (ControlFlowTok, defStyle{ tokenColor = color 0x0000FF })
+    , (OperatorTok, defStyle)
+    , (BuiltInTok, defStyle)
+    , (ExtensionTok, defStyle)
+    , (PreprocessorTok, defStyle{ tokenColor = color 0xff4000 })
+    , (DocumentationTok, defStyle{ tokenColor = color 0x008000 })
+    , (AnnotationTok, defStyle{ tokenColor = color 0x008000 })
+    , (CommentVarTok, defStyle{ tokenColor = color 0x008000 })
+    , (AttributeTok, defStyle)
+    , (InformationTok, defStyle{ tokenColor = color 0x008000 })
+    ]
+  }
+
+-- | Style with no colors.
+monochrome :: Style
+monochrome = Style{
+    backgroundColor = Nothing
+  , defaultColor = Nothing
+  , lineNumberColor = Nothing
+  , lineNumberBackgroundColor = Nothing
+  , tokenStyles = Map.fromList
+    [ (KeywordTok, defStyle{ tokenBold = True })
+    , (DataTypeTok, defStyle{ tokenUnderline = True })
+    , (CommentTok, defStyle{ tokenItalic = True })
+    , (AlertTok, defStyle{ tokenBold = True })
+    , (ErrorTok, defStyle{ tokenBold = True })
+    , (WarningTok, defStyle{ tokenItalic = True })
+    , (ControlFlowTok, defStyle{ tokenBold = True })
+    , (PreprocessorTok, defStyle{ tokenBold = True })
+    , (DocumentationTok, defStyle{ tokenItalic = True })
+    , (AnnotationTok, defStyle{ tokenItalic = True })
+    , (CommentVarTok, defStyle{ tokenItalic = True })
+    , (InformationTok, defStyle{ tokenItalic = True })
+    ]
+  }
+
+-- | Style based on the popular zenburn vim color scheme
+zenburn :: Style
+zenburn = Style{
+    backgroundColor = color 0x303030
+  , defaultColor = color 0xcccccc
+  , lineNumberColor = Nothing
+  , lineNumberBackgroundColor = Nothing
+  , tokenStyles = Map.fromList
+    [ (KeywordTok, defStyle{ tokenColor = color 0xf0dfaf })
+    , (DataTypeTok, defStyle{ tokenColor = color 0xdfdfbf })
+    , (DecValTok, defStyle{ tokenColor = color 0xdcdccc })
+    , (BaseNTok, defStyle{ tokenColor = color 0xdca3a3 })
+    , (FloatTok, defStyle{ tokenColor = color 0xc0bed1 })
+    , (CharTok, defStyle{ tokenColor = color 0xdca3a3 })
+    , (StringTok, defStyle{ tokenColor = color 0xcc9393 })
+    , (CommentTok, defStyle{ tokenColor = color 0x7f9f7f })
+    , (OtherTok, defStyle{ tokenColor = color 0xefef8f })
+    , (AlertTok, defStyle{ tokenColor = color 0xffcfaf })
+    , (FunctionTok, defStyle{ tokenColor = color 0xefef8f })
+    , (ErrorTok, defStyle{ tokenColor = color 0xc3bf9f })
+    , (WarningTok, defStyle{ tokenColor = color 0x7f9f7f, tokenBold = True })
+    , (ConstantTok, defStyle{ tokenColor = color 0xdca3a3, tokenBold = True })
+    , (SpecialCharTok, defStyle{ tokenColor = color 0xdca3a3 })
+    , (VerbatimStringTok, defStyle{ tokenColor = color 0xcc9393 })
+    , (SpecialStringTok, defStyle{ tokenColor = color 0xcc9393 })
+    , (ImportTok, defStyle)
+    , (VariableTok, defStyle)
+    , (ControlFlowTok, defStyle{ tokenColor = color 0xf0dfaf })
+    , (OperatorTok, defStyle{ tokenColor = color 0xf0efd0 })
+    , (BuiltInTok, defStyle)
+    , (ExtensionTok, defStyle)
+    , (PreprocessorTok, defStyle{ tokenColor = color 0xffcfaf, tokenBold = True })
+    , (AttributeTok, defStyle)
+    , (DocumentationTok, defStyle{ tokenColor = color 0x7f9f7f })
+    , (AnnotationTok, defStyle{ tokenColor = color 0x7f9f7f, tokenBold = True })
+    , (CommentVarTok, defStyle{ tokenColor = color 0x7f9f7f, tokenBold = True })
+    , (InformationTok, defStyle{ tokenColor = color 0x7f9f7f, tokenBold = True })
+    ]
+  }
diff --git a/src/Skylighting/Tokenizer.hs b/src/Skylighting/Tokenizer.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Tokenizer.hs
@@ -0,0 +1,711 @@
+{-# OPTIONS_GHC -fno-warn-missing-methods #-}
+{-# LANGUAGE DeriveFunctor         #-}
+{-# LANGUAGE FlexibleInstances     #-}
+{-# LANGUAGE MultiParamTypeClasses #-}
+{-# LANGUAGE OverloadedStrings     #-}
+{-# LANGUAGE StandaloneDeriving    #-}
+{-# LANGUAGE TypeSynonymInstances  #-}
+module Skylighting.Tokenizer (
+    tokenize
+  , TokenizerConfig(..)
+  ) where
+
+import Control.Applicative
+import Control.Monad.Except
+import Control.Monad.Reader
+import Control.Monad.State.Strict
+import qualified Data.Attoparsec.ByteString.Char8 as A
+import Data.ByteString.Char8 (ByteString)
+import qualified Data.ByteString.Char8 as BS
+import qualified Data.ByteString.UTF8 as UTF8
+import Data.CaseInsensitive (mk)
+import Data.Char (isAlphaNum, isAscii, isLetter, isPrint, isSpace, ord)
+import qualified Data.Map as Map
+import Data.Maybe (catMaybes)
+import Data.Monoid
+import qualified Data.Set as Set
+import Data.Text (Text)
+import qualified Data.Text as Text
+import Data.Text.Encoding (decodeUtf8', encodeUtf8)
+import Debug.Trace
+import Skylighting.Regex
+import Skylighting.Types
+import Text.Printf (printf)
+
+newtype ContextStack = ContextStack{ unContextStack :: [Context] }
+  deriving (Show)
+
+data TokenizerState = TokenizerState{
+    input               :: ByteString
+  , endline             :: Bool
+  , prevChar            :: Char
+  , contextStack        :: ContextStack
+  , captures            :: [ByteString]
+  , column              :: Int
+  , lineContinuation    :: Bool
+  , firstNonspaceColumn :: Maybe Int
+  , compiledRegexes     :: Map.Map RE Regex
+}
+
+-- | Configuration options for 'tokenize'.
+data TokenizerConfig = TokenizerConfig{
+    syntaxMap   :: SyntaxMap  -- ^ Syntax map to use
+  , traceOutput :: Bool       -- ^ Generate trace output for debugging
+} deriving (Show)
+
+data Result e a = Success a
+                | Failure
+                | Error e
+     deriving (Functor)
+
+deriving instance (Show a, Show e) => Show (Result e a)
+
+data TokenizerM a = TM { runTokenizerM :: TokenizerConfig
+                                       -> TokenizerState
+                                       -> (TokenizerState, Result String a) }
+
+mapsnd :: (a -> b) -> (c, a) -> (c, b)
+mapsnd f (x, y) = (x, f y)
+
+instance Functor TokenizerM where
+  fmap f (TM g) = TM (\c s -> mapsnd (fmap f) (g c s))
+
+instance Applicative TokenizerM where
+  pure x = TM (\_ s -> (s, Success x))
+  (TM f) <*> (TM y) = TM (\c s ->
+                           case (f c s) of
+                              (s', Failure   ) -> (s', Failure)
+                              (s', Error e   ) -> (s', Error e)
+                              (s', Success f') ->
+                                  case (y c s') of
+                                    (s'', Failure   ) -> (s'', Failure)
+                                    (s'', Error e'  ) -> (s'', Error e')
+                                    (s'', Success y') -> (s'', Success (f' y')))
+
+
+instance Monad TokenizerM where
+  return = pure
+  (TM x) >>= f = TM (\c s ->
+                       case x c s of
+                            (s', Failure   ) -> (s', Failure)
+                            (s', Error e   ) -> (s', Error e)
+                            (s', Success x') -> g c s'
+                              where TM g = f x')
+
+instance Alternative TokenizerM where
+  empty = TM (\_ s -> (s, Failure))
+  (<|>) (TM x) (TM y) = TM (\c s ->
+                           case x c s of
+                                (_, Failure   )  -> y c s
+                                (s', Error e   ) -> (s', Error e)
+                                (s', Success x') -> (s', Success x'))
+  many (TM x) = TM (\c s ->
+                    case x c s of
+                       (_, Failure   )  -> (s, Success [])
+                       (s', Error e   ) -> (s', Error e)
+                       (s', Success x') -> mapsnd (fmap (x':)) (g c s')
+                         where TM g = many (TM x))
+  some x = (:) <$> x <*> many x
+
+instance MonadPlus TokenizerM where
+  mzero = empty
+  mplus = (<|>)
+
+instance MonadReader TokenizerConfig TokenizerM where
+  ask = TM (\c s -> (s, Success c))
+  local f (TM x) = TM (\c s -> x (f c) s)
+
+instance MonadState TokenizerState TokenizerM where
+  get = TM (\_ s -> (s, Success s))
+  put x = TM (\_ _ -> (x, Success ()))
+
+instance MonadError String TokenizerM where
+  throwError e = TM (\_ s -> (s, Error e))
+  catchError (TM x) f = TM (\c s -> case x c s of
+                                      (_, Error e) -> let TM y = f e in y c s
+                                      z            -> z)
+
+-- | Tokenize some text using 'Syntax'.
+tokenize :: TokenizerConfig -> Syntax -> Text -> Either String [SourceLine]
+tokenize config syntax inp =
+  case runTokenizerM action config initState of
+       (_, Success ls) -> Right ls
+       (_, Error e)    -> Left e
+       (_, Failure)    -> Left "Could not tokenize code"
+  where
+    action = mapM tokenizeLine (zip (BS.lines (encodeUtf8 inp)) [1..])
+    initState = startingState{ endline = Text.null inp
+                             , contextStack =
+                                   case lookupContext
+                                         (sStartingContext syntax) syntax of
+                                         Just c  -> ContextStack [c]
+                                         Nothing -> ContextStack [] }
+
+
+info :: String -> TokenizerM ()
+info s = do
+  tr <- asks traceOutput
+  when tr $ trace s (return ())
+
+infoContextStack :: TokenizerM ()
+infoContextStack = do
+  tr <- asks traceOutput
+  when tr $ do
+    ContextStack stack <- gets contextStack
+    info $ "CONTEXT STACK " ++ show (map cName stack)
+
+popContextStack :: TokenizerM ()
+popContextStack = do
+  ContextStack cs <- gets contextStack
+  case cs of
+       []     -> throwError "Empty context stack (the impossible happened)"
+       -- programming error
+       (_:[]) -> return ()
+       (_:rest) -> do
+         modify (\st -> st{ contextStack = ContextStack rest })
+         currentContext >>= checkLineEnd
+         infoContextStack
+
+pushContextStack :: Context -> TokenizerM ()
+pushContextStack cont = do
+  modify (\st -> st{ contextStack =
+                      ContextStack (cont : unContextStack (contextStack st)) } )
+  -- not sure why we need this in pop but not here, but if we
+  -- put it here we can get loops...
+  -- checkLineEnd cont
+  infoContextStack
+
+currentContext :: TokenizerM Context
+currentContext = do
+  ContextStack cs <- gets contextStack
+  case cs of
+       []    -> throwError "Empty context stack" -- programming error
+       (c:_) -> return c
+
+doContextSwitch :: ContextSwitch -> TokenizerM ()
+doContextSwitch Pop = popContextStack
+doContextSwitch (Push (syn,c)) = do
+  syntaxes <- asks syntaxMap
+  case Map.lookup syn syntaxes >>= lookupContext c of
+       Just con -> pushContextStack con
+       Nothing  -> throwError $ "Unknown syntax or context: " ++ show (syn, c)
+
+doContextSwitches :: [ContextSwitch] -> TokenizerM ()
+doContextSwitches [] = return ()
+doContextSwitches xs = do
+  mapM_ doContextSwitch xs
+
+lookupContext :: Text -> Syntax -> Maybe Context
+lookupContext name syntax | Text.null name =
+  if Text.null (sStartingContext syntax)
+     then Nothing
+     else lookupContext (sStartingContext syntax) syntax
+lookupContext name syntax = Map.lookup name $ sContexts syntax
+
+startingState :: TokenizerState
+startingState =
+  TokenizerState{ input = BS.empty
+                , endline = True
+                , prevChar = '\n'
+                , contextStack = ContextStack []
+                , captures = []
+                , column = 0
+                , lineContinuation = False
+                , firstNonspaceColumn = Nothing
+                , compiledRegexes = Map.empty
+                }
+
+tokenizeLine :: (ByteString, Int) -> TokenizerM [Token]
+tokenizeLine (ln, linenum) = do
+  modify $ \st -> st{ input = ln, endline = BS.null ln, prevChar = '\n' }
+  cur <- currentContext
+  lineCont <- gets lineContinuation
+  if lineCont
+     then modify $ \st -> st{ lineContinuation = False }
+     else do
+       modify $ \st -> st{ column = 0
+                         , firstNonspaceColumn =
+                              BS.findIndex (not . isSpace) ln }
+       doContextSwitches (cLineBeginContext cur)
+  if BS.null ln
+     then doContextSwitches (cLineEmptyContext cur)
+     else doContextSwitches (cLineBeginContext cur)
+  ts <- normalizeHighlighting . catMaybes <$> many getToken
+  eol <- gets endline
+  if eol
+     then do
+       currentContext >>= checkLineEnd
+       return ts
+     else do  -- fail if we haven't consumed whole line
+       col <- gets column
+       throwError $ "Could not match anything at line " ++
+         show linenum ++ " column " ++ show col
+
+getToken :: TokenizerM (Maybe Token)
+getToken = do
+  inp <- gets input
+  gets endline >>= guard . not
+  context <- currentContext
+  msum (map (\r -> tryRule r inp) (cRules context)) <|>
+     if cFallthrough context
+        then do
+          let fallthroughContext = case cFallthroughContext context of
+                                        [] -> [Pop]
+                                        cs -> cs
+          doContextSwitches fallthroughContext
+          getToken
+        else (\x -> Just (cAttribute context, x)) <$> normalChunk
+
+takeChars :: Int -> TokenizerM Text
+takeChars 0 = mzero
+takeChars numchars = do
+  inp <- gets input
+  let (bs,rest) = UTF8.splitAt numchars inp
+  guard $ not (BS.null bs)
+  t <- decodeBS bs
+  modify $ \st -> st{ input = rest,
+                      endline = BS.null rest,
+                      prevChar = Text.last t,
+                      column = column st + numchars }
+  return t
+
+tryRule :: Rule -> ByteString -> TokenizerM (Maybe Token)
+tryRule _    ""  = mzero
+tryRule rule inp = do
+  case rColumn rule of
+       Nothing -> return ()
+       Just n  -> gets column >>= guard . (== n)
+
+  when (rFirstNonspace rule) $ do
+    firstNonspace <- gets firstNonspaceColumn
+    col <- gets column
+    guard (firstNonspace == Just col)
+
+  oldstate <- if rLookahead rule
+                 then Just <$> get -- needed for lookahead rules
+                 else return Nothing
+
+  let attr = rAttribute rule
+  mbtok <- case rMatcher rule of
+                DetectChar c -> withAttr attr $ detectChar (rDynamic rule) c inp
+                Detect2Chars c d -> withAttr attr $
+                                      detect2Chars (rDynamic rule) c d inp
+                AnyChar cs -> withAttr attr $ anyChar cs inp
+                RangeDetect c d -> withAttr attr $ rangeDetect c d inp
+                RegExpr re -> withAttr attr $ regExpr (rDynamic rule) re inp
+                Int -> withAttr attr $ parseInt inp
+                HlCOct -> withAttr attr $ parseOct inp
+                HlCHex -> withAttr attr $ parseHex inp
+                HlCStringChar -> withAttr attr $ parseCStringChar inp
+                HlCChar -> withAttr attr $ parseCChar inp
+                Float -> withAttr attr $ parseFloat inp
+                Keyword kwattr kws -> withAttr attr $ keyword kwattr kws inp
+                StringDetect s -> withAttr attr $
+                                    stringDetect (rCaseSensitive rule) s inp
+                WordDetect s -> withAttr attr $
+                                    wordDetect (rCaseSensitive rule) s inp
+                LineContinue -> withAttr attr $ lineContinue inp
+                DetectSpaces -> withAttr attr $ detectSpaces inp
+                DetectIdentifier -> withAttr attr $ detectIdentifier inp
+                IncludeRules cname -> includeRules
+                   (if rIncludeAttribute rule then Just attr else Nothing)
+                   cname inp
+  mbchildren <- do
+    inp' <- gets input
+    msum (map (\r -> tryRule r inp') (rChildren rule)) <|> return Nothing
+
+  mbtok' <- case mbtok of
+                 Nothing -> return Nothing
+                 Just (tt, s)
+                   | rLookahead rule -> do
+                     (oldinput, oldendline, oldprevChar, oldColumn) <-
+                         case oldstate of
+                              Nothing -> throwError
+                                    "oldstate not saved with lookahead rule"
+                              Just st -> return
+                                    (input st, endline st,
+                                     prevChar st, column st)
+                     modify $ \st -> st{ input = oldinput
+                                       , endline = oldendline
+                                       , prevChar = oldprevChar
+                                       , column = oldColumn }
+                     return Nothing
+                   | otherwise -> do
+                     case mbchildren of
+                          Nothing -> return $ Just (tt, s)
+                          Just (_, cresult) -> return $ Just (tt, s <> cresult)
+
+  info $ takeWhile (/=' ') (show (rMatcher rule)) ++ " MATCHED " ++ show mbtok'
+  doContextSwitches (rContextSwitch rule)
+  return mbtok'
+
+withAttr :: TokenType -> TokenizerM Text -> TokenizerM (Maybe Token)
+withAttr tt p = do
+  res <- p
+  if Text.null res
+     then return Nothing
+     else return $ Just (tt, res)
+
+wordDetect :: Bool -> Text -> ByteString -> TokenizerM Text
+wordDetect caseSensitive s inp = do
+  wordBoundary inp
+  t <- decodeBS $ UTF8.take (Text.length s) inp
+  -- we assume here that the case fold will not change length,
+  -- which is safe for ASCII keywords and the like...
+  guard $ if caseSensitive
+             then s == t
+             else mk s == mk t
+  guard $ not (Text.null t)
+  let c = Text.last t
+  let rest = UTF8.drop (Text.length s) inp
+  let d = case UTF8.uncons rest of
+               Nothing    -> '\n'
+               Just (x,_) -> x
+  guard $ isWordBoundary c d
+  takeChars (Text.length t)
+
+stringDetect :: Bool -> Text -> ByteString -> TokenizerM Text
+stringDetect caseSensitive s inp = do
+  t <- decodeBS $ UTF8.take (Text.length s) inp
+  -- we assume here that the case fold will not change length,
+  -- which is safe for ASCII keywords and the like...
+  guard $ if caseSensitive
+             then s == t
+             else mk s == mk t
+  takeChars (Text.length s)
+
+-- This assumes that nothing significant will happen
+-- in the middle of a string of spaces or a string
+-- of alphanumerics.  This seems true  for all normal
+-- programming languages, and the optimization speeds
+-- things up a lot, relative to just parsing one char.
+normalChunk :: TokenizerM Text
+normalChunk = do
+  inp <- gets input
+  case BS.uncons inp of
+    Nothing -> mzero
+    Just (c, _)
+      | c == ' ' ->
+        let bs = BS.takeWhile (==' ') inp
+        in  takeChars (BS.length bs)
+      | isAscii c && isAlphaNum c ->
+        let bs = BS.takeWhile isAlphaNum inp
+        in  takeChars (BS.length bs)
+      | otherwise -> takeChars 1
+
+includeRules :: Maybe TokenType -> ContextName -> ByteString
+             -> TokenizerM (Maybe Token)
+includeRules mbattr (syn, con) inp = do
+  syntaxes <- asks syntaxMap
+  case Map.lookup syn syntaxes >>= lookupContext con of
+       Nothing  -> do
+          cur <- currentContext
+          throwError $ "IncludeRules in " ++ Text.unpack (cSyntax cur) ++
+           " requires undefined context " ++
+           Text.unpack con ++ "##" ++ Text.unpack syn
+       Just c   -> do
+         mbtok <- msum (map (\r -> tryRule r inp) (cRules c))
+         return $ case (mbtok, mbattr) of
+                    (Just (NormalTok, xs), Just attr) -> Just (attr, xs)
+                    _                                 -> mbtok
+
+checkLineEnd :: Context -> TokenizerM ()
+checkLineEnd c = do
+  if null (cLineEndContext c)
+     then return ()
+     else do
+       eol <- gets endline
+       info $ "checkLineEnd for " ++ show (cName c) ++ " eol = " ++ show eol ++ " cLineEndContext = " ++ show (cLineEndContext c)
+       when eol $ do
+         lineCont' <- gets lineContinuation
+         unless lineCont' $
+           doContextSwitches (cLineEndContext c)
+
+detectChar :: Bool -> Char -> ByteString -> TokenizerM Text
+detectChar dynamic c inp = do
+  c' <- if dynamic && c >= '0' && c <= '9'
+           then getDynamicChar c
+           else return c
+  case UTF8.uncons inp of
+    Just (x,_) | x == c' -> takeChars 1
+    _          -> mzero
+
+getDynamicChar :: Char -> TokenizerM Char
+getDynamicChar c = do
+  let capNum = ord c - ord '0'
+  res <- getCapture capNum
+  case Text.uncons res of
+       Nothing    -> mzero
+       Just (d,_) -> return d
+
+detect2Chars :: Bool -> Char -> Char -> ByteString -> TokenizerM Text
+detect2Chars dynamic c d inp = do
+  c' <- if dynamic && c >= '0' && c <= '9'
+           then getDynamicChar c
+           else return c
+  d' <- if dynamic && d >= '0' && d <= '9'
+           then getDynamicChar d
+           else return d
+  if (encodeUtf8 (Text.pack [c',d'])) `BS.isPrefixOf` inp
+     then takeChars 2
+     else mzero
+
+rangeDetect :: Char -> Char -> ByteString -> TokenizerM Text
+rangeDetect c d inp = do
+  case UTF8.uncons inp of
+    Just (x, rest)
+      | x == c -> case UTF8.span (/= d) rest of
+                       (in_t, out_t)
+                         | BS.null out_t -> mzero
+                         | otherwise -> do
+                              t <- decodeBS in_t
+                              takeChars (Text.length t + 2)
+    _ -> mzero
+
+-- NOTE: currently limited to ASCII
+detectSpaces :: ByteString -> TokenizerM Text
+detectSpaces inp = do
+  case BS.span (\c -> isSpace c) inp of
+       (t, _)
+         | BS.null t -> mzero
+         | otherwise -> takeChars (BS.length t)
+
+-- NOTE: limited to ASCII as per kate documentation
+detectIdentifier :: ByteString -> TokenizerM Text
+detectIdentifier inp = do
+  case BS.uncons inp of
+    Just (c, t) | isLetter c || c == '_' ->
+      takeChars $ 1 + maybe 0 id (BS.findIndex
+                (\d -> not (isAlphaNum d || d == '_')) t)
+    _ -> mzero
+
+lineContinue :: ByteString -> TokenizerM Text
+lineContinue inp = do
+  if inp == "\\"
+     then do
+       modify $ \st -> st{ lineContinuation = True }
+       takeChars 1
+     else mzero
+
+anyChar :: [Char] -> ByteString -> TokenizerM Text
+anyChar cs inp = do
+  case UTF8.uncons inp of
+     Just (x, _) | x `elem` cs -> takeChars 1
+     _           -> mzero
+
+regExpr :: Bool -> RE -> ByteString -> TokenizerM Text
+regExpr dynamic re inp = do
+  reStr <- if dynamic
+              then subDynamic (reString re)
+              else return (reString re)
+  when (BS.take 2 reStr == "\\b") $ wordBoundary inp
+  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
+  case matchRegex regex inp of
+       Just (match:capts) -> do
+         modify $ \st -> st{ captures = capts }
+         takeChars (UTF8.length match)
+       _ -> mzero
+
+wordBoundary :: ByteString -> TokenizerM ()
+wordBoundary inp = do
+  case UTF8.uncons inp of
+       Nothing -> return ()
+       Just (d, _) -> do
+         c <- gets prevChar
+         guard $ isWordBoundary c d
+
+-- TODO is this right?
+isWordBoundary :: Char -> Char -> Bool
+isWordBoundary c d =
+  (isAlphaNum c && not (isAlphaNum d))
+  || (isAlphaNum d && not (isAlphaNum c))
+  || (isSpace d && not (isSpace c))
+  || (isSpace c && not (isSpace d))
+
+
+decodeBS :: ByteString -> TokenizerM Text
+decodeBS bs = case decodeUtf8' bs of
+                    Left _ -> throwError ("ByteString " ++
+                                show bs ++ "is not UTF8")
+                    Right t -> return t
+
+-- Substitute out %1, %2, etc. in regex string, escaping
+-- appropriately..
+subDynamic :: ByteString -> TokenizerM ByteString
+subDynamic bs
+  | BS.null bs = return BS.empty
+  | otherwise  =
+    case BS.unpack (BS.take 2 bs) of
+        ['%',x] | x >= '0' && x <= '9' -> do
+           let capNum = ord x - ord '0'
+           let escapeRegexChar :: Char -> BS.ByteString
+               escapeRegexChar '^' = "\\^"
+               escapeRegexChar '$' = "\\$"
+               escapeRegexChar '\\' = "\\\\"
+               escapeRegexChar '[' = "\\["
+               escapeRegexChar ']' = "\\]"
+               escapeRegexChar '(' = "\\("
+               escapeRegexChar ')' = "\\)"
+               escapeRegexChar '{' = "\\{"
+               escapeRegexChar '}' = "\\}"
+               escapeRegexChar '*' = "\\*"
+               escapeRegexChar '+' = "\\+"
+               escapeRegexChar '.' = "\\."
+               escapeRegexChar '?' = "\\?"
+               escapeRegexChar c
+                 | isAscii c && isPrint c = BS.singleton c
+                 | otherwise              = BS.pack $ printf "\\x{%x}" (ord c)
+           let escapeRegex = BS.concatMap escapeRegexChar
+           replacement <- getCapture capNum
+           (escapeRegex (encodeUtf8 replacement) <>) <$>
+               subDynamic (BS.drop 2 bs)
+        _ -> case BS.break (=='%') bs of
+                  (y,z)
+                    | BS.null y -> BS.cons '%' <$> subDynamic z
+                    | BS.null z -> return y
+                    | otherwise -> (y <>) <$> subDynamic z
+
+getCapture :: Int -> TokenizerM Text
+getCapture capnum = do
+  capts <- gets captures
+  if length capts < capnum
+     then mzero
+     else decodeBS $ capts !! (capnum - 1)
+
+keyword :: KeywordAttr -> WordSet Text -> ByteString -> TokenizerM Text
+keyword kwattr kws inp = do
+  prev <- gets prevChar
+  guard $ prev `Set.member` (keywordDelims kwattr)
+  let (w,_) = UTF8.break (`Set.member` (keywordDelims kwattr)) inp
+  guard $ not (BS.null w)
+  w' <- decodeBS w
+  let numchars = Text.length w'
+  if w' `inWordSet` kws
+     then takeChars numchars
+     else mzero
+
+normalizeHighlighting :: [Token] -> [Token]
+normalizeHighlighting [] = []
+normalizeHighlighting ((t,x):xs)
+  | Text.null x = normalizeHighlighting xs
+  | otherwise =
+    (t, Text.concat (x : map snd matches)) : normalizeHighlighting rest
+    where (matches, rest) = span (\(z,_) -> z == t) xs
+
+parseCStringChar :: ByteString -> TokenizerM Text
+parseCStringChar inp = do
+  case A.parseOnly (A.match pCStringChar) inp of
+       Left _      -> mzero
+       Right (r,_) -> takeChars (BS.length r) -- assumes ascii
+
+pCStringChar :: A.Parser ()
+pCStringChar = do
+  _ <- A.char '\\'
+  next <- A.anyChar
+  case next of
+       c | c == 'x' || c == 'X' -> () <$ A.takeWhile1 (A.inClass "0-9a-fA-F")
+         | c == '0' -> () <$ A.takeWhile1 (A.inClass "0-7")
+         | A.inClass "abefnrtv\"'?\\" c -> return ()
+         | otherwise -> mzero
+
+parseCChar :: ByteString -> TokenizerM Text
+parseCChar inp = do
+  case A.parseOnly (A.match pCChar) inp of
+       Left _      -> mzero
+       Right (r,_) -> takeChars (BS.length r) -- assumes ascii
+
+pCChar :: A.Parser ()
+pCChar = do
+  () <$ A.char '\''
+  pCStringChar <|> () <$ A.satisfy (\c -> c /= '\'' && c /= '\\')
+  () <$ A.char '\''
+
+parseInt :: ByteString -> TokenizerM Text
+parseInt inp = do
+  wordBoundary inp
+  case A.parseOnly (A.match (pHex <|> pOct <|> pDec)) inp of
+       Left _      -> mzero
+       Right (r,_) -> takeChars (BS.length r) -- assumes ascii
+
+pDec :: A.Parser ()
+pDec = do
+  mbMinus
+  _ <- A.takeWhile1 (A.inClass "0-9")
+  guardWordBoundary
+
+parseOct :: ByteString -> TokenizerM Text
+parseOct inp = do
+  wordBoundary inp
+  case A.parseOnly (A.match pHex) inp of
+       Left _      -> mzero
+       Right (r,_) -> takeChars (BS.length r) -- assumes ascii
+
+pOct :: A.Parser ()
+pOct = do
+  mbMinus
+  _ <- A.char '0'
+  _ <- A.satisfy (A.inClass "Oo")
+  _ <- A.takeWhile1 (A.inClass "0-7")
+  guardWordBoundary
+
+parseHex :: ByteString -> TokenizerM Text
+parseHex inp = do
+  wordBoundary inp
+  case A.parseOnly (A.match pHex) inp of
+       Left _      -> mzero
+       Right (r,_) -> takeChars (BS.length r) -- assumes ascii
+
+pHex :: A.Parser ()
+pHex = do
+  mbMinus
+  _ <- A.char '0'
+  _ <- A.satisfy (A.inClass "Xx")
+  _ <- A.takeWhile1 (A.inClass "0-9a-fA-F")
+  guardWordBoundary
+
+guardWordBoundary :: A.Parser ()
+guardWordBoundary = do
+  mbw <- A.peekChar
+  case mbw of
+       Just c  ->  guard $ isWordBoundary '0' c
+       Nothing -> return ()
+
+mbMinus :: A.Parser ()
+mbMinus = (() <$ A.char '-') <|> return ()
+
+mbPlusMinus :: A.Parser ()
+mbPlusMinus = () <$ A.satisfy (A.inClass "+-") <|> return ()
+
+parseFloat :: ByteString -> TokenizerM Text
+parseFloat inp = do
+  wordBoundary inp
+  case A.parseOnly (A.match pFloat) inp of
+       Left _      -> mzero
+       Right (r,_) -> takeChars (BS.length r)  -- assumes all ascii
+  where pFloat :: A.Parser ()
+        pFloat = do
+          let digits = A.takeWhile1 (A.inClass "0-9")
+          mbPlusMinus
+          before <- A.option False $ True <$ digits
+          dot <- A.option False $ True <$ A.satisfy (A.inClass ".")
+          after <- A.option False $ True <$ digits
+          e <- A.option False $ True <$ (A.satisfy (A.inClass "Ee") >>
+                                         mbPlusMinus >> digits)
+          mbnext <- A.peekChar
+          case mbnext of
+               Nothing -> return ()
+               Just c  -> guard (not $ A.inClass "." c)
+          guard $ (before && not dot && e)     -- 5e2
+               || (before && dot && (after || not e)) -- 5.2e2 or 5.2 or 5.
+               || (not before && dot && after) -- .23 or .23e2
+
diff --git a/src/Skylighting/Types.hs b/src/Skylighting/Types.hs
new file mode 100644
--- /dev/null
+++ b/src/Skylighting/Types.hs
@@ -0,0 +1,746 @@
+{-# LANGUAGE DeriveDataTypeable         #-}
+{-# LANGUAGE DeriveGeneric              #-}
+{-# LANGUAGE FlexibleInstances          #-}
+{-# LANGUAGE GeneralizedNewtypeDeriving #-}
+{-# LANGUAGE OverloadedStrings          #-}
+{-# LANGUAGE ScopedTypeVariables        #-}
+{-# LANGUAGE TypeSynonymInstances       #-}
+
+-- | Basic types for Skylighting.
+module Skylighting.Types (
+              -- * Syntax descriptions
+                ContextName
+              , KeywordAttr(..)
+              , WordSet
+              , makeWordSet
+              , inWordSet
+              , Matcher(..)
+              , Rule(..)
+              , Context(..)
+              , ContextSwitch(..)
+              , Syntax(..)
+              , SyntaxMap
+              -- * Tokens
+              , Token
+              , TokenType(..)
+              , SourceLine
+              , LineNo(..)
+              -- * Styles
+              , TokenStyle(..)
+              , defStyle
+              , Color(..)
+              , ToColor(..)
+              , FromColor(..)
+              , Style(..)
+              , ANSIColorLevel(..)
+              , Xterm256ColorCode(..)
+              -- * Format options
+              , FormatOptions(..)
+              , defaultFormatOpts
+              ) where
+
+import Control.Monad (mplus)
+import Data.Aeson
+import Data.Aeson.Types (toJSONKeyText)
+import Data.Binary (Binary)
+import Data.Bits
+import Data.CaseInsensitive (FoldCase (..))
+import Data.Colour.SRGB (Colour, sRGB24, toSRGB24)
+import qualified Data.Colour.SRGB as Colour
+import Data.Data (Data)
+import Data.Int
+import Data.List (minimumBy)
+import qualified Data.Map as Map
+import Data.Maybe (fromMaybe)
+import Data.Ord (comparing)
+import qualified Data.Set as Set
+import Data.Text (Text)
+import qualified Data.Text as Text
+import Data.Typeable (Typeable)
+import Data.Word
+import GHC.Generics (Generic)
+import Safe (readMay)
+import Skylighting.Regex
+import qualified System.Console.ANSI.Types as ANSI
+import Text.Printf
+
+-- | Full name of a context: the first member of the pair is the full
+-- syntax name, the second the context name within that syntax.
+type ContextName = (Text, Text)
+
+-- | Attributes controlling how keywords are interpreted.
+data KeywordAttr =
+  KeywordAttr  { keywordCaseSensitive :: Bool
+               , keywordDelims        :: Set.Set Char
+               }
+  deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary KeywordAttr
+
+-- | A set of "words," possibly case insensitive.
+data WordSet a = CaseSensitiveWords (Set.Set a)
+               | CaseInsensitiveWords (Set.Set a)
+     deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary a => Binary (WordSet a)
+
+-- | A set of words to match (either case-sensitive or case-insensitive).
+makeWordSet :: (FoldCase a, Ord a) => Bool -> [a] -> WordSet a
+makeWordSet True ws  = CaseSensitiveWords (Set.fromList ws)
+makeWordSet False ws = CaseInsensitiveWords (Set.fromList $ map foldCase ws)
+
+-- | Test for membership in a 'WordSet'.
+inWordSet :: (FoldCase a, Ord a) => a -> WordSet a -> Bool
+inWordSet w (CaseInsensitiveWords ws) = foldCase w `Set.member` ws
+inWordSet w (CaseSensitiveWords ws)   = w `Set.member` ws
+
+-- | Matchers correspond to the element types in a context.
+data Matcher =
+    DetectChar Char
+  | Detect2Chars Char Char
+  | AnyChar [Char]
+  | RangeDetect Char Char
+  | StringDetect Text
+  | WordDetect Text
+  | RegExpr RE
+  | Keyword KeywordAttr (WordSet Text)
+  | Int
+  | Float
+  | HlCOct
+  | HlCHex
+  | HlCStringChar
+  | HlCChar
+  | LineContinue
+  | IncludeRules ContextName
+  | DetectSpaces
+  | DetectIdentifier
+  deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary Matcher
+
+-- | A context switch, either pops or pushes a context.
+data ContextSwitch =
+  Pop | Push ContextName
+  deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary ContextSwitch
+
+-- | A rule corresponds to one of the elements of a Kate syntax
+-- highlighting "context."
+data Rule = Rule{
+    rMatcher          :: Matcher
+  , rAttribute        :: TokenType
+  , rIncludeAttribute :: Bool
+  , rDynamic          :: Bool
+  , rCaseSensitive    :: Bool
+  , rChildren         :: [Rule]
+  , rLookahead        :: Bool
+  , rFirstNonspace    :: Bool
+  , rColumn           :: Maybe Int
+  , rContextSwitch    :: [ContextSwitch]
+  } deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary Rule
+
+-- | A syntax corresponds to a complete Kate syntax description.
+-- The 'sShortname' field is derived from the filename.
+data Syntax = Syntax{
+    sName            :: Text
+  , sFilename        :: String
+  , sShortname       :: Text
+  , sContexts        :: Map.Map Text Context
+  , sAuthor          :: Text
+  , sVersion         :: Text
+  , sLicense         :: Text
+  , sExtensions      :: [String]
+  , sStartingContext :: Text
+  } deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary Syntax
+
+-- | A map of syntaxes, keyed by full name.
+type SyntaxMap = Map.Map Text Syntax
+
+-- | A Context corresponds to a context element in a Kate
+-- syntax description.
+data Context = Context{
+    cName               :: Text
+  , cSyntax             :: Text
+  , cRules              :: [Rule]
+  , cAttribute          :: TokenType
+  , cLineEmptyContext   :: [ContextSwitch]
+  , cLineEndContext     :: [ContextSwitch]
+  , cLineBeginContext   :: [ContextSwitch]
+  , cFallthrough        :: Bool
+  , cFallthroughContext :: [ContextSwitch]
+  , cDynamic            :: Bool
+} deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary Context
+
+-- | A pair consisting of a list of attributes and some text.
+type Token = (TokenType, Text)
+
+-- | 'KeywordTok' corresponds to @dsKeyword@ in Kate syntax
+-- descriptions, and so on.
+data TokenType = KeywordTok
+               | DataTypeTok
+               | DecValTok
+               | BaseNTok
+               | FloatTok
+               | ConstantTok
+               | CharTok
+               | SpecialCharTok
+               | StringTok
+               | VerbatimStringTok
+               | SpecialStringTok
+               | ImportTok
+               | CommentTok
+               | DocumentationTok
+               | AnnotationTok
+               | CommentVarTok
+               | OtherTok
+               | FunctionTok
+               | VariableTok
+               | ControlFlowTok
+               | OperatorTok
+               | BuiltInTok
+               | ExtensionTok
+               | PreprocessorTok
+               | AttributeTok
+               | RegionMarkerTok
+               | InformationTok
+               | WarningTok
+               | AlertTok
+               | ErrorTok
+               | NormalTok
+               deriving (Read, Show, Eq, Ord, Enum, Data, Typeable, Generic)
+
+instance Binary TokenType
+
+instance ToJSON TokenType where
+  toEncoding = toEncoding . Text.stripSuffix "Tok" . Text.pack . show
+
+instance ToJSONKey TokenType where
+  toJSONKey = toJSONKeyText
+    (fromMaybe "Unknown" . Text.stripSuffix "Tok" . Text.pack . show)
+
+instance FromJSON TokenType where
+  parseJSON (String t) =
+     case readMay (Text.unpack t ++ "Tok") of
+          Just tt -> return tt
+          Nothing -> fail "Not a token type"
+  parseJSON _ = mempty
+
+-- | JSON @"Keyword"@ corresponds to 'KeywordTok', and so on.
+instance FromJSONKey TokenType where
+  fromJSONKey = FromJSONKeyTextParser (\t ->
+    case readMay (Text.unpack t ++ "Tok") of
+         Just tt -> return tt
+         Nothing -> fail "Not a token type")
+
+-- | A line of source: a list of labeled tokens.
+type SourceLine = [Token]
+
+-- | Line numbers
+newtype LineNo = LineNo { lineNo :: Int } deriving (Show, Enum)
+
+-- | A 'TokenStyle' determines how a token is to be rendered.
+data TokenStyle = TokenStyle {
+    tokenColor      :: Maybe Color
+  , tokenBackground :: Maybe Color
+  , tokenBold       :: Bool
+  , tokenItalic     :: Bool
+  , tokenUnderline  :: Bool
+  } deriving (Show, Read, Ord, Eq, Data, Typeable, Generic)
+
+instance Binary TokenStyle
+
+-- | The keywords used in KDE syntax
+-- themes are used, e.g. @text-color@ for default token color.
+instance FromJSON TokenStyle where
+  parseJSON (Object v) = do
+    tcolor <- v .:? "text-color"
+    bg <- v .:? "background-color"
+    tbold <- v .:? "bold" .!= False
+    titalic <- v .:? "italic" .!= False
+    tunderline <- v .:? "underline" .!= False
+    return TokenStyle{
+               tokenColor = tcolor
+             , tokenBackground = bg
+             , tokenBold = tbold
+             , tokenItalic = titalic
+             , tokenUnderline = tunderline }
+  parseJSON _ = mempty
+instance ToJSON TokenStyle where
+  toJSON ts = object [ "text-color" .= tokenColor ts
+                     , "background-color" .= tokenBackground ts
+                     , "bold" .= tokenBold ts
+                     , "italic" .= tokenItalic ts
+                     , "underline" .= tokenUnderline ts ]
+
+-- | Default style.
+defStyle :: TokenStyle
+defStyle = TokenStyle {
+    tokenColor      = Nothing
+  , tokenBackground = Nothing
+  , tokenBold       = False
+  , tokenItalic     = False
+  , tokenUnderline  = False
+  }
+
+-- | A color (red/green/blue).
+data Color = RGB Word8 Word8 Word8
+  deriving (Show, Read, Ord, Eq, Data, Typeable, Generic)
+
+instance Binary Color
+
+-- | Things that can be converted to a color.
+class ToColor a where
+  toColor :: a -> Maybe Color
+
+instance ToColor String where
+  toColor ['#',r1,r2,g1,g2,b1,b2] =
+     case reads ['(','0','x',r1,r2,',','0','x',g1,g2,',','0','x',b1,b2,')'] of
+           ((r,g,b),_) : _ -> Just $ RGB r g b
+           _               -> Nothing
+  toColor _        = Nothing
+
+instance ToColor Int where
+  toColor x = toColor (fromIntegral x1 :: Word8,
+                       fromIntegral x2 :: Word8,
+                       fromIntegral x3 :: Word8)
+    where x1 = (shiftR x 16) .&. 0xFF
+          x2 = (shiftR x 8 ) .&. 0xFF
+          x3 = x             .&. 0xFF
+
+instance ToColor (Word8, Word8, Word8) where
+  toColor (r,g,b) = Just $ RGB r g b
+
+instance ToColor (Double, Double, Double) where
+  toColor (r,g,b) | r >= 0 && g >= 0 && b >= 0 && r <= 1 && g <= 1 && b <= 1 =
+          Just $ RGB (floor $ r * 255) (floor $ g * 255) (floor $ b * 255)
+  toColor _ = Nothing
+
+instance (RealFrac a, Floating a) => ToColor (Colour a) where
+    toColor c = let (Colour.RGB r g b) = toSRGB24 c in toColor (r, g, b)
+
+instance ToColor (ANSI.ColorIntensity, ANSI.Color) where
+    toColor = flip lookup ansi16ColorList -- cannot actually fail
+
+-- | Standard values taken from https://jonasjacek.github.io/colors/
+ansi16ColorList :: [((ANSI.ColorIntensity, ANSI.Color), Color)]
+ansi16ColorList = [ ((ANSI.Dull , ANSI.Black  ), RGB 0   0   0  )
+                  , ((ANSI.Dull , ANSI.Red    ), RGB 128 0   0  )
+                  , ((ANSI.Dull , ANSI.Green  ), RGB 0   128 0  )
+                  , ((ANSI.Dull , ANSI.Yellow ), RGB 128 128 0  )
+                  , ((ANSI.Dull , ANSI.Blue   ), RGB 0   0   128)
+                  , ((ANSI.Dull , ANSI.Magenta), RGB 128 0   128)
+                  , ((ANSI.Dull , ANSI.Cyan   ), RGB 0   128 128)
+                  , ((ANSI.Dull , ANSI.White  ), RGB 192 192 192)
+                  , ((ANSI.Vivid, ANSI.Black  ), RGB 128 128 128)
+                  , ((ANSI.Vivid, ANSI.Red    ), RGB 255 0   0  )
+                  , ((ANSI.Vivid, ANSI.Green  ), RGB 0   255 0  )
+                  , ((ANSI.Vivid, ANSI.Yellow ), RGB 255 255 0  )
+                  , ((ANSI.Vivid, ANSI.Blue   ), RGB 0   0   255)
+                  , ((ANSI.Vivid, ANSI.Magenta), RGB 255 0   255)
+                  , ((ANSI.Vivid, ANSI.Cyan   ), RGB 0   255 255)
+                  , ((ANSI.Vivid, ANSI.White  ), RGB 255 255 255)
+                  ]
+
+newtype Xterm256ColorCode = Xterm256ColorCode { getXterm256ColorCode :: Word8 }
+    deriving (Show, Read, Eq, Ord, Enum, Bounded, Data, Typeable, Generic)
+
+instance Binary Xterm256ColorCode
+
+-- | Converted from https://jonasjacek.github.io/colors/data.json, then slightly rearranged
+ansi256ColorList :: [(Xterm256ColorCode, Color)]
+ansi256ColorList = [ (Xterm256ColorCode 232, RGB 8 8 8) -- grayscale colors
+                   , (Xterm256ColorCode 233, RGB 18 18 18)
+                   , (Xterm256ColorCode 234, RGB 28 28 28)
+                   , (Xterm256ColorCode 235, RGB 38 38 38)
+                   , (Xterm256ColorCode 236, RGB 48 48 48)
+                   , (Xterm256ColorCode 237, RGB 58 58 58)
+                   , (Xterm256ColorCode 238, RGB 68 68 68)
+                   , (Xterm256ColorCode 239, RGB 78 78 78)
+                   , (Xterm256ColorCode 240, RGB 88 88 88)
+                   , (Xterm256ColorCode 241, RGB 98 98 98)
+                   , (Xterm256ColorCode 242, RGB 108 108 108)
+                   , (Xterm256ColorCode 243, RGB 118 118 118)
+                   , (Xterm256ColorCode 244, RGB 128 128 128)
+                   , (Xterm256ColorCode 245, RGB 138 138 138)
+                   , (Xterm256ColorCode 246, RGB 148 148 148)
+                   , (Xterm256ColorCode 247, RGB 158 158 158)
+                   , (Xterm256ColorCode 248, RGB 168 168 168)
+                   , (Xterm256ColorCode 249, RGB 178 178 178)
+                   , (Xterm256ColorCode 250, RGB 188 188 188)
+                   , (Xterm256ColorCode 251, RGB 198 198 198)
+                   , (Xterm256ColorCode 252, RGB 208 208 208)
+                   , (Xterm256ColorCode 253, RGB 218 218 218)
+                   , (Xterm256ColorCode 254, RGB 228 228 228)
+                   , (Xterm256ColorCode 255, RGB 238 238 238)
+                   , (Xterm256ColorCode 16, RGB 0 0 0) -- RGB cube colors
+                   , (Xterm256ColorCode 17, RGB 0 0 95)
+                   , (Xterm256ColorCode 18, RGB 0 0 135)
+                   , (Xterm256ColorCode 19, RGB 0 0 175)
+                   , (Xterm256ColorCode 20, RGB 0 0 215)
+                   , (Xterm256ColorCode 21, RGB 0 0 255)
+                   , (Xterm256ColorCode 22, RGB 0 95 0)
+                   , (Xterm256ColorCode 23, RGB 0 95 95)
+                   , (Xterm256ColorCode 24, RGB 0 95 135)
+                   , (Xterm256ColorCode 25, RGB 0 95 175)
+                   , (Xterm256ColorCode 26, RGB 0 95 215)
+                   , (Xterm256ColorCode 27, RGB 0 95 255)
+                   , (Xterm256ColorCode 28, RGB 0 135 0)
+                   , (Xterm256ColorCode 29, RGB 0 135 95)
+                   , (Xterm256ColorCode 30, RGB 0 135 135)
+                   , (Xterm256ColorCode 31, RGB 0 135 175)
+                   , (Xterm256ColorCode 32, RGB 0 135 215)
+                   , (Xterm256ColorCode 33, RGB 0 135 255)
+                   , (Xterm256ColorCode 34, RGB 0 175 0)
+                   , (Xterm256ColorCode 35, RGB 0 175 95)
+                   , (Xterm256ColorCode 36, RGB 0 175 135)
+                   , (Xterm256ColorCode 37, RGB 0 175 175)
+                   , (Xterm256ColorCode 38, RGB 0 175 215)
+                   , (Xterm256ColorCode 39, RGB 0 175 255)
+                   , (Xterm256ColorCode 40, RGB 0 215 0)
+                   , (Xterm256ColorCode 41, RGB 0 215 95)
+                   , (Xterm256ColorCode 42, RGB 0 215 135)
+                   , (Xterm256ColorCode 43, RGB 0 215 175)
+                   , (Xterm256ColorCode 44, RGB 0 215 215)
+                   , (Xterm256ColorCode 45, RGB 0 215 255)
+                   , (Xterm256ColorCode 46, RGB 0 255 0)
+                   , (Xterm256ColorCode 47, RGB 0 255 95)
+                   , (Xterm256ColorCode 48, RGB 0 255 135)
+                   , (Xterm256ColorCode 49, RGB 0 255 175)
+                   , (Xterm256ColorCode 50, RGB 0 255 215)
+                   , (Xterm256ColorCode 51, RGB 0 255 255)
+                   , (Xterm256ColorCode 52, RGB 95 0 0)
+                   , (Xterm256ColorCode 53, RGB 95 0 95)
+                   , (Xterm256ColorCode 54, RGB 95 0 135)
+                   , (Xterm256ColorCode 55, RGB 95 0 175)
+                   , (Xterm256ColorCode 56, RGB 95 0 215)
+                   , (Xterm256ColorCode 57, RGB 95 0 255)
+                   , (Xterm256ColorCode 58, RGB 95 95 0)
+                   , (Xterm256ColorCode 59, RGB 95 95 95)
+                   , (Xterm256ColorCode 60, RGB 95 95 135)
+                   , (Xterm256ColorCode 61, RGB 95 95 175)
+                   , (Xterm256ColorCode 62, RGB 95 95 215)
+                   , (Xterm256ColorCode 63, RGB 95 95 255)
+                   , (Xterm256ColorCode 64, RGB 95 135 0)
+                   , (Xterm256ColorCode 65, RGB 95 135 95)
+                   , (Xterm256ColorCode 66, RGB 95 135 135)
+                   , (Xterm256ColorCode 67, RGB 95 135 175)
+                   , (Xterm256ColorCode 68, RGB 95 135 215)
+                   , (Xterm256ColorCode 69, RGB 95 135 255)
+                   , (Xterm256ColorCode 70, RGB 95 175 0)
+                   , (Xterm256ColorCode 71, RGB 95 175 95)
+                   , (Xterm256ColorCode 72, RGB 95 175 135)
+                   , (Xterm256ColorCode 73, RGB 95 175 175)
+                   , (Xterm256ColorCode 74, RGB 95 175 215)
+                   , (Xterm256ColorCode 75, RGB 95 175 255)
+                   , (Xterm256ColorCode 76, RGB 95 215 0)
+                   , (Xterm256ColorCode 77, RGB 95 215 95)
+                   , (Xterm256ColorCode 78, RGB 95 215 135)
+                   , (Xterm256ColorCode 79, RGB 95 215 175)
+                   , (Xterm256ColorCode 80, RGB 95 215 215)
+                   , (Xterm256ColorCode 81, RGB 95 215 255)
+                   , (Xterm256ColorCode 82, RGB 95 255 0)
+                   , (Xterm256ColorCode 83, RGB 95 255 95)
+                   , (Xterm256ColorCode 84, RGB 95 255 135)
+                   , (Xterm256ColorCode 85, RGB 95 255 175)
+                   , (Xterm256ColorCode 86, RGB 95 255 215)
+                   , (Xterm256ColorCode 87, RGB 95 255 255)
+                   , (Xterm256ColorCode 88, RGB 135 0 0)
+                   , (Xterm256ColorCode 89, RGB 135 0 95)
+                   , (Xterm256ColorCode 90, RGB 135 0 135)
+                   , (Xterm256ColorCode 91, RGB 135 0 175)
+                   , (Xterm256ColorCode 92, RGB 135 0 215)
+                   , (Xterm256ColorCode 93, RGB 135 0 255)
+                   , (Xterm256ColorCode 94, RGB 135 95 0)
+                   , (Xterm256ColorCode 95, RGB 135 95 95)
+                   , (Xterm256ColorCode 96, RGB 135 95 135)
+                   , (Xterm256ColorCode 97, RGB 135 95 175)
+                   , (Xterm256ColorCode 98, RGB 135 95 215)
+                   , (Xterm256ColorCode 99, RGB 135 95 255)
+                   , (Xterm256ColorCode 100, RGB 135 135 0)
+                   , (Xterm256ColorCode 101, RGB 135 135 95)
+                   , (Xterm256ColorCode 102, RGB 135 135 135)
+                   , (Xterm256ColorCode 103, RGB 135 135 175)
+                   , (Xterm256ColorCode 104, RGB 135 135 215)
+                   , (Xterm256ColorCode 105, RGB 135 135 255)
+                   , (Xterm256ColorCode 106, RGB 135 175 0)
+                   , (Xterm256ColorCode 107, RGB 135 175 95)
+                   , (Xterm256ColorCode 108, RGB 135 175 135)
+                   , (Xterm256ColorCode 109, RGB 135 175 175)
+                   , (Xterm256ColorCode 110, RGB 135 175 215)
+                   , (Xterm256ColorCode 111, RGB 135 175 255)
+                   , (Xterm256ColorCode 112, RGB 135 215 0)
+                   , (Xterm256ColorCode 113, RGB 135 215 95)
+                   , (Xterm256ColorCode 114, RGB 135 215 135)
+                   , (Xterm256ColorCode 115, RGB 135 215 175)
+                   , (Xterm256ColorCode 116, RGB 135 215 215)
+                   , (Xterm256ColorCode 117, RGB 135 215 255)
+                   , (Xterm256ColorCode 118, RGB 135 255 0)
+                   , (Xterm256ColorCode 119, RGB 135 255 95)
+                   , (Xterm256ColorCode 120, RGB 135 255 135)
+                   , (Xterm256ColorCode 121, RGB 135 255 175)
+                   , (Xterm256ColorCode 122, RGB 135 255 215)
+                   , (Xterm256ColorCode 123, RGB 135 255 255)
+                   , (Xterm256ColorCode 124, RGB 175 0 0)
+                   , (Xterm256ColorCode 125, RGB 175 0 95)
+                   , (Xterm256ColorCode 126, RGB 175 0 135)
+                   , (Xterm256ColorCode 127, RGB 175 0 175)
+                   , (Xterm256ColorCode 128, RGB 175 0 215)
+                   , (Xterm256ColorCode 129, RGB 175 0 255)
+                   , (Xterm256ColorCode 130, RGB 175 95 0)
+                   , (Xterm256ColorCode 131, RGB 175 95 95)
+                   , (Xterm256ColorCode 132, RGB 175 95 135)
+                   , (Xterm256ColorCode 133, RGB 175 95 175)
+                   , (Xterm256ColorCode 134, RGB 175 95 215)
+                   , (Xterm256ColorCode 135, RGB 175 95 255)
+                   , (Xterm256ColorCode 136, RGB 175 135 0)
+                   , (Xterm256ColorCode 137, RGB 175 135 95)
+                   , (Xterm256ColorCode 138, RGB 175 135 135)
+                   , (Xterm256ColorCode 139, RGB 175 135 175)
+                   , (Xterm256ColorCode 140, RGB 175 135 215)
+                   , (Xterm256ColorCode 141, RGB 175 135 255)
+                   , (Xterm256ColorCode 142, RGB 175 175 0)
+                   , (Xterm256ColorCode 143, RGB 175 175 95)
+                   , (Xterm256ColorCode 144, RGB 175 175 135)
+                   , (Xterm256ColorCode 145, RGB 175 175 175)
+                   , (Xterm256ColorCode 146, RGB 175 175 215)
+                   , (Xterm256ColorCode 147, RGB 175 175 255)
+                   , (Xterm256ColorCode 148, RGB 175 215 0)
+                   , (Xterm256ColorCode 149, RGB 175 215 95)
+                   , (Xterm256ColorCode 150, RGB 175 215 135)
+                   , (Xterm256ColorCode 151, RGB 175 215 175)
+                   , (Xterm256ColorCode 152, RGB 175 215 215)
+                   , (Xterm256ColorCode 153, RGB 175 215 255)
+                   , (Xterm256ColorCode 154, RGB 175 255 0)
+                   , (Xterm256ColorCode 155, RGB 175 255 95)
+                   , (Xterm256ColorCode 156, RGB 175 255 135)
+                   , (Xterm256ColorCode 157, RGB 175 255 175)
+                   , (Xterm256ColorCode 158, RGB 175 255 215)
+                   , (Xterm256ColorCode 159, RGB 175 255 255)
+                   , (Xterm256ColorCode 160, RGB 215 0 0)
+                   , (Xterm256ColorCode 161, RGB 215 0 95)
+                   , (Xterm256ColorCode 162, RGB 215 0 135)
+                   , (Xterm256ColorCode 163, RGB 215 0 175)
+                   , (Xterm256ColorCode 164, RGB 215 0 215)
+                   , (Xterm256ColorCode 165, RGB 215 0 255)
+                   , (Xterm256ColorCode 166, RGB 215 95 0)
+                   , (Xterm256ColorCode 167, RGB 215 95 95)
+                   , (Xterm256ColorCode 168, RGB 215 95 135)
+                   , (Xterm256ColorCode 169, RGB 215 95 175)
+                   , (Xterm256ColorCode 170, RGB 215 95 215)
+                   , (Xterm256ColorCode 171, RGB 215 95 255)
+                   , (Xterm256ColorCode 172, RGB 215 135 0)
+                   , (Xterm256ColorCode 173, RGB 215 135 95)
+                   , (Xterm256ColorCode 174, RGB 215 135 135)
+                   , (Xterm256ColorCode 175, RGB 215 135 175)
+                   , (Xterm256ColorCode 176, RGB 215 135 215)
+                   , (Xterm256ColorCode 177, RGB 215 135 255)
+                   , (Xterm256ColorCode 178, RGB 215 175 0)
+                   , (Xterm256ColorCode 179, RGB 215 175 95)
+                   , (Xterm256ColorCode 180, RGB 215 175 135)
+                   , (Xterm256ColorCode 181, RGB 215 175 175)
+                   , (Xterm256ColorCode 182, RGB 215 175 215)
+                   , (Xterm256ColorCode 183, RGB 215 175 255)
+                   , (Xterm256ColorCode 184, RGB 215 215 0)
+                   , (Xterm256ColorCode 185, RGB 215 215 95)
+                   , (Xterm256ColorCode 186, RGB 215 215 135)
+                   , (Xterm256ColorCode 187, RGB 215 215 175)
+                   , (Xterm256ColorCode 188, RGB 215 215 215)
+                   , (Xterm256ColorCode 189, RGB 215 215 255)
+                   , (Xterm256ColorCode 190, RGB 215 255 0)
+                   , (Xterm256ColorCode 191, RGB 215 255 95)
+                   , (Xterm256ColorCode 192, RGB 215 255 135)
+                   , (Xterm256ColorCode 193, RGB 215 255 175)
+                   , (Xterm256ColorCode 194, RGB 215 255 215)
+                   , (Xterm256ColorCode 195, RGB 215 255 255)
+                   , (Xterm256ColorCode 196, RGB 255 0 0)
+                   , (Xterm256ColorCode 197, RGB 255 0 95)
+                   , (Xterm256ColorCode 198, RGB 255 0 135)
+                   , (Xterm256ColorCode 199, RGB 255 0 175)
+                   , (Xterm256ColorCode 200, RGB 255 0 215)
+                   , (Xterm256ColorCode 201, RGB 255 0 255)
+                   , (Xterm256ColorCode 202, RGB 255 95 0)
+                   , (Xterm256ColorCode 203, RGB 255 95 95)
+                   , (Xterm256ColorCode 204, RGB 255 95 135)
+                   , (Xterm256ColorCode 205, RGB 255 95 175)
+                   , (Xterm256ColorCode 206, RGB 255 95 215)
+                   , (Xterm256ColorCode 207, RGB 255 95 255)
+                   , (Xterm256ColorCode 208, RGB 255 135 0)
+                   , (Xterm256ColorCode 209, RGB 255 135 95)
+                   , (Xterm256ColorCode 210, RGB 255 135 135)
+                   , (Xterm256ColorCode 211, RGB 255 135 175)
+                   , (Xterm256ColorCode 212, RGB 255 135 215)
+                   , (Xterm256ColorCode 213, RGB 255 135 255)
+                   , (Xterm256ColorCode 214, RGB 255 175 0)
+                   , (Xterm256ColorCode 215, RGB 255 175 95)
+                   , (Xterm256ColorCode 216, RGB 255 175 135)
+                   , (Xterm256ColorCode 217, RGB 255 175 175)
+                   , (Xterm256ColorCode 218, RGB 255 175 215)
+                   , (Xterm256ColorCode 219, RGB 255 175 255)
+                   , (Xterm256ColorCode 220, RGB 255 215 0)
+                   , (Xterm256ColorCode 221, RGB 255 215 95)
+                   , (Xterm256ColorCode 222, RGB 255 215 135)
+                   , (Xterm256ColorCode 223, RGB 255 215 175)
+                   , (Xterm256ColorCode 224, RGB 255 215 215)
+                   , (Xterm256ColorCode 225, RGB 255 215 255)
+                   , (Xterm256ColorCode 226, RGB 255 255 0)
+                   , (Xterm256ColorCode 227, RGB 255 255 95)
+                   , (Xterm256ColorCode 228, RGB 255 255 135)
+                   , (Xterm256ColorCode 229, RGB 255 255 175)
+                   , (Xterm256ColorCode 230, RGB 255 255 215)
+                   , (Xterm256ColorCode 231, RGB 255 255 255)
+                   , (Xterm256ColorCode 0, RGB 0 0 0) -- “system” colors
+                   , (Xterm256ColorCode 1, RGB 128 0 0)
+                   , (Xterm256ColorCode 2, RGB 0 128 0)
+                   , (Xterm256ColorCode 3, RGB 128 128 0)
+                   , (Xterm256ColorCode 4, RGB 0 0 128)
+                   , (Xterm256ColorCode 5, RGB 128 0 128)
+                   , (Xterm256ColorCode 6, RGB 0 128 128)
+                   , (Xterm256ColorCode 7, RGB 192 192 192)
+                   , (Xterm256ColorCode 8, RGB 128 128 128)
+                   , (Xterm256ColorCode 9, RGB 255 0 0)
+                   , (Xterm256ColorCode 10, RGB 0 255 0)
+                   , (Xterm256ColorCode 11, RGB 255 255 0)
+                   , (Xterm256ColorCode 12, RGB 0 0 255)
+                   , (Xterm256ColorCode 13, RGB 255 0 255)
+                   , (Xterm256ColorCode 14, RGB 0 255 255)
+                   , (Xterm256ColorCode 15, RGB 255 255 255)
+                   ]
+
+instance ToColor Xterm256ColorCode where
+    toColor = flip lookup ansi256ColorList -- cannot actually fail
+
+-- | JSON @"#1aff2b" corresponds to the color @RGB 0x1a 0xff 0x2b@.
+instance FromJSON Color where
+  parseJSON (String t) = maybe mempty return $ toColor (Text.unpack t)
+  parseJSON _          = mempty
+
+instance ToJSON Color where
+  toJSON color = String (Text.pack (fromColor color :: String))
+
+-- | Different representations of a 'Color'.
+class FromColor a where
+  fromColor :: Color -> a
+
+instance FromColor String where
+  fromColor (RGB r g b) = printf "#%02x%02x%02x" r g b
+
+instance FromColor (Double, Double, Double) where
+  fromColor (RGB r g b) = (fromIntegral r / 255, fromIntegral g / 255, fromIntegral b / 255)
+
+instance FromColor (Word8, Word8, Word8) where
+  fromColor (RGB r g b) = (r, g, b)
+
+instance (Ord a, Floating a) => FromColor (Colour a) where
+    fromColor (RGB r g b) = sRGB24 r g b
+
+-- | Warning: this conversion is extremely approximate!
+instance FromColor (ANSI.ColorIntensity, ANSI.Color) where
+    fromColor = findApproximateColor ansi16ColorList
+
+-- | Warning: this conversion is noticeably approximate!
+instance FromColor Xterm256ColorCode where
+    -- Same algorithm as above
+    fromColor = findApproximateColor ansi256ColorList
+
+colorDistance :: Color -> Color -> Int16
+colorDistance (RGB r1 g1 b1) (RGB r2 g2 b2) = abs (fromIntegral r1 - fromIntegral r2)
+                                                + abs (fromIntegral g1 - fromIntegral g2)
+                                                + abs (fromIntegral b1 - fromIntegral b2)
+
+-- This is the most naïve possible nearest-neighbor search;
+-- it could almost certainly be optimized, if its speed matters at all.
+findApproximateColor :: [(a, Color)] -> Color -> a
+findApproximateColor acs c = let ranked = map (\ac -> (ac, colorDistance c $ snd ac)) acs
+                      in fst . fst $ minimumBy (comparing snd) ranked
+
+-- | A rendering style. This determines how each kind of token
+-- is to be rendered, and sets a default color and background
+-- color for normal tokens.  Line numbers can have a different
+-- color and background color.
+data Style = Style {
+    tokenStyles               :: Map.Map TokenType TokenStyle
+  , defaultColor              :: Maybe Color
+  , backgroundColor           :: Maybe Color
+  , lineNumberColor           :: Maybe Color
+  , lineNumberBackgroundColor :: Maybe Color
+  } deriving (Read, Show, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary Style
+
+-- | The FromJSON instance for 'Style' is designed so that
+-- a KDE syntax theme (JSON) can be decoded directly as a
+-- 'Style'.
+instance FromJSON Style where
+  parseJSON (Object v) = do
+    (tokstyles :: Map.Map Text TokenStyle) <- v .: "text-styles"
+    (editorColors :: Map.Map Text Color) <- v .:? "editor-colors" .!= mempty
+    mbBackgroundColor <- v .:? "background-color"
+    mbLineNumberColor <- v .:? "line-number-color"
+    mbDefaultColor <- v .:? "text-color"
+    mbLineNumberBackgroundColor <- v .:? "line-number-background-color"
+    return Style{ defaultColor = mbDefaultColor `mplus`
+                     (case Map.lookup "Normal" tokstyles of
+                           Nothing -> Nothing
+                           Just ts -> tokenColor ts)
+                , backgroundColor = mbBackgroundColor `mplus`
+                     Map.lookup "background-color" editorColors
+                , lineNumberColor = mbLineNumberColor `mplus`
+                     Map.lookup "line-numbers" editorColors
+                , lineNumberBackgroundColor =
+                     mbLineNumberBackgroundColor `mplus`
+                       Map.lookup "background-color" editorColors
+                , tokenStyles =
+                     Map.mapKeys (\s -> maybe OtherTok id $
+                                     readMay (Text.unpack s ++ "Tok")) tokstyles }
+  parseJSON _ = mempty
+
+instance ToJSON Style where
+  toJSON s = object [ "text-styles" .= toJSON (tokenStyles s)
+                    , "background-color" .= toJSON (backgroundColor s)
+                    , "text-color" .= toJSON (defaultColor s)
+                    , "line-number-color" .= toJSON (lineNumberColor s)
+                    , "line-number-background-color" .=
+                         toJSON (lineNumberBackgroundColor s)
+                    ]
+
+-- | The available levels of color complexity in ANSI terminal output.
+data ANSIColorLevel = ANSI16Color   -- ^ 16-color mode
+                    | ANSI256Color  -- ^ 256-color mode
+                    | ANSITrueColor -- ^ True-color mode
+       deriving (Show, Read, Eq, Ord, Enum, Bounded, Data, Typeable, Generic)
+
+instance Binary ANSIColorLevel
+
+-- | Options for formatting source code.
+data FormatOptions = FormatOptions{
+         numberLines      :: Bool           -- ^ Number lines
+       , startNumber      :: Int            -- ^ Number of first line
+       , lineAnchors      :: Bool           -- ^ Anchors on each line number
+       , titleAttributes  :: Bool           -- ^ Html titles with token types
+       , codeClasses      :: [Text]         -- ^ Additional classes for Html code tag
+       , containerClasses :: [Text]         -- ^ Additional classes for Html container tag
+       , lineIdPrefix     :: Text           -- ^ Prefix for id attributes on lines
+       , ansiColorLevel   :: ANSIColorLevel -- ^ Level of ANSI color support to use
+       } deriving (Show, Read, Eq, Ord, Data, Typeable, Generic)
+
+instance Binary FormatOptions
+
+-- | Default formatting options.
+defaultFormatOpts :: FormatOptions
+defaultFormatOpts = FormatOptions{
+                      numberLines = False
+                    , startNumber = 1
+                    , lineAnchors = False
+                    , titleAttributes = False
+                    , codeClasses = []
+                    , containerClasses = []
+                    , lineIdPrefix = ""
+                    , ansiColorLevel = ANSI16Color
+                    }
diff --git a/test/cases/abc.ada b/test/cases/abc.ada
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.ada
@@ -0,0 +1,79 @@
+with Ada.Characters.Handling;
+use Ada.Characters.Handling;
+
+
+package Abc is
+    type Block_Faces is array(1..2) of Character;
+    type Block_List is array(positive range <>) of Block_Faces;
+    function Can_Make_Word(W: String; Blocks: Block_List) return Boolean;
+end Abc;
+
+
+package body Abc is
+
+function Can_Make_Word(W: String; Blocks: Block_List) return Boolean is
+    Used : array(Blocks'Range) of Boolean := (Others => False);
+    subtype wIndex is Integer range W'First..W'Last;
+    wPos : wIndex;
+begin
+    if W'Length = 0 then
+        return True;
+    end if;
+    wPos := W'First;
+    while True loop
+        declare
+            C : Character := To_Upper(W(wPos));
+            X : constant wIndex := wPos;
+        begin
+            for I in Blocks'Range loop
+                if (not Used(I)) then
+                    if C = To_Upper(Blocks(I)(1)) or C = To_Upper(Blocks(I)(2)) then
+                        Used(I) := True;
+                        if wPos = W'Last then
+                            return True;
+                        end if;
+                        wPos := wIndex'Succ(wPos);
+                        exit;
+                    end if;
+                end if;
+            end loop;
+            if X = wPos then
+                return False;
+            end if;
+        end;
+    end loop;
+    return False;
+end Can_Make_Word;
+
+end Abc;
+
+with Ada.Text_IO, Ada.Strings.Unbounded, Abc;
+use Ada.Text_IO, Ada.Strings.Unbounded, Abc;
+
+procedure Abc_Problem is
+    Blocks : Block_List := (
+          ('B','O'), ('X','K'), ('D','Q'), ('C','P')
+        , ('N','A'), ('G','T'), ('R','E'), ('T','G')
+        , ('Q','D'), ('F','S'), ('J','W'), ('H','U')
+        , ('V','I'), ('A','N'), ('O','B'), ('E','R')
+        , ('F','S'), ('L','Y'), ('P','C'), ('Z','M')
+    );
+    function "+" (S : String) return Unbounded_String renames To_Unbounded_String;
+    words : array(positive range <>) of Unbounded_String := (
+          +"A"
+        , +"BARK"
+        , +"BOOK"
+        , +"TREAT"
+        , +"COMMON"
+        , +"SQUAD"
+        , +"CONFUSE"
+        -- Border cases:
+        -- , +"CONFUSE2"
+        -- , +""
+    );
+begin
+    for I in words'Range loop
+        Put_Line ( To_String(words(I)) & ": " & Boolean'Image(Can_Make_Word(To_String(words(I)),Blocks)) );
+    end loop;
+end Abc_Problem;
+
diff --git a/test/cases/abc.agda b/test/cases/abc.agda
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.agda
@@ -0,0 +1,40 @@
+module Reals where
+
+  -- (a set with properties of) the reals
+  data ℝ : Set where
+    r0 : ℝ
+    r1 : ℝ
+    _+_ : ℝ → ℝ → ℝ
+
+  -- equality
+  data _==_ : ℝ → ℝ → Set where
+    AXrefl== : ∀ {r} → r == r
+    AXsymm== : ∀ {r s} → r == s → s == r
+    AXtrans== : ∀ {r s t} → r == s → s == t → r == t
+    AX+0 : ∀ {r} → (r + r0) == r
+    AXsymm+ : ∀ {r s} → (r + s) == (s + r)
+    AX+== : ∀ {r s t} → r == s → (r + t) == (s + t)
+
+  THM0+ : {r : ℝ} → r == (r0 + r)
+  THM0+ = AXsymm== (AXtrans== AXsymm+ AX+0)
+  -- AXsymm+ AX+0   r0 + r == r + r0 and r + r0 == r
+  -- AXtrans==      so r0 + r == r
+  -- AXsymm==       so r == r0 + r
+
+  THM0+alt : {r : ℝ} → r == (r0 + r)
+  THM0+alt {r} = AXsymm== {r0 + r} {r} ((AXtrans== {r0 + r} {r + r0} {r}) (AXsymm+ {r0} {r}) (AX+0 {r}))
+
+  -- strict partial ordering
+  data _<_ : ℝ → ℝ → Set where
+    AXtrans<<< : ∀ {r s t} → r < s → s < t → r < t
+    AX<=< : ∀ {r s t} → r < s → s == t → r < t
+    AX=<< : ∀ {r s t} → r == s → s < t → r < t
+    AX0<1 : r0 < r1
+    AX+<< : ∀ {r s t} → r < s → (r + t) < (s + t)
+
+  THM<+1 : {r : ℝ} → r < (r + r1)
+  THM<+1 = AX<=< (AX=<< THM0+ (AX+<< AX0<1)) AXsymm+
+  -- AX0<1              0 < 1
+  -- AX<+ %             so 0 + r < 1 + r
+  -- AX=<< lem0+ %      so r < 1 + r
+  -- AX<=< % AXsymm+    so r < r + 1
diff --git a/test/cases/abc.c b/test/cases/abc.c
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.c
@@ -0,0 +1,41 @@
+#include <stdio.h>
+#include <ctype.h>
+
+int can_make_words(char **b, char *word)
+{
+        int i, ret = 0, c = toupper(*word);
+
+#define SWAP(a, b) if (a != b) { char * tmp = a; a = b; b = tmp; }
+
+        if (!c) return 1;
+        if (!b[0]) return 0;
+
+        for (i = 0; b[i] && !ret; i++) {
+                if (b[i][0] != c && b[i][1] != c) continue;
+                SWAP(b[i], b[0]);
+                ret = can_make_words(b + 1, word + 1);
+                SWAP(b[i], b[0]);
+        }
+
+        return ret;
+}
+
+int main(void)
+{
+        char* blocks[] = {
+                "BO", "XK", "DQ", "CP", "NA", 
+                "GT", "RE", "TG", "QD", "FS", 
+                "JW", "HU", "VI", "AN", "OB", 
+                "ER", "FS", "LY", "PC", "ZM",
+                0 };
+
+        char *words[] = {
+                "", "A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "Confuse", 0
+        };
+
+        char **w;
+        for (w = words; *w; w++)
+                printf("%s\t%d\n", *w, can_make_words(blocks, *w));
+
+        return 0;
+}
diff --git a/test/cases/abc.clojure b/test/cases/abc.clojure
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.clojure
@@ -0,0 +1,22 @@
+
+(def blocks
+  (-> "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM" (.split " ") vec))
+
+(defn omit 
+  "return bs with (one instance of) b omitted"
+  [bs b] 
+  (let [[before after] (split-with #(not= b %) bs)]
+    (concat before (rest after))))
+
+(defn abc 
+  "return lazy sequence of solutions (i.e. block lists)"
+  [blocks [c & cs]]
+  (if-some c
+    (for [b blocks :when (some #(= c %) b)
+          bs (abc (omit blocks b) cs)]
+      (cons b bs))
+    [[]]))
+    
+      
+(doseq [word ["A" "BARK" "Book" "treat" "COMMON" "SQUAD" "CONFUSE"]]
+  (->> word .toUpperCase (abc blocks) first (printf "%s: %b\n" word)))
diff --git a/test/cases/abc.cpp b/test/cases/abc.cpp
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.cpp
@@ -0,0 +1,37 @@
+#include <iostream>
+#include <vector>
+#include <string>
+#include <set>
+#include <cctype>
+
+
+typedef std::pair<char,char> item_t;
+typedef std::vector<item_t> list_t;
+
+bool can_make_word(const std::string& w, const list_t& vals) {
+    std::set<uint32_t> used;
+    while (used.size() < w.size()) {
+        const char c = toupper(w[used.size()]);
+        uint32_t x = used.size();
+        for (uint32_t i = 0, ii = vals.size(); i < ii; ++i) {
+            if (used.find(i) == used.end()) {
+                if (toupper(vals[i].first) == c || toupper(vals[i].second) == c) {
+                    used.insert(i);
+                    break;
+                }
+            }
+        }
+        if (x == used.size()) break;
+    }
+    return used.size() == w.size();
+}
+
+
+int main() {
+    list_t vals{ {'B','O'}, {'X','K'}, {'D','Q'}, {'C','P'}, {'N','A'}, {'G','T'}, {'R','E'}, {'T','G'}, {'Q','D'}, {'F','S'}, {'J','W'}, {'H','U'}, {'V','I'}, {'A','N'}, {'O','B'}, {'E','R'}, {'F','S'}, {'L','Y'}, {'P','C'}, {'Z','M'} };
+    std::vector<std::string> words{"A","BARK","BOOK","TREAT","COMMON","SQUAD","CONFUSE"};
+    for (const std::string& w : words) {
+        std::cout << w << ": " << std::boolalpha << can_make_word(w,vals) << ".\n";
+    }
+
+}
diff --git a/test/cases/abc.cs b/test/cases/abc.cs
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.cs
@@ -0,0 +1,83 @@
+using System.Collections.Generic;
+using System.Linq;
+
+void Main()
+{
+        List<string> blocks =
+        new List<string>() { "bo", "xk", "dq", "cp", "na", "gt", "re", "tg", "qd", "fs",
+                "jw", "hu", "vi", "an", "ob", "er", "fs", "ly", "pc", "zm" };
+        List<string> words = new List<string>() {
+                "A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "CONFUSE"};
+        
+        var solver = new ABC(blocks);
+        
+        foreach( var word in words)
+        {
+                Console.WriteLine("{0} :{1}", word, solver.CanMake(word));
+        }
+}
+
+class ABC
+{
+        readonly Dictionary<char, List<int>> _blockDict = new Dictionary<char, List<int>>();
+        bool[] _used;
+        int _nextBlock;
+
+        readonly List<string> _blocks;
+
+        private void AddBlockChar(char c)
+        {
+                if (!_blockDict.ContainsKey(c))
+                {
+                        _blockDict[c] = new List<int>();
+                }
+                _blockDict[c].Add(_nextBlock);
+        }
+
+        private void AddBlock(string block)
+        {
+                AddBlockChar(block[0]);
+                AddBlockChar(block[1]);
+                _nextBlock++;
+        }
+
+        public ABC(List<string> blocks)
+        {
+                _blocks = blocks;
+                foreach (var block in blocks)
+                {
+                        AddBlock(block);
+                }
+        }
+
+        public bool CanMake(string word)
+        {
+                word = word.ToLower();
+                if (word.Length > _blockDict.Count)
+                {
+                        return false;
+                }
+                _used = new bool[_blocks.Count];
+                return TryMake(word);
+        }
+
+        public bool TryMake(string word)
+        {
+                if (word == string.Empty)
+                {
+                        return true;
+                }
+                var blocks = _blockDict[word[0]].Where(b => !_used[b]);
+                foreach (var block in blocks)
+                {
+                        _used[block] = true;
+                        if (TryMake(word.Substring(1)))
+                        {
+                                return true;
+                        }
+                        _used[block] = false;
+                }
+                return false;
+        }
+}
+
diff --git a/test/cases/abc.d b/test/cases/abc.d
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.d
@@ -0,0 +1,42 @@
+import std.stdio, std.ascii, std.algorithm, std.array, std.range;
+
+alias Block = char[2];
+
+bool canMakeWord(immutable Block[] blocks, in string word) pure nothrow
+in {
+    assert(blocks.all!(w => w[].all!isAlpha));
+    assert(word.all!isAlpha);
+} body {
+    bool inner(size_t[] indexes, in string w) pure nothrow {
+        if (w.empty)
+            return true;
+
+        immutable c = w[0].toUpper;
+        foreach (ref idx; indexes) {
+            if (blocks[idx][0].toUpper != c &&
+                blocks[idx][1].toUpper != c)
+                continue;
+            indexes[0].swap(idx);
+            if (inner(indexes[1 .. $], w[1 .. $]))
+                return true;
+            indexes[0].swap(idx);
+        }
+
+        return false;
+    }
+
+    return inner(blocks.length.iota.array, word);
+}
+
+void main() {
+    enum Block[] blocks = "BO XK DQ CP NA GT RE TG QD FS
+                           JW HU VI AN OB ER FS LY PC ZM".split;
+
+    foreach (w; "" ~ "A BARK BoOK TrEAT COmMoN SQUAD conFUsE".split)
+        writefln(`"%s" %s`, w, blocks.canMakeWord(w));
+
+    // Extra test.
+    immutable Block[] blocks2 = ["AB", "AB", "AC", "AC"];
+    immutable word = "abba";
+    writefln(`"%s" %s`, word, blocks2.canMakeWord(word));
+}
diff --git a/test/cases/abc.fortran b/test/cases/abc.fortran
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.fortran
@@ -0,0 +1,70 @@
+!-*- mode: compilation; default-directory: "/tmp/" -*-
+!Compilation started at Thu Jun  5 01:52:03
+!
+!make f && for a in '' a bark book treat common squad confuse ; do echo $a | ./f ; done
+!gfortran -std=f2008 -Wall -fopenmp -ffree-form -fall-intrinsics -fimplicit-none -g f.f08 -o f
+! T                      
+! T  A                    NA
+! T  BARK                 BO NA RE XK
+! F  BOOK                 OB BO -- --
+! T  TREAT                GT RE ER NA TG
+! F  COMMON               PC OB ZM -- -- --
+! T  SQUAD                FS DQ HU NA QD
+! T  CONFUSE              CP BO NA FS HU FS RE
+!
+!Compilation finished at Thu Jun  5 01:52:03
+
+program abc
+  implicit none
+  integer, parameter :: nblocks = 20
+  character(len=nblocks) :: goal
+  integer, dimension(nblocks) :: solution
+  character(len=2), dimension(0:nblocks) :: blocks_copy, blocks = &
+       &(/'--','BO','XK','DQ','CP','NA','GT','RE','TG','QD','FS','JW','HU','VI','AN','OB','ER','FS','LY','PC','ZM'/)
+  logical :: valid
+  integer :: i, iostat
+  read(5,*,iostat=iostat) goal
+  if (iostat .ne. 0) goal = ''
+  call ucase(goal)
+  solution = 0
+  blocks_copy = blocks
+  valid = assign_block(goal(1:len_trim(goal)), blocks, solution, 1)
+  write(6,*) valid, ' '//goal, (' '//blocks_copy(solution(i)), i=1,len_trim(goal))
+
+contains
+
+  recursive function assign_block(goal, blocks, solution, n) result(valid)
+    implicit none
+    logical :: valid
+    character(len=*), intent(in) :: goal
+    character(len=2), dimension(0:), intent(inout) :: blocks
+    integer, dimension(:), intent(out) :: solution
+    integer, intent(in) :: n
+    integer :: i
+    character(len=2) :: backing_store
+    valid = .true.
+    if (len(goal)+1 .eq. n) return
+    do i=1, size(blocks)
+       if (index(blocks(i),goal(n:n)) .ne. 0) then
+          backing_store = blocks(i)
+          blocks(i) = ''
+          solution(n) = i
+          if (assign_block(goal, blocks, solution, n+1)) return
+          blocks(i) = backing_store
+       end if
+    end do
+    valid = .false.
+    return
+  end function assign_block
+
+  subroutine ucase(a)
+    implicit none
+    character(len=*), intent(inout) :: a
+    integer :: i, j
+    do i = 1, len_trim(a)
+       j = index('abcdefghijklmnopqrstuvwxyz',a(i:i))
+       if (j .ne. 0) a(i:i) = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'(j:j)
+    end do
+  end subroutine ucase
+
+end program abc
diff --git a/test/cases/abc.go b/test/cases/abc.go
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.go
@@ -0,0 +1,39 @@
+package main
+
+import (
+        "fmt"
+        "strings"
+)
+
+func newSpeller(blocks string) func(string) bool {
+        bl := strings.Fields(blocks)
+        return func(word string) bool {
+                return r(word, bl)
+        }
+}
+
+func r(word string, bl []string) bool {
+        if word == "" {
+                return true
+        }
+        c := word[0] | 32
+        for i, b := range bl {
+                if c == b[0]|32 || c == b[1]|32 {
+                        bl[i], bl[0] = bl[0], b
+                        if r(word[1:], bl[1:]) == true {
+                                return true
+                        }
+                        bl[i], bl[0] = bl[0], bl[i]
+                }
+        }
+        return false
+}
+
+func main() {
+        sp := newSpeller(
+                "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM")
+        for _, word := range []string{
+                "A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "CONFUSE"} {
+                fmt.Println(word, sp(word))
+        }
+}
diff --git a/test/cases/abc.haskell b/test/cases/abc.haskell
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.haskell
@@ -0,0 +1,15 @@
+import Data.List (delete)
+import Data.Char (toUpper)
+
+-- returns list of all solutions, each solution being a list of blocks
+abc :: (Eq a) => [[a]] -> [a] -> [[[a]]]
+abc _ [] = [[]]
+abc blocks (c:cs) = [b:ans | b <- blocks, c `elem` b,
+                             ans <- abc (delete b blocks) cs]
+
+blocks = ["BO", "XK", "DQ", "CP", "NA", "GT", "RE", "TG", "QD", "FS",
+          "JW", "HU", "VI", "AN", "OB", "ER", "FS", "LY", "PC", "ZM"]
+
+main :: IO ()
+main = mapM_ (\w -> print (w, not . null $ abc blocks (map toUpper w)))
+         ["", "A", "BARK", "BoOK", "TrEAT", "COmMoN", "SQUAD", "conFUsE"]
diff --git a/test/cases/abc.java b/test/cases/abc.java
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.java
@@ -0,0 +1,44 @@
+import java.util.Arrays;
+
+public class ABC{
+        private static void swap(int i, int j, Object... arr){
+                Object tmp = arr[i];
+                arr[i] = arr[j];
+                arr[j] = tmp;
+        }
+        
+        public static boolean canMakeWord(String word, String... blocks) {
+            if(word.length() == 0)
+                return true;
+         
+            char c = Character.toUpperCase(word.charAt(0));
+            for(int i = 0; i < blocks.length; i++) {
+                String b = blocks[i];
+                if(Character.toUpperCase(b.charAt(0)) != c && Character.toUpperCase(b.charAt(1)) != c)
+                    continue;
+                swap(0, i, blocks);
+                if(canMakeWord(word.substring(1), Arrays.copyOfRange(blocks, 1, blocks.length)))
+                    return true;
+                swap(0, i, blocks);
+            }
+         
+            return false;
+        }
+        
+        public static void main(String[] args){
+                String[] blocks = {"BO", "XK", "DQ", "CP", "NA", 
+                                "GT", "RE", "TG", "QD", "FS", 
+                                "JW", "HU", "VI", "AN", "OB", 
+                                "ER", "FS", "LY", "PC", "ZM"};
+
+                System.out.println("\"\": " + canMakeWord("", blocks));
+                System.out.println("A: " + canMakeWord("A", blocks));
+                System.out.println("BARK: " + canMakeWord("BARK", blocks));
+                System.out.println("book: " + canMakeWord("book", blocks));
+                System.out.println("treat: " + canMakeWord("treat", blocks));
+                System.out.println("COMMON: " + canMakeWord("COMMON", blocks));
+                System.out.println("SQuAd: " + canMakeWord("SQuAd", blocks));
+                System.out.println("CONFUSE: " + canMakeWord("CONFUSE", blocks));
+                
+        }
+}
diff --git a/test/cases/abc.javascript b/test/cases/abc.javascript
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.javascript
@@ -0,0 +1,33 @@
+let characters = "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM";
+let blocks = characters.split(" ").map(pair => pair.split(""));
+ 
+function isWordPossible(word) {
+  var letters = [...word.toUpperCase()];
+  var length = letters.length;
+  var copy = new Set(blocks);
+
+  for (let letter of letters) {
+    for (let block of copy) {
+      let index = block.indexOf(letter);
+ 
+      if (index !== -1) {
+        length--;
+        copy.delete(block);
+        break;  
+      }
+    }
+
+  }
+  return !length;
+}    
+ 
+[ 
+  "A", 
+  "BARK", 
+  "BOOK", 
+  "TREAT", 
+  "COMMON", 
+  "SQUAD", 
+  "CONFUSE" 
+].forEach(word => console.log(`${word}: ${isWordPossible(word)}`));
+
diff --git a/test/cases/abc.julia b/test/cases/abc.julia
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.julia
@@ -0,0 +1,9 @@
+function abc (str, list)
+  isempty(str) && return true
+  for i = 1:length(list)
+    str[end] in list[i] && 
+    any([abc(str[1:end-1], deleteat!(copy(list), i))]) &&
+    return true
+  end
+  false
+end
diff --git a/test/cases/abc.kotlin b/test/cases/abc.kotlin
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.kotlin
@@ -0,0 +1,55 @@
+import java.util.Arrays
+
+/*
+    Swap elements i and j of a Kotlin Array.
+ */
+fun <T> Array<T>.swap(i: Int, j: Int) {
+    val tmp = this[i]
+    this[i] = this[j]
+    this[j] = tmp
+}
+
+data class Block(val block: String)
+
+/*
+ *  Not the most elegant way but interesting from an highlighting perspective ;)
+ */
+public class ABC() {
+    class object {
+
+        public fun canMakeWord(word: String, blocks: Array<Block>): Boolean {
+            if (word.length() == 0)
+                return true
+
+            val c = Character.toUpperCase(word.charAt(0))
+            for (i in 0..blocks.size - 1) {
+                val b = blocks[i]
+                if (Character.toUpperCase(b.block.charAt(0)) != c && Character.toUpperCase(b.block.charAt(1)) != c)
+                    continue
+                blocks.swap(0, i)
+                if (canMakeWord(word.substring(1), Arrays.copyOfRange(blocks, 1, blocks.size)))
+                    return true
+                blocks.swap(0, i)
+            }
+
+            return false
+        }
+
+        public fun main(args: Array<String>) {
+
+            val blocksString = array("BO", "XK", "DQ", "CP", "NA", "GT", "RE", "TG", "QD", "FS", "JW",
+                                             "HU", "VI", "AN", "OB", "ER", "FS", "LY", "PC", "ZM");
+
+            val blocks = Array(blocksString.size, { s -> Block(blocksString[s])})
+
+            val words = array("", "A", "BARK", "book", "treat", "COMMON", "SQuAd", "CONFUSE");
+
+            for (word in words) {
+                System.out.println("${word}: " + canMakeWord("${word}", blocks))
+            }
+
+        }
+    }
+}
+
+fun main(args: Array<String>) = ABC.main(args)
diff --git a/test/cases/abc.lisp b/test/cases/abc.lisp
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.lisp
@@ -0,0 +1,15 @@
+
+(defun word-possible-p (word blocks)
+  (cond 
+    ((= (length word) 0) t)
+    ((null blocks) nil)
+    (t (let* 
+         ((c (aref word 0))
+          (bs (remove-if-not #'(lambda (b) 
+                                 (find c b :test #'char-equal))
+                             blocks)))
+         (some #'identity 
+               (loop for b in bs
+                     collect (word-possible-p
+                               (subseq word 1)
+                               (remove b blocks))))))))
diff --git a/test/cases/abc.matlab b/test/cases/abc.matlab
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.matlab
@@ -0,0 +1,26 @@
+function testABC
+    combos = ['BO' ; 'XK' ; 'DQ' ; 'CP' ; 'NA' ; 'GT' ; 'RE' ; 'TG' ; 'QD' ; ...
+        'FS' ; 'JW' ; 'HU' ; 'VI' ; 'AN' ; 'OB' ; 'ER' ; 'FS' ; 'LY' ; ...
+        'PC' ; 'ZM'];
+    words = {'A' 'BARK' 'BOOK' 'TREAT' 'COMMON' 'SQUAD' 'CONFUSE'};
+    for k = 1:length(words)
+        possible = canMakeWord(words{k}, combos);
+        fprintf('Can%s make word %s.\n', char(~possible.*'NOT'), words{k})
+    end
+end
+
+function isPossible = canMakeWord(word, combos)
+    word = lower(word);
+    combos = lower(combos);
+    isPossible = true;
+    k = 1;
+    while isPossible && k <= length(word)
+        [r, c] = find(combos == word(k), 1);
+        if ~isempty(r)
+            combos(r, :) = '';
+        else
+            isPossible = false;
+        end
+        k = k+1;
+    end
+end
diff --git a/test/cases/abc.ocaml b/test/cases/abc.ocaml
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.ocaml
@@ -0,0 +1,40 @@
+let blocks = [
+  ('B', 'O');  ('X', 'K');  ('D', 'Q');  ('C', 'P');
+  ('N', 'A');  ('G', 'T');  ('R', 'E');  ('T', 'G');
+  ('Q', 'D');  ('F', 'S');  ('J', 'W');  ('H', 'U');
+  ('V', 'I');  ('A', 'N');  ('O', 'B');  ('E', 'R');
+  ('F', 'S');  ('L', 'Y');  ('P', 'C');  ('Z', 'M');
+]
+
+let find_letter blocks c =
+  let found, remaining =
+    List.partition (fun (c1, c2) -> c1 = c || c2 = c) blocks
+  in
+  match found with
+  | _ :: res -> Some (res @ remaining)
+  | _ -> None
+
+let can_make_word w =
+  let n = String.length w in
+  let rec aux i _blocks =
+    if i >= n then true else
+      match find_letter _blocks w.[i] with
+      | None -> false
+      | Some rem_blocks ->
+          aux (succ i) rem_blocks
+  in
+  aux 0 blocks
+
+let test label f (word, should) =
+  Printf.printf "- %s %S = %B  (should: %B)\n" label word (f word) should
+
+let () =
+  List.iter (test "can make word" can_make_word) [
+    "A", true;
+    "BARK", true;
+    "BOOK", false;
+    "TREAT", true;
+    "COMMON", false;
+    "SQUAD", true;
+    "CONFUSE", true;
+  ]
diff --git a/test/cases/abc.perl b/test/cases/abc.perl
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.perl
@@ -0,0 +1,14 @@
+use Test::More tests => 8;
+
+my @blocks1 = qw(BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM);
+is(can_make_word("A",       @blocks1), 1);
+is(can_make_word("BARK",    @blocks1), 1);
+is(can_make_word("BOOK",    @blocks1), undef);
+is(can_make_word("TREAT",   @blocks1), 1);
+is(can_make_word("COMMON",  @blocks1), undef);
+is(can_make_word("SQUAD",   @blocks1), 1);
+is(can_make_word("CONFUSE", @blocks1), 1);
+
+my @blocks2 = qw(US TZ AO QA);
+is(can_make_word('auto', @blocks2), 1);
+
diff --git a/test/cases/abc.php b/test/cases/abc.php
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.php
@@ -0,0 +1,30 @@
+
+<?php
+$words = array("A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "Confuse");
+
+function canMakeWord($word) {
+    $word = strtoupper($word);
+    $blocks = array(
+            "BO", "XK", "DQ", "CP", "NA",
+            "GT", "RE", "TG", "QD", "FS",
+            "JW", "HU", "VI", "AN", "OB",
+            "ER", "FS", "LY", "PC", "ZM",
+    );
+
+    foreach (str_split($word) as $char) {
+        foreach ($blocks as $k => $block) {
+            if (strpos($block, $char) !== FALSE) {
+                unset($blocks[$k]);
+                continue(2);
+            }
+        }
+        return false;
+    }
+    return true;
+}
+
+foreach ($words as $word) {
+    echo $word.': ';
+    echo canMakeWord($word) ? "True" : "False";
+    echo "\r\n";
+}
diff --git a/test/cases/abc.prolog b/test/cases/abc.prolog
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.prolog
@@ -0,0 +1,23 @@
+abc_problem :-
+        maplist(abc_problem, ['', 'A', bark, bOOk, treAT, 'COmmon', sQuaD, 'CONFUSE']).
+
+
+abc_problem(Word) :-
+        L = [[b,o],[x,k],[d,q],[c,p],[n,a],[g,t],[r,e],[t,g],[q,d],[f,s],
+             [j,w],[h,u],[v,i],[a,n],[o,b],[e,r],[f,s],[l,y],[p,c],[z,m]],
+
+        (   abc_problem(L, Word)
+        ->  format('~w OK~n', [Word])
+        ;   format('~w KO~n', [Word])).
+
+abc_problem(L, Word) :-
+        atom_chars(Word, C_Words),
+        maplist(downcase_atom, C_Words, D_Words),
+        can_makeword(L, D_Words).
+
+can_makeword(_L, []).
+
+can_makeword(L, [H | T]) :-
+        (   select([H, _], L, L1); select([_, H], L, L1)),
+        can_makeword(L1, T).
+
diff --git a/test/cases/abc.python b/test/cases/abc.python
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.python
@@ -0,0 +1,16 @@
+def mkword(w, b):
+    if not w: return []
+
+    c,w = w[0],w[1:]
+    for i in range(len(b)):
+        if c in b[i]:
+            m = mkword(w, b[0:i] + b[i+1:])
+            if m != None: return [b[i]] + m
+
+def abc(w, blk):
+    return mkword(w.upper(), [a.upper() for a in blk])
+
+blocks = 'BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM'.split()
+
+for w in ", A, bark, book, treat, common, SQUAD, conFUsEd".split(', '):
+    print '\'' + w + '\'' + ' ->', abc(w, blocks)
diff --git a/test/cases/abc.r b/test/cases/abc.r
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.r
@@ -0,0 +1,21 @@
+canMakeNoRecursion <- function(x) {
+  x <- toupper(x)
+  charList <- strsplit(x, character(0))
+  getCombos <- function(chars) {
+    charBlocks <-  data.matrix(expand.grid(lapply(chars, function(char) which(blocks == char, arr.ind=TRUE)[, 1L])))
+    charBlocks <- charBlocks[!apply(charBlocks, 1, function(row) any(duplicated(row))), , drop=FALSE]
+    if (dim(charBlocks)[1L] > 0L) {
+      t(apply(charBlocks, 1, function(row) apply(blocks[row, , drop=FALSE], 1, paste, collapse="")))
+    } else {
+      character(0)
+    }
+  }
+  setNames(lapply(charList, getCombos), x)
+}
+canMakeNoRecursion(c("A",
+           "BARK",
+           "BOOK",
+           "TREAT",
+           "COMMON",
+           "SQUAD",
+           "CONFUSE"))
diff --git a/test/cases/abc.ruby b/test/cases/abc.ruby
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.ruby
@@ -0,0 +1,8 @@
+words = %w(A BaRK BOoK tREaT COmMOn SqUAD CoNfuSE) << ""
+
+words.each do |word|
+  blocks = "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM"
+  res = word.each_char.all?{|c| blocks.sub!(/\w?#{c}\w?/i, "")}  #regexps can be interpolated like strings
+  puts "#{word.inspect}: #{res}"
+end
+
diff --git a/test/cases/abc.scala b/test/cases/abc.scala
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.scala
@@ -0,0 +1,50 @@
+object AbcBlocks extends App {
+
+  protected class Block(face1: Char, face2: Char) {
+
+    def isFacedWith(that: Char) = { that == face1 || that == face2 }
+    override def toString() = face1.toString + face2
+  }
+  protected object Block {
+    def apply(faces: String) = new Block(faces.head, faces.last)
+  }
+
+  type word = Seq[Block]
+
+  private val blocks = List(Block("BO"), Block("XK"), Block("DQ"), Block("CP"), Block("NA"),
+    Block("GT"), Block("RE"), Block("TG"), Block("QD"), Block("FS"),
+    Block("JW"), Block("HU"), Block("VI"), Block("AN"), Block("OB"),
+    Block("ER"), Block("FS"), Block("LY"), Block("PC"), Block("ZM"))
+
+  private def isMakeable(word: String, blocks: word) = {
+
+    def getTheBlocks(word: String, blocks: word) = {
+
+      def inner(word: String, toCompare: word, rest: word, accu: word): word = {
+        if (word.isEmpty || rest.isEmpty || toCompare.isEmpty) accu
+        else if (toCompare.head.isFacedWith(word.head)) {
+          val restant = rest diff List(toCompare.head)
+          inner(word.tail, restant, restant, accu :+ toCompare.head)
+        } else inner(word, toCompare.tail, rest, accu)
+      }
+      inner(word, blocks, blocks, Nil)
+    }
+
+    word.lengthCompare(getTheBlocks(word, blocks).size) == 0
+  }
+
+  val words = List("A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "CONFUSED", "ANBOCPDQERSFTGUVWXLZ")
+  // Automatic tests
+  assert(isMakeable(words(0), blocks))
+  assert(isMakeable(words(1), blocks))
+  assert(!isMakeable(words(2), blocks)) // BOOK not
+  assert(isMakeable(words(3), blocks))
+  assert(!isMakeable(words(4), blocks)) // COMMON not
+  assert(isMakeable(words(5), blocks))
+  assert(isMakeable(words(6), blocks))
+  assert(isMakeable(words(7), blocks))
+
+  //words(7).mkString.permutations.foreach(s => assert(isMakeable(s, blocks)))
+
+  words.foreach(w => println(s"$w can${if (isMakeable(w, blocks)) " " else "not "}be made."))
+}
diff --git a/test/cases/abc.scheme b/test/cases/abc.scheme
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.scheme
@@ -0,0 +1,43 @@
+#lang racket
+(define block-strings
+  (list "BO" "XK" "DQ" "CP" "NA"
+        "GT" "RE" "TG" "QD" "FS"
+        "JW" "HU" "VI" "AN" "OB"
+        "ER" "FS" "LY" "PC" "ZM"))
+(define BLOCKS (map string->list block-strings))
+
+(define (can-make-word? w)
+  (define (usable-block blocks word-char)
+    (for/first ((b (in-list blocks)) #:when (memf (curry char-ci=? word-char) b)) b))
+  
+  (define (inner word-chars blocks tried-blocks)
+    (cond
+      [(null? word-chars) #t]
+      [(usable-block blocks (car word-chars))
+       =>
+       (lambda (b)
+         (or
+          (inner (cdr word-chars) (append tried-blocks (remove b blocks)) null)
+          (inner word-chars (remove b blocks) (cons b tried-blocks))))]
+      [else #f]))
+  (inner (string->list w) BLOCKS null))
+
+(define WORD-LIST '("" "A" "BARK" "BOOK" "TREAT" "COMMON" "SQUAD" "CONFUSE"))
+(define (report-word w)
+  (printf "Can we make: ~a? ~a~%"
+          (~s w #:min-width 9)
+          (if (can-make-word? w) "yes" "no")))
+
+(module+ main
+  (for-each report-word WORD-LIST))  
+
+(module+ test
+  (require rackunit)
+  (check-true  (can-make-word? ""))
+  (check-true  (can-make-word? "A"))
+  (check-true  (can-make-word? "BARK"))
+  (check-false (can-make-word? "BOOK"))
+  (check-true  (can-make-word? "TREAT"))
+  (check-false (can-make-word? "COMMON"))
+  (check-true  (can-make-word? "SQUAD"))
+  (check-true  (can-make-word? "CONFUSE")))
diff --git a/test/cases/abc.tcl b/test/cases/abc.tcl
new file mode 100644
--- /dev/null
+++ b/test/cases/abc.tcl
@@ -0,0 +1,21 @@
+package require Tcl 8.6
+
+proc abc {word {blocks {BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM}}} {
+    set abc {{letters blocks abc} {
+        set rest [lassign $letters ch]
+        set i 0
+        foreach blk $blocks {
+            if {$ch in $blk && (![llength $rest]
+                    || [apply $abc $rest [lreplace $blocks $i $i] $abc])} {
+                return true
+            }
+            incr i
+        }
+        return false
+    }}
+    return [apply $abc [split $word ""] [lmap b $blocks {split $b ""}] $abc]
+}
+
+foreach word {"" A BARK BOOK TREAT COMMON SQUAD CONFUSE} {
+    puts [format "Can we spell %9s? %s" '$word' [abc $word]]
+}
diff --git a/test/cases/archive.rhtml b/test/cases/archive.rhtml
new file mode 100644
--- /dev/null
+++ b/test/cases/archive.rhtml
@@ -0,0 +1,23 @@
+<h1>Event Archive</h1>
+
+
+<% form_for :to_date, @to_date, :url => {:action => 'archive'} do |f| %>
+  <p><label for="start_date">From</label>
+  <%= select_date @from_date, :prefix => 'from' %>
+  <label for="end_date">To</label>
+  <%= select_date @to_date, :prefix => 'to', :start_year => 2000 %></p>
+  <p><label for="event_series">Series</label>
+  <%= select_tag "series", options_for_select(series_list('All'), @series) %>
+  <%= f.submit 'Show events' %>
+  </p>
+<% end %>
+
+<ul>
+<%
+if @events
+%>
+  <%= render :partial => 'events' %>
+<%
+end
+%>
+</ul>
diff --git a/test/cases/hk91.html b/test/cases/hk91.html
new file mode 100644
--- /dev/null
+++ b/test/cases/hk91.html
@@ -0,0 +1,27 @@
+<!DOCTYPE HTML>
+<html>
+<head>
+
+  <script type="text/javascript">
+    function makeHeaders(colnames) {
+      var str = "";
+      for (var i = 0; i < colnames.length; i++) {
+        str += "<th>" + colnames[i] + "</th>";
+      }
+      return (str);
+    }
+  </script>
+
+  <script>
+    $(document).ready(function() {
+      alert"hello");
+    });
+  </script>
+
+</head>
+
+<body>
+
+</body>
+
+</html>
diff --git a/test/cases/if.cmake b/test/cases/if.cmake
new file mode 100644
--- /dev/null
+++ b/test/cases/if.cmake
@@ -0,0 +1,3 @@
+if(CMARK_TESTS and CMARK_SHARED)
+      add_subdirectory(api_test)
+endif()
diff --git a/test/cases/life.lua b/test/cases/life.lua
new file mode 100644
--- /dev/null
+++ b/test/cases/life.lua
@@ -0,0 +1,111 @@
+-- life.lua
+-- original by Dave Bollinger <DBollinger@compuserve.com> posted to lua-l
+-- modified to use ANSI terminal escape sequences
+-- modified to use for instead of while
+
+local write=io.write
+
+ALIVE="¥"	DEAD="þ"
+ALIVE="O"	DEAD="-"
+
+function delay() -- NOTE: SYSTEM-DEPENDENT, adjust as necessary
+  for i=1,10000 do end
+  -- local i=os.clock()+1 while(os.clock()<i) do end
+end
+
+function ARRAY2D(w,h)
+  local t = {w=w,h=h}
+  for y=1,h do
+    t[y] = {}
+    for x=1,w do
+      t[y][x]=0
+    end
+  end
+  return t
+end
+
+_CELLS = {}
+
+-- give birth to a "shape" within the cell array
+function _CELLS:spawn(shape,left,top)
+  for y=0,shape.h-1 do
+    for x=0,shape.w-1 do
+      self[top+y][left+x] = shape[y*shape.w+x+1]
+    end
+  end
+end
+
+-- run the CA and produce the next generation
+function _CELLS:evolve(next)
+  local ym1,y,yp1,yi=self.h-1,self.h,1,self.h
+  while yi > 0 do
+    local xm1,x,xp1,xi=self.w-1,self.w,1,self.w
+    while xi > 0 do
+      local sum = self[ym1][xm1] + self[ym1][x] + self[ym1][xp1] +
+                  self[y][xm1] + self[y][xp1] +
+                  self[yp1][xm1] + self[yp1][x] + self[yp1][xp1]
+      next[y][x] = ((sum==2) and self[y][x]) or ((sum==3) and 1) or 0
+      xm1,x,xp1,xi = x,xp1,xp1+1,xi-1
+    end
+    ym1,y,yp1,yi = y,yp1,yp1+1,yi-1
+  end
+end
+
+-- output the array to screen
+function _CELLS:draw()
+  local out="" -- accumulate to reduce flicker
+  for y=1,self.h do
+   for x=1,self.w do
+      out=out..(((self[y][x]>0) and ALIVE) or DEAD)
+    end
+    out=out.."\n"
+  end
+  write(out)
+end
+
+-- constructor
+function CELLS(w,h)
+  local c = ARRAY2D(w,h)
+  c.spawn = _CELLS.spawn
+  c.evolve = _CELLS.evolve
+  c.draw = _CELLS.draw
+  return c
+end
+
+--
+-- shapes suitable for use with spawn() above
+--
+HEART = { 1,0,1,1,0,1,1,1,1; w=3,h=3 }
+GLIDER = { 0,0,1,1,0,1,0,1,1; w=3,h=3 }
+EXPLODE = { 0,1,0,1,1,1,1,0,1,0,1,0; w=3,h=4 }
+FISH = { 0,1,1,1,1,1,0,0,0,1,0,0,0,0,1,1,0,0,1,0; w=5,h=4 }
+BUTTERFLY = { 1,0,0,0,1,0,1,1,1,0,1,0,0,0,1,1,0,1,0,1,1,0,0,0,1; w=5,h=5 }
+
+-- the main routine
+function LIFE(w,h)
+  -- create two arrays
+  local thisgen = CELLS(w,h)
+  local nextgen = CELLS(w,h)
+
+  -- create some life
+  -- about 1000 generations of fun, then a glider steady-state
+  thisgen:spawn(GLIDER,5,4)
+  thisgen:spawn(EXPLODE,25,10)
+  thisgen:spawn(FISH,4,12)
+
+  -- run until break
+  local gen=1
+  write("\027[2J")	-- ANSI clear screen
+  while 1 do
+    thisgen:evolve(nextgen)
+    thisgen,nextgen = nextgen,thisgen
+    write("\027[H")	-- ANSI home cursor
+    thisgen:draw()
+    write("Life - generation ",gen,"\n")
+    gen=gen+1
+    if gen>2000 then break end
+    --delay()		-- no delay
+  end
+end
+
+LIFE(40,20)
diff --git a/test/default.theme b/test/default.theme
new file mode 100644
--- /dev/null
+++ b/test/default.theme
@@ -0,0 +1,177 @@
+{
+    "metadata" : {
+        "revision" : 1,
+        "name" : "Default",
+        "author" : "Kate Authors",
+        "license" : "MIT",
+        "read-only" : true
+    },
+    "text-styles": {
+        "Normal" : {
+            "text-color" : "#1f1c1b",
+            "selected-text-color" : "#ffffff",
+            "bold" : false,
+            "italic" : false,
+            "underline" : false,
+            "strike-through" : false
+        },
+        "Keyword" : {
+            "text-color" : "#1f1c1b",
+            "selected-text-color" : "#ffffff",
+            "bold" : true
+        },
+        "Function" : {
+            "text-color" : "#644a9b",
+            "selected-text-color" : "#452886"
+        },
+        "Variable" : {
+            "text-color" : "#0057ae",
+            "selected-text-color" : "#00316e"
+        },
+        "ControlFlow" : {
+            "text-color" : "#1f1c1b",
+            "selected-text-color" : "#ffffff",
+            "bold" : true
+        },
+        "Operator" : {
+            "text-color" : "#1f1c1b",
+            "selected-text-color" : "#ffffff"
+        },
+        "BuiltIn" : {
+            "text-color" : "#644a9b",
+            "selected-text-color" : "#452886",
+            "bold" : true
+        },
+        "Extension" : {
+            "text-color" : "#0095ff",
+            "selected-text-color" : "#ffffff",
+            "bold" : true
+        },
+        "Preprocessor" : {
+            "text-color" : "#006e28",
+            "selected-text-color" : "#006e28"
+        },
+        "Attribute" : {
+            "text-color" : "#0057ae",
+            "selected-text-color" : "#00316e"
+        },
+        "Char" : {
+            "text-color" : "#924c9d",
+            "selected-text-color" : "#6c2477"
+        },
+        "SpecialChar" : {
+            "text-color" : "#3daee9",
+            "selected-text-color" : "#fcfcfc"
+        },
+        "String" : {
+            "text-color" : "#bf0303",
+            "selected-text-color" : "#9c0e0e"
+        },
+        "VerbatimString" : {
+            "text-color" : "#bf0303",
+            "selected-text-color" : "#9c0e0e"
+        },
+        "SpecialString" : {
+            "text-color" : "#ff5500",
+            "selected-text-color" : "#ff5500"
+        },
+        "Import" : {
+            "text-color" : "#ff5500",
+            "selected-text-color" : "#ff5500"
+        },
+        "DataType" : {
+            "text-color" : "#0057ae",
+            "selected-text-color" : "#00316e"
+        },
+        "DecVal" : {
+            "text-color" : "#b08000",
+            "selected-text-color" : "#805c00"
+        },
+        "BaseN" : {
+            "text-color" : "#b08000",
+            "selected-text-color" : "#805c00"
+        },
+        "Float" : {
+            "text-color" : "#b08000",
+            "selected-text-color" : "#805c00"
+        },
+        "Constant" : {
+            "text-color" : "#aa5500",
+            "selected-text-color" : "#5e2f00"
+        },
+        "Comment" : {
+            "text-color" : "#898887",
+            "selected-text-color" : "#5e5d5d"
+        },
+        "Documentation" : {
+            "text-color" : "#607880",
+            "selected-text-color" : "#46585e"
+        },
+        "Annotation" : {
+            "text-color" : "#ca60ca",
+            "selected-text-color" : "#a44ea4"
+        },
+        "CommentVar" : {
+            "text-color" : "#0095ff",
+            "selected-text-color" : "#ffffff"
+        },
+        "RegionMarker" : {
+            "text-color" : "#0057ae",
+            "selected-text-color" : "#00316e",
+            "background-color" : "#e0e9f8"
+        },
+        "Information" : {
+            "text-color" : "#b08000",
+            "selected-text-color" : "#805c00"
+        },
+        "Warning" : {
+            "text-color" : "#bf0303",
+            "selected-text-color" : "#9c0e0e"
+        },
+        "Alert" : {
+            "text-color" : "#bf0303",
+            "selected-text-color" : "#9c0e0e",
+            "background-color" : "#f7e6e6",
+            "bold" : true
+        },
+        "Error" : {
+            "text-color" : "#bf0303",
+            "selected-text-color" : "#9c0e0e",
+            "underline" : true
+        },
+        "Others" : {
+            "text-color" : "#006e28",
+            "selected-text-color" : "#006e28"
+        }
+   },
+    "editor-colors": {
+        "background-color" : "#ffffff",
+        "code-folding" : "#94caef",
+        "bracket-matching" : "#ffff00",
+        "current-line" : "#f8f7f6",
+        "icon-border" : "#f0f0f0",
+        "indentation-line" : "#d2d2d2",
+        "line-numbers" : "#a0a0a0",
+        "current-line-number" : "#1e1e1e",
+        "mark-bookmark" : "#0000ff",
+        "mark-breakpoint-active" : "#ff0000",
+        "mark-breakpoint-reached" : "#ffff00",
+        "mark-breakpoint-disabled" : "#ff00ff",
+        "mark-execution" : "#a0a0a4",
+        "mark-warning" : "#00ff00",
+        "mark-error" : "#ff0000",
+        "modified-lines" : "#fdbc4b",
+        "replace-highlight" : "#00ff00",
+        "saved-lines" : "#2ecc71",
+        "search-highlight" : "#ffff00",
+        "selection" : "#94caef",
+        "separator" : "#898887",
+        "spell-checking" : "#bf0303",
+        "tab-marker" : "#d2d2d2",
+        "template-background" : "#d6d2d0",
+        "template-placeholder" : "#baf8ce",
+        "template-focused-placeholder" : "#76da98",
+        "template-read-only-placeholder" : "#f6e6e6",
+        "word-wrap-marker" : "#ededed"
+    }
+}
diff --git a/test/expected/abc.ada.native b/test/expected/abc.ada.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.ada.native
@@ -0,0 +1,370 @@
+[ [ ( KeywordTok , "with" )
+  , ( NormalTok , " Ada.Characters.Handling;" )
+  ]
+, [ ( KeywordTok , "use" )
+  , ( NormalTok , " Ada.Characters.Handling;" )
+  ]
+, []
+, []
+, [ ( KeywordTok , "package" )
+  , ( NormalTok , " Abc " )
+  , ( KeywordTok , "is" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "type" )
+  , ( NormalTok , " Block_Faces " )
+  , ( KeywordTok , "is" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "array" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ".." )
+  , ( DecValTok , "2" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , "of" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Character" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "type" )
+  , ( NormalTok , " Block_List " )
+  , ( KeywordTok , "is" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "array" )
+  , ( NormalTok , "(positive " )
+  , ( KeywordTok , "range" )
+  , ( NormalTok , " <>) " )
+  , ( KeywordTok , "of" )
+  , ( NormalTok , " Block_Faces;" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "function" )
+  , ( NormalTok , " Can_Make_Word(W: " )
+  , ( DataTypeTok , "String" )
+  , ( NormalTok , "; Blocks: Block_List) " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Boolean" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( KeywordTok , "end" ) , ( NormalTok , " Abc;" ) ]
+, []
+, []
+, [ ( KeywordTok , "package" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "body" )
+  , ( NormalTok , " Abc " )
+  , ( KeywordTok , "is" )
+  ]
+, []
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " Can_Make_Word(W: " )
+  , ( DataTypeTok , "String" )
+  , ( NormalTok , "; Blocks: Block_List) " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Boolean" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "is" )
+  ]
+, [ ( NormalTok , "    Used : " )
+  , ( KeywordTok , "array" )
+  , ( NormalTok , "(Blocks'Range) " )
+  , ( KeywordTok , "of" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Boolean" )
+  , ( NormalTok , " := (" )
+  , ( KeywordTok , "Others" )
+  , ( NormalTok , " => False);" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "subtype" )
+  , ( NormalTok , " wIndex " )
+  , ( KeywordTok , "is" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Integer" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "range" )
+  , ( NormalTok , " W'First..W'Last;" )
+  ]
+, [ ( NormalTok , "    wPos : wIndex;" ) ]
+, [ ( KeywordTok , "begin" ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " W'Length = " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "then" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " True;" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "end if" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    wPos := W'First;" ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "while" )
+  , ( NormalTok , " True " )
+  , ( KeywordTok , "loop" )
+  ]
+, [ ( NormalTok , "        " ) , ( KeywordTok , "declare" ) ]
+, [ ( NormalTok , "            C : " )
+  , ( DataTypeTok , "Character" )
+  , ( NormalTok , " := To_Upper(W(wPos));" )
+  ]
+, [ ( NormalTok , "            X : " )
+  , ( KeywordTok , "constant" )
+  , ( NormalTok , " wIndex := wPos;" )
+  ]
+, [ ( NormalTok , "        " ) , ( KeywordTok , "begin" ) ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " I " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " Blocks'Range " )
+  , ( KeywordTok , "loop" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "not" )
+  , ( NormalTok , " Used(I)) " )
+  , ( KeywordTok , "then" )
+  ]
+, [ ( NormalTok , "                    " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " C = To_Upper(Blocks(I)(" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ")) " )
+  , ( KeywordTok , "or" )
+  , ( NormalTok , " C = To_Upper(Blocks(I)(" )
+  , ( DecValTok , "2" )
+  , ( NormalTok , ")) " )
+  , ( KeywordTok , "then" )
+  ]
+, [ ( NormalTok , "                        Used(I) := True;" ) ]
+, [ ( NormalTok , "                        " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " wPos = W'Last " )
+  , ( KeywordTok , "then" )
+  ]
+, [ ( NormalTok , "                            " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " True;" )
+  ]
+, [ ( NormalTok , "                        " )
+  , ( KeywordTok , "end if" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok
+    , "                        wPos := wIndex'Succ(wPos);"
+    )
+  ]
+, [ ( NormalTok , "                        " )
+  , ( KeywordTok , "exit" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                    " )
+  , ( KeywordTok , "end if" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "end if" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "end loop" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " X = wPos " )
+  , ( KeywordTok , "then" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " False;" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "end if" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "end" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "end loop" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " False;" )
+  ]
+, [ ( KeywordTok , "end" ) , ( NormalTok , " Can_Make_Word;" ) ]
+, []
+, [ ( KeywordTok , "end" ) , ( NormalTok , " Abc;" ) ]
+, []
+, [ ( KeywordTok , "with" )
+  , ( NormalTok , " Ada.Text_IO, Ada.Strings.Unbounded, Abc;" )
+  ]
+, [ ( KeywordTok , "use" )
+  , ( NormalTok , " Ada.Text_IO, Ada.Strings.Unbounded, Abc;" )
+  ]
+, []
+, [ ( KeywordTok , "procedure" )
+  , ( NormalTok , " Abc_Problem " )
+  , ( KeywordTok , "is" )
+  ]
+, [ ( NormalTok , "    Blocks : Block_List := (" ) ]
+, [ ( NormalTok , "          (" )
+  , ( CharTok , "'B'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'O'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'X'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'K'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'D'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'Q'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'C'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'P'" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "        , (" )
+  , ( CharTok , "'N'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'A'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'G'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'T'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'R'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'E'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'T'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'G'" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "        , (" )
+  , ( CharTok , "'Q'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'D'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'F'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'S'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'J'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'W'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'H'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'U'" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "        , (" )
+  , ( CharTok , "'V'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'I'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'A'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'N'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'O'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'B'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'E'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'R'" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "        , (" )
+  , ( CharTok , "'F'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'S'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'L'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'Y'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'P'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'C'" )
+  , ( NormalTok , "), (" )
+  , ( CharTok , "'Z'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'M'" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "    );" ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "function" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"+\"" )
+  , ( NormalTok , " (S : " )
+  , ( DataTypeTok , "String" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " Unbounded_String " )
+  , ( KeywordTok , "renames" )
+  , ( NormalTok , " To_Unbounded_String;" )
+  ]
+, [ ( NormalTok , "    words : " )
+  , ( KeywordTok , "array" )
+  , ( NormalTok , "(positive " )
+  , ( KeywordTok , "range" )
+  , ( NormalTok , " <>) " )
+  , ( KeywordTok , "of" )
+  , ( NormalTok , " Unbounded_String := (" )
+  ]
+, [ ( NormalTok , "          +" ) , ( StringTok , "\"A\"" ) ]
+, [ ( NormalTok , "        , +" ) , ( StringTok , "\"BARK\"" ) ]
+, [ ( NormalTok , "        , +" ) , ( StringTok , "\"BOOK\"" ) ]
+, [ ( NormalTok , "        , +" ) , ( StringTok , "\"TREAT\"" ) ]
+, [ ( NormalTok , "        , +" ) , ( StringTok , "\"COMMON\"" ) ]
+, [ ( NormalTok , "        , +" ) , ( StringTok , "\"SQUAD\"" ) ]
+, [ ( NormalTok , "        , +" ) , ( StringTok , "\"CONFUSE\"" ) ]
+, [ ( NormalTok , "        " )
+  , ( CommentTok , "-- Border cases:" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( CommentTok , "-- , +\"CONFUSE2\"" )
+  ]
+, [ ( NormalTok , "        " ) , ( CommentTok , "-- , +\"\"" ) ]
+, [ ( NormalTok , "    );" ) ]
+, [ ( KeywordTok , "begin" ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " I " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " words'Range " )
+  , ( KeywordTok , "loop" )
+  ]
+, [ ( NormalTok , "        Put_Line ( To_String(words(I)) & " )
+  , ( StringTok , "\": \"" )
+  , ( NormalTok
+    , " & Boolean'Image(Can_Make_Word(To_String(words(I)),Blocks)) );"
+    )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "end loop" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( KeywordTok , "end" ) , ( NormalTok , " Abc_Problem;" ) ]
+, []
+]
diff --git a/test/expected/abc.agda.native b/test/expected/abc.agda.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.agda.native
@@ -0,0 +1,382 @@
+[ [ ( KeywordTok , "module" )
+  , ( NormalTok , " Reals " )
+  , ( KeywordTok , "where" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( CommentTok , "-- (a set with properties of) the reals" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "data" )
+  , ( NormalTok , " \8477 " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Set" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "where" )
+  ]
+, [ ( NormalTok , "    r0 " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " \8477" )
+  ]
+, [ ( NormalTok , "    r1 " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " \8477" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( OtherTok , "_" )
+  , ( NormalTok , "+" )
+  , ( OtherTok , "_" )
+  , ( NormalTok , " " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " \8477 " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " \8477 " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " \8477" )
+  ]
+, []
+, [ ( NormalTok , "  " ) , ( CommentTok , "-- equality" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "data" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "_" )
+  , ( NormalTok , "==" )
+  , ( OtherTok , "_" )
+  , ( NormalTok , " " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " \8477 " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " \8477 " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Set" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "where" )
+  ]
+, [ ( NormalTok , "    AXrefl== " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r == r" )
+  ]
+, [ ( NormalTok , "    AXsymm== " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r s" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r == s " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " s == r" )
+  ]
+, [ ( NormalTok , "    AXtrans== " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r s t" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r == s " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " s == t " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r == t" )
+  ]
+, [ ( NormalTok , "    AX+0 " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "r + r0" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " == r" )
+  ]
+, [ ( NormalTok , "    AXsymm+ " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r s" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "r + s" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " == " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "s + r" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "    AX+== " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r s t" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r == s " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "r + t" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " == " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "s + t" )
+  , ( OtherTok , ")" )
+  ]
+, []
+, [ ( NormalTok , "  THM0+ " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " \8477" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r == " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "r0 + r" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  THM0+ " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " AXsymm== " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "AXtrans== AXsymm+ AX+0" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( CommentTok
+    , "-- AXsymm+ AX+0   r0 + r == r + r0 and r + r0 == r"
+    )
+  ]
+, [ ( NormalTok , "  " )
+  , ( CommentTok , "-- AXtrans==      so r0 + r == r" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( CommentTok , "-- AXsymm==       so r == r0 + r" )
+  ]
+, []
+, [ ( NormalTok , "  THM0+alt " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " \8477" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r == " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "r0 + r" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  THM0+alt " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " AXsymm== " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r0 + r" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "((" )
+  , ( NormalTok , "AXtrans== " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r0 + r" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r + r0" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r" )
+  , ( OtherTok , "})" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "AXsymm+ " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r0" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r" )
+  , ( OtherTok , "})" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "AX+0 " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r" )
+  , ( OtherTok , "}))" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( CommentTok , "-- strict partial ordering" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "data" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "_" )
+  , ( NormalTok , "<" )
+  , ( OtherTok , "_" )
+  , ( NormalTok , " " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " \8477 " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " \8477 " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Set" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "where" )
+  ]
+, [ ( NormalTok , "    AXtrans<<< " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r s t" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r < s " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " s < t " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r < t" )
+  ]
+, [ ( NormalTok , "    AX<=< " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r s t" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r < s " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " s == t " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r < t" )
+  ]
+, [ ( NormalTok , "    AX=<< " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r s t" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r == s " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " s < t " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r < t" )
+  ]
+, [ ( NormalTok , "    AX0<1 " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " r0 < r1" )
+  ]
+, [ ( NormalTok , "    AX+<< " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8704" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r s t" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r < s " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "r + t" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " < " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "s + t" )
+  , ( OtherTok , ")" )
+  ]
+, []
+, [ ( NormalTok , "  THM<+1 " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "r " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " \8477" )
+  , ( OtherTok , "}" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "\8594" )
+  , ( NormalTok , " r < " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "r + r1" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  THM<+1 " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " AX<=< " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "AX=<< THM0+ " )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "AX+<< AX0<1" )
+  , ( OtherTok , "))" )
+  , ( NormalTok , " AXsymm+" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( CommentTok , "-- AX0<1              0 < 1" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( CommentTok , "-- AX<+ %             so 0 + r < 1 + r" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( CommentTok , "-- AX=<< lem0+ %      so r < 1 + r" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( CommentTok , "-- AX<=< % AXsymm+    so r < r + 1" )
+  ]
+]
diff --git a/test/expected/abc.c.native b/test/expected/abc.c.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.c.native
@@ -0,0 +1,197 @@
+[ [ ( PreprocessorTok , "#include " )
+  , ( ImportTok , "<stdio.h>" )
+  ]
+, [ ( PreprocessorTok , "#include " )
+  , ( ImportTok , "<ctype.h>" )
+  ]
+, []
+, [ ( DataTypeTok , "int" )
+  , ( NormalTok , " can_make_words(" )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , " **b, " )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , " *word)" )
+  ]
+, [ ( NormalTok , "{" ) ]
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "int" )
+  , ( NormalTok , " i, ret = " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ", c = toupper(*word);" )
+  ]
+, []
+, [ ( PreprocessorTok
+    , "#define SWAP(a, b) if (a != b) { char * tmp = a; a = b; b = tmp; }"
+    )
+  ]
+, []
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (!c) " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (!b[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "]) " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ";" )
+  ]
+, []
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (i = " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "; b[i] && !ret; i++) {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (b[i][" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "] != c && b[i][" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , "] != c) " )
+  , ( ControlFlowTok , "continue" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                SWAP(b[i], b[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "]);" )
+  ]
+, [ ( NormalTok , "                ret = can_make_words(b + " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ", word + " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "                SWAP(b[i], b[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "]);" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, []
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " ret;" )
+  ]
+, [ ( NormalTok , "}" ) ]
+, []
+, [ ( DataTypeTok , "int" )
+  , ( NormalTok , " main(" )
+  , ( DataTypeTok , "void" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "{" ) ]
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , "* blocks[] = {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( StringTok , "\"BO\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"XK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"DQ\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"CP\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"NA\"" )
+  , ( NormalTok , ", " )
+  ]
+, [ ( NormalTok , "                " )
+  , ( StringTok , "\"GT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"RE\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TG\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"QD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , ", " )
+  ]
+, [ ( NormalTok , "                " )
+  , ( StringTok , "\"JW\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"HU\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"VI\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"AN\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"OB\"" )
+  , ( NormalTok , ", " )
+  ]
+, [ ( NormalTok , "                " )
+  , ( StringTok , "\"ER\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"LY\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"PC\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ZM\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "                " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , " };" )
+  ]
+, []
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , " *words[] = {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"Confuse\"" )
+  , ( NormalTok , ", " )
+  , ( DecValTok , "0" )
+  ]
+, [ ( NormalTok , "        };" ) ]
+, []
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , " **w;" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (w = words; *w; w++)" )
+  ]
+, [ ( NormalTok , "                printf(" )
+  , ( StringTok , "\"%s" )
+  , ( SpecialCharTok , "\\t" )
+  , ( StringTok , "%d" )
+  , ( SpecialCharTok , "\\n" )
+  , ( StringTok , "\"" )
+  , ( NormalTok , ", *w, can_make_words(blocks, *w));" )
+  ]
+, []
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "}" ) ]
+]
diff --git a/test/expected/abc.clojure.native b/test/expected/abc.clojure.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.clojure.native
@@ -0,0 +1,105 @@
+[ []
+, [ ( NormalTok , "(" )
+  , ( BuiltInTok , "def" )
+  , ( FunctionTok , " blocks" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( KeywordTok , "->" )
+  , ( NormalTok , " " )
+  , ( StringTok
+    , "\"BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM\""
+    )
+  , ( NormalTok , " (.split " )
+  , ( StringTok , "\" \"" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , "vec" )
+  , ( NormalTok , "))" )
+  ]
+, []
+, [ ( NormalTok , "(" )
+  , ( BuiltInTok , "defn" )
+  , ( FunctionTok , " omit " )
+  ]
+, [ ( NormalTok , "  " )
+  , ( StringTok , "\"return bs with (one instance of) b omitted\"" )
+  ]
+, [ ( NormalTok , "  [bs b] " ) ]
+, [ ( NormalTok , "  (" )
+  , ( KeywordTok , "let" )
+  , ( NormalTok , " [[before after] (" )
+  , ( KeywordTok , "split-with" )
+  , ( NormalTok , " #(" )
+  , ( KeywordTok , "not=" )
+  , ( NormalTok , " b " )
+  , ( VariableTok , "%" )
+  , ( NormalTok , ") bs)]" )
+  ]
+, [ ( NormalTok , "    (" )
+  , ( KeywordTok , "concat" )
+  , ( NormalTok , " before (" )
+  , ( KeywordTok , "rest" )
+  , ( NormalTok , " after))))" )
+  ]
+, []
+, [ ( NormalTok , "(" )
+  , ( BuiltInTok , "defn" )
+  , ( FunctionTok , " abc " )
+  ]
+, [ ( NormalTok , "  " )
+  , ( StringTok
+    , "\"return lazy sequence of solutions (i.e. block lists)\""
+    )
+  ]
+, [ ( NormalTok , "  [blocks [c & cs]]" ) ]
+, [ ( NormalTok , "  (if-some c" ) ]
+, [ ( NormalTok , "    (" )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " [b blocks " )
+  , ( AttributeTok , ":when" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "some" )
+  , ( NormalTok , " #(" )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " c " )
+  , ( VariableTok , "%" )
+  , ( NormalTok , ") b)" )
+  ]
+, [ ( NormalTok , "          bs (abc (omit blocks b) cs)]" ) ]
+, [ ( NormalTok , "      (" )
+  , ( KeywordTok , "cons" )
+  , ( NormalTok , " b bs))" )
+  ]
+, [ ( NormalTok , "    [[]]))" ) ]
+, [ ( NormalTok , "    " ) ]
+, [ ( NormalTok , "      " ) ]
+, [ ( NormalTok , "(" )
+  , ( KeywordTok , "doseq" )
+  , ( NormalTok , " [word [" )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"Book\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"treat\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , "]]" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( KeywordTok , "->>" )
+  , ( NormalTok , " word .toUpperCase (abc blocks) " )
+  , ( KeywordTok , "first" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "printf" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"%s: %b" )
+  , ( SpecialCharTok , "\\n" )
+  , ( StringTok , "\"" )
+  , ( NormalTok , " word)))" )
+  ]
+]
diff --git a/test/expected/abc.cpp.native b/test/expected/abc.cpp.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.cpp.native
@@ -0,0 +1,236 @@
+[ [ ( PreprocessorTok , "#include " )
+  , ( ImportTok , "<iostream>" )
+  ]
+, [ ( PreprocessorTok , "#include " )
+  , ( ImportTok , "<vector>" )
+  ]
+, [ ( PreprocessorTok , "#include " )
+  , ( ImportTok , "<string>" )
+  ]
+, [ ( PreprocessorTok , "#include " ) , ( ImportTok , "<set>" ) ]
+, [ ( PreprocessorTok , "#include " )
+  , ( ImportTok , "<cctype>" )
+  ]
+, []
+, []
+, [ ( KeywordTok , "typedef" )
+  , ( NormalTok , " " )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "pair<" )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , "," )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , "> " )
+  , ( DataTypeTok , "item_t" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( KeywordTok , "typedef" )
+  , ( NormalTok , " " )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "vector<" )
+  , ( DataTypeTok , "item_t" )
+  , ( NormalTok , "> " )
+  , ( DataTypeTok , "list_t" )
+  , ( NormalTok , ";" )
+  ]
+, []
+, [ ( DataTypeTok , "bool" )
+  , ( NormalTok , " can_make_word(" )
+  , ( AttributeTok , "const" )
+  , ( NormalTok , " " )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "string& w, " )
+  , ( AttributeTok , "const" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "list_t" )
+  , ( NormalTok , "& vals) {" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "set<" )
+  , ( DataTypeTok , "uint32_t" )
+  , ( NormalTok , "> used;" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( ControlFlowTok , "while" )
+  , ( NormalTok , " (used.size() < w.size()) {" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( AttributeTok , "const" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , " c = toupper(w[used.size()]);" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "uint32_t" )
+  , ( NormalTok , " x = used.size();" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (" )
+  , ( DataTypeTok , "uint32_t" )
+  , ( NormalTok , " i = " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ", ii = vals.size(); i < ii; ++i) {" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (used.find(i) == used.end()) {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok
+    , " (toupper(vals[i].first) == c || toupper(vals[i].second) == c) {"
+    )
+  ]
+, [ ( NormalTok , "                    used.insert(i);" ) ]
+, [ ( NormalTok , "                    " )
+  , ( ControlFlowTok , "break" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                }" ) ]
+, [ ( NormalTok , "            }" ) ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (x == used.size()) " )
+  , ( ControlFlowTok , "break" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    }" ) ]
+, [ ( NormalTok , "    " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " used.size() == w.size();" )
+  ]
+, [ ( NormalTok , "}" ) ]
+, []
+, []
+, [ ( DataTypeTok , "int" ) , ( NormalTok , " main() {" ) ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "list_t" )
+  , ( NormalTok , " vals{ {" )
+  , ( CharTok , "'B'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'O'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'X'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'K'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'D'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'Q'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'C'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'P'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'N'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'A'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'G'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'T'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'R'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'E'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'T'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'G'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'Q'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'D'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'F'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'S'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'J'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'W'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'H'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'U'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'V'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'I'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'A'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'N'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'O'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'B'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'E'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'R'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'F'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'S'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'L'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'Y'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'P'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'C'" )
+  , ( NormalTok , "}, {" )
+  , ( CharTok , "'Z'" )
+  , ( NormalTok , "," )
+  , ( CharTok , "'M'" )
+  , ( NormalTok , "} };" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "vector<" )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "string> words{" )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , "," )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , "," )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , "," )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , "," )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , "," )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , "," )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , "};" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (" )
+  , ( AttributeTok , "const" )
+  , ( NormalTok , " " )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "string& w : words) {" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "cout << w << " )
+  , ( StringTok , "\": \"" )
+  , ( NormalTok , " << " )
+  , ( BuiltInTok , "std::" )
+  , ( NormalTok , "boolalpha << can_make_word(w,vals) << " )
+  , ( StringTok , "\"." )
+  , ( SpecialCharTok , "\\n" )
+  , ( StringTok , "\"" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    }" ) ]
+, []
+, [ ( NormalTok , "}" ) ]
+]
diff --git a/test/expected/abc.cs.native b/test/expected/abc.cs.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.cs.native
@@ -0,0 +1,362 @@
+[ [ ( KeywordTok , "using" )
+  , ( NormalTok , " System." )
+  , ( FunctionTok , "Collections" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "Generic" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( KeywordTok , "using" )
+  , ( NormalTok , " System." )
+  , ( FunctionTok , "Linq" )
+  , ( NormalTok , ";" )
+  ]
+, []
+, [ ( DataTypeTok , "void" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "Main" )
+  , ( NormalTok , "()" )
+  ]
+, [ ( NormalTok , "{" ) ]
+, [ ( NormalTok , "        List<" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , "> blocks =" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "new" )
+  , ( NormalTok , " List<" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , ">() { " )
+  , ( StringTok , "\"bo\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"xk\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"dq\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"cp\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"na\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"gt\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"re\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"tg\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"qd\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"fs\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "                " )
+  , ( StringTok , "\"jw\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"hu\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"vi\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"an\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ob\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"er\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"fs\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ly\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"pc\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"zm\"" )
+  , ( NormalTok , " };" )
+  ]
+, [ ( NormalTok , "        List<" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , "> words = " )
+  , ( KeywordTok , "new" )
+  , ( NormalTok , " List<" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , ">() {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , "};" )
+  ]
+, [ ( NormalTok , "        " ) ]
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "var" )
+  , ( NormalTok , " solver = " )
+  , ( KeywordTok , "new" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "ABC" )
+  , ( NormalTok , "(blocks);" )
+  ]
+, [ ( NormalTok , "        " ) ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "foreach" )
+  , ( NormalTok , "( var word " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " words)" )
+  ]
+, [ ( NormalTok , "        {" ) ]
+, [ ( NormalTok , "                Console." )
+  , ( FunctionTok , "WriteLine" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"{0} :{1}\"" )
+  , ( NormalTok , ", word, solver." )
+  , ( FunctionTok , "CanMake" )
+  , ( NormalTok , "(word));" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "}" ) ]
+, []
+, [ ( KeywordTok , "class" ) , ( NormalTok , " ABC" ) ]
+, [ ( NormalTok , "{" ) ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "readonly" )
+  , ( NormalTok , " Dictionary<" )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , ", List<" )
+  , ( DataTypeTok , "int" )
+  , ( NormalTok , ">> _blockDict = " )
+  , ( KeywordTok , "new" )
+  , ( NormalTok , " Dictionary<" )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , ", List<" )
+  , ( DataTypeTok , "int" )
+  , ( NormalTok , ">>();" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "bool" )
+  , ( NormalTok , "[] _used;" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "int" )
+  , ( NormalTok , " _nextBlock;" )
+  ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "readonly" )
+  , ( NormalTok , " List<" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , "> _blocks;" )
+  ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "private" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "void" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "AddBlockChar" )
+  , ( NormalTok , "(" )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , " c)" )
+  ]
+, [ ( NormalTok , "        {" ) ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (!_blockDict." )
+  , ( FunctionTok , "ContainsKey" )
+  , ( NormalTok , "(c))" )
+  ]
+, [ ( NormalTok , "                {" ) ]
+, [ ( NormalTok , "                        _blockDict[c] = " )
+  , ( KeywordTok , "new" )
+  , ( NormalTok , " List<" )
+  , ( DataTypeTok , "int" )
+  , ( NormalTok , ">();" )
+  ]
+, [ ( NormalTok , "                }" ) ]
+, [ ( NormalTok , "                _blockDict[c]." )
+  , ( FunctionTok , "Add" )
+  , ( NormalTok , "(_nextBlock);" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "private" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "void" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "AddBlock" )
+  , ( NormalTok , "(" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , " block)" )
+  ]
+, [ ( NormalTok , "        {" ) ]
+, [ ( NormalTok , "                " )
+  , ( FunctionTok , "AddBlockChar" )
+  , ( NormalTok , "(block[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "]);" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( FunctionTok , "AddBlockChar" )
+  , ( NormalTok , "(block[" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , "]);" )
+  ]
+, [ ( NormalTok , "                _nextBlock++;" ) ]
+, [ ( NormalTok , "        }" ) ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "ABC" )
+  , ( NormalTok , "(List<" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , "> blocks)" )
+  ]
+, [ ( NormalTok , "        {" ) ]
+, [ ( NormalTok , "                _blocks = blocks;" ) ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "foreach" )
+  , ( NormalTok , " (var block " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " blocks)" )
+  ]
+, [ ( NormalTok , "                {" ) ]
+, [ ( NormalTok , "                        " )
+  , ( FunctionTok , "AddBlock" )
+  , ( NormalTok , "(block);" )
+  ]
+, [ ( NormalTok , "                }" ) ]
+, [ ( NormalTok , "        }" ) ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "bool" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "CanMake" )
+  , ( NormalTok , "(" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , " word)" )
+  ]
+, [ ( NormalTok , "        {" ) ]
+, [ ( NormalTok , "                word = word." )
+  , ( FunctionTok , "ToLower" )
+  , ( NormalTok , "();" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (word." )
+  , ( FunctionTok , "Length" )
+  , ( NormalTok , " > _blockDict." )
+  , ( FunctionTok , "Count" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "                {" ) ]
+, [ ( NormalTok , "                        " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "false" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                }" ) ]
+, [ ( NormalTok , "                _used = " )
+  , ( KeywordTok , "new" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "bool" )
+  , ( NormalTok , "[_blocks." )
+  , ( FunctionTok , "Count" )
+  , ( NormalTok , "];" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "TryMake" )
+  , ( NormalTok , "(word);" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "bool" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "TryMake" )
+  , ( NormalTok , "(" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , " word)" )
+  ]
+, [ ( NormalTok , "        {" ) ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (word == " )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "Empty" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "                {" ) ]
+, [ ( NormalTok , "                        " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                }" ) ]
+, [ ( NormalTok , "                " )
+  , ( DataTypeTok , "var" )
+  , ( NormalTok , " blocks = _blockDict[word[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "]]." )
+  , ( FunctionTok , "Where" )
+  , ( NormalTok , "(b => !_used[b]);" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "foreach" )
+  , ( NormalTok , " (var block " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " blocks)" )
+  ]
+, [ ( NormalTok , "                {" ) ]
+, [ ( NormalTok , "                        _used[block] = " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                        " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (" )
+  , ( FunctionTok , "TryMake" )
+  , ( NormalTok , "(word." )
+  , ( FunctionTok , "Substring" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ")))" )
+  ]
+, [ ( NormalTok , "                        {" ) ]
+, [ ( NormalTok , "                                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                        }" ) ]
+, [ ( NormalTok , "                        _used[block] = " )
+  , ( KeywordTok , "false" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                }" ) ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "false" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "}" ) ]
+, []
+]
diff --git a/test/expected/abc.d.native b/test/expected/abc.d.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.d.native
@@ -0,0 +1,180 @@
+[ [ ( KeywordTok , "import" )
+  , ( NormalTok
+    , " std.stdio, std.ascii, std.algorithm, std.array, std.range;"
+    )
+  ]
+, []
+, [ ( KeywordTok , "alias" )
+  , ( NormalTok , " Block = " )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , "[" )
+  , ( DecValTok , "2" )
+  , ( NormalTok , "];" )
+  ]
+, []
+, [ ( DataTypeTok , "bool" )
+  , ( NormalTok , " canMakeWord(" )
+  , ( KeywordTok , "immutable" )
+  , ( NormalTok , " Block[] blocks, " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " " )
+  , ( BuiltInTok , "string" )
+  , ( NormalTok , " word) " )
+  , ( KeywordTok , "pure" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "nothrow" )
+  ]
+, [ ( KeywordTok , "in " ) , ( NormalTok , "{" ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "assert" )
+  , ( NormalTok , "(blocks.all!(w => w[].all!isAlpha));" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "assert" )
+  , ( NormalTok , "(word.all!isAlpha);" )
+  ]
+, [ ( NormalTok , "} " )
+  , ( KeywordTok , "body" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "bool" )
+  , ( NormalTok , " inner(" )
+  , ( BuiltInTok , "size_t" )
+  , ( NormalTok , "[] indexes, " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " " )
+  , ( BuiltInTok , "string" )
+  , ( NormalTok , " w) " )
+  , ( KeywordTok , "pure" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "nothrow" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (w.empty)" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "immutable" )
+  , ( NormalTok , " c = w[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "].toUpper;" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "foreach" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "ref" )
+  , ( NormalTok , " idx; indexes) {" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (blocks[idx][" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "].toUpper != c &&" )
+  ]
+, [ ( NormalTok , "                blocks[idx][" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , "].toUpper != c)" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "continue" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "            indexes[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "].swap(idx);" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (inner(indexes[" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , " .. $], w[" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , " .. $]))" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "            indexes[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "].swap(idx);" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "false" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    }" ) ]
+, []
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " inner(blocks." )
+  , ( DataTypeTok , "length" )
+  , ( NormalTok , ".iota.array, word);" )
+  ]
+, [ ( NormalTok , "}" ) ]
+, []
+, [ ( DataTypeTok , "void" ) , ( NormalTok , " main() {" ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "enum" )
+  , ( NormalTok , " Block[] blocks = " )
+  , ( StringTok , "\"BO XK DQ CP NA GT RE TG QD FS" )
+  ]
+, [ ( StringTok
+    , "                           JW HU VI AN OB ER FS LY PC ZM\""
+    )
+  , ( NormalTok , ".split;" )
+  ]
+, []
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "foreach" )
+  , ( NormalTok , " (w; " )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , " ~ " )
+  , ( StringTok , "\"A BARK BoOK TrEAT COmMoN SQUAD conFUsE\"" )
+  , ( NormalTok , ".split)" )
+  ]
+, [ ( NormalTok , "        writefln(" )
+  , ( SpecialStringTok , "`\"%s\" %s`" )
+  , ( NormalTok , ", w, blocks.canMakeWord(w));" )
+  ]
+, []
+, [ ( NormalTok , "    " ) , ( CommentTok , "// Extra test." ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "immutable" )
+  , ( NormalTok , " Block[] blocks2 = [" )
+  , ( StringTok , "\"AB\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"AB\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"AC\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"AC\"" )
+  , ( NormalTok , "];" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "immutable" )
+  , ( NormalTok , " word = " )
+  , ( StringTok , "\"abba\"" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    writefln(" )
+  , ( SpecialStringTok , "`\"%s\" %s`" )
+  , ( NormalTok , ", word, blocks2.canMakeWord(word));" )
+  ]
+, [ ( NormalTok , "}" ) ]
+]
diff --git a/test/expected/abc.fortran.native b/test/expected/abc.fortran.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.fortran.native
@@ -0,0 +1,399 @@
+[ [ ( CommentTok
+    , "!-*- mode: compilation; default-directory: \"/tmp/\" -*-"
+    )
+  ]
+, [ ( CommentTok , "!Compilation started at Thu Jun  5 01:52:03" )
+  ]
+, [ ( CommentTok , "!" ) ]
+, [ ( CommentTok
+    , "!make f && for a in '' a bark book treat common squad confuse ; do echo $a | ./f ; done"
+    )
+  ]
+, [ ( CommentTok
+    , "!gfortran -std=f2008 -Wall -fopenmp -ffree-form -fall-intrinsics -fimplicit-none -g f.f08 -o f"
+    )
+  ]
+, [ ( CommentTok , "! T                      " ) ]
+, [ ( CommentTok , "! T  A                    NA" ) ]
+, [ ( CommentTok , "! T  BARK                 BO NA RE XK" ) ]
+, [ ( CommentTok , "! F  BOOK                 OB BO -- --" ) ]
+, [ ( CommentTok , "! T  TREAT                GT RE ER NA TG" ) ]
+, [ ( CommentTok , "! F  COMMON               PC OB ZM -- -- --" )
+  ]
+, [ ( CommentTok , "! T  SQUAD                FS DQ HU NA QD" ) ]
+, [ ( CommentTok
+    , "! T  CONFUSE              CP BO NA FS HU FS RE"
+    )
+  ]
+, [ ( CommentTok , "!" ) ]
+, [ ( CommentTok , "!Compilation finished at Thu Jun  5 01:52:03" )
+  ]
+, []
+, [ ( KeywordTok , "program" ) , ( NormalTok , " abc" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "implicit" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "none" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DataTypeTok , "integer" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "parameter" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " nblocks " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "20" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DataTypeTok , "character(len=nblocks)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " goal" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DataTypeTok , "integer" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "dimension(nblocks)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " solution" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DataTypeTok , "character(len=2)" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "dimension(0:nblocks)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " blocks_copy, blocks " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "&" )
+  ]
+, [ ( NormalTok , "       " )
+  , ( KeywordTok , "&(/" )
+  , ( StringTok , "'--'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'BO'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'XK'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'DQ'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'CP'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'NA'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'GT'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'RE'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'TG'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'QD'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'FS'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'JW'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'HU'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'VI'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'AN'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'OB'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'ER'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'FS'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'LY'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'PC'" )
+  , ( NormalTok , "," )
+  , ( StringTok , "'ZM'" )
+  , ( KeywordTok , "/)" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DataTypeTok , "logical" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " valid" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DataTypeTok , "integer" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " i, iostat" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "read(" )
+  , ( DecValTok , "5" )
+  , ( NormalTok , "," )
+  , ( FunctionTok , "*" )
+  , ( NormalTok , "," )
+  , ( FunctionTok , "iostat" )
+  , ( KeywordTok , "=" )
+  , ( FunctionTok , "iostat)" )
+  , ( NormalTok , " goal" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (iostat " )
+  , ( OperatorTok , ".ne." )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ") goal " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( StringTok , "''" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "call" )
+  , ( NormalTok , " ucase(goal)" )
+  ]
+, [ ( NormalTok , "  solution " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  ]
+, [ ( NormalTok , "  blocks_copy " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " blocks" )
+  ]
+, [ ( NormalTok , "  valid " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " assign_block(goal(" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ":" )
+  , ( BuiltInTok , "len_trim" )
+  , ( NormalTok , "(goal)), blocks, solution, " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "write(" )
+  , ( DecValTok , "6" )
+  , ( NormalTok , "," )
+  , ( FunctionTok , "*)" )
+  , ( NormalTok , " valid, " )
+  , ( StringTok , "' '" )
+  , ( KeywordTok , "//" )
+  , ( NormalTok , "goal, (" )
+  , ( StringTok , "' '" )
+  , ( KeywordTok , "//" )
+  , ( NormalTok , "blocks_copy(solution(i)), i" )
+  , ( KeywordTok , "=" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , "," )
+  , ( BuiltInTok , "len_trim" )
+  , ( NormalTok , "(goal))" )
+  ]
+, []
+, [ ( CommentTok , "contains" ) ]
+, []
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "recursive" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "function" )
+  , ( NormalTok , " assign_block(goal, blocks, solution, n) " )
+  , ( KeywordTok , "result" )
+  , ( NormalTok , "(valid)" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "implicit" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "none" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "logical" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " valid" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "character(len=*)" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "intent(in)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " goal" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "character(len=2)" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "dimension(0:)" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "intent(inout)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " blocks" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "integer" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "dimension(:)" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "intent(out)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " solution" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "integer" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "intent(in)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " n" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "integer" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " i" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "character(len=2)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " backing_store" )
+  ]
+, [ ( NormalTok , "    valid " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , ".true." )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (" )
+  , ( FunctionTok , "len" )
+  , ( NormalTok , "(goal)" )
+  , ( KeywordTok , "+" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , " " )
+  , ( OperatorTok , ".eq." )
+  , ( NormalTok , " n) " )
+  , ( KeywordTok , "return" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "do" )
+  , ( NormalTok , " i" )
+  , ( KeywordTok , "=" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ", " )
+  , ( FunctionTok , "size" )
+  , ( NormalTok , "(blocks)" )
+  ]
+, [ ( NormalTok , "       " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (" )
+  , ( BuiltInTok , "index" )
+  , ( NormalTok , "(blocks(i),goal(n:n)) " )
+  , ( OperatorTok , ".ne." )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , "then" )
+  ]
+, [ ( NormalTok , "          backing_store " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " blocks(i)" )
+  ]
+, [ ( NormalTok , "          blocks(i) " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( StringTok , "''" )
+  ]
+, [ ( NormalTok , "          solution(n) " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " i" )
+  ]
+, [ ( NormalTok , "          " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (assign_block(goal, blocks, solution, n" )
+  , ( KeywordTok , "+" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ")) " )
+  , ( KeywordTok , "return" )
+  ]
+, [ ( NormalTok , "          blocks(i) " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " backing_store" )
+  ]
+, [ ( NormalTok , "       " ) , ( KeywordTok , "end if" ) ]
+, [ ( NormalTok , "    " ) , ( KeywordTok , "end do" ) ]
+, [ ( NormalTok , "    valid " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( ConstantTok , ".false." )
+  ]
+, [ ( NormalTok , "    " ) , ( KeywordTok , "return" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "end function" )
+  , ( NormalTok , " assign_block" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "subroutine" )
+  , ( NormalTok , " ucase(a)" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "implicit" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "none" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "character(len=*)" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "intent(inout)" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " a" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "integer" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "::" )
+  , ( NormalTok , " i, j" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "do" )
+  , ( NormalTok , " i " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ", " )
+  , ( BuiltInTok , "len_trim" )
+  , ( NormalTok , "(a)" )
+  ]
+, [ ( NormalTok , "       j " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( BuiltInTok , "index" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "'abcdefghijklmnopqrstuvwxyz'" )
+  , ( NormalTok , ",a(i:i))" )
+  ]
+, [ ( NormalTok , "       " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (j " )
+  , ( OperatorTok , ".ne." )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ") a(i:i) " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'ABCDEFGHIJKLMNOPQRSTUVWXYZ'" )
+  , ( NormalTok , "(j:j)" )
+  ]
+, [ ( NormalTok , "    " ) , ( KeywordTok , "end do" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "end subroutine" )
+  , ( NormalTok , " ucase" )
+  ]
+, []
+, [ ( KeywordTok , "end program" ) , ( NormalTok , " abc" ) ]
+]
diff --git a/test/expected/abc.go.native b/test/expected/abc.go.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.go.native
@@ -0,0 +1,153 @@
+[ [ ( KeywordTok , "package" ) , ( NormalTok , " main" ) ]
+, []
+, [ ( KeywordTok , "import" ) , ( NormalTok , " (" ) ]
+, [ ( NormalTok , "        " ) , ( StringTok , "\"fmt\"" ) ]
+, [ ( NormalTok , "        " ) , ( StringTok , "\"strings\"" ) ]
+, [ ( NormalTok , ")" ) ]
+, []
+, [ ( KeywordTok , "func" )
+  , ( NormalTok , " newSpeller(blocks " )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , "func" )
+  , ( NormalTok , "(" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , ") " )
+  , ( DataTypeTok , "bool" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "        bl := strings.Fields(blocks)" ) ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "func" )
+  , ( NormalTok , "(word " )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , ") " )
+  , ( DataTypeTok , "bool" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " r(word, bl)" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "}" ) ]
+, []
+, [ ( KeywordTok , "func" )
+  , ( NormalTok , " r(word " )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , ", bl []" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , ") " )
+  , ( DataTypeTok , "bool" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " word == " )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "true" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "        c := word[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "] | " )
+  , ( DecValTok , "32" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " i, b := " )
+  , ( KeywordTok , "range" )
+  , ( NormalTok , " bl {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " c == b[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "]|" )
+  , ( DecValTok , "32" )
+  , ( NormalTok , " || c == b[" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , "]|" )
+  , ( DecValTok , "32" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "                        bl[i], bl[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "] = bl[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "], b" )
+  ]
+, [ ( NormalTok , "                        " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " r(word[" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ":], bl[" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ":]) == " )
+  , ( OtherTok , "true" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "                                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "true" )
+  ]
+, [ ( NormalTok , "                        }" ) ]
+, [ ( NormalTok , "                        bl[i], bl[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "] = bl[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "], bl[i]" )
+  ]
+, [ ( NormalTok , "                }" ) ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "false" )
+  ]
+, [ ( NormalTok , "}" ) ]
+, []
+, [ ( KeywordTok , "func" ) , ( NormalTok , " main() {" ) ]
+, [ ( NormalTok , "        sp := newSpeller(" ) ]
+, [ ( NormalTok , "                " )
+  , ( StringTok
+    , "\"BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM\""
+    )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " _, word := " )
+  , ( KeywordTok , "range" )
+  , ( NormalTok , " []" )
+  , ( DataTypeTok , "string" )
+  , ( NormalTok , "{" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , "} {" )
+  ]
+, [ ( NormalTok , "                fmt.Println(word, sp(word))" ) ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "}" ) ]
+]
diff --git a/test/expected/abc.haskell.native b/test/expected/abc.haskell.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.haskell.native
@@ -0,0 +1,130 @@
+[ [ ( KeywordTok , "import" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Data.List" )
+  , ( NormalTok , " (delete)" )
+  ]
+, [ ( KeywordTok , "import" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Data.Char" )
+  , ( NormalTok , " (toUpper)" )
+  ]
+, []
+, [ ( CommentTok
+    , "-- returns list of all solutions, each solution being a list of blocks"
+    )
+  ]
+, [ ( OtherTok , "abc ::" )
+  , ( NormalTok , " (" )
+  , ( DataTypeTok , "Eq" )
+  , ( NormalTok , " a) " )
+  , ( OtherTok , "=>" )
+  , ( NormalTok , " [[a]] " )
+  , ( OtherTok , "->" )
+  , ( NormalTok , " [a] " )
+  , ( OtherTok , "->" )
+  , ( NormalTok , " [[[a]]]" )
+  ]
+, [ ( NormalTok , "abc _ [] " )
+  , ( FunctionTok , "=" )
+  , ( NormalTok , " [[]]" )
+  ]
+, [ ( NormalTok , "abc blocks (c" )
+  , ( FunctionTok , ":" )
+  , ( NormalTok , "cs) " )
+  , ( FunctionTok , "=" )
+  , ( NormalTok , " [b" )
+  , ( FunctionTok , ":" )
+  , ( NormalTok , "ans " )
+  , ( FunctionTok , "|" )
+  , ( NormalTok , " b " )
+  , ( OtherTok , "<-" )
+  , ( NormalTok , " blocks, c " )
+  , ( OtherTok , "`elem`" )
+  , ( NormalTok , " b," )
+  ]
+, [ ( NormalTok , "                             ans " )
+  , ( OtherTok , "<-" )
+  , ( NormalTok , " abc (delete b blocks) cs]" )
+  ]
+, []
+, [ ( NormalTok , "blocks " )
+  , ( FunctionTok , "=" )
+  , ( NormalTok , " [" )
+  , ( StringTok , "\"BO\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"XK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"DQ\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"CP\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"NA\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"GT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"RE\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TG\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"QD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "          " )
+  , ( StringTok , "\"JW\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"HU\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"VI\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"AN\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"OB\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ER\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"LY\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"PC\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ZM\"" )
+  , ( NormalTok , "]" )
+  ]
+, []
+, [ ( OtherTok , "main ::" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "IO" )
+  , ( NormalTok , " ()" )
+  ]
+, [ ( NormalTok , "main " )
+  , ( FunctionTok , "=" )
+  , ( NormalTok , " mapM_ (\\w " )
+  , ( OtherTok , "->" )
+  , ( NormalTok , " print (w, not " )
+  , ( FunctionTok , "." )
+  , ( NormalTok , " null " )
+  , ( FunctionTok , "$" )
+  , ( NormalTok , " abc blocks (map toUpper w)))" )
+  ]
+, [ ( NormalTok , "         [" )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BoOK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TrEAT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"COmMoN\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"conFUsE\"" )
+  , ( NormalTok , "]" )
+  ]
+]
diff --git a/test/expected/abc.java.native b/test/expected/abc.java.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.java.native
@@ -0,0 +1,341 @@
+[ [ ( KeywordTok , "import" )
+  , ( ImportTok , " java.util.Arrays;" )
+  ]
+, []
+, [ ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "class" )
+  , ( NormalTok , " ABC{" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "private" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "static" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "void" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "swap" )
+  , ( NormalTok , "(" )
+  , ( DataTypeTok , "int" )
+  , ( NormalTok , " i, " )
+  , ( DataTypeTok , "int" )
+  , ( NormalTok , " j, " )
+  , ( BuiltInTok , "Object" )
+  , ( KeywordTok , "... " )
+  , ( NormalTok , "arr){" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "Object" )
+  , ( NormalTok , " tmp = arr[i];" )
+  ]
+, [ ( NormalTok , "                arr[i] = arr[j];" ) ]
+, [ ( NormalTok , "                arr[j] = tmp;" ) ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "        " ) ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "static" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "boolean" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( BuiltInTok , "String" )
+  , ( NormalTok , " word, " )
+  , ( BuiltInTok , "String" )
+  , ( KeywordTok , "... " )
+  , ( NormalTok , "blocks) {" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , "(word." )
+  , ( FunctionTok , "length" )
+  , ( NormalTok , "() == " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "         " ) ]
+, [ ( NormalTok , "            " )
+  , ( DataTypeTok , "char" )
+  , ( NormalTok , " c = " )
+  , ( BuiltInTok , "Character" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "toUpperCase" )
+  , ( NormalTok , "(word." )
+  , ( FunctionTok , "charAt" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "));" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , "(" )
+  , ( DataTypeTok , "int" )
+  , ( NormalTok , " i = " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "; i < blocks." )
+  , ( FunctionTok , "length" )
+  , ( NormalTok , "; i++) {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "String" )
+  , ( NormalTok , " b = blocks[i];" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , "(" )
+  , ( BuiltInTok , "Character" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "toUpperCase" )
+  , ( NormalTok , "(b." )
+  , ( FunctionTok , "charAt" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ")) != c && " )
+  , ( BuiltInTok , "Character" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "toUpperCase" )
+  , ( NormalTok , "(b." )
+  , ( FunctionTok , "charAt" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ")) != c)" )
+  ]
+, [ ( NormalTok , "                    " )
+  , ( KeywordTok , "continue" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( FunctionTok , "swap" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ", i, blocks);" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(word." )
+  , ( FunctionTok , "substring" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , "), " )
+  , ( BuiltInTok , "Arrays" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "copyOfRange" )
+  , ( NormalTok , "(blocks, " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ", blocks." )
+  , ( FunctionTok , "length" )
+  , ( NormalTok , ")))" )
+  ]
+, [ ( NormalTok , "                    " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( FunctionTok , "swap" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ", i, blocks);" )
+  ]
+, [ ( NormalTok , "            }" ) ]
+, [ ( NormalTok , "         " ) ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "false" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "        " ) ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "static" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "void" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "main" )
+  , ( NormalTok , "(" )
+  , ( BuiltInTok , "String" )
+  , ( NormalTok , "[] args){" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "String" )
+  , ( NormalTok , "[] blocks = {" )
+  , ( StringTok , "\"BO\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"XK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"DQ\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"CP\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"NA\"" )
+  , ( NormalTok , ", " )
+  ]
+, [ ( NormalTok , "                                " )
+  , ( StringTok , "\"GT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"RE\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TG\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"QD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , ", " )
+  ]
+, [ ( NormalTok , "                                " )
+  , ( StringTok , "\"JW\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"HU\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"VI\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"AN\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"OB\"" )
+  , ( NormalTok , ", " )
+  ]
+, [ ( NormalTok , "                                " )
+  , ( StringTok , "\"ER\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"LY\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"PC\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ZM\"" )
+  , ( NormalTok , "};" )
+  ]
+, []
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "System" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "out" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"" )
+  , ( SpecialCharTok , "\\\"\\\"" )
+  , ( StringTok , ": \"" )
+  , ( NormalTok , " + " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , ", blocks));" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "System" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "out" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"A: \"" )
+  , ( NormalTok , " + " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , ", blocks));" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "System" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "out" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"BARK: \"" )
+  , ( NormalTok , " + " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , ", blocks));" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "System" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "out" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"book: \"" )
+  , ( NormalTok , " + " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"book\"" )
+  , ( NormalTok , ", blocks));" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "System" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "out" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"treat: \"" )
+  , ( NormalTok , " + " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"treat\"" )
+  , ( NormalTok , ", blocks));" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "System" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "out" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"COMMON: \"" )
+  , ( NormalTok , " + " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , ", blocks));" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "System" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "out" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"SQuAd: \"" )
+  , ( NormalTok , " + " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"SQuAd\"" )
+  , ( NormalTok , ", blocks));" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( BuiltInTok , "System" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "out" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"CONFUSE: \"" )
+  , ( NormalTok , " + " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , ", blocks));" )
+  ]
+, [ ( NormalTok , "                " ) ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "}" ) ]
+]
diff --git a/test/expected/abc.javascript.native b/test/expected/abc.javascript.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.javascript.native
@@ -0,0 +1,191 @@
+[ [ ( KeywordTok , "let" )
+  , ( NormalTok , " characters " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( StringTok
+    , "\"BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM\""
+    )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( KeywordTok , "let" )
+  , ( NormalTok , " blocks " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "characters" )
+  , ( NormalTok , "." )
+  , ( AttributeTok , "split" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\" \"" )
+  , ( NormalTok , ")." )
+  , ( AttributeTok , "map" )
+  , ( NormalTok , "(pair " )
+  , ( OperatorTok , "=>" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "pair" )
+  , ( NormalTok , "." )
+  , ( AttributeTok , "split" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , "))" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , " " ) ]
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " " )
+  , ( AttributeTok , "isWordPossible" )
+  , ( NormalTok , "(word) " )
+  , ( OperatorTok , "{" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "var" )
+  , ( NormalTok , " letters " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " [..." )
+  , ( VariableTok , "word" )
+  , ( NormalTok , "." )
+  , ( AttributeTok , "toUpperCase" )
+  , ( NormalTok , "()]" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "var" )
+  , ( NormalTok , " length " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "letters" )
+  , ( NormalTok , "." )
+  , ( AttributeTok , "length" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "var" )
+  , ( NormalTok , " copy " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "new" )
+  , ( NormalTok , " " )
+  , ( AttributeTok , "Set" )
+  , ( NormalTok , "(blocks)" )
+  , ( OperatorTok , ";" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "let" )
+  , ( NormalTok , " letter of letters) " )
+  , ( OperatorTok , "{" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "let" )
+  , ( NormalTok , " block of copy) " )
+  , ( OperatorTok , "{" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( KeywordTok , "let" )
+  , ( NormalTok , " index " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "block" )
+  , ( NormalTok , "." )
+  , ( AttributeTok , "indexOf" )
+  , ( NormalTok , "(letter)" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , " " ) ]
+, [ ( NormalTok , "      " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (index " )
+  , ( OperatorTok , "!==" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "-1" )
+  , ( NormalTok , ") " )
+  , ( OperatorTok , "{" )
+  ]
+, [ ( NormalTok , "        length" ) , ( OperatorTok , "--;" ) ]
+, [ ( NormalTok , "        " )
+  , ( VariableTok , "copy" )
+  , ( NormalTok , "." )
+  , ( AttributeTok , "delete" )
+  , ( NormalTok , "(block)" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "break" )
+  , ( OperatorTok , ";" )
+  , ( NormalTok , "  " )
+  ]
+, [ ( NormalTok , "      " ) , ( OperatorTok , "}" ) ]
+, [ ( NormalTok , "    " ) , ( OperatorTok , "}" ) ]
+, []
+, [ ( NormalTok , "  " ) , ( OperatorTok , "}" ) ]
+, [ ( NormalTok , "  " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " " )
+  , ( OperatorTok , "!" )
+  , ( NormalTok , "length" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( OperatorTok , "}" ) , ( NormalTok , "    " ) ]
+, [ ( NormalTok , " " ) ]
+, [ ( NormalTok , "[ " ) ]
+, [ ( NormalTok , "  " )
+  , ( StringTok , "\"A\"" )
+  , ( OperatorTok , "," )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "  " )
+  , ( StringTok , "\"BARK\"" )
+  , ( OperatorTok , "," )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "  " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( OperatorTok , "," )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "  " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( OperatorTok , "," )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "  " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( OperatorTok , "," )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "  " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( OperatorTok , "," )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "  " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "]." )
+  , ( AttributeTok , "forEach" )
+  , ( NormalTok , "(word " )
+  , ( OperatorTok , "=>" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "console" )
+  , ( NormalTok , "." )
+  , ( AttributeTok , "log" )
+  , ( NormalTok , "(" )
+  , ( VerbatimStringTok , "`" )
+  , ( SpecialCharTok , "${" )
+  , ( NormalTok , "word" )
+  , ( SpecialCharTok , "}" )
+  , ( VerbatimStringTok , ": " )
+  , ( SpecialCharTok , "${" )
+  , ( AttributeTok , "isWordPossible" )
+  , ( NormalTok , "(word)" )
+  , ( SpecialCharTok , "}" )
+  , ( VerbatimStringTok , "`" )
+  , ( NormalTok , "))" )
+  , ( OperatorTok , ";" )
+  ]
+, []
+]
diff --git a/test/expected/abc.julia.native b/test/expected/abc.julia.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.julia.native
@@ -0,0 +1,35 @@
+[ [ ( KeywordTok , "function" )
+  , ( NormalTok , " abc (str, list)" )
+  ]
+, [ ( NormalTok , "  isempty(str) && " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " true" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " i = " )
+  , ( FloatTok , "1" )
+  , ( NormalTok , ":length(list)" )
+  ]
+, [ ( NormalTok , "    str[" )
+  , ( KeywordTok , "end" )
+  , ( NormalTok , "] " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " list[i] && " )
+  ]
+, [ ( NormalTok , "    any([abc(str[" )
+  , ( FloatTok , "1" )
+  , ( NormalTok , ":" )
+  , ( KeywordTok , "end" )
+  , ( NormalTok , "-" )
+  , ( FloatTok , "1" )
+  , ( NormalTok , "], deleteat!(copy(list), i))]) &&" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " true" )
+  ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "  false" ) ]
+, [ ( KeywordTok , "end" ) ]
+]
diff --git a/test/expected/abc.kotlin.native b/test/expected/abc.kotlin.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.kotlin.native
@@ -0,0 +1,305 @@
+[ [ ( KeywordTok , "import" )
+  , ( NormalTok , " " )
+  , ( ImportTok , "java.util.Arrays" )
+  ]
+, []
+, [ ( CommentTok , "/*" ) ]
+, [ ( CommentTok , "    Swap elements i and j of a Kotlin Array." )
+  ]
+, [ ( CommentTok , " */" ) ]
+, [ ( KeywordTok , "fun" )
+  , ( NormalTok , " <" )
+  , ( DataTypeTok , "T" )
+  , ( NormalTok , "> " )
+  , ( FunctionTok , "Array" )
+  , ( NormalTok , "<" )
+  , ( DataTypeTok , "T" )
+  , ( NormalTok , ">." )
+  , ( FunctionTok , "swap" )
+  , ( NormalTok , "(" )
+  , ( VariableTok , "i" )
+  , ( NormalTok , ": " )
+  , ( DataTypeTok , "Int" )
+  , ( NormalTok , ", " )
+  , ( VariableTok , "j" )
+  , ( NormalTok , ": " )
+  , ( DataTypeTok , "Int" )
+  , ( NormalTok , ") {" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "tmp" )
+  , ( NormalTok , " = " )
+  , ( KeywordTok , "this" )
+  , ( NormalTok , "[i]" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "this" )
+  , ( NormalTok , "[i] = " )
+  , ( KeywordTok , "this" )
+  , ( NormalTok , "[j]" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "this" )
+  , ( NormalTok , "[j] = tmp" )
+  ]
+, [ ( NormalTok , "}" ) ]
+, []
+, [ ( KeywordTok , "data" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "class" )
+  , ( NormalTok , " Block(" )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "block" )
+  , ( NormalTok , ": " )
+  , ( DataTypeTok , "String" )
+  , ( NormalTok , ")" )
+  ]
+, []
+, [ ( NormalTok , "/*" ) ]
+, [ ( NormalTok
+    , " *  Not the most elegant way but interesting from an highlighting perspective ;)"
+    )
+  ]
+, [ ( NormalTok , " */" ) ]
+, [ ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "class" )
+  , ( NormalTok , " ABC() {" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "class" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "object" )
+  , ( NormalTok , " {" )
+  ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "fun" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "canMakeWord" )
+  , ( NormalTok , "(" )
+  , ( VariableTok , "word" )
+  , ( NormalTok , ": " )
+  , ( DataTypeTok , "String" )
+  , ( NormalTok , ", " )
+  , ( VariableTok , "blocks" )
+  , ( NormalTok , ": " )
+  , ( DataTypeTok , "Array" )
+  , ( NormalTok , "<" )
+  , ( VariableTok , "Block" )
+  , ( NormalTok , ">): " )
+  , ( DataTypeTok , "Boolean" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (word.length() == " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  ]
+, []
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "c" )
+  , ( NormalTok , " = Character.toUpperCase(word.charAt(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (i " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "..blocks.size - " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ") {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "b" )
+  , ( NormalTok , " = blocks[i]" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (Character.toUpperCase(b.block.charAt(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok
+    , ")) != c && Character.toUpperCase(b.block.charAt("
+    )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ")) != c)" )
+  ]
+, [ ( NormalTok , "                    " )
+  , ( ControlFlowTok , "continue" )
+  ]
+, [ ( NormalTok , "                blocks.swap(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ", i)" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (canMakeWord(word.substring(" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , "), Arrays.copyOfRange(blocks, " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ", blocks.size)))" )
+  ]
+, [ ( NormalTok , "                    " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  ]
+, [ ( NormalTok , "                blocks.swap(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ", i)" )
+  ]
+, [ ( NormalTok , "            }" ) ]
+, []
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "false" )
+  ]
+, [ ( NormalTok , "        }" ) ]
+, []
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "public" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "fun" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "main" )
+  , ( NormalTok , "(" )
+  , ( VariableTok , "args" )
+  , ( NormalTok , ": " )
+  , ( DataTypeTok , "Array" )
+  , ( NormalTok , "<" )
+  , ( VariableTok , "String" )
+  , ( NormalTok , ">) {" )
+  ]
+, []
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "blocksString" )
+  , ( NormalTok , " = array(" )
+  , ( StringTok , "\"BO\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"XK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"DQ\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"CP\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"NA\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"GT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"RE\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TG\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"QD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"JW\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "                                             " )
+  , ( StringTok , "\"HU\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"VI\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"AN\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"OB\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ER\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"LY\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"PC\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ZM\"" )
+  , ( NormalTok , ");" )
+  ]
+, []
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "blocks" )
+  , ( NormalTok
+    , " = Array(blocksString.size, { s -> Block(blocksString[s])})"
+    )
+  ]
+, []
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "words" )
+  , ( NormalTok , " = array(" )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"book\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"treat\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"SQuAd\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , ");" )
+  ]
+, []
+, [ ( NormalTok , "            " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (word " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " words) {" )
+  ]
+, [ ( NormalTok , "                System." )
+  , ( KeywordTok , "out" )
+  , ( NormalTok , ".println(" )
+  , ( StringTok , "\"${word}: \"" )
+  , ( NormalTok , " + canMakeWord(" )
+  , ( StringTok , "\"${word}\"" )
+  , ( NormalTok , ", blocks))" )
+  ]
+, [ ( NormalTok , "            }" ) ]
+, []
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "    }" ) ]
+, [ ( NormalTok , "}" ) ]
+, []
+, [ ( KeywordTok , "fun" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "main" )
+  , ( NormalTok , "(" )
+  , ( VariableTok , "args" )
+  , ( NormalTok , ": " )
+  , ( DataTypeTok , "Array" )
+  , ( NormalTok , "<" )
+  , ( VariableTok , "String" )
+  , ( NormalTok , ">) = ABC.main(args)" )
+  ]
+]
diff --git a/test/expected/abc.lisp.native b/test/expected/abc.lisp.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.lisp.native
@@ -0,0 +1,72 @@
+[ []
+, [ ( NormalTok , "(" )
+  , ( KeywordTok , "defun" )
+  , ( FunctionTok , " word-possible-p " )
+  , ( NormalTok , "(word blocks)" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( KeywordTok , "cond" )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "    ((" )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "length" )
+  , ( NormalTok , " word) " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , "t" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "    ((" )
+  , ( KeywordTok , "null" )
+  , ( NormalTok , " blocks) " )
+  , ( KeywordTok , "nil" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "    (" )
+  , ( KeywordTok , "t" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "let*" )
+  , ( NormalTok , " " )
+  ]
+, [ ( NormalTok , "         ((c (" )
+  , ( KeywordTok , "aref" )
+  , ( NormalTok , " word " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "          (bs (" )
+  , ( KeywordTok , "remove-if-not" )
+  , ( NormalTok , " #'(" )
+  , ( KeywordTok , "lambda" )
+  , ( NormalTok , " (b) " )
+  ]
+, [ ( NormalTok , "                                 (" )
+  , ( KeywordTok , "find" )
+  , ( NormalTok , " c b " )
+  , ( BuiltInTok , ":test" )
+  , ( NormalTok , " #'char-equal))" )
+  ]
+, [ ( NormalTok , "                             blocks)))" ) ]
+, [ ( NormalTok , "         (" )
+  , ( KeywordTok , "some" )
+  , ( NormalTok , " #'identity " )
+  ]
+, [ ( NormalTok , "               (" )
+  , ( KeywordTok , "loop" )
+  , ( NormalTok , " for b in bs" )
+  ]
+, [ ( NormalTok , "                     collect (word-possible-p" )
+  ]
+, [ ( NormalTok , "                               (" )
+  , ( KeywordTok , "subseq" )
+  , ( NormalTok , " word " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "                               (" )
+  , ( KeywordTok , "remove" )
+  , ( NormalTok , " b blocks))))))))" )
+  ]
+]
diff --git a/test/expected/abc.matlab.native b/test/expected/abc.matlab.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.matlab.native
@@ -0,0 +1,111 @@
+[ [ ( NormalTok , "function testABC" ) ]
+, [ ( NormalTok , "    combos = [" )
+  , ( StringTok , "'BO'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'XK'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'DQ'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'CP'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'NA'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'GT'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'RE'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'TG'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'QD'" )
+  , ( NormalTok , " ; ..." )
+  ]
+, [ ( NormalTok , "        " )
+  , ( StringTok , "'FS'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'JW'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'HU'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'VI'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'AN'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'OB'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'ER'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'FS'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'LY'" )
+  , ( NormalTok , " ; ..." )
+  ]
+, [ ( NormalTok , "        " )
+  , ( StringTok , "'PC'" )
+  , ( NormalTok , " ; " )
+  , ( StringTok , "'ZM'" )
+  , ( NormalTok , "];" )
+  ]
+, [ ( NormalTok , "    words = {" )
+  , ( StringTok , "'A'" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'BARK'" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'BOOK'" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'TREAT'" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'COMMON'" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'SQUAD'" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'CONFUSE'" )
+  , ( NormalTok , "};" )
+  ]
+, [ ( NormalTok , "    for k = " )
+  , ( FloatTok , "1" )
+  , ( NormalTok , ":length(words)" )
+  ]
+, [ ( NormalTok
+    , "        possible = canMakeWord(words{k}, combos);"
+    )
+  ]
+, [ ( NormalTok , "        fprintf(" )
+  , ( StringTok , "'Can%s make word %s.\\n'" )
+  , ( NormalTok , ", char(~possible.*" )
+  , ( StringTok , "'NOT'" )
+  , ( NormalTok , "), words{k})" )
+  ]
+, [ ( NormalTok , "    end" ) ]
+, [ ( NormalTok , "end" ) ]
+, []
+, [ ( NormalTok
+    , "function isPossible = canMakeWord(word, combos)"
+    )
+  ]
+, [ ( NormalTok , "    word = lower(word);" ) ]
+, [ ( NormalTok , "    combos = lower(combos);" ) ]
+, [ ( NormalTok , "    isPossible = true;" ) ]
+, [ ( NormalTok , "    k = " )
+  , ( FloatTok , "1" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    while isPossible && k <= length(word)" ) ]
+, [ ( NormalTok , "        [r, c] = find(combos == word(k), " )
+  , ( FloatTok , "1" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "        if ~isempty(r)" ) ]
+, [ ( NormalTok , "            combos(r, :) = " )
+  , ( StringTok , "''" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "        else" ) ]
+, [ ( NormalTok , "            isPossible = false;" ) ]
+, [ ( NormalTok , "        end" ) ]
+, [ ( NormalTok , "        k = k+" )
+  , ( FloatTok , "1" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    end" ) ]
+, [ ( NormalTok , "end" ) ]
+]
diff --git a/test/expected/abc.ocaml.native b/test/expected/abc.ocaml.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.ocaml.native
@@ -0,0 +1,228 @@
+[ [ ( KeywordTok , "let" ) , ( NormalTok , " blocks = [" ) ]
+, [ ( NormalTok , "  (" )
+  , ( CharTok , "'B'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'O'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'X'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'K'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'D'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'Q'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'C'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'P'" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( CharTok , "'N'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'A'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'G'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'T'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'R'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'E'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'T'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'G'" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( CharTok , "'Q'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'D'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'F'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'S'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'J'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'W'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'H'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'U'" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( CharTok , "'V'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'I'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'A'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'N'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'O'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'B'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'E'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'R'" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( CharTok , "'F'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'S'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'L'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'Y'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'P'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'C'" )
+  , ( NormalTok , ");  (" )
+  , ( CharTok , "'Z'" )
+  , ( NormalTok , ", " )
+  , ( CharTok , "'M'" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "]" ) ]
+, []
+, [ ( KeywordTok , "let" )
+  , ( NormalTok , " find_letter blocks c =" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "let" )
+  , ( NormalTok , " found, remaining =" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DataTypeTok , "List" )
+  , ( NormalTok , ".partition (" )
+  , ( KeywordTok , "fun" )
+  , ( NormalTok , " (c1, c2) -> c1 = c || c2 = c) blocks" )
+  ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "in" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "match" )
+  , ( NormalTok , " found " )
+  , ( KeywordTok , "with" )
+  ]
+, [ ( NormalTok , "  | _ :: res -> " )
+  , ( DataTypeTok , "Some" )
+  , ( NormalTok , " (res @ remaining)" )
+  ]
+, [ ( NormalTok , "  | _ -> " ) , ( DataTypeTok , "None" ) ]
+, []
+, [ ( KeywordTok , "let" ) , ( NormalTok , " can_make_word w =" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "let" )
+  , ( NormalTok , " n = " )
+  , ( DataTypeTok , "String" )
+  , ( NormalTok , ".length w " )
+  , ( KeywordTok , "in" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "let" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "rec" )
+  , ( NormalTok , " aux i _blocks =" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " i >= n " )
+  , ( KeywordTok , "then" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "else" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( KeywordTok , "match" )
+  , ( NormalTok , " find_letter _blocks w.[i] " )
+  , ( KeywordTok , "with" )
+  ]
+, [ ( NormalTok , "      | " )
+  , ( DataTypeTok , "None" )
+  , ( NormalTok , " -> " )
+  , ( KeywordTok , "false" )
+  ]
+, [ ( NormalTok , "      | " )
+  , ( DataTypeTok , "Some" )
+  , ( NormalTok , " rem_blocks ->" )
+  ]
+, [ ( NormalTok , "          aux (" )
+  , ( DataTypeTok , "succ" )
+  , ( NormalTok , " i) rem_blocks" )
+  ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "in" ) ]
+, [ ( NormalTok , "  aux " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , " blocks" )
+  ]
+, []
+, [ ( KeywordTok , "let" )
+  , ( NormalTok , " test label f (word, should) =" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DataTypeTok , "Printf" )
+  , ( NormalTok , ".printf " )
+  , ( StringTok , "\"- %s %S = %B  (should: %B)" )
+  , ( CharTok , "\\n" )
+  , ( StringTok , "\"" )
+  , ( NormalTok , " label word (f word) should" )
+  ]
+, []
+, [ ( KeywordTok , "let" ) , ( NormalTok , " () =" ) ]
+, [ ( NormalTok , "  " )
+  , ( DataTypeTok , "List" )
+  , ( NormalTok , ".iter (test " )
+  , ( StringTok , "\"can make word\"" )
+  , ( NormalTok , " can_make_word) [" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , ", " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , ", " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , ", " )
+  , ( KeywordTok , "false" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , ", " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , ", " )
+  , ( KeywordTok , "false" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , ", " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , ", " )
+  , ( KeywordTok , "true" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "  ]" ) ]
+]
diff --git a/test/expected/abc.perl.native b/test/expected/abc.perl.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.perl.native
@@ -0,0 +1,111 @@
+[ [ ( FunctionTok , "use" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "Test::More" )
+  , ( NormalTok , " tests => " )
+  , ( DecValTok , "8" )
+  , ( NormalTok , ";" )
+  ]
+, []
+, [ ( KeywordTok , "my" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "@blocks1" )
+  , ( NormalTok , " = " )
+  , ( KeywordTok , "qw(" )
+  , ( NormalTok
+    , "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM"
+    )
+  , ( KeywordTok , ")" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "is(can_make_word(" )
+  , ( KeywordTok , "\"" )
+  , ( StringTok , "A" )
+  , ( KeywordTok , "\"" )
+  , ( NormalTok , ",       " )
+  , ( DataTypeTok , "@blocks1" )
+  , ( NormalTok , "), " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "is(can_make_word(" )
+  , ( KeywordTok , "\"" )
+  , ( StringTok , "BARK" )
+  , ( KeywordTok , "\"" )
+  , ( NormalTok , ",    " )
+  , ( DataTypeTok , "@blocks1" )
+  , ( NormalTok , "), " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "is(can_make_word(" )
+  , ( KeywordTok , "\"" )
+  , ( StringTok , "BOOK" )
+  , ( KeywordTok , "\"" )
+  , ( NormalTok , ",    " )
+  , ( DataTypeTok , "@blocks1" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "undef" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "is(can_make_word(" )
+  , ( KeywordTok , "\"" )
+  , ( StringTok , "TREAT" )
+  , ( KeywordTok , "\"" )
+  , ( NormalTok , ",   " )
+  , ( DataTypeTok , "@blocks1" )
+  , ( NormalTok , "), " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "is(can_make_word(" )
+  , ( KeywordTok , "\"" )
+  , ( StringTok , "COMMON" )
+  , ( KeywordTok , "\"" )
+  , ( NormalTok , ",  " )
+  , ( DataTypeTok , "@blocks1" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "undef" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "is(can_make_word(" )
+  , ( KeywordTok , "\"" )
+  , ( StringTok , "SQUAD" )
+  , ( KeywordTok , "\"" )
+  , ( NormalTok , ",   " )
+  , ( DataTypeTok , "@blocks1" )
+  , ( NormalTok , "), " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ");" )
+  ]
+, [ ( NormalTok , "is(can_make_word(" )
+  , ( KeywordTok , "\"" )
+  , ( StringTok , "CONFUSE" )
+  , ( KeywordTok , "\"" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "@blocks1" )
+  , ( NormalTok , "), " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ");" )
+  ]
+, []
+, [ ( KeywordTok , "my" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "@blocks2" )
+  , ( NormalTok , " = " )
+  , ( KeywordTok , "qw(" )
+  , ( NormalTok , "US TZ AO QA" )
+  , ( KeywordTok , ")" )
+  , ( NormalTok , ";" )
+  ]
+, [ ( NormalTok , "is(can_make_word(" )
+  , ( KeywordTok , "'" )
+  , ( StringTok , "auto" )
+  , ( KeywordTok , "'" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "@blocks2" )
+  , ( NormalTok , "), " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ");" )
+  ]
+, []
+]
diff --git a/test/expected/abc.php.native b/test/expected/abc.php.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.php.native
@@ -0,0 +1,236 @@
+[ []
+, [ ( KeywordTok , "<?php" ) ]
+, [ ( KeywordTok , "$words" )
+  , ( NormalTok , " = " )
+  , ( KeywordTok , "array" )
+  , ( OtherTok , "(" )
+  , ( StringTok , "\"A\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"BARK\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"Confuse\"" )
+  , ( OtherTok , ");" )
+  ]
+, []
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " canMakeWord" )
+  , ( OtherTok , "(" )
+  , ( KeywordTok , "$word" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "$word" )
+  , ( NormalTok , " = " )
+  , ( FunctionTok , "strtoupper" )
+  , ( OtherTok , "(" )
+  , ( KeywordTok , "$word" )
+  , ( OtherTok , ");" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "$blocks" )
+  , ( NormalTok , " = " )
+  , ( KeywordTok , "array" )
+  , ( OtherTok , "(" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( StringTok , "\"BO\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"XK\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"DQ\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"CP\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"NA\"" )
+  , ( OtherTok , "," )
+  ]
+, [ ( NormalTok , "            " )
+  , ( StringTok , "\"GT\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"RE\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"TG\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"QD\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"FS\"" )
+  , ( OtherTok , "," )
+  ]
+, [ ( NormalTok , "            " )
+  , ( StringTok , "\"JW\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"HU\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"VI\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"AN\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"OB\"" )
+  , ( OtherTok , "," )
+  ]
+, [ ( NormalTok , "            " )
+  , ( StringTok , "\"ER\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"FS\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"LY\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"PC\"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"ZM\"" )
+  , ( OtherTok , "," )
+  ]
+, [ ( NormalTok , "    " ) , ( OtherTok , ");" ) ]
+, []
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "foreach" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( FunctionTok , "str_split" )
+  , ( OtherTok , "(" )
+  , ( KeywordTok , "$word" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "as" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "$char" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "foreach" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( KeywordTok , "$blocks" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "as" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "$k" )
+  , ( NormalTok , " => " )
+  , ( KeywordTok , "$block" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( FunctionTok , "strpos" )
+  , ( OtherTok , "(" )
+  , ( KeywordTok , "$block" )
+  , ( OtherTok , "," )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "$char" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " !== " )
+  , ( KeywordTok , "FALSE" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "unset" )
+  , ( OtherTok , "(" )
+  , ( KeywordTok , "$blocks" )
+  , ( OtherTok , "[" )
+  , ( KeywordTok , "$k" )
+  , ( OtherTok , "]);" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "continue" )
+  , ( OtherTok , "(" )
+  , ( DecValTok , "2" )
+  , ( OtherTok , ");" )
+  ]
+, [ ( NormalTok , "            }" ) ]
+, [ ( NormalTok , "        }" ) ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "false" )
+  , ( OtherTok , ";" )
+  ]
+, [ ( NormalTok , "    }" ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "true" )
+  , ( OtherTok , ";" )
+  ]
+, [ ( NormalTok , "}" ) ]
+, []
+, [ ( KeywordTok , "foreach" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "(" )
+  , ( KeywordTok , "$words" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "as" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "$word" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "echo" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "$word" )
+  , ( NormalTok , "." )
+  , ( StringTok , "': '" )
+  , ( OtherTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "echo" )
+  , ( NormalTok , " canMakeWord" )
+  , ( OtherTok , "(" )
+  , ( KeywordTok , "$word" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "?" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"True\"" )
+  , ( NormalTok , " " )
+  , ( OtherTok , ":" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"False\"" )
+  , ( OtherTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "echo" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"" )
+  , ( KeywordTok , "\\r\\n" )
+  , ( StringTok , "\"" )
+  , ( OtherTok , ";" )
+  ]
+, [ ( NormalTok , "}" ) ]
+]
diff --git a/test/expected/abc.prolog.native b/test/expected/abc.prolog.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.prolog.native
@@ -0,0 +1,173 @@
+[ [ ( NormalTok , "abc_problem " ) , ( KeywordTok , ":-" ) ]
+, [ ( NormalTok , "        maplist(abc_problem" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " [" )
+  , ( StringTok , "''" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "'" )
+  , ( ErrorTok , "A" )
+  , ( StringTok , "'" )
+  , ( NormalTok , ", bark, bOOk, treAT, " )
+  , ( StringTok , "'" )
+  , ( ErrorTok , "COmmon" )
+  , ( StringTok , "'" )
+  , ( NormalTok , ", sQuaD, " )
+  , ( StringTok , "'" )
+  , ( ErrorTok , "CONFUSE" )
+  , ( StringTok , "'" )
+  , ( NormalTok , "])" )
+  , ( KeywordTok , "." )
+  ]
+, []
+, []
+, [ ( NormalTok , "abc_problem(" )
+  , ( DataTypeTok , "Word" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , ":-" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( DataTypeTok , "L" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "=" )
+  , ( NormalTok
+    , " [[b,o],[x,k],[d,q],[c,p],[n,a],[g,t],[r,e],[t,g],[q,d],[f,s],"
+    )
+  ]
+, [ ( NormalTok
+    , "             [j,w],[h,u],[v,i],[a,n],[o,b],[e,r],[f,s],[l,y],[p,c],[z,m]]"
+    )
+  , ( KeywordTok , "," )
+  ]
+, []
+, [ ( NormalTok , "        (   abc_problem(" )
+  , ( DataTypeTok , "L" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Word" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "->" )
+  , ( NormalTok , "  format(" )
+  , ( StringTok , "'~" )
+  , ( ErrorTok , "w" )
+  , ( AlertTok , " " )
+  , ( ErrorTok , "OK" )
+  , ( StringTok , "~" )
+  , ( ErrorTok , "n" )
+  , ( StringTok , "'" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " [" )
+  , ( DataTypeTok , "Word" )
+  , ( NormalTok , "])" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , ";" )
+  , ( NormalTok , "   format(" )
+  , ( StringTok , "'~" )
+  , ( ErrorTok , "w" )
+  , ( AlertTok , " " )
+  , ( ErrorTok , "KO" )
+  , ( StringTok , "~" )
+  , ( ErrorTok , "n" )
+  , ( StringTok , "'" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " [" )
+  , ( DataTypeTok , "Word" )
+  , ( NormalTok , "]))" )
+  , ( KeywordTok , "." )
+  ]
+, []
+, [ ( NormalTok , "abc_problem(" )
+  , ( DataTypeTok , "L" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "Word" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , ":-" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( FunctionTok , "atom_chars" )
+  , ( NormalTok , "(" )
+  , ( DataTypeTok , "Word" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "C_Words" )
+  , ( NormalTok , ")" )
+  , ( KeywordTok , "," )
+  ]
+, [ ( NormalTok , "        maplist(downcase_atom" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "C_Words" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "D_Words" )
+  , ( NormalTok , ")" )
+  , ( KeywordTok , "," )
+  ]
+, [ ( NormalTok , "        can_makeword(" )
+  , ( DataTypeTok , "L" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "D_Words" )
+  , ( NormalTok , ")" )
+  , ( KeywordTok , "." )
+  ]
+, []
+, [ ( NormalTok , "can_makeword(" )
+  , ( DataTypeTok , "_L" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " [])" )
+  , ( KeywordTok , "." )
+  ]
+, []
+, [ ( NormalTok , "can_makeword(" )
+  , ( DataTypeTok , "L" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " [" )
+  , ( DataTypeTok , "H" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "|" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "T" )
+  , ( NormalTok , "]) " )
+  , ( KeywordTok , ":-" )
+  ]
+, [ ( NormalTok , "        (   select([" )
+  , ( DataTypeTok , "H" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "_" )
+  , ( NormalTok , "]" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "L" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "L1" )
+  , ( NormalTok , ")" )
+  , ( KeywordTok , ";" )
+  , ( NormalTok , " select([" )
+  , ( DataTypeTok , "_" )
+  , ( NormalTok , ", " )
+  , ( DataTypeTok , "H" )
+  , ( NormalTok , "]" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "L" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "L1" )
+  , ( NormalTok , "))" )
+  , ( KeywordTok , "," )
+  ]
+, [ ( NormalTok , "        can_makeword(" )
+  , ( DataTypeTok , "L1" )
+  , ( KeywordTok , "," )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "T" )
+  , ( NormalTok , ")" )
+  , ( KeywordTok , "." )
+  ]
+, []
+]
diff --git a/test/expected/abc.python.native b/test/expected/abc.python.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.python.native
@@ -0,0 +1,109 @@
+[ [ ( KeywordTok , "def" ) , ( NormalTok , " mkword(w, b):" ) ]
+, [ ( NormalTok , "    " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "not" )
+  , ( NormalTok , " w: " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " []" )
+  ]
+, []
+, [ ( NormalTok , "    c,w " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " w[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "],w[" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ":]" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " i " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " " )
+  , ( BuiltInTok , "range" )
+  , ( NormalTok , "(" )
+  , ( BuiltInTok , "len" )
+  , ( NormalTok , "(b)):" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " c " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " b[i]:" )
+  ]
+, [ ( NormalTok , "            m " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " mkword(w, b[" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ":i] " )
+  , ( OperatorTok , "+" )
+  , ( NormalTok , " b[i" )
+  , ( OperatorTok , "+" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ":])" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " m " )
+  , ( OperatorTok , "!=" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "None" )
+  , ( NormalTok , ": " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " [b[i]] " )
+  , ( OperatorTok , "+" )
+  , ( NormalTok , " m" )
+  ]
+, []
+, [ ( KeywordTok , "def" ) , ( NormalTok , " abc(w, blk):" ) ]
+, [ ( NormalTok , "    " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " mkword(w.upper(), [a.upper() " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " a " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " blk])" )
+  ]
+, []
+, [ ( NormalTok , "blocks " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( StringTok
+    , "'BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM'"
+    )
+  , ( NormalTok , ".split()" )
+  ]
+, []
+, [ ( ControlFlowTok , "for" )
+  , ( NormalTok , " w " )
+  , ( KeywordTok , "in" )
+  , ( NormalTok , " " )
+  , ( StringTok
+    , "\", A, bark, book, treat, common, SQUAD, conFUsEd\""
+    )
+  , ( NormalTok , ".split(" )
+  , ( StringTok , "', '" )
+  , ( NormalTok , "):" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( BuiltInTok , "print" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'" )
+  , ( CharTok , "\\'" )
+  , ( StringTok , "'" )
+  , ( NormalTok , " " )
+  , ( OperatorTok , "+" )
+  , ( NormalTok , " w " )
+  , ( OperatorTok , "+" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'" )
+  , ( CharTok , "\\'" )
+  , ( StringTok , "'" )
+  , ( NormalTok , " " )
+  , ( OperatorTok , "+" )
+  , ( NormalTok , " " )
+  , ( StringTok , "' ->'" )
+  , ( NormalTok , ", abc(w, blocks)" )
+  ]
+]
diff --git a/test/expected/abc.r.native b/test/expected/abc.r.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.r.native
@@ -0,0 +1,140 @@
+[ [ ( NormalTok , "canMakeNoRecursion <-" )
+  , ( StringTok , " " )
+  , ( ControlFlowTok , "function" )
+  , ( NormalTok , "(x) {" )
+  ]
+, [ ( NormalTok , "  x <-" )
+  , ( StringTok , " " )
+  , ( KeywordTok , "toupper" )
+  , ( NormalTok , "(x)" )
+  ]
+, [ ( NormalTok , "  charList <-" )
+  , ( StringTok , " " )
+  , ( KeywordTok , "strsplit" )
+  , ( NormalTok , "(x, " )
+  , ( KeywordTok , "character" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "  getCombos <-" )
+  , ( StringTok , " " )
+  , ( ControlFlowTok , "function" )
+  , ( NormalTok , "(chars) {" )
+  ]
+, [ ( NormalTok , "    charBlocks <-" )
+  , ( StringTok , "  " )
+  , ( KeywordTok , "data.matrix" )
+  , ( NormalTok , "(" )
+  , ( KeywordTok , "expand.grid" )
+  , ( NormalTok , "(" )
+  , ( KeywordTok , "lapply" )
+  , ( NormalTok , "(chars, " )
+  , ( ControlFlowTok , "function" )
+  , ( NormalTok , "(char) " )
+  , ( KeywordTok , "which" )
+  , ( NormalTok , "(blocks " )
+  , ( OperatorTok , "==" )
+  , ( StringTok , " " )
+  , ( NormalTok , "char, " )
+  , ( DataTypeTok , "arr.ind=" )
+  , ( OtherTok , "TRUE" )
+  , ( NormalTok , ")[, 1L])))" )
+  ]
+, [ ( NormalTok , "    charBlocks <-" )
+  , ( StringTok , " " )
+  , ( NormalTok , "charBlocks[" )
+  , ( OperatorTok , "!" )
+  , ( KeywordTok , "apply" )
+  , ( NormalTok , "(charBlocks, " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ", " )
+  , ( ControlFlowTok , "function" )
+  , ( NormalTok , "(row) " )
+  , ( KeywordTok , "any" )
+  , ( NormalTok , "(" )
+  , ( KeywordTok , "duplicated" )
+  , ( NormalTok , "(row))), , drop=" )
+  , ( OtherTok , "FALSE" )
+  , ( NormalTok , "]" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( ControlFlowTok , "if" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "dim" )
+  , ( NormalTok , "(charBlocks)[1L] " )
+  , ( OperatorTok , ">" )
+  , ( StringTok , " " )
+  , ( NormalTok , "0L) {" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( KeywordTok , "t" )
+  , ( NormalTok , "(" )
+  , ( KeywordTok , "apply" )
+  , ( NormalTok , "(charBlocks, " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ", " )
+  , ( ControlFlowTok , "function" )
+  , ( NormalTok , "(row) " )
+  , ( KeywordTok , "apply" )
+  , ( NormalTok , "(blocks[row, , " )
+  , ( DataTypeTok , "drop=" )
+  , ( OtherTok , "FALSE" )
+  , ( NormalTok , "], " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , ", paste, " )
+  , ( DataTypeTok , "collapse=" )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , ")))" )
+  ]
+, [ ( NormalTok , "    } " )
+  , ( ControlFlowTok , "else" )
+  , ( NormalTok , " {" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( KeywordTok , "character" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "    }" ) ]
+, [ ( NormalTok , "  }" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "setNames" )
+  , ( NormalTok , "(" )
+  , ( KeywordTok , "lapply" )
+  , ( NormalTok , "(charList, getCombos), x)" )
+  ]
+, [ ( NormalTok , "}" ) ]
+, [ ( KeywordTok , "canMakeNoRecursion" )
+  , ( NormalTok , "(" )
+  , ( KeywordTok , "c" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "           " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "           " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "           " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "           " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "           " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , "," )
+  ]
+, [ ( NormalTok , "           " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , "))" )
+  ]
+]
diff --git a/test/expected/abc.ruby.native b/test/expected/abc.ruby.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.ruby.native
@@ -0,0 +1,40 @@
+[ [ ( NormalTok , "words =" )
+  , ( OtherTok , " %w(" )
+  , ( StringTok , "A BaRK BOoK tREaT COmMOn SqUAD CoNfuSE" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " << " )
+  , ( StringTok , "\"\"" )
+  ]
+, []
+, [ ( NormalTok , "words.each " )
+  , ( KeywordTok , "do" )
+  , ( NormalTok , " |word|" )
+  ]
+, [ ( NormalTok , "  blocks = " )
+  , ( StringTok
+    , "\"BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM\""
+    )
+  ]
+, [ ( NormalTok , "  res = word.each_char.all?{|c| blocks.sub!(" )
+  , ( OtherTok , "/\\w?#{" )
+  , ( NormalTok , "c" )
+  , ( OtherTok , "}\\w?/i" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , ")}  " )
+  , ( CommentTok , "#regexps can be interpolated like strings" )
+  ]
+, [ ( NormalTok , "  puts " )
+  , ( StringTok , "\"" )
+  , ( OtherTok , "#{" )
+  , ( NormalTok , "word.inspect" )
+  , ( OtherTok , "}" )
+  , ( StringTok , ": " )
+  , ( OtherTok , "#{" )
+  , ( NormalTok , "res" )
+  , ( OtherTok , "}" )
+  , ( StringTok , "\"" )
+  ]
+, [ ( KeywordTok , "end" ) ]
+, []
+]
diff --git a/test/expected/abc.scala.native b/test/expected/abc.scala.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.scala.native
@@ -0,0 +1,364 @@
+[ [ ( KeywordTok , "object" )
+  , ( NormalTok , " AbcBlocks " )
+  , ( KeywordTok , "extends" )
+  , ( NormalTok , " App {" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "protected" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "class" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(face1: Char, face2: Char) {" )
+  ]
+, []
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "def" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "isFacedWith" )
+  , ( NormalTok
+    , "(that: Char) = { that == face1 || that == face2 }"
+    )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "override" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "def" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "toString" )
+  , ( NormalTok , "() = face1." )
+  , ( FunctionTok , "toString" )
+  , ( NormalTok , " + face2" )
+  ]
+, [ ( NormalTok , "  }" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "protected" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "object" )
+  , ( NormalTok , " Block {" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "def" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "apply" )
+  , ( NormalTok , "(faces: String) = " )
+  , ( KeywordTok , "new" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(faces." )
+  , ( FunctionTok , "head" )
+  , ( NormalTok , ", faces." )
+  , ( FunctionTok , "last" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "  }" ) ]
+, []
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "type" )
+  , ( NormalTok , " word = Seq[Block]" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "private" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " blocks = List(" )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"BO\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"XK\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"DQ\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"CP\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"NA\"" )
+  , ( NormalTok , ")," )
+  ]
+, [ ( NormalTok , "    " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"GT\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"RE\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"TG\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"QD\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , ")," )
+  ]
+, [ ( NormalTok , "    " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"JW\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"HU\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"VI\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"AN\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"OB\"" )
+  , ( NormalTok , ")," )
+  ]
+, [ ( NormalTok , "    " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"ER\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"LY\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"PC\"" )
+  , ( NormalTok , "), " )
+  , ( FunctionTok , "Block" )
+  , ( NormalTok , "(" )
+  , ( StringTok , "\"ZM\"" )
+  , ( NormalTok , "))" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "private" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "def" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(word: String, blocks: word) = {" )
+  ]
+, []
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "def" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "getTheBlocks" )
+  , ( NormalTok , "(word: String, blocks: word) = {" )
+  ]
+, []
+, [ ( NormalTok , "      " )
+  , ( KeywordTok , "def" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "inner" )
+  , ( NormalTok
+    , "(word: String, toCompare: word, rest: word, accu: word): word = {"
+    )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (word." )
+  , ( FunctionTok , "isEmpty" )
+  , ( NormalTok , " || rest." )
+  , ( FunctionTok , "isEmpty" )
+  , ( NormalTok , " || toCompare." )
+  , ( FunctionTok , "isEmpty" )
+  , ( NormalTok , ") accu" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "else" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (toCompare." )
+  , ( FunctionTok , "head" )
+  , ( NormalTok , "." )
+  , ( FunctionTok , "isFacedWith" )
+  , ( NormalTok , "(word." )
+  , ( FunctionTok , "head" )
+  , ( NormalTok , ")) {" )
+  ]
+, [ ( NormalTok , "          " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " restant = rest diff List(toCompare." )
+  , ( FunctionTok , "head" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "          " )
+  , ( FunctionTok , "inner" )
+  , ( NormalTok , "(word." )
+  , ( FunctionTok , "tail" )
+  , ( NormalTok , ", restant, restant, accu :+ toCompare." )
+  , ( FunctionTok , "head" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "        } " )
+  , ( KeywordTok , "else" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "inner" )
+  , ( NormalTok , "(word, toCompare." )
+  , ( FunctionTok , "tail" )
+  , ( NormalTok , ", rest, accu)" )
+  ]
+, [ ( NormalTok , "      }" ) ]
+, [ ( NormalTok , "      " )
+  , ( FunctionTok , "inner" )
+  , ( NormalTok , "(word, blocks, blocks, Nil)" )
+  ]
+, [ ( NormalTok , "    }" ) ]
+, []
+, [ ( NormalTok , "    word." )
+  , ( FunctionTok , "lengthCompare" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "getTheBlocks" )
+  , ( NormalTok , "(word, blocks)." )
+  , ( FunctionTok , "size" )
+  , ( NormalTok , ") == " )
+  , ( DecValTok , "0" )
+  ]
+, [ ( NormalTok , "  }" ) ]
+, []
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "val" )
+  , ( NormalTok , " words = List(" )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"CONFUSED\"" )
+  , ( NormalTok , ", " )
+  , ( StringTok , "\"ANBOCPDQERSFTGUVWXLZ\"" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "  " ) , ( CommentTok , "// Automatic tests" ) ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "assert" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "words" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "0" )
+  , ( NormalTok , "), blocks))" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "assert" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "words" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , "), blocks))" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "assert" )
+  , ( NormalTok , "(!" )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "words" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "2" )
+  , ( NormalTok , "), blocks)) " )
+  , ( CommentTok , "// BOOK not" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "assert" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "words" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "3" )
+  , ( NormalTok , "), blocks))" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "assert" )
+  , ( NormalTok , "(!" )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "words" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "4" )
+  , ( NormalTok , "), blocks)) " )
+  , ( CommentTok , "// COMMON not" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "assert" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "words" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "5" )
+  , ( NormalTok , "), blocks))" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "assert" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "words" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "6" )
+  , ( NormalTok , "), blocks))" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "assert" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "isMakeable" )
+  , ( NormalTok , "(" )
+  , ( FunctionTok , "words" )
+  , ( NormalTok , "(" )
+  , ( DecValTok , "7" )
+  , ( NormalTok , "), blocks))" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( CommentTok
+    , "//words(7).mkString.permutations.foreach(s => assert(isMakeable(s, blocks)))"
+    )
+  ]
+, []
+, [ ( NormalTok , "  words." )
+  , ( FunctionTok , "foreach" )
+  , ( NormalTok , "(w => " )
+  , ( FunctionTok , "println" )
+  , ( NormalTok , "(s" )
+  , ( StringTok , "\"$w can${if (isMakeable(w, blocks)) \"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\" else \"" )
+  , ( NormalTok , "not " )
+  , ( StringTok , "\"}be made.\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "}" ) ]
+]
diff --git a/test/expected/abc.scheme.native b/test/expected/abc.scheme.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.scheme.native
@@ -0,0 +1,205 @@
+[ [ ( NormalTok , "#lang racket" ) ]
+, [ ( NormalTok , "(" )
+  , ( KeywordTok , "define" )
+  , ( FunctionTok , " block-strings" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( KeywordTok , "list" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"BO\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"XK\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"DQ\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"CP\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"NA\"" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( StringTok , "\"GT\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"RE\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"TG\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"QD\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"FS\"" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( StringTok , "\"JW\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"HU\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"VI\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"AN\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"OB\"" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( StringTok , "\"ER\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"FS\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"LY\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"PC\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"ZM\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "(" )
+  , ( KeywordTok , "define" )
+  , ( FunctionTok , " BLOCKS " )
+  , ( NormalTok , "(map " )
+  , ( KeywordTok , "string->list" )
+  , ( NormalTok , " block-strings))" )
+  ]
+, []
+, [ ( NormalTok , "(" )
+  , ( KeywordTok , "define" )
+  , ( FunctionTok , " " )
+  , ( NormalTok , "(can-make-word? w)" )
+  ]
+, [ ( NormalTok , "  (" )
+  , ( KeywordTok , "define" )
+  , ( FunctionTok , " " )
+  , ( NormalTok , "(usable-block blocks word-char)" )
+  ]
+, [ ( NormalTok
+    , "    (for/first ((b (in-list blocks)) #:when (memf (curry "
+    )
+  , ( KeywordTok , "char-ci=?" )
+  , ( NormalTok , " word-char) b)) b))" )
+  ]
+, [ ( NormalTok , "  " ) ]
+, [ ( NormalTok , "  (" )
+  , ( KeywordTok , "define" )
+  , ( FunctionTok , " " )
+  , ( NormalTok , "(inner word-chars blocks tried-blocks)" )
+  ]
+, [ ( NormalTok , "    (" ) , ( KeywordTok , "cond" ) ]
+, [ ( NormalTok , "      [(" )
+  , ( KeywordTok , "null?" )
+  , ( NormalTok , " word-chars) " )
+  , ( DecValTok , "#t" )
+  , ( NormalTok , "]" )
+  ]
+, [ ( NormalTok , "      [(usable-block blocks (" )
+  , ( KeywordTok , "car" )
+  , ( NormalTok , " word-chars))" )
+  ]
+, [ ( NormalTok , "       " ) , ( KeywordTok , "=>" ) ]
+, [ ( NormalTok , "       (" )
+  , ( KeywordTok , "lambda" )
+  , ( NormalTok , " (b)" )
+  ]
+, [ ( NormalTok , "         (" ) , ( KeywordTok , "or" ) ]
+, [ ( NormalTok , "          (inner (" )
+  , ( KeywordTok , "cdr" )
+  , ( NormalTok , " word-chars) (" )
+  , ( KeywordTok , "append" )
+  , ( NormalTok , " tried-blocks (remove b blocks)) null)" )
+  ]
+, [ ( NormalTok
+    , "          (inner word-chars (remove b blocks) ("
+    )
+  , ( KeywordTok , "cons" )
+  , ( NormalTok , " b tried-blocks))))]" )
+  ]
+, [ ( NormalTok , "      [" )
+  , ( KeywordTok , "else" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "#f" )
+  , ( NormalTok , "]))" )
+  ]
+, [ ( NormalTok , "  (inner (" )
+  , ( KeywordTok , "string->list" )
+  , ( NormalTok , " w) BLOCKS null))" )
+  ]
+, []
+, [ ( NormalTok , "(" )
+  , ( KeywordTok , "define" )
+  , ( FunctionTok , " WORD-LIST " )
+  , ( NormalTok , "'(" )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "(" )
+  , ( KeywordTok , "define" )
+  , ( FunctionTok , " " )
+  , ( NormalTok , "(report-word w)" )
+  ]
+, [ ( NormalTok , "  (printf " )
+  , ( StringTok , "\"Can we make: ~a? ~a~%\"" )
+  ]
+, [ ( NormalTok , "          (~s w #:min-width " )
+  , ( DecValTok , "9" )
+  , ( NormalTok , ")" )
+  ]
+, [ ( NormalTok , "          (" )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " (can-make-word? w) " )
+  , ( StringTok , "\"yes\"" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"no\"" )
+  , ( NormalTok , ")))" )
+  ]
+, []
+, [ ( NormalTok , "(module+ main" ) ]
+, [ ( NormalTok , "  (" )
+  , ( KeywordTok , "for-each" )
+  , ( NormalTok , " report-word WORD-LIST))  " )
+  ]
+, []
+, [ ( NormalTok , "(module+ test" ) ]
+, [ ( NormalTok , "  (require rackunit)" ) ]
+, [ ( NormalTok , "  (check-true  (can-make-word? " )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "  (check-true  (can-make-word? " )
+  , ( StringTok , "\"A\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "  (check-true  (can-make-word? " )
+  , ( StringTok , "\"BARK\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "  (check-false (can-make-word? " )
+  , ( StringTok , "\"BOOK\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "  (check-true  (can-make-word? " )
+  , ( StringTok , "\"TREAT\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "  (check-false (can-make-word? " )
+  , ( StringTok , "\"COMMON\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "  (check-true  (can-make-word? " )
+  , ( StringTok , "\"SQUAD\"" )
+  , ( NormalTok , "))" )
+  ]
+, [ ( NormalTok , "  (check-true  (can-make-word? " )
+  , ( StringTok , "\"CONFUSE\"" )
+  , ( NormalTok , ")))" )
+  ]
+]
diff --git a/test/expected/abc.tcl.native b/test/expected/abc.tcl.native
new file mode 100644
--- /dev/null
+++ b/test/expected/abc.tcl.native
@@ -0,0 +1,157 @@
+[ [ ( KeywordTok , "package" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "require" )
+  , ( NormalTok , " Tcl " )
+  , ( FloatTok , "8.6" )
+  ]
+, []
+, [ ( KeywordTok , "proc" )
+  , ( NormalTok , " abc " )
+  , ( KeywordTok , "{" )
+  , ( NormalTok , "word " )
+  , ( KeywordTok , "{" )
+  , ( NormalTok , "blocks " )
+  , ( KeywordTok , "{" )
+  , ( NormalTok
+    , "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM"
+    )
+  , ( KeywordTok , "}}}" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "{" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "set" )
+  , ( NormalTok , " abc " )
+  , ( KeywordTok , "{{" )
+  , ( NormalTok , "letters blocks abc" )
+  , ( KeywordTok , "}" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "{" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "set" )
+  , ( NormalTok , " rest " )
+  , ( KeywordTok , "[lassign" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$letters" )
+  , ( NormalTok , " ch" )
+  , ( KeywordTok , "]" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "set" )
+  , ( NormalTok , " i " )
+  , ( DecValTok , "0" )
+  ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "foreach" )
+  , ( NormalTok , " blk " )
+  , ( DataTypeTok , "$blocks" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "{" )
+  ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "{" )
+  , ( DataTypeTok , "$ch" )
+  , ( NormalTok , " in " )
+  , ( DataTypeTok , "$blk" )
+  , ( NormalTok , " && (!" )
+  , ( KeywordTok , "[llength" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$rest" )
+  , ( KeywordTok , "]" )
+  ]
+, [ ( NormalTok , "                    || " )
+  , ( KeywordTok , "[" )
+  , ( NormalTok , "apply " )
+  , ( DataTypeTok , "$abc" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$rest" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "[lreplace" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$blocks" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$i" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$i" )
+  , ( KeywordTok , "]" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$abc" )
+  , ( KeywordTok , "]" )
+  , ( NormalTok , ")" )
+  , ( KeywordTok , "}" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "{" )
+  ]
+, [ ( NormalTok , "                " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " true" )
+  ]
+, [ ( NormalTok , "            " ) , ( KeywordTok , "}" ) ]
+, [ ( NormalTok , "            " )
+  , ( KeywordTok , "incr" )
+  , ( NormalTok , " i" )
+  ]
+, [ ( NormalTok , "        " ) , ( KeywordTok , "}" ) ]
+, [ ( NormalTok , "        " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " false" )
+  ]
+, [ ( NormalTok , "    " ) , ( KeywordTok , "}}" ) ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "[" )
+  , ( NormalTok , "apply " )
+  , ( DataTypeTok , "$abc" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "[split" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$word" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"\"" )
+  , ( KeywordTok , "]" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "[" )
+  , ( NormalTok , "lmap b " )
+  , ( DataTypeTok , "$blocks" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "{split" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$b" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"\"" )
+  , ( KeywordTok , "}]" )
+  , ( NormalTok , " " )
+  , ( DataTypeTok , "$abc" )
+  , ( KeywordTok , "]" )
+  ]
+, [ ( KeywordTok , "}" ) ]
+, []
+, [ ( KeywordTok , "foreach" )
+  , ( NormalTok , " word " )
+  , ( KeywordTok , "{" )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , " A BARK BOOK TREAT COMMON SQUAD CONFUSE" )
+  , ( KeywordTok , "}" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "{" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "puts" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "[format" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"Can we spell %9s? %s\"" )
+  , ( NormalTok , " '" )
+  , ( DataTypeTok , "$word" )
+  , ( NormalTok , "' " )
+  , ( KeywordTok , "[" )
+  , ( NormalTok , "abc " )
+  , ( DataTypeTok , "$word" )
+  , ( KeywordTok , "]]" )
+  ]
+, [ ( KeywordTok , "}" ) ]
+]
diff --git a/test/expected/archive.rhtml.native b/test/expected/archive.rhtml.native
new file mode 100644
--- /dev/null
+++ b/test/expected/archive.rhtml.native
@@ -0,0 +1,137 @@
+[ [ ( KeywordTok , "<h1>" )
+  , ( NormalTok , "Event Archive" )
+  , ( KeywordTok , "</h1>" )
+  ]
+, []
+, []
+, [ ( KeywordTok , "<%" )
+  , ( NormalTok , " form_for " )
+  , ( StringTok , ":to_date" )
+  , ( NormalTok , ", " )
+  , ( OtherTok , "@to_date" )
+  , ( NormalTok , ", " )
+  , ( StringTok , ":url" )
+  , ( NormalTok , " " )
+  , ( CharTok , "=>" )
+  , ( NormalTok , " " )
+  , ( CharTok , "{" )
+  , ( StringTok , ":action" )
+  , ( NormalTok , " " )
+  , ( CharTok , "=>" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'archive'" )
+  , ( CharTok , "}" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "do" )
+  , ( NormalTok , " " )
+  , ( CharTok , "|" )
+  , ( NormalTok , "f" )
+  , ( CharTok , "|" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "%>" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<p><label" )
+  , ( OtherTok , " for=" )
+  , ( StringTok , "\"start_date\"" )
+  , ( KeywordTok , ">" )
+  , ( NormalTok , "From" )
+  , ( KeywordTok , "</label>" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<%=" )
+  , ( NormalTok , " select_date " )
+  , ( OtherTok , "@from_date" )
+  , ( NormalTok , ", " )
+  , ( StringTok , ":prefix" )
+  , ( NormalTok , " " )
+  , ( CharTok , "=>" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'from'" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "%>" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<label" )
+  , ( OtherTok , " for=" )
+  , ( StringTok , "\"end_date\"" )
+  , ( KeywordTok , ">" )
+  , ( NormalTok , "To" )
+  , ( KeywordTok , "</label>" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<%=" )
+  , ( NormalTok , " select_date " )
+  , ( OtherTok , "@to_date" )
+  , ( NormalTok , ", " )
+  , ( StringTok , ":prefix" )
+  , ( NormalTok , " " )
+  , ( CharTok , "=>" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'to'" )
+  , ( NormalTok , ", " )
+  , ( StringTok , ":start_year" )
+  , ( NormalTok , " " )
+  , ( CharTok , "=>" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "2000" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "%></p>" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<p><label" )
+  , ( OtherTok , " for=" )
+  , ( StringTok , "\"event_series\"" )
+  , ( KeywordTok , ">" )
+  , ( NormalTok , "Series" )
+  , ( KeywordTok , "</label>" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<%=" )
+  , ( NormalTok , " select_tag " )
+  , ( StringTok , "\"series\"" )
+  , ( NormalTok , ", options_for_select(series_list(" )
+  , ( StringTok , "'All'" )
+  , ( NormalTok , "), " )
+  , ( OtherTok , "@series" )
+  , ( NormalTok , ") " )
+  , ( KeywordTok , "%>" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<%=" )
+  , ( NormalTok , " f.submit " )
+  , ( StringTok , "'Show events'" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "%>" )
+  ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "</p>" ) ]
+, [ ( KeywordTok , "<%" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "end" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "%>" )
+  ]
+, []
+, [ ( KeywordTok , "<ul>" ) ]
+, [ ( KeywordTok , "<%" ) ]
+, [ ( KeywordTok , "if" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "@events" )
+  ]
+, [ ( KeywordTok , "%>" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<%=" )
+  , ( NormalTok , " render " )
+  , ( StringTok , ":partial" )
+  , ( NormalTok , " " )
+  , ( CharTok , "=>" )
+  , ( NormalTok , " " )
+  , ( StringTok , "'events'" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "%>" )
+  ]
+, [ ( KeywordTok , "<%" ) ]
+, [ ( KeywordTok , "end" ) ]
+, [ ( KeywordTok , "%>" ) ]
+, [ ( KeywordTok , "</ul>" ) ]
+]
diff --git a/test/expected/hk91.html.native b/test/expected/hk91.html.native
new file mode 100644
--- /dev/null
+++ b/test/expected/hk91.html.native
@@ -0,0 +1,100 @@
+[ [ ( DataTypeTok , "<!DOCTYPE " )
+  , ( NormalTok , "HTML" )
+  , ( DataTypeTok , ">" )
+  ]
+, [ ( KeywordTok , "<html>" ) ]
+, [ ( KeywordTok , "<head>" ) ]
+, []
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "<script" )
+  , ( OtherTok , " type=" )
+  , ( StringTok , "\"text/javascript\"" )
+  , ( KeywordTok , ">" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "function" )
+  , ( NormalTok , " " )
+  , ( AttributeTok , "makeHeaders" )
+  , ( NormalTok , "(colnames) " )
+  , ( OperatorTok , "{" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( KeywordTok , "var" )
+  , ( NormalTok , " str " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"\"" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( ControlFlowTok , "for" )
+  , ( NormalTok , " (" )
+  , ( KeywordTok , "var" )
+  , ( NormalTok , " i " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( OperatorTok , ";" )
+  , ( NormalTok , " i " )
+  , ( OperatorTok , "<" )
+  , ( NormalTok , " " )
+  , ( VariableTok , "colnames" )
+  , ( NormalTok , "." )
+  , ( AttributeTok , "length" )
+  , ( OperatorTok , ";" )
+  , ( NormalTok , " i" )
+  , ( OperatorTok , "++" )
+  , ( NormalTok , ") " )
+  , ( OperatorTok , "{" )
+  ]
+, [ ( NormalTok , "        str " )
+  , ( OperatorTok , "+=" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"<th>\"" )
+  , ( NormalTok , " " )
+  , ( OperatorTok , "+" )
+  , ( NormalTok , " colnames[i] " )
+  , ( OperatorTok , "+" )
+  , ( NormalTok , " " )
+  , ( StringTok , "\"</th>\"" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , "      " ) , ( OperatorTok , "}" ) ]
+, [ ( NormalTok , "      " )
+  , ( ControlFlowTok , "return" )
+  , ( NormalTok , " (str)" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , "    " ) , ( OperatorTok , "}" ) ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "</script>" ) ]
+, []
+, [ ( NormalTok , "  " ) , ( KeywordTok , "<script>" ) ]
+, [ ( NormalTok , "    " )
+  , ( AttributeTok , "$" )
+  , ( NormalTok , "(document)." )
+  , ( AttributeTok , "ready" )
+  , ( NormalTok , "(" )
+  , ( KeywordTok , "function" )
+  , ( NormalTok , "() " )
+  , ( OperatorTok , "{" )
+  ]
+, [ ( NormalTok , "      alert" )
+  , ( StringTok , "\"hello\"" )
+  , ( NormalTok , ")" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( OperatorTok , "}" )
+  , ( NormalTok , ")" )
+  , ( OperatorTok , ";" )
+  ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "</script>" ) ]
+, []
+, [ ( KeywordTok , "</head>" ) ]
+, []
+, [ ( KeywordTok , "<body>" ) ]
+, []
+, [ ( KeywordTok , "</body>" ) ]
+, []
+, [ ( KeywordTok , "</html>" ) ]
+]
diff --git a/test/expected/if.cmake.native b/test/expected/if.cmake.native
new file mode 100644
--- /dev/null
+++ b/test/expected/if.cmake.native
@@ -0,0 +1,9 @@
+[ [ ( KeywordTok , "if" )
+  , ( NormalTok , "(CMARK_TESTS and CMARK_SHARED)" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( KeywordTok , "add_subdirectory" )
+  , ( NormalTok , "(api_test)" )
+  ]
+, [ ( KeywordTok , "endif" ) , ( NormalTok , "()" ) ]
+]
diff --git a/test/expected/life.lua.native b/test/expected/life.lua.native
new file mode 100644
--- /dev/null
+++ b/test/expected/life.lua.native
@@ -0,0 +1,959 @@
+[ [ ( DocumentationTok , "-- life.lua" ) ]
+, [ ( DocumentationTok , "-- original by Dave Bollinger " )
+  , ( KeywordTok , "<DBollinger" )
+  , ( OtherTok , "@compuserve.com" )
+  , ( KeywordTok , ">" )
+  , ( DocumentationTok , " posted to lua-l" )
+  ]
+, [ ( DocumentationTok
+    , "-- modified to use ANSI terminal escape sequences"
+    )
+  ]
+, [ ( DocumentationTok
+    , "-- modified to use for instead of while"
+    )
+  ]
+, []
+, [ ( KeywordTok , "local" )
+  , ( NormalTok , " " )
+  , ( FunctionTok , "write" )
+  , ( OtherTok , "=" )
+  , ( FunctionTok , "io.write" )
+  ]
+, []
+, [ ( NormalTok , "ALIVE" )
+  , ( OtherTok , "=" )
+  , ( StringTok , "\"\165\"" )
+  , ( NormalTok , "\tDEAD" )
+  , ( OtherTok , "=" )
+  , ( StringTok , "\"\254\"" )
+  ]
+, [ ( NormalTok , "ALIVE" )
+  , ( OtherTok , "=" )
+  , ( StringTok , "\"O\"" )
+  , ( NormalTok , "\tDEAD" )
+  , ( OtherTok , "=" )
+  , ( StringTok , "\"-\"" )
+  ]
+, []
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " delay" )
+  , ( OtherTok , "()" )
+  , ( NormalTok , " " )
+  , ( DocumentationTok , "-- " )
+  , ( AlertTok , "NOTE" )
+  , ( DocumentationTok , ": SYSTEM-DEPENDENT, adjust as necessary" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " i" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "10000" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "do" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "end" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DocumentationTok , "-- local i=os.clock()+1 while(os.clock()" )
+  , ( KeywordTok , "<i" )
+  , ( OtherTok , ") do end" )
+  ]
+, [ ( KeywordTok , "end" ) ]
+, []
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " ARRAY2D" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " t " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "=" )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "=" )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "}" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " y" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "    t" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{}" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " x" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "w " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "      t" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "]=" )
+  , ( DecValTok , "0" )
+  ]
+, [ ( NormalTok , "    " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " t" )
+  ]
+, [ ( KeywordTok , "end" ) ]
+, []
+, [ ( NormalTok , "_CELLS " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{}" )
+  ]
+, []
+, [ ( DocumentationTok
+    , "-- give birth to a \"shape\" within the cell array"
+    )
+  ]
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " _CELLS:spawn" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "shape" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "left" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "top" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " y" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "shape" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "-" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " x" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "shape" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "-" )
+  , ( DecValTok , "1" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "      self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "top" )
+  , ( OtherTok , "+" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "left" )
+  , ( OtherTok , "+" )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " shape" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "*" )
+  , ( NormalTok , "shape" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "+" )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "+" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "]" )
+  ]
+, [ ( NormalTok , "    " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
+, [ ( KeywordTok , "end" ) ]
+, []
+, [ ( DocumentationTok
+    , "-- run the CA and produce the next generation"
+    )
+  ]
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " _CELLS:evolve" )
+  , ( OtherTok , "(" )
+  , ( FunctionTok , "next" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " ym1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "yp1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "yi" )
+  , ( OtherTok , "=" )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "-" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "h" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "while" )
+  , ( NormalTok , " yi " )
+  , ( OtherTok , ">" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " xm1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "xp1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "xi" )
+  , ( OtherTok , "=" )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "-" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "w" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "while" )
+  , ( NormalTok , " xi " )
+  , ( OtherTok , ">" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " sum " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "ym1" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "xm1" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "+" )
+  , ( NormalTok , " self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "ym1" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "+" )
+  , ( NormalTok , " self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "ym1" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "xp1" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "+" )
+  ]
+, [ ( NormalTok , "                  self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "xm1" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "+" )
+  , ( NormalTok , " self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "xp1" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "+" )
+  ]
+, [ ( NormalTok , "                  self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "yp1" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "xm1" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "+" )
+  , ( NormalTok , " self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "yp1" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "+" )
+  , ( NormalTok , " self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "yp1" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "xp1" )
+  , ( OtherTok , "]" )
+  ]
+, [ ( NormalTok , "      " )
+  , ( FunctionTok , "next" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "]" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "((" )
+  , ( NormalTok , "sum" )
+  , ( OtherTok , "==" )
+  , ( DecValTok , "2" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "and" )
+  , ( NormalTok , " self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "])" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "or" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "((" )
+  , ( NormalTok , "sum" )
+  , ( OtherTok , "==" )
+  , ( DecValTok , "3" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "and" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "1" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "or" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  ]
+, [ ( NormalTok , "      xm1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "xp1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "xi " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " x" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "xp1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "xp1" )
+  , ( OtherTok , "+" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "xi" )
+  , ( OtherTok , "-" )
+  , ( DecValTok , "1" )
+  ]
+, [ ( NormalTok , "    " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "    ym1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "yp1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "yi " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " y" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "yp1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "yp1" )
+  , ( OtherTok , "+" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "yi" )
+  , ( OtherTok , "-" )
+  , ( DecValTok , "1" )
+  ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
+, [ ( KeywordTok , "end" ) ]
+, []
+, [ ( DocumentationTok , "-- output the array to screen" ) ]
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " _CELLS:draw" )
+  , ( OtherTok , "()" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " out" )
+  , ( OtherTok , "=" )
+  , ( StringTok , "\"\"" )
+  , ( NormalTok , " " )
+  , ( DocumentationTok , "-- accumulate to reduce flicker" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " y" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "h " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "   " )
+  , ( KeywordTok , "for" )
+  , ( NormalTok , " x" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "w " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "      out" )
+  , ( OtherTok , "=" )
+  , ( NormalTok , "out" )
+  , ( OtherTok , "..(((" )
+  , ( NormalTok , "self" )
+  , ( OtherTok , "[" )
+  , ( NormalTok , "y" )
+  , ( OtherTok , "][" )
+  , ( NormalTok , "x" )
+  , ( OtherTok , "]>" )
+  , ( DecValTok , "0" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "and" )
+  , ( NormalTok , " ALIVE" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "or" )
+  , ( NormalTok , " DEAD" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "    " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "    out" )
+  , ( OtherTok , "=" )
+  , ( NormalTok , "out" )
+  , ( OtherTok , ".." )
+  , ( StringTok , "\"" )
+  , ( OtherTok , "\\n" )
+  , ( StringTok , "\"" )
+  ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "write" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "out" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( KeywordTok , "end" ) ]
+, []
+, [ ( DocumentationTok , "-- constructor" ) ]
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " CELLS" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " c " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " ARRAY2D" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  c" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "spawn " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " _CELLS" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "spawn" )
+  ]
+, [ ( NormalTok , "  c" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "evolve " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " _CELLS" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "evolve" )
+  ]
+, [ ( NormalTok , "  c" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "draw " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " _CELLS" )
+  , ( OtherTok , "." )
+  , ( NormalTok , "draw" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "return" )
+  , ( NormalTok , " c" )
+  ]
+, [ ( KeywordTok , "end" ) ]
+, []
+, [ ( DocumentationTok , "--" ) ]
+, [ ( DocumentationTok
+    , "-- shapes suitable for use with spawn() above"
+    )
+  ]
+, [ ( DocumentationTok , "--" ) ]
+, [ ( NormalTok , "HEART " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , ";" )
+  , ( NormalTok , " w" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "3" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "3" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "}" )
+  ]
+, [ ( NormalTok , "GLIDER " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , ";" )
+  , ( NormalTok , " w" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "3" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "3" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "}" )
+  ]
+, [ ( NormalTok , "EXPLODE " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , ";" )
+  , ( NormalTok , " w" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "3" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "4" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "}" )
+  ]
+, [ ( NormalTok , "FISH " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , ";" )
+  , ( NormalTok , " w" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "5" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "4" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "}" )
+  ]
+, [ ( NormalTok , "BUTTERFLY " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "{" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "0" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "1" )
+  , ( OtherTok , ";" )
+  , ( NormalTok , " w" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "5" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "5" )
+  , ( NormalTok , " " )
+  , ( OtherTok , "}" )
+  ]
+, []
+, [ ( DocumentationTok , "-- the main routine" ) ]
+, [ ( KeywordTok , "function" )
+  , ( NormalTok , " LIFE" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DocumentationTok , "-- create two arrays" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " thisgen " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " CELLS" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " nextgen " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " CELLS" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "w" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "h" )
+  , ( OtherTok , ")" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( DocumentationTok , "-- create some life" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( DocumentationTok
+    , "-- about 1000 generations of fun, then a glider steady-state"
+    )
+  ]
+, [ ( NormalTok , "  thisgen:spawn" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "GLIDER" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "5" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "4" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  thisgen:spawn" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "EXPLODE" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "25" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "10" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "  thisgen:spawn" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "FISH" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "4" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "12" )
+  , ( OtherTok , ")" )
+  ]
+, []
+, [ ( NormalTok , "  " )
+  , ( DocumentationTok , "-- run until break" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "local" )
+  , ( NormalTok , " gen" )
+  , ( OtherTok , "=" )
+  , ( DecValTok , "1" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( FunctionTok , "write" )
+  , ( OtherTok , "(" )
+  , ( StringTok , "\"\\027[2J\"" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , "\t" )
+  , ( DocumentationTok , "-- ANSI clear screen" )
+  ]
+, [ ( NormalTok , "  " )
+  , ( KeywordTok , "while" )
+  , ( NormalTok , " " )
+  , ( DecValTok , "1" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "do" )
+  ]
+, [ ( NormalTok , "    thisgen:evolve" )
+  , ( OtherTok , "(" )
+  , ( NormalTok , "nextgen" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "    thisgen" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "nextgen " )
+  , ( OtherTok , "=" )
+  , ( NormalTok , " nextgen" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "thisgen" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( FunctionTok , "write" )
+  , ( OtherTok , "(" )
+  , ( StringTok , "\"\\027[H\"" )
+  , ( OtherTok , ")" )
+  , ( NormalTok , "\t" )
+  , ( DocumentationTok , "-- ANSI home cursor" )
+  ]
+, [ ( NormalTok , "    thisgen:draw" ) , ( OtherTok , "()" ) ]
+, [ ( NormalTok , "    " )
+  , ( FunctionTok , "write" )
+  , ( OtherTok , "(" )
+  , ( StringTok , "\"Life - generation \"" )
+  , ( OtherTok , "," )
+  , ( NormalTok , "gen" )
+  , ( OtherTok , "," )
+  , ( StringTok , "\"" )
+  , ( OtherTok , "\\n" )
+  , ( StringTok , "\"" )
+  , ( OtherTok , ")" )
+  ]
+, [ ( NormalTok , "    gen" )
+  , ( OtherTok , "=" )
+  , ( NormalTok , "gen" )
+  , ( OtherTok , "+" )
+  , ( DecValTok , "1" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( KeywordTok , "if" )
+  , ( NormalTok , " gen" )
+  , ( OtherTok , ">" )
+  , ( DecValTok , "2000" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "then" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "break" )
+  , ( NormalTok , " " )
+  , ( KeywordTok , "end" )
+  ]
+, [ ( NormalTok , "    " )
+  , ( DocumentationTok , "--delay()\t\t-- no delay" )
+  ]
+, [ ( NormalTok , "  " ) , ( KeywordTok , "end" ) ]
+, [ ( KeywordTok , "end" ) ]
+, []
+, [ ( NormalTok , "LIFE" )
+  , ( OtherTok , "(" )
+  , ( DecValTok , "40" )
+  , ( OtherTok , "," )
+  , ( DecValTok , "20" )
+  , ( OtherTok , ")" )
+  ]
+]
diff --git a/test/test-skylighting.hs b/test/test-skylighting.hs
new file mode 100644
--- /dev/null
+++ b/test/test-skylighting.hs
@@ -0,0 +1,222 @@
+{-# OPTIONS_GHC -fno-warn-orphans #-}
+{-# LANGUAGE CPP                 #-}
+{-# LANGUAGE OverloadedStrings   #-}
+{-# LANGUAGE ScopedTypeVariables #-}
+module Main where
+import qualified Control.Exception as E
+import Data.Aeson (decode, encode)
+import Data.Algorithm.Diff
+import qualified Data.ByteString.Lazy as BL
+import qualified Data.Map as Map
+import Data.Monoid ((<>))
+import Data.Text (Text)
+import qualified Data.Text as Text
+import qualified Data.Text.IO as Text
+import System.Directory
+import System.Environment (getArgs)
+import System.FilePath
+import System.Exit (exitFailure)
+import Test.QuickCheck
+import Test.Tasty
+import Test.Tasty.Golden.Advanced (goldenTest)
+import Test.Tasty.HUnit
+import Test.Tasty.QuickCheck (testProperty)
+import Text.Show.Pretty
+
+import Skylighting.Core
+import Skylighting.Loader
+
+tokToText :: Token -> Text
+tokToText (_, s) = s
+
+xmlPath :: FilePath
+xmlPath = "xml/"
+
+main :: IO ()
+main = do
+  sMap <- do
+      result <- loadSyntaxesFromDir xmlPath
+      case result of
+          Left e -> do
+              putStrLn $ "Error loading syntax definitions from " <> xmlPath <> ": " <> e
+              exitFailure
+          Right m -> return m
+
+  let syntaxes = Map.elems sMap
+      defConfig = TokenizerConfig { traceOutput = False
+                                  , syntaxMap = sMap
+                                  }
+
+  inputs <- filter (\fp -> take 1 fp /= ".")
+         <$> getDirectoryContents ("test" </> "cases")
+  allcases <- mapM (fmap (Text.take 240)
+                    . Text.readFile . (("test" </> "cases") </>)) inputs
+  args <- getArgs
+  let regen = "--accept" `elem` args
+  defaultTheme <- BL.readFile ("test" </> "default.theme")
+  defaultMain $ testGroup "skylighting tests" $
+    [ testGroup "tokenizer tests" $
+        map (tokenizerTest defConfig sMap regen) inputs
+    , testGroup "FromJSON instance tests"
+       [ testCase "decode simple color" $
+            Just (RGB 0x15 0xff 0xa0) @=? decode "\"#15ffa0\""
+       , testCase "decode TokenStyle" $
+            Just (TokenStyle{tokenColor = Just (RGB 0x1f 0x1c 0x1b),
+                             tokenBackground = Nothing,
+                             tokenBold = True,
+                             tokenItalic = False,
+                             tokenUnderline = False }) @=?
+            decode "{ \"text-color\": \"#1f1c1b\", \"bold\": true }"
+       , testCase "decode KDE theme to Style" $
+            Just kate @=? decode defaultTheme
+       , testCase "round trip style -> theme -> style" $
+            Just kate @=? decode (encode kate)
+       ]
+    , testGroup "Skylighting.Regex" $
+      [ testCase "convertOctalEscapes" $
+            "a\\700b\\700c\\x{800}" @=?
+              convertOctalEscapes "a\\700b\\0700c\\o{4000}"
+      ]
+    , testGroup "Skylighting" $
+      [ testCase "syntaxesByFilename" $
+            ["Perl"] @=?
+              map sName (syntaxesByFilename sMap "foo/bar.pl")
+      ]
+    , testGroup "Doesn't hang or drop text on a mixed syntax sample" $
+        map (noDropTest defConfig allcases) syntaxes
+    , testGroup "Doesn't hang or drop text on fuzz" $
+        map (\syn -> testProperty (Text.unpack (sName syn)) (p_no_drop defConfig syn))
+        syntaxes
+    , testGroup "Regression tests" $
+      let perl = maybe (error "could not find Perl syntax") id
+                             (lookupSyntax "Perl" sMap)
+          cpp  = maybe (error "could not find CPP syntax") id
+                             (lookupSyntax "cpp" sMap) in
+      [ testCase "perl NUL case" $ Right
+             [[(KeywordTok,"s\NUL")
+              ,(OtherTok,"b")
+              ,(KeywordTok,"\NUL")
+              ,(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 , " " )
+              , ( DataTypeTok , "$foo" )
+              , ( NormalTok , " = " )
+              , ( KeywordTok , "q/" )
+              , ( StringTok , "bar" )
+              , ( KeywordTok , "/" )
+              , ( NormalTok , ";" )
+              ]
+            , [ ( KeywordTok , "my" )
+              , ( NormalTok , " " )
+              , ( DataTypeTok , "$baz" )
+              , ( NormalTok , " = " )
+              , ( KeywordTok , "'" )
+              , ( StringTok , "quux" )
+              , ( KeywordTok , "'" )
+              , ( NormalTok , ";" )
+              ]
+            ] @=? tokenize defConfig perl
+                     "my $foo = q/bar/;\nmy $baz = 'quux';\n"
+      , testCase "cpp floats" $ Right
+           [ [ ( FloatTok , "0.1f" ) ]
+           , [ ( FloatTok , "1.0f" ) ]
+           , [ ( FloatTok , "-0.1f" ) ]
+           , [ ( FloatTok , "-1.0F" ) ]
+           , [ ( FloatTok , "-1.0L" ) ]
+           , [ ( FloatTok , "1e3" ) ]
+           , [ ( FloatTok , "-15e+3" ) ]
+           , [ ( FloatTok , "0.f" ) ]
+           , [ ( FloatTok , "1.F" ) ]
+           , [ ( DecValTok , "1" )
+             , ( NormalTok ,".E" )
+             , ( DecValTok , "3" )
+             ]
+           ] @=? tokenize defConfig cpp
+                     "0.1f\n1.0f\n-0.1f\n-1.0F\n-1.0L\n1e3\n-15e+3\n0.f\n1.F\n1.E3"
+      ]
+    ]
+
+compareValues :: FilePath -> Text -> Text -> IO (Maybe String)
+compareValues referenceFile expected actual =
+   if expected == actual
+      then return $ Nothing
+      else return $ Just $ makeDiff referenceFile
+                           (Text.lines expected) (Text.lines actual)
+
+makeDiff :: FilePath -> [Text] -> [Text] -> String
+makeDiff referenceFile expected actual = unlines $
+  [ "--- " ++ referenceFile
+  , "+++ actual" ] ++
+  map (Text.unpack . vividize) (filter notBoth (getDiff expected actual))
+    where notBoth (Both _ _ ) = False
+          notBoth _           = True
+
+instance Arbitrary Text where
+  arbitrary = Text.pack <$> arbitrary
+  shrink xs = Text.pack <$> shrink (Text.unpack xs)
+
+p_no_drop :: TokenizerConfig -> Syntax -> Text -> Bool
+p_no_drop cfg syntax t =
+  case tokenize cfg syntax t of
+       Right ts -> Text.lines t == map (mconcat . map tokToText) ts
+       Left _   -> False
+
+noDropTest :: TokenizerConfig -> [Text] -> Syntax -> TestTree
+noDropTest cfg inps syntax =
+  localOption (mkTimeout 9000000)
+  $ testCase (Text.unpack (sName syntax))
+  $ mapM_ go inps
+    where go inp =
+            E.catch
+              (case tokenize cfg syntax inp of
+                    Right ts -> assertBool ("Text has been dropped:\n" ++ diffs)
+                                 (inplines == toklines)
+                         where inplines = Text.lines inp
+                               toklines = map (mconcat . map tokToText) ts
+                               diffs = makeDiff "expected" inplines toklines
+                    Left  e  ->
+                      assertFailure ("Unexpected error: " ++ e ++ "\ninput = " ++ show inp))
+              (\(e :: RegexException) ->
+                assertFailure (show e ++ "\ninput = " ++ show inp))
+
+tokenizerTest :: TokenizerConfig -> SyntaxMap -> Bool -> FilePath -> TestTree
+tokenizerTest cfg sMap regen inpFile = localOption (mkTimeout 9000000) $
+  goldenTest testname getExpected getActual
+      (compareValues referenceFile) updateGolden
+  where testname = lang ++ " tokenizing of " ++ inpFile
+        getExpected = Text.readFile referenceFile
+        getActual = do
+          code <- Text.readFile (casesdir </> inpFile)
+          syntax <- case lookupSyntax (Text.pack lang) sMap of
+                         Just s  -> return s
+                         Nothing -> fail $
+                            "Could not find syntax definition for " ++ lang
+          case tokenize cfg syntax $! code of
+                 Left e   -> fail e
+                 Right ls -> return $ Text.pack $ ppShow ls ++ "\n"
+        updateGolden = if regen
+                          then Text.writeFile referenceFile
+                          else \_ -> return ()
+        expecteddir = "test" </> "expected"
+        casesdir = "test" </> "cases"
+        referenceFile = expecteddir </> inpFile <.> "native"
+        lang = drop 1 $ takeExtension inpFile
+
+vividize :: Diff Text -> Text
+vividize (Both s _) = "  " <> s
+vividize (First s)  = "- " <> s
+vividize (Second s) = "+ " <> s
diff --git a/xml/abc.xml b/xml/abc.xml
new file mode 100644
--- /dev/null
+++ b/xml/abc.xml
@@ -0,0 +1,88 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Andrea Primiani - primiani at dag dot it
+ 	version1.10 - 12 december 2005 -->
+<language name="ABC" version="3" kateversion="2.4" section="Other" extensions="*.abc;*.ABC" mimetype="text/vnd.abc" casesensitive="1" author="Andrea Primiani (primiani@dag.it)" license="LGPL">
+    <highlighting>
+        <contexts>
+           <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+<!-- detects tuplet symbols e.g. (3 or (3:2:2-->
+	    <RegExpr attribute="Tuplet" context="#stay" String="\([23456789]:?[23456789]?:?[23456789]?" />
+<!-- detects quoted strings -->
+	    <RangeDetect attribute="String" context="#stay" char="&quot;" char1="&quot;"/>
+<!-- detects decorations delimited by ! ! symbols -->
+	    <RangeDetect attribute="Decoration" context="#stay" char="!" char1="!" />
+<!-- detects single header command delimited by [ and sends to Header context -->
+	    <RegExpr attribute="Header" context="Header" String="\[[ABCGHILMNOQRSTUVZ]:" />
+<!-- detects single header line inside a song without [] - ends at EOL-->
+	    <RegExpr attribute="Header" context="Header2" String="[ABCGHILMNOPQRSTUVZ]:" />
+<!-- detect beginning of header zone with X: and sends to Header context -->	    
+	    <Detect2Chars attribute="Header" context="Header" char="X" char1=":" beginRegion="header" column="0"/>
+<!-- detects bar beginning (or chord) symbols and sends to Bar context -->
+	    <AnyChar attribute="Bar" context="Bar" String="|:[" />
+<!-- detects ] if used to close chords -->	    
+	    <DetectChar attribute="Bar" context="#stay" char="]" />
+<!-- detects () for slurs -->
+	    <AnyChar attribute="Slur" context="#stay" String="()" />
+<!-- detects {} for gracings -->
+	    <AnyChar attribute="Slur" context="#stay" String="{}" />
+<!-- detects W: and w: lyric lines -->	    
+	    <Detect2Chars attribute="Lyrics" context="Lyrics" char="W" char1=":" />
+	    <Detect2Chars attribute="Lyrics" context="Lyrics" char="w" char1=":" />
+<!-- detects %% preprocessor lines and % comment lines-->	    
+	    <Detect2Chars attribute="Preprocessor" context="Preprocessor" char="%" char1="%"/>
+	    <DetectChar attribute="Comment" context="Comment" char="%" />
+<!-- detects ^ _ = symbols before a note -->
+	    <RegExpr attribute="Sharp" context="#stay" String="[_|\^]?[_|=|\^][A-Ga-g]" />
+	   </context>
+<!-- returns to Normal context at the end of line -->	   
+	   <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop" />
+	   <context name="Lyrics" attribute="Lyrics" lineEndContext="#pop" />
+	   <context name="Part" attribute="Header" lineEndContext="#pop" />
+	   <context name="Comment" attribute="Comment" lineEndContext="#pop" />
+<!-- returns to Normal context after the end of bar symbols or at EOL -->
+	   <context name="Bar" attribute="Bar" lineEndContext="#pop" >
+	   	<DetectChar attribute="Normal Text" context="#pop" char="&quot;" />
+<!-- the bar symbol ends when a note letter follows -->
+		<RegExpr attribute="Normal Text" context="#pop" String="[A-Ga-gZz]" />
+<!-- the bar symbol ends after a white space -->
+		<DetectChar attribute="Normal Text" context="#pop" char=" " />
+<!-- detects decorations delimited by ! ! symbols -->
+	    <RangeDetect attribute="Decoration" context="#stay" char="!" char1="!" />
+<!-- detects () for slurs -->
+	    <AnyChar attribute="Slur" context="#stay" String="()" />
+<!-- chomps all other bar symbols -->
+		<RegExpr attribute="Bar" context="#pop" String=":*\|*[1-9]|/*\|" />
+	   </context>
+<!-- returns to Normal context at the end of header -->
+	   <context name="Header" attribute="Header" lineEndContext="#stay">
+<!-- the header ends after K: line -->
+		<RegExpr attribute="Header" context="#pop" String="K:.+" endRegion="header" column="0"/>
+<!-- the single header command ends at the ] char -->
+		<DetectChar attribute="Header" context="#pop" char="]" />
+	   </context>
+<!-- the single header line ends at EOL -->
+	   <context name="Header2" attribute="Header" lineEndContext="#pop" />
+       </contexts>
+        <itemDatas>
+          <itemData name="Normal Text" defStyleNum="dsNormal"/>
+          <itemData name="Notes" defStyleNum="dsKeyword" bold="true"/>
+	  <itemData name="Comment" defStyleNum="dsComment"/>
+	  <itemData name="Decoration" defStyleNum="dsFloat" color="#00bbaa" />
+	  <itemData name="String" defStyleNum="dsString" bold="true"/>
+	  <itemData name="Preprocessor" defStyleNum="dsString" italic="true"/>
+	  <itemData name="Header" defStyleNum="dsFloat"/>
+	  <itemData name="Slur" defStyleNum="dsDataType" bold="true"/>
+	  <itemData name="Tuplet" defStyleNum="dsDataType" color="#bb00bb"/>
+	  <itemData name="Lyrics" defStyleNum="dsDataType" color="#00bb00"/>
+	  <itemData name="Bar" defStyleNum="dsChar" color="#0000ff"/>
+	  <itemData name="Sharp" defStyleNum="dsNormal" color="#22bb66" bold="true"/>
+	</itemDatas>
+ </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="%" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/actionscript.xml b/xml/actionscript.xml
new file mode 100644
--- /dev/null
+++ b/xml/actionscript.xml
@@ -0,0 +1,334 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="ActionScript 2.0" version="2" kateversion="5.0" section="Sources" extensions="*.as" mimetype="text/x-actionscript" license="LGPL" author="Aaron Miller (armantic101@gmail.com)">
+  <highlighting>
+    
+    <list name="properties">
+      <item>_accProps</item>
+      <item>_focusrect</item>
+      <item>_global</item>
+      <item>_highquality</item>
+      <item>_level</item>
+      <item>_parent</item>
+      <item>_quality</item>
+      <item>_root</item>
+      <item>_soundbuftime</item>
+      <item>maxscroll</item>
+      <item>scroll</item>
+      <item>this</item>
+    </list>
+    
+    <list name="global_functions">
+      <item>asfunction</item>
+      <item>call</item>
+      <item>chr</item>
+      <item>clearInterval</item>
+      <item>duplicateMovieClip</item>
+      <item>escape</item>
+      <item>eval</item>
+      <item>fscommand</item>
+      <item>getProperty</item>
+      <item>getTimer</item>
+      <item>getURL</item>
+      <item>getVersion</item>
+      <item>gotoAndPlay</item>
+      <item>gotoAndStop</item>
+      <item>ifFrameLoaded</item>
+      <item>int</item>
+      <item>isFinite</item>
+      <item>isNaN</item>
+      <item>length</item>
+      <item>loadMovie</item>
+      <item>loadMovieNum</item>
+      <item>loadVariables</item>
+      <item>loadVariablesNum</item>
+      <item>mbchr</item>
+      <item>mblength</item>
+      <item>mbord</item>
+      <item>mbsubstring</item>
+      <item>nextFrame</item>
+      <item>nextScene</item>
+      <item>on</item>
+      <item>onClipEvent</item>
+      <item>ord</item>
+      <item>parseFloat</item>
+      <item>parseInt</item>
+      <item>play</item>
+      <item>prevFrame</item>
+      <item>prevScene</item>
+      <item>print</item>
+      <item>printAsBitmap</item>
+      <item>printAsBitmapNum</item>
+      <item>printNum</item>
+      <item>random</item>
+      <item>removeMovieClip</item>
+      <item>setInterval</item>
+      <item>setProperty</item>
+      <item>showRedrawRegions</item>
+      <item>startDrag</item>
+      <item>stop</item>
+      <item>stopAllSounds</item>
+      <item>stopDrag</item>
+      <item>substring</item>
+      <item>targetPath</item>
+      <item>tellTarget</item>
+      <item>toggleHighQuality</item>
+      <item>trace</item>
+      <item>typeof</item>
+      <item>unescape</item>
+      <item>unloadMovie</item>
+      <item>unloadMovieNum</item>
+    <item>updateAfterEvent</item>
+    </list>
+      
+    <list name="classes">
+      <item>Accessibility</item>
+      <item>Accordion</item>
+      <item>Alert</item>
+      <item>Binding</item>
+      <item>Button</item>
+      <item>Camera</item>
+      <item>CellRenderer</item>
+      <item>CheckBox</item>
+      <item>Collection</item>
+      <item>Color</item>
+      <item>ComboBox</item>
+      <item>ComponentMixins</item>
+      <item>ContextMenu</item>
+      <item>ContextMenuItem</item>
+      <item>CustomActions</item>
+      <item>CustomFormatter</item>
+      <item>CustomValidator</item>
+      <item>DataGrid</item>
+      <item>DataHolder</item>
+      <item>DataProvider</item>
+      <item>DataSet</item>
+      <item>DataType</item>
+      <item>Date</item>
+      <item>DateChooser</item>
+      <item>DateField</item>
+      <item>Delta</item>
+      <item>DeltaItem</item>
+      <item>DeltaPacket</item>
+      <item>DepthManager</item>
+      <item>EndPoint</item>
+      <item>Error</item>
+      <item>FaultEvent</item>
+      <item>FocusManager</item>
+      <item>Form</item>
+      <item>Function</item>
+      <item>Iterator</item>
+      <item>Key</item>
+      <item>Label</item>
+      <item>List</item>
+      <item>LoadVars</item>
+      <item>Loader</item>
+      <item>LocalConnection</item>
+      <item>Log</item>
+      <item>Math</item>
+      <item>Media</item>
+      <item>Menu</item>
+      <item>MenuBar</item>
+      <item>Microphone</item>
+      <item>Mouse</item>
+      <item>MovieClip</item>
+      <item>MovieClipLoader</item>
+      <item>NetConnection</item>
+      <item>NetStream</item>
+      <item>Number</item>
+      <item>NumericStepper</item>
+      <item>PendingCall</item>
+      <item>PopUpManager</item>
+      <item>PrintJob</item>
+      <item>ProgressBar</item>
+      <item>RDBMSResolver</item>
+      <item>RadioButton</item>
+      <item>RelayResponder</item>
+      <item>SOAPCall</item>
+      <item>Screen</item>
+      <item>ScrollPane</item>
+      <item>Selection</item>
+      <item>SharedObject</item>
+      <item>Slide</item>
+      <item>Sound</item>
+      <item>Stage</item>
+      <item>StyleManager</item>
+      <item>System</item>
+      <item>TextArea</item>
+      <item>TextField</item>
+      <item>TextFormat</item>
+      <item>TextInput</item>
+      <item>TextSnapshot</item>
+      <item>TransferObject</item>
+      <item>Tree</item>
+      <item>TreeDataProvider</item>
+      <item>TypedValue</item>
+      <item>UIComponent</item>
+      <item>UIEventDispatcher</item>
+      <item>UIObject</item>
+      <item>Video</item>
+      <item>WebService</item>
+      <item>WebServiceConnector</item>
+      <item>Window</item>
+      <item>XML</item>
+      <item>XMLConnector</item>
+      <item>XUpdateResolver</item>
+    </list>
+    
+    <list name="keywords">
+      <item>add</item>
+      <item>and</item>
+      <item>break</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>class</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>delete</item>
+      <item>do</item>
+      <item>dynamic</item>
+      <item>else</item>
+      <item>eq</item>
+      <item>extends</item>
+      <item>finally</item>
+      <item>for</item>
+      <item>function</item>
+      <item>ge</item>
+      <item>get</item>
+      <item>gt</item>
+      <item>if</item>
+      <item>implements</item>
+      <item>import</item>
+      <item>in</item>
+      <item>instanceof</item>
+      <item>interface</item>
+      <item>intrinsic</item>
+      <item>le</item>
+      <item>lt</item>
+      <item>ne</item>
+      <item>new</item>
+      <item>not</item>
+      <item>or</item>
+      <item>private</item>
+      <item>public</item>
+      <item>return</item>
+      <item>set</item>
+      <item>static</item>
+      <item>switch</item>
+      <item>throw</item>
+      <item>try</item>
+      <item>var</item>
+      <item>void</item>
+      <item>while</item>
+      <item>with</item>
+    </list>
+    
+    <list name="const">
+      <item>false</item>
+      <item>Infinity</item>
+      <item>-Infinity</item>
+      <item>NaN</item>
+      <item>newline</item>
+      <item>null</item>
+      <item>true</item>
+      <item>undefined</item>
+    </list>
+    
+    <list name="types">
+      <item>Array</item>
+      <item>Boolean</item>
+      <item>Number</item>
+      <item>Object</item>
+      <item>String</item>
+      <item>Void</item>
+    </list>
+    
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <!-- Comment next line if you don't use Javadoc tool -->
+        <IncludeRules context="##Javadoc"/>
+        <keyword attribute="Properties" context="#stay" String="properties"/>
+        <keyword attribute="Global Functions" context="#stay" String="global_functions"/>
+        <keyword attribute="Classes" context="#stay" String="classes"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Constants" context="#stay" String="const"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay">
+          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <RegExpr attribute="Decimal" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1"/>
+        <RegExpr attribute="Decimal" context="#stay" String="//\s*END.*$" endRegion="Region1"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/> 
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/> 
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>  
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\.{3,3}\s+" />  
+        <RegExpr attribute="Keyword" context="StaticImports" String="\b(import\s+static)\b" />
+        <RegExpr attribute="Keyword" context="Imports" String="\b(package|import)\b" /> 
+        <RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*(/\*\s*\d+\s*\*/\s*)?[(])" />
+        <RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" /> 
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthrough="true" fallthroughContext="#pop">  
+        <RegExpr attribute="Function" context="#pop" String="\b[_a-zA-Z]\w*(?=[\s]*)" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="StaticImports">
+        <RegExpr attribute="StaticImports" context="#pop" String="\s*.*$" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Imports">
+        <RegExpr attribute="Imports" context="#pop" String="\s*.*$" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword"/>
+      <itemData name="Function"     defStyleNum="dsFunction"/>
+      <itemData name="StaticImports" defStyleNum="dsImport"/>
+      <itemData name="Imports"      defStyleNum="dsImport"/>
+      <itemData name="Data Type"    defStyleNum="dsDataType"/>
+      <itemData name="Decimal"      defStyleNum="dsDecVal"/>
+      <itemData name="Octal"        defStyleNum="dsBaseN"/>
+      <itemData name="Hex"          defStyleNum="dsBaseN"/>
+      <itemData name="Float"        defStyleNum="dsFloat"/>
+      <itemData name="Char"         defStyleNum="dsChar"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="String Char"  defStyleNum="dsSpecialString"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Symbol"       defStyleNum="dsNormal"/>
+      <itemData name="Properties"   defStyleNum="dsAttribute" bold="1"/>
+      <itemData name="Global Functions"   defStyleNum="dsFunction" bold="1"/>
+      <itemData name="Classes"   defStyleNum="dsBuiltIn" bold="1"/>
+      <itemData name="Constants" defStyleNum="dsConstant" bold="1"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//"/>
+      <comment name="multiLine" start="/*" end="*/"/>
+    </comments>
+    <keywords casesensitive="1"/>
+  </general>
+</language>
diff --git a/xml/ada.xml b/xml/ada.xml
new file mode 100644
--- /dev/null
+++ b/xml/ada.xml
@@ -0,0 +1,202 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Ada"
+          version="2"
+          kateversion="5.0"
+          section="Sources"
+          extensions="*.adb;*.ads;*.ada;*.a"
+          indenter="ada"
+          mimetype="text/x-adasrc">
+  <highlighting>
+    <list name="keywords">
+      <item>abort</item>
+      <item>abs</item>
+      <item>abstract</item>
+      <item>accept</item>
+      <item>access</item>
+      <item>aliased</item>
+      <item>all</item>
+      <item>and</item>
+      <item>array</item>
+      <item>at</item>
+      <item>begin</item>
+      <item>body</item>
+      <item>constant</item>
+      <item>declare</item>
+      <item>delay</item>
+      <item>delta</item>
+      <item>digits</item>
+      <item>do</item>
+      <item>else</item>
+      <item>elsif</item>
+      <item>end</item>
+      <item>entry</item>
+      <item>exception</item>
+      <item>exit</item>
+      <item>for</item>
+      <item>function</item>
+      <item>generic</item>
+      <item>goto</item>
+      <item>in</item>
+      <item>interface</item>
+      <item>is</item>
+      <item>limited</item>
+      <item>mod</item>
+      <item>new</item>
+      <item>not</item>
+      <item>null</item>
+      <item>of</item>
+      <item>or</item>
+      <item>others</item>
+      <item>out</item>
+      <item>overriding</item>
+      <item>package</item>
+      <item>pragma</item>
+      <item>private</item>
+      <item>procedure</item>
+      <item>protected</item>
+      <item>raise</item>
+      <item>range</item>
+      <item>rem</item>
+      <item>record</item>
+      <item>renames</item>
+      <item>requeue</item>
+      <item>return</item>
+      <item>reverse</item>
+      <item>separate</item>
+      <item>subtype</item>
+      <item>tagged</item>
+      <item>task</item>
+      <item>terminate</item>
+      <item>then</item>
+      <item>type</item>
+      <item>until</item>
+      <item>use</item>
+      <item>when</item>
+      <item>while</item>
+      <item>with</item>
+      <item>xor</item>
+    </list>
+    <list name="pragmas">
+      <item>all_calls_remote</item>
+      <item>assert</item>
+      <item>assertion_policy</item>
+      <item>asynchronous</item>
+      <item>atomic</item>
+      <item>atomic_components</item>
+      <item>attach_handler</item>
+      <item>controlled</item>
+      <item>convention</item>
+      <item>detect_blocking</item>
+      <item>discard_names</item>
+      <item>elaborate</item>
+      <item>elaborate_all</item>
+      <item>elaborate_body</item>
+      <item>export</item>
+      <item>import</item>
+      <item>inline</item>
+      <item>inspection_point</item>
+      <item>interrupt_handler</item>
+      <item>interrupt_priority</item>
+      <item>linker_options</item>
+      <item>list</item>
+      <item>locking_policy</item>
+      <item>no_return</item>
+      <item>normalize_scalars</item>
+      <item>optimize</item>
+      <item>pack</item>
+      <item>page</item>
+      <item>partition_elaboration_policy</item>
+      <item>preelaborable_initialization</item>
+      <item>preelaborate</item>
+      <item>priority</item>
+      <item>priority_specific_dispatching</item>
+      <item>profile</item>
+      <item>pure</item>
+      <item>queuing_policy</item>
+      <item>relative_deadline</item>
+      <item>remote_call_interface</item>
+      <item>remote_types</item>
+      <item>restrictions</item>
+      <item>reviewable</item>
+      <item>shared_passive</item>
+      <item>storage_size</item>
+      <item>suppress</item>
+      <item>task_dispatching_policy</item>
+      <item>unchecked_union</item>
+      <item>unsuppress</item>
+      <item>volatile</item>
+      <item>volatile_components</item>
+    </list>
+    <list name="types">
+      <item>boolean</item>
+      <item>character</item>
+      <item>float</item>
+      <item>integer</item>
+      <item>long_float</item>
+      <item>long_integer</item>
+      <item>long_long_float</item>
+      <item>long_long_integer</item>
+      <item>short_float</item>
+      <item>short_integer</item>
+      <item>string</item>
+      <item>wide_string</item>
+      <item>wide_character</item>
+      <item>wide_wide_character</item>
+      <item>wide_wide_string</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Default">
+        <RegExpr attribute="Keyword" context="#stay" String="\brecord\b"       insensitive="true" beginRegion="RecordRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+record\b" insensitive="true"   endRegion="RecordRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bcase\b"         insensitive="true" beginRegion="CaseRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+case\b"   insensitive="true"   endRegion="CaseRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bif\b"           insensitive="true" beginRegion="IfRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+if\b"     insensitive="true"   endRegion="IfRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bloop\b"         insensitive="true" beginRegion="LoopRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+loop\b"   insensitive="true"   endRegion="LoopRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bselect\b"       insensitive="true" beginRegion="SelectRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s+select\b" insensitive="true"   endRegion="SelectRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bbegin\b"        insensitive="true" beginRegion="BeginRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\b"          insensitive="true"   endRegion="BeginRegion"/>
+        <StringDetect attribute="Region Marker" context="Region Marker" String="--  BEGIN" beginRegion="RegionMarker" firstNonSpace="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="--  END" endRegion="RegionMarker" firstNonSpace="true" />
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Pragmas" context="#stay" String="pragmas" />
+        <keyword attribute="Data Type" context="#stay" String="types" />
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+        <RegExpr attribute="Char" context="#stay" String="'.'"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;|"/>
+      </context>
+      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker"/>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment"/>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Keyword"     defStyleNum="dsKeyword" />
+      <itemData name="Pragmas"     defStyleNum="dsExtension" bold="1" />
+      <itemData name="Data Type"   defStyleNum="dsDataType"/>
+      <itemData name="Decimal"     defStyleNum="dsDecVal" />
+      <itemData name="Base-N"      defStyleNum="dsBaseN" />
+      <itemData name="Float"       defStyleNum="dsFloat" />
+      <itemData name="Char"        defStyleNum="dsChar" />
+      <itemData name="String"      defStyleNum="dsString" />
+      <itemData name="Comment"     defStyleNum="dsComment" />
+      <itemData name="Symbol"      defStyleNum="dsNormal"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="--" />
+    </comments>
+    <keywords casesensitive="0" />
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/agda.xml b/xml/agda.xml
new file mode 100644
--- /dev/null
+++ b/xml/agda.xml
@@ -0,0 +1,107 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"[
+  <!ENTITY charsdelim "_;.&#34;(){}@">
+  <!ENTITY wordsep "(?=([&charsdelim;]|\s|$))">
+]>
+<language name="Agda" version="2" kateversion="5.0" section="Sources" extensions="*.agda" mimetype="text/x-agda" author="Matthias C. M. Troffaes" license="LGPL">
+  <highlighting>
+    <list name="reserved keywords">
+      <item>abstract</item>
+      <item>codata</item>
+      <item>coinductive</item>
+      <item>constructor</item>
+      <item>data</item>
+      <item>field</item>
+      <item>forall</item>
+      <item>hiding</item>
+      <item>import</item>
+      <item>in</item>
+      <item>inductive</item>
+      <item>infix</item>
+      <item>infixl</item>
+      <item>infixr</item>
+      <item>let</item>
+      <item>open</item>
+      <item>pattern</item>
+      <item>postulate</item>
+      <item>primitive</item>
+      <item>private</item>
+      <item>public</item>
+      <item>module</item>
+      <item>mutual</item>
+      <item>quote</item>
+      <item>quoteGoal</item>
+      <item>quoteTerm</item>
+      <item>record</item>
+      <item>renaming</item>
+      <item>rewrite</item>
+      <item>syntax</item>
+      <item>to</item>
+      <item>unquote</item>
+      <item>using</item>
+      <item>where</item>
+      <item>with</item>
+    </list>
+    <contexts>
+      <context attribute="Normal" lineEndContext="#stay" name="code">
+        <RegExpr attribute="Pragma"  context="#stay" String="\{-#.*#-\}" />
+        <keyword attribute="Keyword" context="#stay" String="reserved keywords" />
+        <RegExpr attribute="Type"    context="#stay" String="(Prop|Set[₀-₉]+|Set[0-9]*)&wordsep;" />
+        <RegExpr attribute="Special" context="#stay" String="(-&gt;|→|∀|λ|:|=|\|)&wordsep;" />
+        <RegExpr attribute="Float"   context="#stay" String="\d+\.\d+&wordsep;" />
+        <RegExpr attribute="Decimal" context="#stay" String="[0-9]+&wordsep;" />
+        <DetectChar attribute="Char"   context="char"   char="'" />
+        <DetectChar attribute="String" context="string" char="&quot;" />
+        <Detect2Chars attribute="Comment" context="comment"  char="-"  char1="-" />
+        <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" />
+        <Detect2Chars attribute="Hole"    context="hole"     char="{" char1="!" />
+        <!-- delimiters which cannot be part of an identifier, or
+             backslash which starts a lambda expression -->
+        <AnyChar      attribute="Special" context="#stay" String="&charsdelim;\\" />
+        <!-- any other identifier (can contain backslash and single
+             quote anywhere except at start, but these two special
+             cases are already taken care off above) -->
+        <RegExpr attribute="Normal" context="#stay" String="[^&charsdelim;\s]+" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="comment" />
+      <context attribute="Comment" lineEndContext="#stay" name="comments">
+        <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" /> <!-- for nested comments -->
+        <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" />
+      </context>
+      <context attribute="Hole" lineEndContext="#stay" name="hole">
+        <Detect2Chars attribute="Hole" context="#pop" char="!" char1="}" />
+      </context>
+      <context attribute="Char" lineEndContext="#pop" name="char">
+        <Detect2Chars attribute="Char" context="#stay" char="\\" char1="'" />
+        <DetectChar   attribute="Char" context="#pop"  char="'" />
+      </context>
+      <context attribute="String" lineEndContext="#stay" name="string">
+        <Detect2Chars attribute="String" context="#stay" char="\\" char1="&quot;" />
+        <DetectChar   attribute="String" context="#pop"  char="&quot;" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal"   defStyleNum="dsNormal"   spellChecking="false" />
+      <itemData name="Comment"  defStyleNum="dsComment" />
+      <itemData name="Pragma"   defStyleNum="dsPreprocessor" spellChecking="false" />
+      <itemData name="Hole"     defStyleNum="dsOthers"   spellChecking="false" />
+      <itemData name="Keyword"  defStyleNum="dsKeyword"  spellChecking="false" />
+      <itemData name="Type"     defStyleNum="dsDataType" spellChecking="false" />
+      <itemData name="Special"  defStyleNum="dsOthers"   spellChecking="false" />
+      <itemData name="Decimal"  defStyleNum="dsDecVal"   spellChecking="false" />
+      <itemData name="Float"    defStyleNum="dsFloat"    spellChecking="false" />
+      <itemData name="Char"     defStyleNum="dsChar"     spellChecking="false" />
+      <itemData name="String"   defStyleNum="dsString" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <folding indentationsensitive="1"/>
+    <comments>
+      <comment name="singleLine" start="--" />
+      <comment name="multiLine" start="{-" end="-}" />
+    </comments>
+    <keywords casesensitive="1"
+              weakDeliminator=":!+,-&lt;=&gt;%&amp;*/?[]^|~\\"
+              additionalDeliminator="&charsdelim;" />
+  </general>
+</language>
diff --git a/xml/alert.xml b/xml/alert.xml
new file mode 100644
--- /dev/null
+++ b/xml/alert.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language version="5" kateversion="3.1" name="Alerts" section="Other" extensions="" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" hidden="true">
+  <highlighting>
+    <list name="alerts_hi">
+      <item>ALERT</item>
+      <item>ATTENTION</item>
+      <item>DANGER</item>
+      <item>HACK</item>
+      <item>SECURITY</item>
+    </list>
+    <list name="alerts_mid">
+      <item>BUG</item>
+      <item>FIXME</item>
+      <item>DEPRECATED</item>
+      <item>TASK</item>
+      <item>TODO</item>
+      <item>TBD</item>
+      <item>WARNING</item>
+      <item>CAUTION</item>
+      <item>NOLINT</item>
+    </list>
+    <list name="alerts_lo">
+      <item>###</item>
+      <item>NOTE</item>
+      <item>NOTICE</item>
+      <item>TEST</item>
+      <item>TESTING</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
+        <StringDetect attribute="Region Marker" context="#stay" String="{{{" beginRegion="AlertRegion1" />
+        <StringDetect attribute="Region Marker" context="#stay" String="}}}" endRegion="AlertRegion1" />
+        <WordDetect attribute="Region Marker" context="#stay" String="BEGIN" beginRegion="AlertRegion2" />
+        <WordDetect attribute="Region Marker" context="#stay" String="END" endRegion="AlertRegion2" />
+        <keyword attribute="Alert Level 1" context="#stay" String="alerts_hi" />
+        <keyword attribute="Alert Level 2" context="#stay" String="alerts_mid" />
+        <keyword attribute="Alert Level 3" context="#stay" String="alerts_lo" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"   defStyleNum="dsNormal"/>
+      <itemData name="Alert Level 1" defStyleNum="dsAlert" color="#e85848" selColor="#e85848" backgroundColor="#451e1a" />
+      <itemData name="Alert Level 2" defStyleNum="dsAlert" color="#ca9219" selColor="#ca9219" backgroundColor="#451e1a" />
+      <itemData name="Alert Level 3" defStyleNum="dsAlert" color="#81ca2d" selColor="#81ca2d" />
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1"/>
+  </general>
+</language>
+<!-- kate: indent-width 2; -->
diff --git a/xml/alert_indent.xml b/xml/alert_indent.xml
new file mode 100644
--- /dev/null
+++ b/xml/alert_indent.xml
@@ -0,0 +1,17 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language version="4" kateversion="2.4" name="Alerts_indent" section="Other" extensions="" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" hidden="true">
+  <highlighting>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
+        <IncludeRules context="##Alerts" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <folding indentationsensitive="1" />
+  </general>
+</language>
diff --git a/xml/apache.xml b/xml/apache.xml
new file mode 100644
--- /dev/null
+++ b/xml/apache.xml
@@ -0,0 +1,633 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<!-- Changelog:
+
+v1.1:
+- improved Syntax
+- added support for Apache 2.2 Directives
+- .ht* files may now automaticaly be highlighted
+
+v1.0:
+- first Release
+-->
+
+<language name="Apache Configuration" section="Configuration"
+          version="3" kateversion="5.0"
+          extensions="httpd.conf;httpd2.conf;apache.conf;apache2.conf;.htaccess*;.htpasswd*"
+          mimetype=""
+          author="Jan Janssen (medhefgo@googlemail.com)" license="LGPL">
+
+<highlighting>
+<list name="String Directives">
+<item>AcceptFilter</item>
+<item>AccessFileName</item>
+<item>Action</item>
+<item>AddAlt</item>
+<item>AddAltByEncoding</item>
+<item>AddAltByType</item>
+<item>AddCharset</item>
+<item>AddDefaultCharset</item>
+<item>AddDescription</item>
+<item>AddEncoding</item>
+<item>AddHandler</item>
+<item>AddIcon</item>
+<item>AddIconByEncoding</item>
+<item>AddIconByType</item>
+<item>AddInputFilter</item>
+<item>AddLanguage</item>
+<item>AddModuleInfo</item>
+<item>AddOutputFilter</item>
+<item>AddOutputFilterByType</item>
+<item>AddType</item>
+<item>Alias</item>
+<item>AliasMatch</item>
+<item>Allow</item>
+<item>Anonymous</item>
+<item>AuthBasicProvider</item>
+<item>AuthDBMGroupFile</item>
+<item>AuthDBMUserFile</item>
+<item>AuthDigestDomain</item>
+<item>AuthDigestFile</item>
+<item>AuthDigestGroupFile</item>
+<item>AuthDigestNonceFormat</item>
+<item>AuthDigestProvider</item>
+<item>AuthGroupFile</item>
+<item>AuthLDAPBindDN</item>
+<item>AuthLDAPBindPassword</item>
+<item>AuthLDAPCharsetConfig</item>
+<item>AuthLDAPGroupAttribute</item>
+<item>AuthLDAPUrl</item>
+<item>AuthName</item>
+<item>AuthUserFile</item>
+<item>BrowserMatch</item>
+<item>BrowserMatchNoCase</item>
+<item>BS2000Account</item>
+<item>CacheDisable</item>
+<item>CacheEnable</item>
+<item>CacheFile</item>
+<item>CacheGcClean</item>
+<item>CacheGcUnused</item>
+<item>CacheRoot</item>
+<item>CGIMapExtension</item>
+<item>CharsetDefault</item>
+<item>CharsetOptions</item>
+<item>CharsetSourceEnc</item>
+<item>CookieDomain</item>
+<item>CookieLog</item>
+<item>CookieName</item>
+<item>CoreDumpDirectory</item>
+<item>CustomLog</item>
+<item>Dav</item>
+<item>DavGenericLockDB</item>
+<item>DavLockDB</item>
+<item>DBDParams</item>
+<item>DBDPrepareSQL</item>
+<item>DBDriver</item>
+<item>DefaultIcon</item>
+<item>DefaultLanguage</item>
+<item>DefaultType</item>
+<item>DeflateFilterNote</item>
+<item>Deny</item>
+<item>DirectoryIndex</item>
+<item>DocumentRoot</item>
+<item>ErrorDocument</item>
+<item>ErrorLog</item>
+<item>Example</item>
+<item>ExpiresByType</item>
+<item>ExpiresDefault</item>
+<item>ExtFilterDefine</item>
+<item>ExtFilterOptions</item>
+<item>FilterChain</item>
+<item>FilterDeclare</item>
+<item>FilterProtocol</item>
+<item>FilterProvider</item>
+<item>FilterTrace</item>
+<item>ForceType</item>
+<item>ForensicLog</item>
+<item>Group</item>
+<item>Header</item>
+<item>HeaderName</item>
+<item>ImapBase</item>
+<item>Include</item>
+<item>IndexIgnore</item>
+<item>IndexOptions</item>
+<item>IndexStyleSheet</item>
+<item>ISAPICacheFile</item>
+<item>LanguagePriority</item>
+<item>LDAPSharedCacheFile</item>
+<item>LDAPTrustedCA</item>
+<item>LDAPTrustedCAType</item>
+<item>LDAPTrustedClientCert</item>
+<item>LDAPTrustedGlobalCert</item>
+<item>Listen</item>
+<item>LoadFile</item>
+<item>LoadModule</item>
+<item>LockFile</item>
+<item>LogFormat</item>
+<item>MetaDir</item>
+<item>MetaSuffix</item>
+<item>MimeMagicFile</item>
+<item>MMapFile</item>
+<item>NameVirtualHost</item>
+<item>NoProxy</item>
+<item>NWSSLTrustedCerts</item>
+<item>NWSSLUpgradeable</item>
+<item>PassEnv</item>
+<item>PidFile</item>
+<item>ProxyBlock</item>
+<item>ProxyDomain</item>
+<item>ProxyPass</item>
+<item>ProxyPassReverse</item>
+<item>ProxyPassReverseCookieDomain</item>
+<item>ProxyPassReverseCookiePath</item>
+<item>ProxyRemote</item>
+<item>ProxyRemoteMatch</item>
+<item>ReadmeName</item>
+<item>Redirect</item>
+<item>RedirectMatch</item>
+<item>RedirectPermanent</item>
+<item>RedirectTemp</item>
+<item>RemoveCharset</item>
+<item>RemoveEncoding</item>
+<item>RemoveHandler</item>
+<item>RemoveInputFilter</item>
+<item>RemoveLanguage</item>
+<item>RemoveOutputFilter</item>
+<item>RemoveType</item>
+<item>RequestHeader</item>
+<item>Require</item>
+<item>RewriteBase</item>
+<item>RewriteCond</item>
+<item>RewriteLock</item>
+<item>RewriteLog</item>
+<item>RewriteMap</item>
+<item>RewriteRule</item>
+<item>ScoreBoardFile</item>
+<item>Script</item>
+<item>ScriptAlias</item>
+<item>ScriptAliasMatch</item>
+<item>ScriptLog</item>
+<item>ScriptSock</item>
+<item>SecureListen</item>
+<item>ServerAdmin</item>
+<item>ServerAlias</item>
+<item>ServerName</item>
+<item>ServerPath</item>
+<item>ServerRoot</item>
+<item>SetEnv</item>
+<item>SetEnvIf</item>
+<item>SetEnvIfNoCase</item>
+<item>SetHandler</item>
+<item>SetInputFilter</item>
+<item>SetOutputFilter</item>
+<item>SSIEndTag</item>
+<item>SSIErrorMsg</item>
+<item>SSIStartTag</item>
+<item>SSITimeFormat</item>
+<item>SSIUndefinedEcho</item>
+<item>SSLCACertificateFile</item>
+<item>SSLCACertificatePath</item>
+<item>SSLCADNRequestFile</item>
+<item>SSLCADNRequestPath</item>
+<item>SSLCARevocationFile</item>
+<item>SSLCARevocationPath</item>
+<item>SSLCertificateChainFile</item>
+<item>SSLCertificateFile</item>
+<item>SSLCertificateKeyFile</item>
+<item>SSLCipherSuite</item>
+<item>SSLCryptoDevice</item>
+<item>SSLHonorCiperOrder</item>
+<item>SSLPassPhraseDialog</item>
+<item>SSLProxyCACertificateFile</item>
+<item>SSLProxyCACertificatePath</item>
+<item>SSLProxyCARevocationFile</item>
+<item>SSLProxyCARevocationPath</item>
+<item>SSLProxyCipherSuite</item>
+<item>SSLProxyMachineCertificateFile</item>
+<item>SSLProxyMachineCertificatePath</item>
+<item>SSLProxyProtocol</item>
+<item>SSLRandomSeed</item>
+<item>SSLRequire</item>
+<item>SSLRequireSSL</item>
+<item>SSLUserName</item>
+<item>SuexecUserGroup</item>
+<item>TransferLog</item>
+<item>TypesConfig</item>
+<item>UnsetEnv</item>
+<item>User</item>
+<item>UserDir</item>
+<item>VirtualDocumentRoot</item>
+<item>VirtualDocumentRootIP</item>
+<item>VirtualScriptAlias</item>
+<item>VirtualScriptAliasIP</item>
+<item>Win32DisableAcceptEx</item>
+</list>
+
+<list name="Integer Directives">
+<item>AllowCONNECT</item>
+<item>AssignUserID</item>
+<item>AuthDigestNonceLifetime</item>
+<item>AuthDigestShmemSize</item>
+<item>CacheDefaultExpire</item>
+<item>CacheDirLength</item>
+<item>CacheDirLevels</item>
+<item>CacheForceCompletion</item>
+<item>CacheGcDaily</item>
+<item>CacheGcInterval</item>
+<item>CacheGcMemUsage</item>
+<item>CacheLastModifiedFactor</item>
+<item>CacheMaxExpire</item>
+<item>CacheMaxFileSize</item>
+<item>CacheMinFileSize</item>
+<item>CacheSize</item>
+<item>CacheTimeMargin</item>
+<item>ChildPerUserID</item>
+<item>CookieExpires</item>
+<item>DavMinTimeout</item>
+<item>DBDExptime</item>
+<item>DBDKeep</item>
+<item>DBDMax</item>
+<item>DBDMin</item>
+<item>DBDPersist</item>
+<item>DeflateBufferSize</item>
+<item>DeflateCompressionLevel</item>
+<item>DeflateMemLevel</item>
+<item>DeflateWindowSize</item>
+<item>IdentityCheckTimeout</item>
+<item>ISAPIReadAheadBuffer</item>
+<item>KeepAliveTimeout</item>
+<item>LDAPCacheEntries</item>
+<item>LDAPCacheTTL</item>
+<item>LDAPConnectionTimeout</item>
+<item>LDAPOpCacheEntries</item>
+<item>LDAPOpCacheTTL</item>
+<item>LDAPSharedCacheSize</item>
+<item>LimitInternalRecursion</item>
+<item>LimitRequestBody</item>
+<item>LimitRequestFields</item>
+<item>LimitRequestFieldsize</item>
+<item>LimitRequestLine</item>
+<item>LimitXMLRequestBody</item>
+<item>ListenBacklog</item>
+<item>MaxClients</item>
+<item>MaxKeepAliveRequests</item>
+<item>MaxMemFree</item>
+<item>MaxRequestsPerChild</item>
+<item>MaxRequestsPerThread</item>
+<item>MaxSpareServers</item>
+<item>MaxSpareThreads</item>
+<item>MaxThreads</item>
+<item>MaxThreadsPerChild</item>
+<item>MCacheMaxObjectCount</item>
+<item>MCacheMaxObjectSize</item>
+<item>MCacheMaxStreamingBuffer</item>
+<item>MCacheMinObjectSize</item>
+<item>MCacheSize</item>
+<item>MinSpareServers</item>
+<item>MinSpareThreads</item>
+<item>NumServers</item>
+<item>ProxyIOBufferSize</item>
+<item>ProxyMaxForwards</item>
+<item>ProxyReceiveBufferSize</item>
+<item>ProxyTimeout</item>
+<item>RewriteLogLevel</item>
+<item>RLimitCPU</item>
+<item>RLimitMEM</item>
+<item>RLimitNPROC</item>
+<item>ScriptLogBuffer</item>
+<item>ScriptLogLength</item>
+<item>SendBufferSize</item>
+<item>ServerLimit</item>
+<item>SSLProxyVerifyDepth</item>
+<item>SSLSessionCacheTimeout</item>
+<item>SSLVerifyDepth</item>
+<item>StartServers</item>
+<item>StartThreads</item>
+<item>ThreadLimit</item>
+<item>ThreadsPerChild</item>
+<item>ThreadStackSize</item>
+<item>TimeOut</item>
+</list>
+
+<list name="Alternative Directives">
+<item>AcceptMutex</item>
+<item>AcceptPathInfo</item>
+<item>AllowEncodedSlashes</item>
+<item>AllowOverride</item>
+<item>Anonymous_Authoritative</item>
+<item>Anonymous_LogEmail</item>
+<item>Anonymous_MustGiveEmail</item>
+<item>Anonymous_NoUserID</item>
+<item>Anonymous_VerifyEmail</item>
+<item>AuthAuthoritative</item>
+<item>AuthBasicAuthoritative</item>
+<item>AuthBasicProvider</item>
+<item>AuthDBMAuthoritative</item>
+<item>AuthDBMType</item>
+<item>AuthDefaultAuthoritative</item>
+<item>AuthDigestAlgorithm</item>
+<item>AuthDigestNcCheck</item>
+<item>AuthDigestQop</item>
+<item>AuthLDAPAuthoritative</item>
+<item>AuthLDAPCompareDNOnServer</item>
+<item>AuthLDAPDereferenceAliases</item>
+<item>AuthLDAPEnabled</item>
+<item>AuthLDAPFrontPageHack</item>
+<item>AuthLDAPGroupAttributeIsDN</item>
+<item>AuthLDAPRemoteUserIsDN</item>
+<item>AuthType</item>
+<item>AuthzDBMAuthoritative</item>
+<item>AuthzDBMType</item>
+<item>AuthzDefaultAuthoritative</item>
+<item>AuthzGroupFileAuthoritative</item>
+<item>AuthzLDAPAuthoritative</item>
+<item>AuthzOwnerAuthoritative</item>
+<item>AuthzUserAuthoritative</item>
+<item>BufferedLogs</item>
+<item>CacheExpiryCheck</item>
+<item>CacheIgnoreCacheControl</item>
+<item>CacheIgnoreHeaders</item>
+<item>CacheIgnoreNoLastMod</item>
+<item>CacheNegotiatedDocs</item>
+<item>CacheStoreNoStore</item>
+<item>CacheStorePrivate</item>
+<item>CheckSpelling</item>
+<item>ContentDigest</item>
+<item>CookieStyle</item>
+<item>CookieTracking</item>
+<item>CoreDumpDirectory</item>
+<item>CustomLog</item>
+<item>DavDepthInfinity</item>
+<item>DirectorySlash</item>
+<item>DumpIOInput</item>
+<item>DumpIOOutput</item>
+<item>EnableExceptionHook</item>
+<item>EnableMMAP</item>
+<item>EnableSendfile</item>
+<item>ExpiresActive</item>
+<item>ExtendedStatus</item>
+<item>FileETag</item>
+<item>ForceLanguagePriority</item>
+<item>HostnameLookups</item>
+<item>IdentityCheck</item>
+<item>ImapDefault</item>
+<item>ImapMenu</item>
+<item>IndexOrderDefault</item>
+<item>ISAPIAppendLogToErrors</item>
+<item>ISAPIAppendLogToQuery</item>
+<item>ISAPIFakeAsync</item>
+<item>ISAPILogNotSupported</item>
+<item>KeepAlive</item>
+<item>LDAPTrustedMode</item>
+<item>LDAPVerifyServerCert</item>
+<item>LogLevel</item>
+<item>MCacheRemovalAlgorithm</item>
+<item>MetaFiles</item>
+<item>ModMimeUsePathInfo</item>
+<item>MultiviewsMatch</item>
+<item>Options</item>
+<item>Order</item>
+<item>ProtocolEcho</item>
+<item>ProxyBadHeader</item>
+<item>ProxyErrorOverride</item>
+<item>ProxyPreserveHost</item>
+<item>ProxyRequests</item>
+<item>ProxyVia</item>
+<item>RewriteEngine</item>
+<item>RewriteOptions</item>
+<item>Satisfy</item>
+<item>ScriptInterpreterSource</item>
+<item>ServerSignature</item>
+<item>ServerTokens</item>
+<item>SSLEngine</item>
+<item>SSLHonorCipherOrder</item>
+<item>SSLMutex</item>
+<item>SSLOptions</item>
+<item>SSLProtocol</item>
+<item>SSLProxyEngine</item>
+<item>SSLProxyVerify</item>
+<item>SSLSessionCache</item>
+<item>SSLVerifyClient</item>
+<item>UseCanonicalName</item>
+<item>XBitHack</item>
+</list>
+
+<list name="Alternates">
+<item>On</item>
+<item>Off</item>
+<item>Default</item>
+<item>flock</item>
+<item>fcntl</item>
+<item>posixsem</item>
+<item>pthread</item>
+<item>sysvsem</item>
+<item>All</item>
+<item>None</item>
+<item>AuthConfig</item>
+<item>FileInfo</item>
+<item>Indexes</item>
+<item>Limit</item>
+<item>Options</item>
+
+<item>ExecCGI</item>
+<item>FollowSymLinks</item>
+<item>Includes</item>
+<item>IncludesNOEXEC</item>
+<item>Indexes</item>
+<item>MultiViews</item>
+<item>SymLinksIfOwnerMatch</item>
+<item>StdEnvVars</item>
+<item>CompatEnvVars</item>
+<item>ExportCertData</item>
+<item>FakeBasicAuth</item>
+<item>StrictRequire</item>
+<item>OptRenegotiate</item>
+
+<item>SDBM</item>
+<item>GDBM</item>
+<item>NDBM</item>
+<item>DB</item>
+<item>MD5</item>
+<item>MD5-sess</item>
+<item>auth</item>
+<item>auth-int</item>
+<item>never</item>
+<item>searching</item>
+<item>finding</item>
+<item>always</item>
+<item>Basic</item>
+<item>Digest</item>
+<item>Connection</item>
+<item>Keep-Alive</item>
+<item>Proxy-Authenticate</item>
+<item>Proxy-Authorization</item>
+<item>TE</item>
+<item>Trailers</item>
+<item>Transfer-Encoding</item>
+<item>Upgrade</item>
+<item>Netscape</item>
+<item>Cookie</item>
+<item>Cookie2</item>
+<item>RFC2109</item>
+<item>RFC2965</item>
+<item>INode</item>
+<item>MTime</item>
+<item>Size</item>
+<item>Prefer</item>
+<item>Fallback</item>
+<item>Double</item>
+<item>error</item>
+<item>nocontent</item>
+<item>map</item>
+<item>referer</item>
+<item>formatted</item>
+<item>semiformatted</item>
+<item>unformatted</item>
+<item>Ascending</item>
+<item>Descending</item>
+<item>Name</item>
+<item>Date</item>
+<item>Size</item>
+<item>Description</item>
+<item>SSL</item>
+<item>TLS</item>
+<item>STARTTLS</item>
+<item>emerg</item>
+<item>alert</item>
+<item>crit</item>
+<item>error</item>
+<item>warn</item>
+<item>notice</item>
+<item>info</item>
+<item>debug</item>
+<item>LRU</item>
+<item>GDSF</item>
+<item>Any</item>
+<item>NegotiatedOnly</item>
+<item>Filters</item>
+<item>Handlers</item>
+<item>Deny,Allow</item>
+<item>Allow,Deny</item>
+<item>Mutual-failure</item>
+<item>IsError</item>
+<item>Ignore</item>
+<item>StartBody</item>
+<item>Full</item>
+<item>Block</item>
+<item>inherit</item>
+<item>Registry</item>
+<item>Registry-Strict</item>
+<item>Script</item>
+<item>EMail</item>
+<item>Major</item>
+<item>Minor</item>
+<item>Min</item>
+<item>Minimal</item>
+<item>Prod</item>
+<item>ProductOnly</item>
+<item>OS</item>
+<item>Full</item>
+<item>optional</item>
+<item>posixsem</item>
+<item>sysvsem</item>
+<item>sem</item>
+<item>pthread</item>
+<item>fcntl:</item>
+<item>flock:</item>
+<item>file:</item>
+<item>yes</item>
+<item>no</item>
+<item>SSLv2</item>
+<item>SSLv3</item>
+<item>TLSv1</item>
+<item>require</item>
+<item>optional_no_ca</item>
+<item>nonenotnull</item>
+<item>dbm:</item>
+<item>shm:</item>
+<item>dc:</item>
+<item>DNS</item>
+</list>
+
+
+<contexts>
+ <context name="apache" attribute="Normal Text" lineEndContext="#stay">
+  <keyword context="String Directives" String="String Directives" />
+  <keyword attribute="Directives" context="Integer Directives" String="Integer Directives" />
+  <keyword attribute="Directives" context="Alternative Directives" String="Alternative Directives" />
+
+  <RegExpr attribute="Container" context="Container Open" String="&lt;\w+" beginRegion="Container" />
+  <RegExpr attribute="Container" context="Container Close" String="&lt;/\w+" endRegion="Container" />
+  <DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true" />
+ </context>
+
+ <!--	Directives - separated after String, Integer and Alternatives -->
+ <context name="String Directives" attribute="Directives" lineEndContext="#pop">
+  <RegExpr attribute="String" context="#stay" String="[^#]*" />
+  <IncludeRules context="Comment Alert" />
+ </context>
+
+ <context name="Integer Directives" attribute="Other" lineEndContext="#pop">
+  <Float attribute="Float" context="Integer Directives" />
+  <Int attribute="Int" context="Integer Directives" />
+  <IncludeRules context="Comment Alert" />
+ </context>
+
+ <context name="Alternative Directives" attribute="Other" lineEndContext="#pop">
+  <keyword attribute="Alternates" context="#stay" String="Alternates" />
+  <DetectChar attribute="Alternates" context="#stay" char="-" />
+  <DetectChar attribute="Alternates" context="#stay" char="+" />
+  <IncludeRules context="Comment Alert" />
+ </context>
+
+<!--	Other -->
+ <context name="Comment" attribute="Comment" lineEndContext="#pop">
+  <DetectSpaces />
+  <IncludeRules context="##Alerts" />
+  <DetectIdentifier />
+ </context>
+
+<!--	Container -->
+ <context name="Container Open" attribute="Container" lineEndContext="#pop">
+  <DetectChar attribute="Container" context="Alert" char="&gt;" />
+  <RegExpr attribute="Attribute" context="#stay" String="[^#&gt;]*" />
+  <IncludeRules context="Comment Alert" />
+ </context>
+
+ <context name="Container Close" attribute="Container" lineEndContext="#pop">
+  <DetectChar attribute="Container" context="Alert" char="&gt;" />
+ </context>
+
+<!--	Alerts -->
+ <context name="Comment Alert" attribute="Normal Text" lineEndContext="#pop">
+  <DetectChar attribute="Alert" context="Alert" char="#" />
+ </context>
+
+ <context name="Alert" attribute="Alert" lineEndContext="#pop" />
+</contexts>
+
+<itemDatas>
+ <itemData name="Normal Text" defStyleNum="dsNormal" />
+ <itemData name="Comment" defStyleNum="dsComment" />
+ <itemData name="Directives" defStyleNum="dsExtension" bold="true" spellChecking="false"/>
+ <itemData name="String" defStyleNum="dsString" />
+ <itemData name="Float" defStyleNum="dsFloat" />
+ <itemData name="Int" defStyleNum="dsFloat" />
+ <itemData name="Alternates" defStyleNum="dsKeyword" spellChecking="false"/>
+ <itemData name="Alert" defStyleNum="dsError" />
+ <itemData name="Container" defStyleNum="dsFunction" spellChecking="false"/>
+ <itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false"/>
+ <itemData name="Other" defStyleNum="dsChar" />
+</itemDatas>
+</highlighting>
+
+
+<general>
+ <comments>
+  <comment name="singleLine" start="#" />
+ </comments>
+ <keywords casesensitive="0" weakDeliminator="," />
+</general>
+
+</language>
diff --git a/xml/asn1.xml b/xml/asn1.xml
new file mode 100644
--- /dev/null
+++ b/xml/asn1.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+        You'll find the "Writing a Kate Highlighting XML File HOWTO" at http://kate.kde.org/doc/hlhowto.php
+        This is a template for the XML format used for syntax highlight descriptions
+        for the Kate text editor (http://kate.kde.org), which is part of the KDE
+        desktop environment (http://www.kde.org).
+
+        Use it as the base for your own syntax files.
+
+        Look at language.dtd for some documentation of the allowed elements and their attributes.
+        There is also a description of how to validate your syntax file.
+
+        You'll find the "Writing a Kate Highlighting XML File HOWTO" at http://kate.kde.org/doc/hlhowto.php
+-->
+<language name="ASN.1" section="Markup" version="3" kateversion="2.3" extensions="*.asn;*.asn1" mimetype="" author="Philippe Rigault" license="GPL">
+  <highlighting>
+    <list name="keywords">
+      <item>DEFINITIONS</item>
+      <item>BEGIN</item>
+      <item>END</item>
+      <item>EXPORTS</item>
+      <item>IMPORTS</item>
+      <item>FROM</item>
+      <item>APPLICATION</item>
+      <item>PRIVATE</item>
+      <item>UNIVERSAL</item>
+      <item>DEFAULT</item>
+      <item>OPTIONAL</item>
+      <item>FALSE</item>
+      <item>TRUE</item>
+    </list>
+    <list name="types">
+      <item>BOOLEAN</item>
+      <item>INTEGER</item>
+      <item>OCTET</item>
+      <item>STRING</item>
+      <item>NULL</item>
+      <item>REAL</item>
+      <item>ENUMERATED</item>
+      <item>SEQUENCE</item>
+      <item>SET</item>
+      <item>CHOICE</item>
+      <item>OF</item>
+      <item>VisibleString</item>
+      <item>StringStore</item>
+    </list>
+    
+    <contexts>
+      <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Data Type" context="#stay" String="types" />
+        <Detect2Chars attribute="Comment" context="Comment" char="-" char1="-"/>      
+      </context>
+      
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+      </context>
+    </contexts>
+    
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Keyword"     defStyleNum="dsKeyword"/>
+      <itemData name="Comment"     defStyleNum="dsComment"/>
+      <itemData name="Data Type"   defStyleNum="dsDataType"/>
+    </itemDatas>
+  </highlighting>
+</language>
+<!--
+// kate: space-indent on; indent-width 2; replace-tabs on;
+-->
diff --git a/xml/asp.xml b/xml/asp.xml
new file mode 100644
--- /dev/null
+++ b/xml/asp.xml
@@ -0,0 +1,393 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE  language SYSTEM "language.dtd">
+<language name="ASP" version="2" kateversion="5.0" section="Markup" extensions="*.asp;" mimetype="text/x-asp-src;text/x-asp-src" author="Antonio Salazar (savedfastcool@gmail.com)" license="LGPL">
+    <highlighting>
+        <list name="control structures">
+            <item>select</item>
+            <item>case</item>
+            <item>end select</item>
+
+            <item>if</item>
+            <item>then</item>
+            <item>else</item>
+            <item>elseif</item>
+            <item>end if</item>
+
+
+            <item>while</item>
+            <item>do</item>
+            <item>until</item>
+            <item>loop</item>
+            <item>wend</item>
+
+            <item>for</item>
+            <item>each</item>
+            <item>to</item>
+            <item>in</item>
+            <item>next</item>
+
+            <item>exit</item>
+            <item>continue</item>
+        </list>
+        <list name="keywords">
+            <item>dim</item>
+            <item>redim</item>
+            <item>preserve</item>
+
+            <item>const</item>
+            <item>erase</item>
+            <item>nothing</item>
+            <item>set</item>
+
+            <item>new</item>
+            <item>me</item>
+
+
+            <item>function</item>
+            <item>sub</item>
+            <item>call</item>
+
+            <item>class</item>
+            <item>private</item>
+            <item>public</item>
+            <item>with</item>
+
+            <item>randomize</item>
+
+            <item>open</item>
+            <item>close</item>
+            <item>movenext</item>
+            <item>execute</item>
+            <item>eof</item>
+
+            <item>not</item>
+            <item>true</item>
+            <item>false</item>
+            <item>or</item>
+            <item>and</item>
+            <item>xor</item>
+        </list>
+        <list name="functions">
+            <item>response</item>
+            <item>write</item>
+            <item>redirect</item>
+            <item>end</item>
+
+            <item>request</item>
+            <item>form</item>
+            <item>querystring</item>
+            <item>servervariables</item>
+            <item>cookies</item>
+
+            <item>session</item>
+
+            <item>server</item>
+            <item>createobject</item>
+
+            <item>abs</item>
+            <item>array</item>
+            <item>asc</item>
+            <item>atn</item>
+            <item>cbool</item>
+            <item>cbyte</item>
+            <item>ccur</item>
+            <item>cdate</item>
+            <item>cdbl</item>
+            <item>chr</item>
+            <item>cint</item>
+            <item>clng</item>
+            <item>cos</item>
+            <item>csng</item>
+            <item>cstr</item>
+            <item>date</item>
+            <item>dateadd</item>
+
+            <item>DateDiff</item>
+            <item>DatePart</item>
+            <item>DateSerial</item>
+            <item>DateValue</item>
+            <item>Date</item>
+            <item>Day</item>
+            <item>Exp</item>
+            <item>Filter</item>
+            <item>Fix</item>
+            <item>FormatCurrency</item>
+            <item>FormatDateTime</item>
+            <item>FormatNumber</item>
+            <item>FormatPercent</item>
+
+            <item>GetObject</item>
+            <item>Hex</item>
+            <item>Hour</item>
+            <item>InputBox</item>
+            <item>InStr</item>
+            <item>InStrRev</item>
+            <item>Int</item>
+            <item>IsArray</item>
+            <item>IsDate</item>
+            <item>IsEmpty</item>
+            <item>IsNull</item>
+            <item>IsNumeric</item>
+            <item>IsObject</item>
+            <item>Join</item>
+            <item>LBound</item>
+            <item>LCase</item>
+
+            <item>Left</item>
+            <item>Len</item>
+            <item>LoadPicture</item>
+            <item>Log</item>
+            <item>LTrim</item>
+            <item>Mid</item>
+            <item>Minute</item>
+            <item>Month</item>
+            <item>MonthName</item>
+            <item>MsgBox</item>
+            <item>Now</item>
+            <item>Oct</item>
+            <item>Replace</item>
+
+            <item>RGB</item>
+            <item>Right</item>
+            <item>Rnd</item>
+            <item>Round</item>
+            <item>RTrim</item>
+
+            <item>ScriptEngine</item>
+            <item>ScriptEngineBuildVersion</item>
+            <item>ScriptEngineMajorVersion</item>
+            <item>ScriptEngineMinorVersion</item>
+            <item>Second</item>
+            <item>Sgn</item>
+            <item>Sin</item>
+            <item>Space</item>
+            <item>Split</item>
+            <item>Sqr</item>
+            <item>StrComp</item>
+            <item>StrReverse</item>
+            <item>String</item>
+            <item>Tan</item>
+            <item>Time</item>
+            <item>Timer</item>
+            <item>TimeSerial</item>
+            <item>TimeValue</item>
+            <item>Trim</item>
+            <item>TypeName</item>
+            <item>UBound</item>
+            <item>UCase</item>
+            <item>VarType</item>
+            <item>Weekday</item>
+            <item>WeekdayName</item>
+            <item>Year</item>
+
+            <item>Add</item>
+            <item>AddFolders</item>
+            <item>BuildPath</item>
+            <item>Clear</item>
+            <item>Close</item>
+            <item>Copy</item>
+            <item>CopyFile</item>
+            <item>CopyFolder</item>
+            <item>CreateFolder</item>
+            <item>CreateTextFile</item>
+            <item>Delete</item>
+            <item>DeleteFile</item>
+            <item>DeleteFolder</item>
+            <item>DriveExists</item>
+            <item>Exists</item>
+            <item>FileExists</item>
+            <item>FolderExists</item>
+            <item>GetAbsolutePathName</item>
+            <item>GetBaseName</item>
+            <item>GetDrive</item>
+            <item>GetDriveName</item>
+            <item>GetExtensionName</item>
+            <item>GetFile</item>
+            <item>GetFileName</item>
+            <item>GetFolder</item>
+            <item>GetParentFolderName</item>
+
+            <item>GetSpecialFolder</item>
+            <item>GetTempName</item>
+            <item>Items</item>
+            <item>item</item>
+            <item>Keys</item>
+            <item>Move</item>
+            <item>MoveFile</item>
+            <item>MoveFolder</item>
+            <item>OpenAsTextStream</item>
+            <item>OpenTextFile</item>
+            <item>Raise</item>
+            <item>Read</item>
+            <item>ReadAll</item>
+            <item>ReadLine</item>
+            <item>Remove</item>
+            <item>RemoveAll</item>
+            <item>Skip</item>
+            <item>SkipLine</item>
+            <item>Write</item>
+            <item>WriteBlankLines</item>
+            <item>WriteLine</item>
+        </list>
+            <contexts>
+            <context name="nosource" attribute="Normal Text" lineEndContext="#stay">
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <RegExpr attribute="HTML Tag" context="aspsource" String="&lt;\s*script\s*language=&quot;VBScript&quot;[^&gt;]*&gt;" insensitive="true" />
+                <RegExpr attribute="HTML Tag" context="scripts" String="&lt;\s*script(\s|&gt;)" insensitive="true" />
+                <RegExpr attribute="HTML Tag" context="htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+                <StringDetect attribute="HTML Comment" context="htmlcomment" String="&lt;!--" />
+            </context>
+
+            <context name="aspsource" attribute="ASP Text" lineEndContext="#stay">
+                <StringDetect attribute="Keyword" context="#pop" String="%&gt;" />
+                <RegExpr attribute="HTML Tag" context="#pop" String="&lt;\s*\/\s*script\s*&gt;" insensitive="true" />
+                <DetectChar attribute="Comment" context="asp_onelinecomment" char="'" />
+                <DetectChar attribute="String" context="doublequotestring" char="&quot;" />
+                <DetectChar attribute="String" context="singlequotestring" char="&#39;" />
+                <DetectChar attribute="Keyword" context="#stay" char="&amp;" />
+                <RegExpr attribute="String" context="" String="" />
+                <RegExpr attribute="String" context="#stay" String="[0123456789]*\.\.\.[0123456789]*" />
+                <HlCOct attribute="Octal" context="#stay" />
+                <HlCHex attribute="Hex" context="#stay" />
+                <Float attribute="Float" context="#stay" />
+                <Int attribute="Decimal" context="#stay" />
+                <AnyChar attribute="Other" context="#stay" String=";()}{:,[]" />
+                <keyword attribute="Other" context="#stay" String="Others" />
+
+                <RegExpr attribute="Control Structures" context="#stay" String="\belseif\b" insensitive="true" beginRegion="iffi1" endRegion="iffi1"/>
+                <RegExpr attribute="Control Structures" context="#stay" String="\belse\b" insensitive="true" beginRegion="iffi1" endRegion="iffi1"/>
+                <RegExpr attribute="Control Structures" context="#stay" String="\bif\b" insensitive="true" beginRegion="iffi1"/>
+                <RegExpr attribute="Control Structures" context="#stay" String="\bend if\b" insensitive="true" endRegion="iffi1"/>
+
+                <RegExpr attribute="Keyword" context="#stay" String="\bexit function\b" insensitive="true" />
+                <RegExpr attribute="Keyword" context="#stay" String="\bfunction\b" insensitive="true" beginRegion="funendfun1"/>
+                <RegExpr attribute="Keyword" context="#stay" String="\bend function\b" insensitive="true" endRegion="funendfun1"/>
+
+                <RegExpr attribute="Keyword" context="#stay" String="\bexit sub\b" insensitive="true" />
+                <RegExpr attribute="Keyword" context="#stay" String="\bsub\b" insensitive="true" beginRegion="subendsub1"/>
+                <RegExpr attribute="Keyword" context="#stay" String="\bend sub\b" insensitive="true" endRegion="subendsub1"/>
+
+                <RegExpr attribute="Keyword" context="#stay" String="\bclass\b" insensitive="true" beginRegion="classendclass1"/>
+                <RegExpr attribute="Keyword" context="#stay" String="\bend class\b" insensitive="true" endRegion="classendclass1"/>
+
+                <RegExpr attribute="Control Structures" context="#stay" String="\bexit do\b" insensitive="true" />
+                <RegExpr attribute="Control Structures" context="#stay" String="\bdo(\s+(while))?\b" insensitive="true" beginRegion="doloop1"/>
+                <RegExpr attribute="Control Structures" context="#stay" String="\bloop\b" insensitive="true" endRegion="doloop1"/>
+
+                <RegExpr attribute="Control Structures" context="#stay" String="\bexit while\b" insensitive="true" />
+                <RegExpr attribute="Control Structures" context="#stay" String="\bwhile\b" insensitive="true" beginRegion="whilewend1"/>
+                <RegExpr attribute="Control Structures" context="#stay" String="\bwend\b" insensitive="true" endRegion="whilewend1"/>
+
+                <RegExpr attribute="Control Structures" context="#stay" String="\bexit for\b" insensitive="true" />
+                <RegExpr attribute="Control Structures" context="#stay" String="\bfor\b" insensitive="true" beginRegion="fornext1"/>
+                <RegExpr attribute="Control Structures" context="#stay" String="\bnext\b" insensitive="true" endRegion="fornext1"/>
+
+                <RegExpr attribute="Control Structures" context="#stay" String="\bselect case\b" insensitive="true" beginRegion="selcase1"/>
+                <RegExpr attribute="Control Structures" context="#stay" String="\bend select\b" insensitive="true" endRegion="selcase1"/>
+
+                <keyword attribute="Keyword" context="#stay" String="keywords" />
+                <keyword attribute="Control Structures" context="#stay" String="control structures" />
+                <keyword attribute="Function" context="#stay" String="functions" />
+            </context>
+            <context name="asp_onelinecomment" attribute="Comment" lineEndContext="#pop">
+                <StringDetect attribute="Keyword" context="#pop#pop" String="%&gt;" />
+            </context>
+            <context name="doublequotestring" attribute="String" lineEndContext="#stay">
+                <Detect2Chars attribute="Escape Code" context="#stay" char="&quot;" char1="&quot;" />
+                <RegExpr attribute="Escape Code" context="#stay" String="\\[0-7]{1,3}" />
+                <RegExpr attribute="Escape Code" context="#stay" String="\\x[0-9A-Fa-f]{1,2}" />
+                <DetectChar attribute="String" context="#pop" char="&quot;" />
+            </context>
+            <context name="singlequotestring" attribute="String" lineEndContext="#stay">
+                <Detect2Chars attribute="Escape Code" context="#stay" char="'" char1="'"/>
+                <DetectChar attribute="String" context="#pop" char="'" />
+            </context>
+            <context name="htmltag" attribute="Identifier" lineEndContext="#stay">
+                <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
+                <DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <RegExpr attribute="Identifier" context="identifiers" String="\s*=\s*"/>
+            </context>
+            <context name="htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
+                <RegExpr attribute="Normal Text" context="identifiers" String="\s*=\s*"/>
+            </context>
+            <context name="identifiers" attribute="Identifier" lineEndContext="#stay">
+                <RegExpr attribute="String" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
+                <DetectChar attribute="Types" context="types1" char="'" />
+                <DetectChar attribute="Types" context="types2" char="&quot;" />
+            </context>
+
+            <context name="types1" attribute="Types" lineEndContext="#stay">
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <DetectChar attribute="Types" context="#pop#pop" char="'" />
+            </context>
+
+            <context name="types2" attribute="Types" lineEndContext="#stay">
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%" />
+                <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
+            </context>
+
+            <context name="scripts" attribute="Normal Text" lineEndContext="#stay">
+                <Detect2Chars attribute="Comment" context="scripts_onelinecomment" char="/" char1="/" />
+                <Detect2Chars attribute="Comment" context="twolinecomment" char="/" char1="*" />
+                <keyword attribute="Control Structures" context="#stay" String="control structures" />
+                <keyword attribute="Keyword" context="#stay" String="keywords" />
+                <keyword attribute="Function" context="#stay" String="functions" />
+                <StringDetect attribute="Keyword" context="aspsource" String="&lt;%"/>
+                <RegExpr attribute="HTML Tag" context="#pop" String="&lt;\s*\/\s*script\s*&gt;" insensitive="true" />
+
+                <DetectChar attribute="String" context="doublequotestring" char="&quot;" />
+                <DetectChar attribute="String" context="singlequotestring" char="&#39;" />
+                <HlCOct attribute="Octal" context="#stay" />
+                <HlCHex attribute="Hex" context="#stay" />
+                <Float attribute="Float" context="#stay" />
+                <Int attribute="Decimal" context="#stay" />
+                <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace1" />
+                <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace1" />
+                <AnyChar attribute="Other" context="#stay" String=";()}{:,[]" />
+                <keyword attribute="Other" context="#stay" String="Others" />
+            </context>
+            <context name="scripts_onelinecomment" attribute="Comment" lineEndContext="#pop">
+                <RegExpr attribute="HTML Tag" context="#pop#pop" String="&lt;\s*\/\s*script\s*&gt;" insensitive="true" />
+            </context>
+            <context name="twolinecomment" attribute="Comment" lineEndContext="#stay">
+                <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
+            </context>
+
+        </contexts>
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" />
+            <itemData name="ASP Text" defStyleNum="dsNormal" />
+            <itemData name="Keyword" defStyleNum="dsKeyword" />
+            <itemData name="Function" defStyleNum="dsFunction" />
+            <itemData name="Decimal" defStyleNum="dsDecVal" />
+            <itemData name="Octal" defStyleNum="dsBaseN" />
+            <itemData name="Hex" defStyleNum="dsBaseN" />
+            <itemData name="Float" defStyleNum="dsFloat" />
+            <itemData name="String" defStyleNum="dsString" />
+            <itemData name="Comment" defStyleNum="dsComment" />
+            <itemData name="Variable" defStyleNum="dsVariable" />
+            <itemData name="Control Structures" defStyleNum="dsControlFlow" bold="0" />
+            <itemData name="Escape Code" defStyleNum="dsKeyword" color="#0F0F8F" selColor="#ffffff" bold="1" italic="0" />
+            <itemData name="Other" defStyleNum="dsOthers" />
+
+            <itemData name="HTML Tag" defStyleNum="dsKeyword" color="#0F0000" selColor="#ffffff" bold="1" italic="0" />
+            <itemData name="HTML Comment" defStyleNum="dsComment" />
+            <itemData name="Identifier" defStyleNum="dsOthers" />
+            <itemData name="Types" defStyleNum="dsDataType" />
+        </itemDatas>
+    </highlighting>
+    <general>
+        <comments>
+            <comment name="singleLine" start="'" />
+            <comment name="multiLine" start="/*" end="*/" />
+        </comments>
+        <keywords casesensitive="0" weakDeliminator=""/>
+    </general>
+</language>
diff --git a/xml/ats.xml b/xml/ats.xml
new file mode 100644
--- /dev/null
+++ b/xml/ats.xml
@@ -0,0 +1,256 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+<!-- Regular expresion constants: -->
+<!ENTITY LETTER "A-Za-z\0300-\0326\0330-\0366\0370-\0377">          <!-- Latin-1 letters. -->
+<!ENTITY IDENT  "[&LETTER;_][&LETTER;0-9_']*">                      <!-- ATS identifiers. -->
+<!ENTITY ESC    "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- ATS character code escapes. -->
+<!ENTITY DEC    "[0-9][0-9_]*">                                     <!-- Decimal digits with underscores. -->
+]>
+<language name="ATS" version="0.01" kateversion="2.4" section="Sources" extensions="*.dats;*.sats;*.hats" mimetype="" author="Kiwamu Okabe (kiwamu@debian.or.jp)" license="LGPL">
+  <highlighting>
+    <list name="keywords">
+      <item> abstype </item>
+      <item> abst0ype </item>
+      <item> absprop </item>
+      <item> absview </item>
+      <item> absvtype </item>
+      <item> absviewtype </item>
+      <item> absvt0ype </item>
+      <item> absviewt0ype </item>
+      <item> and </item>
+      <item> as </item>
+      <item> assume </item>
+      <item> begin </item>
+      <item> break </item>
+      <item> case </item>
+      <item> continue </item>
+      <item> classdec </item>
+      <item> datasort </item>
+      <item> datatype </item>
+      <item> dataprop </item>
+      <item> dataview </item>
+      <item> datavtype </item>
+      <item> dataviewtype </item>
+      <item> do </item>
+      <item> dynload </item>
+      <item> else </item>
+      <item> end </item>
+      <item> exception </item>
+      <item> extern </item>
+      <item> extype </item>
+      <item> extval </item>
+      <item> if </item>
+      <item> in </item>
+      <item> infix </item>
+      <item> infixl </item>
+      <item> infixr </item>
+      <item> prefix </item>
+      <item> postfix </item>
+      <item> let </item>
+      <item> local </item>
+      <item> macdef </item>
+      <item> macrodef </item>
+      <item> nonfix </item>
+      <item> overload </item>
+      <item> of </item>
+      <item> op </item>
+      <item> rec </item>
+      <item> scase </item>
+      <item> sif </item>
+      <item> sortdef </item>
+      <item> sta </item>
+      <item> stacst </item>
+      <item> stadef </item>
+      <item> stavar </item>
+      <item> staload </item>
+      <item> symelim </item>
+      <item> symintr </item>
+      <item> then </item>
+      <item> try </item>
+      <item> tkindef </item>
+      <item> type </item>
+      <item> typedef </item>
+      <item> propdef </item>
+      <item> viewdef </item>
+      <item> vtypedef </item>
+      <item> viewtypedef </item>
+      <item> val </item>
+      <item> prval </item>
+      <item> var </item>
+      <item> prvar </item>
+      <item> when </item>
+      <item> where </item>
+      <item> for </item>
+      <item> while </item>
+      <item> with </item>
+      <item> withtype </item>
+      <item> withprop </item>
+      <item> withview </item>
+      <item> withvtype </item>
+      <item> withviewtype </item>
+    </list>
+    <list name="special keywords">
+      <item> $arrpsz </item>
+      <item> $arrptrsize </item>
+      <item> $delay </item>
+      <item> $ldelay </item>
+      <item> $effmask </item>
+      <item> $effmask_ntm </item>
+      <item> $effmask_exn </item>
+      <item> $effmask_ref </item>
+      <item> $effmask_wrt </item>
+      <item> $effmask_all </item>
+      <item> $extern </item>
+      <item> $extkind </item>
+      <item> $extype </item>
+      <item> $extype_struct </item>
+      <item> $extval </item>
+      <item> $lst </item>
+      <item> $lst_t </item>
+      <item> $lst_vt </item>
+      <item> $list </item>
+      <item> $list_t </item>
+      <item> $list_vt </item>
+      <item> $rec </item>
+      <item> $rec_t </item>
+      <item> $rec_vt </item>
+      <item> $record </item>
+      <item> $record_t </item>
+      <item> $record_vt </item>
+      <item> $tup </item>
+      <item> $tup_t </item>
+      <item> $tup_vt </item>
+      <item> $tuple </item>
+      <item> $tuple_t </item>
+      <item> $tuple_vt </item>
+      <item> $raise </item>
+      <item> $showtype </item>
+      <item> $myfilename </item>
+      <item> $mylocation </item>
+      <item> $myfunction </item>
+      <item> #assert </item>
+      <item> #define </item>
+      <item> #elif </item>
+      <item> #elifdef </item>
+      <item> #elifndef </item>
+      <item> #else </item>
+      <item> #endif </item>
+      <item> #error </item>
+      <item> #if </item>
+      <item> #ifdef </item>
+      <item> #ifndef </item>
+      <item> #include </item>
+      <item> #print </item>
+      <item> #then </item>
+      <item> #undef </item>
+    </list>
+    <list name="function keywords">
+      <item> fn </item>
+      <item> fnx </item>
+      <item> fun </item>
+      <item> prfn </item>
+      <item> prfun </item>
+      <item> praxi </item>
+      <item> castfn </item>
+      <item> implmnt </item>
+      <item> implement </item>
+      <item> primplmnt </item>
+      <item> primplement </item>
+      <item> lam </item>
+      <item> llam </item>
+      <item> fix </item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <StringDetect attribute="Comment" context="Rest-of-file Comment" String="////" beginRegion="comment" />
+        <Detect2Chars attribute="Comment" context="Multiline Comment" char="(" char1="*" beginRegion="comment" />
+        <Detect2Chars attribute="Comment" context="Multiline C-style Comment" char="/" char1="*" beginRegion="Comment"/>
+        <Detect2Chars attribute="Comment" context="Singleline C++ style Comment" char="/" char1="/"/>
+
+        <Detect2Chars attribute="Termination Metrics" context="Termination Metrics Context" char="." char1="&lt;" />
+
+        <RegExpr attribute="Constructor" context="#stay" String="`\s*&IDENT;"/>
+
+        <!-- Identifiers and keywords. -->
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Function Keyword" context="Function Keyword Context" String="function keywords" />
+        <keyword attribute="Special Keyword" context="#stay" String="special keywords" />
+        <RegExpr attribute="Identifier" context="#stay" String="&IDENT;" />
+
+        <!-- Numeric constants. -->
+        <!-- Note that they may contain underscores. -->
+        <RegExpr attribute="Hexadecimal" context="#stay" String="~?0[xX][0-9A-Fa-f_]+" />
+        <RegExpr attribute="Float" context="#stay" String="~?&DEC;((\.(&DEC;)?([eE][-+]?&DEC;)?)|([eE][-+]?&DEC;))" />
+        <RegExpr attribute="Decimal" context="#stay" String="~?&DEC;" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Rest-of-file Comment"/>
+      <context attribute="Comment" lineEndContext="#stay" name="Multiline Comment">
+        <!-- Support for nested comments -->
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1=")" endRegion="comment" />
+        <Detect2Chars attribute="Comment" context="Multiline Comment" char="(" char1="*" beginRegion="comment" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Multiline C-style Comment">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Singleline C++ style Comment"/>
+
+      <context attribute="String" lineEndContext="#stay" name="String Context">
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+        <RegExpr attribute="Escaped characters" context="#stay" String="&ESC;" />
+        <!-- An underscore at the end of a line in a string indicates  -->
+        <!-- that the string will continue on the next line.           -->
+        <RegExpr attribute="Escaped characters" context="#stay" String="\\$" />
+      </context>
+
+      <context attribute="Termination Metrics" lineEndContext="#stay" name="Termination Metrics Context">
+        <Detect2Chars attribute="Termination Metrics" context="#pop" char="&gt;" char1="." />
+      </context>
+
+      <context attribute="Normal text" lineEndContext="#stay" name="Function Keyword Context">
+        <DetectChar attribute="Normal text" context="#pop" char="=" />
+	<DetectChar attribute="Universal" context="Universal Context" char="{" />
+	<DetectChar attribute="Existential" context="Existential Context" char="[" />
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <context attribute="Universal" lineEndContext="#stay" name="Universal Context">
+        <DetectChar attribute="Universal" context="#pop" char="}" />
+      </context>
+
+      <context attribute="Existential" lineEndContext="#stay" name="Existential Context">
+        <DetectChar attribute="Existential" context="#pop" char="]" />
+      </context>
+</contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Identifier" defStyleNum="dsNormal"/>
+      <itemData name="Keyword"  defStyleNum="dsKeyword"/>
+      <itemData name="Function Keyword"  defStyleNum="dsKeyword"/>
+      <itemData name="Special Keyword"  defStyleNum="dsDataType"/>
+      <itemData name="Termination Metrics" defStyleNum="dsDataType"/>
+      <itemData name="Universal" defStyleNum="dsDataType"/>
+      <itemData name="Existential" defStyleNum="dsDataType"/>
+      <itemData name="Decimal"  defStyleNum="dsDecVal"/>
+      <itemData name="Hexadecimal"  defStyleNum="dsBaseN"/>
+      <itemData name="Float"  defStyleNum="dsFloat"/>
+      <itemData name="Character"  defStyleNum="dsChar"/>
+      <itemData name="String"  defStyleNum="dsString"/>
+      <itemData name="Comment"  defStyleNum="dsComment"/>
+      <itemData name="Constructor" defStyleNum="dsDataType"/>
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <keywords casesensitive="1" />
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="(*" end="*)" />
+      <comment name="multiLine" start="/*" end="*/" />
+      <comment name="multiLine" start="////" end="" />
+    </comments>
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/awk.xml b/xml/awk.xml
new file mode 100644
--- /dev/null
+++ b/xml/awk.xml
@@ -0,0 +1,209 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="AWK" version="1" kateversion="5.0" section="Scripts"
+  extensions="*.awk" mimetype="text/x-awk" indenter="cstyle"
+  license="LGPL">
+<!-- patched by igli#kate@irc:chat.freenode.net -->
+  <highlighting>
+    <list name="keywords">
+      <item>if</item>
+      <item>else</item>
+      <item>while</item>
+      <item>do</item>
+      <item>for</item>
+      <item>in</item>
+      <item>continue</item>
+      <item>break</item>
+      <item>print</item>
+      <item>printf</item>
+      <item>getline</item>
+      <item>function</item>
+      <item>return</item>
+      <item>next</item>
+      <item>exit</item>
+    </list>
+    <list name="builtins">
+      <item>ARGC</item>
+      <item>ARGV</item>
+      <item>CONVFMT</item>
+      <item>ENVIRON</item>
+      <item>FILENAME</item>
+      <item>FNR</item>
+      <item>FS</item>
+      <item>NF</item>
+      <item>NR</item>
+      <item>OFMT</item>
+      <item>OFS</item>
+      <item>ORS</item>
+      <item>RS</item>
+      <item>RSTART</item>
+      <item>RLENGTH</item>
+      <item>SUBSEP</item>
+    </list>
+    <list name="functions">
+      <item>gsub</item>
+      <item>gensub</item>
+      <item>index</item>
+      <item>length</item>
+      <item>match</item>
+      <item>split</item>
+      <item>sprintf</item>
+      <item>sub</item>
+      <item>substr</item>
+      <item>tolower</item>
+      <item>toupper</item>
+      <item>atan2</item>
+      <item>cos</item>
+      <item>exp</item>
+      <item>int</item>
+      <item>log</item>
+      <item>rand</item>
+      <item>sin</item>
+      <item>sqrt</item>
+      <item>srand</item>
+      <item>close</item>
+      <item>fflush</item>
+      <item>system</item>
+    </list>
+    <list name="special">
+      <item>BEGIN</item>
+      <item>END</item>
+    </list>
+
+<contexts>
+<!-- START CONTEXTS -->
+<context name="Pattern" attribute="Normal" lineEndContext="#stay">
+	<DetectChar char="{" context="Block" attribute="Keyword" beginRegion="block" />
+	<DetectChar char="}" attribute="Error" context="#stay"/>
+	<DetectChar char="/" firstNonSpace="true" lookAhead="true" context="MatchPattern"/>
+	<IncludeRules context="base" />
+	<keyword String="special" attribute="Special" context="#stay"/>
+</context>
+
+<context name="Block" attribute="Normal" lineEndContext="#stay">
+	<DetectChar char="}" attribute="Keyword" context="#pop" endRegion="block" />
+	<DetectChar char="{" context="Block" attribute="Keyword" beginRegion="block" />
+	<IncludeRules context="base" />
+	<keyword String="special" attribute="Error" context="#stay"/>
+</context>
+
+<context name="base" attribute="Normal" lineEndContext="#stay">
+	<DetectSpaces />
+	<DetectChar char="#" context="Comment" attribute="Comment"/>
+	<DetectChar char="~" context="Match" attribute="Operator"/>
+	<DetectChar char="&quot;" context="String" attribute="String"/>
+	<AnyChar String="!%&amp;*+,-./:;&lt;=&gt;?^|" attribute="Operator" context="#stay"/>
+	<keyword String="keywords" attribute="Keyword" context="#stay"/>
+	<keyword String="builtins" attribute="Builtin" context="#stay"/>
+	<keyword String="functions" attribute="Function" context="#stay"/>
+	<Float attribute="Float"   context="#stay"/>
+	<Int   attribute="Decimal" context="#stay"/>
+	<RegExpr String="\$[A-Za-z0-9_]+" attribute="Field" context="#stay"/>
+</context>
+
+<context name="String" attribute="String" lineEndContext="#stay">
+	<DetectChar char="&quot;" attribute="String" context="#pop"/>
+	<HlCStringChar attribute="Escape" context="#stay"/>
+	<DetectChar char="\" context="Escape" attribute="Operator"/>
+</context>
+
+<context name="Comment" attribute="Comment" lineEndContext="#pop">
+	<IncludeRules context="##Alerts"/>
+</context>
+
+<context name="Escape" attribute="Normal" lineEndContext="#pop">
+	<RegExpr String="." attribute="String" context="#pop"/>
+</context>
+
+<context name="Match" attribute="Normal" lineEndContext="#pop"
+   fallthrough="true" fallthroughContext="#pop">
+	<DetectSpaces />
+	<Detect2Chars char="/" char1="^" attribute="Regex Op" context="Regex"/>
+	<DetectChar char="/" attribute="Regex Op" context="Regex"/>
+</context>
+<context name="Regex" attribute="Regex" lineEndContext="#stay">
+	<IncludeRules context="regex"/>
+	<DetectChar char="/" context="#pop#pop" attribute="Regex Op"/>
+</context>
+<context name="regex" attribute="Normal" lineEndContext="#stay">
+	<HlCStringChar attribute="Escape" context="#stay"/>
+	<DetectChar char="\" context="Regex Escape" attribute="Regex Op"/>
+	<Detect2Chars char="[" char1="^" context="RegexChar" attribute="Regex Op"/>
+	<DetectChar char="[" context="RegexChar" attribute="Regex Op"/>
+	<AnyChar String="$.+?*()|" context="#stay" attribute="Regex Op"/>
+</context>
+<context name="Regex Escape" attribute="Normal" lineEndContext="#pop">
+	<RegExpr String="." attribute="Regex" context="#pop"/>
+</context>
+
+<context name="RegexChar" attribute="Regex" lineEndContext="#pop"
+   fallthrough="true" fallthroughContext="InChar">
+	<Detect2Chars char="-" char1="]" context="InChar" attribute="Regex"/>
+	<AnyChar String="-]" context="InChar" attribute="Regex"/>
+</context>
+<context name="InChar" attribute="Regex" lineEndContext="#stay">
+	<HlCStringChar attribute="String" context="#stay"/>
+	<DetectChar char="\" context="Regex Escape" attribute="Regex Op"/>
+	<Detect2Chars char="-" char1="]" context="Regex Escape" lookAhead="true"/>
+	<DetectChar char="]" context="#pop#pop" attribute="Regex Op"/>
+	<DetectChar char="-" context="#stay" attribute="Regex Op"/>
+	<RegExpr String="\[:(?=[_\w][_\d\w]*:\])" context="CharClass" attribute="Regex Op"/>
+</context>
+<context name="CharClass" attribute="Custom" lineEndContext="#pop">
+	<RegExpr String="(alpha|alnum|blank|cntrl|digit|graph|lower|punct|space|upper|xdigit)(?=:\])"
+		attribute="CharClass" context="#stay"/>
+	<Detect2Chars char=":" char1="]" attribute="Regex Op" context="#pop"/>
+</context>
+
+<context name="MatchPattern" attribute="Normal" lineEndContext="#pop"
+   fallthrough="true" fallthroughContext="#pop">
+	<Detect2Chars char="/" char1="^" attribute="Regex Op" context="RegexPattern"/>
+	<DetectChar char="/" attribute="Regex Op" context="RegexPattern"/>
+</context>
+<context name="RegexPattern" attribute="Regex" lineEndContext="#stay">
+	<IncludeRules context="regex"/>
+	<DetectChar char="/" context="CheckRange" attribute="Regex Op"/>
+</context>
+<context name="CheckRange" attribute="Normal" lineEndContext="#pop#pop#pop"
+   fallthrough="true" fallthroughContext="#pop#pop#pop">
+	<RegExpr String="\s*,\s*(?=/)" context="RangePattern" attribute="Operator"/>
+</context>
+<context name="RangePattern" attribute="Normal" lineEndContext="#pop#pop#pop#pop"
+   fallthrough="true" fallthroughContext="#pop#pop#pop#pop">
+	<Detect2Chars char="/" char1="^" attribute="Regex Op" context="Pattern2"/>
+	<DetectChar char="/" attribute="Regex Op" context="Pattern2"/>
+</context>
+<context name="Pattern2" attribute="Regex" lineEndContext="#stay">
+	<IncludeRules context="regex"/>
+	<DetectChar char="/" context="#pop#pop#pop#pop#pop" attribute="Regex Op"/>
+</context>
+
+<!-- END OF CONTEXTS -->
+</contexts>
+    <itemDatas>
+      <itemData name="Normal"   defStyleNum="dsNormal"/>
+      <itemData name="Keyword"  defStyleNum="dsKeyword"/>
+      <itemData name="Builtin"  defStyleNum="dsBuiltIn"/>
+      <itemData name="Function" defStyleNum="dsFunction"/>
+      <itemData name="Decimal"  defStyleNum="dsDecVal"/>
+      <itemData name="Float"    defStyleNum="dsFloat"/>
+      <itemData name="String"   defStyleNum="dsString"/>
+      <itemData name="Comment"  defStyleNum="dsComment"/>
+      <itemData name="Escape"   defStyleNum="dsSpecialChar"/>
+      <itemData name="Field"    defStyleNum="dsDataType"/>
+      <itemData name="Error"    defStyleNum="dsError"/>
+      <itemData name="Special"  defStyleNum="dsControlFlow" bold="0"/>
+      <itemData name="Operator" defStyleNum="dsOperator"/>
+      <itemData name="Regex"    defStyleNum="dsSpecialString"/>
+      <itemData name="Regex Op" defStyleNum="dsOthers"/>
+      <itemData name="CharClass" defStyleNum="dsExtension"/>
+      <itemData name="Custom"   defStyleNum="dsOthers" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#"/>
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/bash.xml b/xml/bash.xml
new file mode 100644
--- /dev/null
+++ b/xml/bash.xml
@@ -0,0 +1,965 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+        <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
+        <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">
+        <!ENTITY word     "[^|&amp;;()&lt;&gt;\s]+">    <!-- see man bash -->
+        <!ENTITY eos      "(?=($|\s))">                 <!-- eol or space following -->
+        <!ENTITY noword   "(?![\w$+-])">                <!-- no word, $, + or - following -->
+        <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )">     <!-- valid character in a file name -->
+]>
+<language name="Bash" version="5" kateversion="5.0" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+
+<!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
+    Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
+    Changes by Sebastian Pipping (webmaster@hartwork.org)
+    Changes by Luiz Angelo Daros de Luca (luizluca@gmail.com)
+    Released under the LGPL, part of kdelibs/kate -->
+
+  <highlighting>
+    <list name="keywords">
+      <item>else</item>
+      <item>for</item>
+      <item>function</item>
+      <item>in</item>
+      <item>select</item>
+      <item>until</item>
+      <item>while</item>
+      <item>elif</item>
+      <item>then</item>
+      <item>set</item>
+    </list>
+
+    <list name="builtins">
+      <item>:</item>
+      <item>source</item>
+      <item>alias</item>
+      <item>bg</item>
+      <item>bind</item>
+      <item>break</item>
+      <item>builtin</item>
+      <item>cd</item>
+      <item>caller</item>
+      <item>command</item>
+      <item>compgen</item>
+      <item>complete</item>
+      <item>continue</item>
+      <item>dirs</item>
+      <item>disown</item>
+      <item>echo</item>
+      <item>enable</item>
+      <item>eval</item>
+      <item>exec</item>
+      <item>exit</item>
+      <item>fc</item>
+      <item>fg</item>
+      <item>getopts</item>
+      <item>hash</item>
+      <item>help</item>
+      <item>history</item>
+      <item>jobs</item>
+      <item>kill</item>
+      <item>let</item>
+      <item>logout</item>
+      <item>popd</item>
+      <item>printf</item>
+      <item>pushd</item>
+      <item>pwd</item>
+      <item>return</item>
+      <item>set</item>
+      <item>shift</item>
+      <item>shopt</item>
+      <item>suspend</item>
+      <item>test</item>
+      <item>time</item>
+      <item>times</item>
+      <item>trap</item>
+      <item>type</item>
+      <item>ulimit</item>
+      <item>umask</item>
+      <item>unalias</item>
+      <item>wait</item>
+    </list>
+
+    <list name="builtins_var">
+      <item>export</item>
+      <item>unset</item>
+      <item>declare</item>
+      <item>typeset</item>
+      <item>local</item>
+      <item>read</item>
+      <item>readonly</item>
+    </list>
+
+    <list name="unixcommands">
+      <!-- /bin -->
+      <item>arch</item>
+      <item>awk</item>
+      <item>bash</item>
+      <item>bunzip2</item>
+      <item>bzcat</item>
+      <item>bzcmp</item>
+      <item>bzdiff</item>
+      <item>bzegrep</item>
+      <item>bzfgrep</item>
+      <item>bzgrep</item>
+      <item>bzip2</item>
+      <item>bzip2recover</item>
+      <item>bzless</item>
+      <item>bzmore</item>
+      <item>cat</item>
+      <item>chattr</item>
+      <item>chgrp</item>
+      <item>chmod</item>
+      <item>chown</item>
+      <item>chvt</item>
+      <item>cp</item>
+      <item>date</item>
+      <item>dd</item>
+      <item>deallocvt</item>
+      <item>df</item>
+      <item>dir</item>
+      <item>dircolors</item>
+      <item>dmesg</item>
+      <item>dnsdomainname</item>
+      <item>domainname</item>
+      <item>du</item>
+      <item>dumpkeys</item>
+      <item>echo</item>
+      <item>ed</item>
+      <item>egrep</item>
+      <item>false</item>
+      <item>fgconsole</item>
+      <item>fgrep</item>
+      <item>fuser</item>
+      <item>gawk</item>
+      <item>getkeycodes</item>
+      <item>gocr</item>
+      <item>grep</item>
+      <item>groff</item>
+      <item>groups</item>
+      <item>gunzip</item>
+      <item>gzexe</item>
+      <item>gzip</item>
+      <item>hostname</item>
+      <item>igawk</item>
+      <item>install</item>
+      <item>kbd_mode</item>
+      <item>kbdrate</item>
+      <item>killall</item>
+      <item>last</item>
+      <item>lastb</item>
+      <item>link</item>
+      <item>ln</item>
+      <item>loadkeys</item>
+      <item>loadunimap</item>
+      <item>login</item>
+      <item>ls</item>
+      <item>lsattr</item>
+      <item>lsmod</item>
+      <item>lsmod.old</item>
+      <item>lzcat</item>
+      <item>lzcmp</item>
+      <item>lzdiff</item>
+      <item>lzegrep</item>
+      <item>lzfgrep</item>
+      <item>lzgrep</item>
+      <item>lzless</item>
+      <item>lzcat</item>
+      <item>lzma</item>
+      <item>lzmainfo</item>
+      <item>lzmore</item>
+      <item>mapscrn</item>
+      <item>mesg</item>
+      <item>mkdir</item>
+      <item>mkfifo</item>
+      <item>mknod</item>
+      <item>mktemp</item>
+      <item>more</item>
+      <item>mount</item>
+      <item>mv</item>
+      <item>nano</item>
+      <item>netstat</item>
+      <item>nisdomainname</item>
+      <item>nroff</item>
+      <item>openvt</item>
+      <item>pgawk</item>
+      <item>pidof</item>
+      <item>ping</item>
+      <item>ps</item>
+      <item>pstree</item>
+      <item>pwd</item>
+      <item>rbash</item>
+      <item>readlink</item>
+      <item>red</item>
+      <item>resizecons</item>
+      <item>rm</item>
+      <item>rmdir</item>
+      <item>run-parts</item>
+      <item>sash</item>
+      <item>sed</item>
+      <item>setfont</item>
+      <item>setkeycodes</item>
+      <item>setleds</item>
+      <item>setmetamode</item>
+      <item>setserial</item>
+      <item>sh</item>
+      <item>showkey</item>
+      <item>shred</item>
+      <item>sleep</item>
+      <item>ssed</item>
+      <item>stat</item>
+      <item>stty</item>
+      <item>su</item>
+      <item>sync</item>
+      <item>tar</item>
+      <item>tempfile</item>
+      <item>touch</item>
+      <item>troff</item>
+      <item>true</item>
+      <item>umount</item>
+      <item>uname</item>
+      <item>unicode_start</item>
+      <item>unicode_stop</item>
+      <item>unlink</item>
+      <item>unlzma</item>
+      <item>unxz</item>
+      <item>utmpdump</item>
+      <item>uuidgen</item>
+      <item>vdir</item>
+      <item>wall</item>
+      <item>wc</item>
+      <item>xz</item>
+      <item>xzcat</item>
+      <item>ypdomainname</item>
+      <item>zcat</item>
+      <item>zcmp</item>
+      <item>zdiff</item>
+      <item>zegrep</item>
+      <item>zfgrep</item>
+      <item>zforce</item>
+      <item>zgrep</item>
+      <item>zless</item>
+      <item>zmore</item>
+      <item>znew</item>
+      <item>zsh</item>
+
+      <!-- some from /usr/bin -->
+      <item>aclocal</item>
+      <item>aconnect</item>
+      <item>aplay</item>
+      <item>apm</item>
+      <item>apmsleep</item>
+      <item>apropos</item>
+      <item>ar</item>
+      <item>arecord</item>
+      <item>as</item>
+      <item>as86</item>
+      <item>autoconf</item>
+      <item>autoheader</item>
+      <item>automake</item>
+      <item>awk</item>
+      <item>basename</item>
+      <item>bc</item>
+      <item>bison</item>
+      <item>c++</item>
+      <item>cal</item>
+      <item>cat</item>
+      <item>cc</item>
+      <item>cdda2wav</item>
+      <item>cdparanoia</item>
+      <item>cdrdao</item>
+      <item>cd-read</item>
+      <item>cdrecord</item>
+      <item>chfn</item>
+      <item>chgrp</item>
+      <item>chmod</item>
+      <item>chown</item>
+      <item>chroot</item>
+      <item>chsh</item>
+      <item>clear</item>
+      <item>cmp</item>
+      <item>co</item>
+      <item>col</item>
+      <item>comm</item>
+      <item>cp</item>
+      <item>cpio</item>
+      <item>cpp</item>
+      <item>cut</item>
+      <item>dc</item>
+      <item>dd</item>
+      <item>df</item>
+      <item>diff</item>
+      <item>diff3</item>
+      <item>dir</item>
+      <item>dircolors</item>
+      <item>directomatic</item>
+      <item>dirname</item>
+      <item>du</item>
+      <item>env</item>
+      <item>expr</item>
+      <item>fbset</item>
+      <item>file</item>
+      <item>find</item>
+      <item>flex</item>
+      <item>flex++</item>
+      <item>fmt</item>
+      <item>free</item>
+      <item>ftp</item>
+      <item>funzip</item>
+      <item>fuser</item>
+      <item>g++</item>
+      <item>gawk</item>
+      <item>gc</item>
+      <item>gcc</item>
+      <item>clang</item>
+      <item>valgrind</item>
+      <item>xdg-open</item>
+      <item>cmake</item>
+      <item>qmake</item>
+      <item>svn</item>
+      <item>git</item>
+      <item>rsync</item>
+      <item>gdb</item>
+      <item>getent</item>
+      <item>getopt</item>
+      <item>gettext</item>
+      <item>gettextize</item>
+      <item>gimp</item>
+      <item>gimp-remote</item>
+      <item>gimptool</item>
+      <item>gmake</item>
+      <item>gs</item>
+      <item>head</item>
+      <item>hexdump</item>
+      <item>id</item>
+      <item>install</item>
+      <item>join</item>
+      <item>kill</item>
+      <item>killall</item>
+      <item>ld</item>
+      <item>ld86</item>
+      <item>ldd</item>
+      <item>less</item>
+      <item>lex</item>
+      <item>ln</item>
+      <item>locate</item>
+      <item>lockfile</item>
+      <item>logname</item>
+      <item>lp</item>
+      <item>lpr</item>
+      <item>ls</item>
+      <item>lynx</item>
+      <item>m4</item>
+      <item>make</item>
+      <item>man</item>
+      <item>mkdir</item>
+      <item>mknod</item>
+      <item>msgfmt</item>
+      <item>mv</item>
+      <item>namei</item>
+      <item>nasm</item>
+      <item>nawk</item>
+      <item>nice</item>
+      <item>nl</item>
+      <item>nm</item>
+      <item>nm86</item>
+      <item>nmap</item>
+      <item>nohup</item>
+      <item>nop</item>
+      <item>od</item>
+      <item>passwd</item>
+      <item>patch</item>
+      <item>pcregrep</item>
+      <item>pcretest</item>
+      <item>perl</item>
+      <item>perror</item>
+      <item>pidof</item>
+      <item>pr</item>
+      <item>printf</item>
+      <item>procmail</item>
+      <item>prune</item>
+      <item>ps2ascii</item>
+      <item>ps2epsi</item>
+      <item>ps2frag</item>
+      <item>ps2pdf</item>
+      <item>ps2ps</item>
+      <item>psbook</item>
+      <item>psmerge</item>
+      <item>psnup</item>
+      <item>psresize</item>
+      <item>psselect</item>
+      <item>pstops</item>
+      <item>rcs</item>
+      <item>rev</item>
+      <item>rm</item>
+      <item>scp</item>
+      <item>sed</item>
+      <item>seq</item>
+      <item>setterm</item>
+      <item>shred</item>
+      <item>size</item>
+      <item>size86</item>
+      <item>skill</item>
+      <item>slogin</item>
+      <item>snice</item>
+      <item>sort</item>
+      <item>sox</item>
+      <item>split</item>
+      <item>ssh</item>
+      <item>ssh-add</item>
+      <item>ssh-agent</item>
+      <item>ssh-keygen</item>
+      <item>ssh-keyscan</item>
+      <item>stat</item>
+      <item>strings</item>
+      <item>strip</item>
+      <item>sudo</item>
+      <item>suidperl</item>
+      <item>sum</item>
+      <item>tac</item>
+      <item>tail</item>
+      <item>tee</item>
+      <item>test</item>
+      <item>tr</item>
+      <item>uniq</item>
+      <item>unlink</item>
+      <item>unzip</item>
+      <item>updatedb</item>
+      <item>updmap</item>
+      <item>uptime</item>
+      <item>users</item>
+      <item>vmstat</item>
+      <item>w</item>
+      <item>wc</item>
+      <item>wget</item>
+      <item>whatis</item>
+      <item>whereis</item>
+      <item>which</item>
+      <item>who</item>
+      <item>whoami</item>
+      <item>write</item>
+      <item>xargs</item>
+      <item>yacc</item>
+      <item>yes</item>
+      <item>zip</item>
+      <item>zsoelim</item>
+
+      <!-- others -->
+      <item>dcop</item>
+      <item>kdialog</item>
+      <item>kfile</item>
+      <item>xhost</item>
+      <item>xmodmap</item>
+      <item>xset</item>
+    </list>
+
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Start">
+        <IncludeRules context="FindAll" />
+      </context>
+
+<!-- ====== The following rulessets are meant to be included ======== -->
+      <!-- FindAll tries to interpret everything -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindAll">
+        <IncludeRules context="FindComments" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- FindMost tries to interpret anything except commands -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindMost">
+        <IncludeRules context="FindComments" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+
+      <!-- FindComments consumes shell comments till EOL -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindComments">
+        <DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="Comment" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+      </context>
+
+      <!-- FindCommentsParen consumes shell comments till EOL or a closing parenthese -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">
+        <DetectChar attribute="Comment" context="CommentParen" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="CommentParen" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="CommentParen">
+        <RegExpr attribute="Comment" context="#pop" String="[^)](?=\))" />
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <!-- FindCommentsBackq consumes shell comments till EOL or a backquote -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">
+        <DetectChar attribute="Comment" context="CommentBackq" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="CommentBackq" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="CommentBackq">
+        <RegExpr attribute="Comment" context="#pop" String="[^`](?=`)" />
+        <IncludeRules context="##Alerts" />
+      </context>
+
+
+      <!-- FindCommands matches many items that can be expected outside strings, substitutions etc. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindCommands">
+        <IncludeRules context="FindSpecialCommands" />
+        <IncludeRules context="FindNormalCommands" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindSpecialCommands">
+        <!-- start expression in double parentheses -->
+        <Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression" />
+        <!-- start expression in double brackets -->
+        <RegExpr attribute="Keyword" context="ExprDblBracket" String="\[\[&eos;" beginRegion="expression" column="0"/>
+        <RegExpr attribute="Keyword" context="ExprDblBracket" String="\s\[\[&eos;" beginRegion="expression" />
+        <!-- start expression in single brackets -->
+        <RegExpr attribute="Builtin" context="ExprBracket" String="\[&eos;" beginRegion="expression" column="0"/>
+        <RegExpr attribute="Builtin" context="ExprBracket" String="\s\[&eos;" beginRegion="expression" />
+        <!-- start a group command with { -->
+        <RegExpr attribute="Keyword" context="Group" String="\{&eos;" beginRegion="group" />
+        <!-- start a subshell -->
+        <DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell" />
+        <!-- match do and if blocks -->
+        <RegExpr attribute="Keyword" context="#stay" String="\bdo&noword;" beginRegion="do" />
+        <RegExpr attribute="Keyword" context="#stay" String="\bdone&noword;" endRegion="do" />
+        <RegExpr attribute="Keyword" context="#stay" String="\bif&eos;" beginRegion="if" />
+        <RegExpr attribute="Keyword" context="#stay" String="\bfi&noword;" endRegion="if" />
+        <!-- handle case as a special case -->
+        <RegExpr attribute="Keyword" context="Case" String="\bcase&noword;" beginRegion="case" />
+        <!-- handle variable assignments -->
+        <RegExpr attribute="Variable" context="Assign" String="\b&varname;\+?=" />
+        <RegExpr attribute="Variable" context="AssignSubscr" String="\b&varname;(?=\[.+\]\+?=)" />
+        <!-- handle functions with function keyword before keywords -->
+        <StringDetect attribute="Function" context="#stay" String=":()" />
+        <RegExpr attribute="Keyword" context="FunctionDef" String="\bfunction\b" />
+        <!-- mark function definitions without function keyword -->
+        <RegExpr attribute="Function" context="#stay" String="&funcname;\s*\(\)" />
+        <!-- handle keywords -->
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <RegExpr attribute="Builtin" context="#stay" String="\.(?=\s)" />
+        <!-- handle commands that have variable names as argument -->
+        <keyword attribute="Builtin" context="VarName" String="builtins_var" />
+        <!-- handle here-string -->
+        <RegExpr attribute="Redirection" context="#stay" String="\d*&lt;&lt;&lt;" />
+        <!-- handle here document -->
+        <StringDetect attribute="Redirection" context="HereDoc" String="&lt;&lt;" lookAhead="true" />
+        <!-- handle process subst -->
+        <RegExpr attribute="Redirection" context="ProcessSubst" String="[&lt;&gt;]\(" />
+        <!-- handle redirection -->
+        <RegExpr attribute="Redirection" context="#stay" String="([0-9]*(&gt;{1,2}|&lt;)(&amp;[0-9]+-?)?|&amp;&gt;|&gt;&amp;|[0-9]*&lt;&gt;)" />
+        <!-- handle &, &&, | and || -->
+        <RegExpr attribute="Control" context="#stay" String="([|&amp;])\1?" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindNormalCommands">
+        <keyword attribute="Builtin" context="CommandArgs" String="builtins" />
+        <keyword attribute="Command" context="CommandArgs" String="unixcommands" />
+        <RegExpr attribute="OtherCommand" context="#stay" String="&pathpart;*(?=/)" />
+        <RegExpr attribute="OtherCommand" context="#stay" String="~\w*" />
+        <RegExpr attribute="OtherCommand" context="#stay" String="/&pathpart;*(?=([/);$`'&quot;]|$))" />
+        <RegExpr attribute="OtherCommand" context="CommandArgs" String="/&pathpart;*(?=([\s);$`'&quot;]|$))" />
+        <!-- This list is not complete. ie, ":" is missing but as it is in bash completition. -->
+        <RegExpr attribute="OtherCommand" context="CommandArgs" String="&pathpart;*" />
+      </context>
+
+      <!-- CommandArgs matches the items after a command -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="CommandArgs">
+        <LineContinue />
+        <IncludeRules context="FindMost" />
+        <RegExpr attribute="Keyword" context="#stay" String="\\$" />
+        <!-- handle keywords -->
+        <RegExpr attribute="Option" context="#stay" String="\.(?=\s)" />
+        <!-- handle here-string -->
+        <RegExpr attribute="Redirection" context="#stay" String="\d*&lt;&lt;&lt;" />
+        <!-- handle here document -->
+        <StringDetect attribute="Redirection" context="HereDoc" String="&lt;&lt;" lookAhead="true" />
+        <!-- handle process subst -->
+        <RegExpr attribute="Redirection" context="ProcessSubst" String="[&lt;&gt;]\(" />
+        <!-- handle redirection -->
+        <RegExpr attribute="Redirection" context="#stay" String="([0-9]*(&gt;{1,2}|&lt;)(&amp;[0-9]+-?)?|&amp;&gt;|&gt;&amp;|[0-9]*&lt;&gt;)" />
+        <!-- handle &, &&, | and || -->
+        <RegExpr attribute="Control" context="#pop" String="([|&amp;;])\1?" />
+        <RegExpr attribute="Normal Text" context="#stay" String="[a-zA-Z_]+-[A-Za-z0-9_-]*" />
+        <RegExpr attribute="Option" context="#stay" String="-?-[a-zA-Z_][A-Za-z0-9_-]*" />
+        <keyword attribute="Option" context="#stay" String="keywords" />
+        <AnyChar String=")}" context="#pop" lookAhead="true"/>
+      </context>
+
+      <!-- FindCommands matches many items that can be expected outside strings, substitutions etc, when inside a Backquote -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindCommandsBackq">
+        <IncludeRules context="FindSpecialCommands" />
+        <IncludeRules context="FindNormalCommandsBackq" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindNormalCommandsBackq">
+        <keyword attribute="Builtin" context="CommandArgsBackq" String="builtins" />
+        <keyword attribute="Command" context="CommandArgsBackq" String="unixcommands" />
+        <RegExpr attribute="OtherCommand" context="#stay" String="&pathpart;*(?=/)" />
+        <RegExpr attribute="OtherCommand" context="#stay" String="~\w*" />
+        <RegExpr attribute="OtherCommand" context="#stay" String="/&pathpart;*(?=([/);$`'&quot;]|$))" />
+        <RegExpr attribute="OtherCommand" context="CommandArgsBackq" String="/&pathpart;*(?=([\s);$`'&quot;]|$))" />
+        <RegExpr attribute="OtherCommand" context="CommandArgsBackq" String="&pathpart;*" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="CommandArgsBackq">
+        <LineContinue />
+        <DetectChar attribute="Keyword" context="#pop" char="`" lookAhead="true"/>
+        <IncludeRules context="CommandArgs" />
+      </context>
+
+      <!-- FindOthers contains various rules to mark different shell input -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindOthers">
+        <RegExpr attribute="Escape" context="#stay" String="\\[][;\\$`{}()|&amp;&lt;&gt;* ]" />
+        <RegExpr attribute="Keyword" context="#stay" String="\\$" />
+        <RegExpr attribute="Escape" context="#stay" String="\{(?!(\s|$))\S*\}" />
+        <RegExpr attribute="Path" context="#stay" String="&pathpart;*(?=/)" />
+        <RegExpr attribute="Path" context="#stay" String="~\w*" />
+        <RegExpr attribute="Path" context="#stay" String="/&pathpart;*(?=([\s/):;$`'&quot;]|$))" />
+        <!-- TODO: shell globs beside * and ? (in Path's) -->
+      </context>
+
+      <!-- FindStrings looks for single and double quoted strings, also with $-prefix -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
+        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="'" />
+        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="&quot;" />
+        <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
+        <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />
+        <Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
+        <Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1="&quot;" />
+      </context>
+
+      <!-- FindSubstitutions goes after anything starting with $ and ` and their escapes -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
+        <RegExpr attribute="Variable" context="Subscript" String="\$&varname;\[" />
+        <RegExpr attribute="Variable" context="#stay" String="\$&varname;" />
+        <RegExpr attribute="Variable" context="#stay" String="\$[*@#?$!_0-9-]" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{[*@#?$!_0-9-]\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{#&varname;(\[[*@]\])?\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{!&varname;(\[[*@]\]|[*@])?\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{#[0-9]+\}" />
+        <RegExpr attribute="Variable" context="VarBrace" String="\$\{&varname;" />
+        <RegExpr attribute="Variable" context="VarBrace" String="\$\{[*@#?$!_0-9-](?=[:#%/=?+-])" />
+        <StringDetect attribute="Variable" context="ExprDblParenSubst" String="$((" beginRegion="expression" />
+        <StringDetect attribute="Redirection" context="SubstFile" String="$(&lt;" />
+        <StringDetect attribute="Variable" context="SubstCommand" String="$(" />
+        <DetectChar attribute="Backquote" context="SubstBackq" char="`" />
+        <RegExpr attribute="Escape" context="#stay" String="\\[`$\\]" />
+      </context>
+
+      <!-- FindTests finds operators valid in tests -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindTests">
+        <RegExpr attribute="Expression" context="#stay" String="-[abcdefghkprstuwxOGLSNozn](?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="-([no]t|ef)(?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="([!=]=?|[&gt;&lt;])(?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="-(eq|ne|[gl][te])(?=\s)"/>
+      </context>
+
+
+<!-- ====== These are the contexts that can be branched to ======= -->
+
+      <!-- ExprDblParen consumes an expression started in command mode till )) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">
+        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">
+        <Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprSubParen consumes an expression till ) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprSubParen">
+        <DetectChar attribute="Normal Text" context="#pop" char=")" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprBracket consumes an expression till ] -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracket">
+        <RegExpr attribute="Builtin" context="#pop" String="\s\](?=($|[\s;|&amp;]))" endRegion="expression" />
+        <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindTests" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprDblBracket consumes an expression till ]] -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket">
+        <RegExpr attribute="Keyword" context="#pop" String="\s\]\](?=($|[\s;|&amp;]))" endRegion="expression" />
+        <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindTests" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- Group consumes shell input till } -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Group">
+        <DetectChar attribute="Keyword" context="#pop" char="}" endRegion="group" />
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- SubShell consumes shell input till ) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubShell">
+        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell" />
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- Assign consumes an expression till EOL or whitespace -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthrough="true" fallthroughContext="#pop">
+        <DetectChar attribute="Variable" context="AssignArray" char="(" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+        <RegExpr attribute="Normal Text" context="#stay" String="[\w:,+_./-]" />
+      </context>
+
+      <!-- AssignArray consumes everything till ), marking assignments -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="AssignArray">
+        <DetectChar attribute="Variable" context="#pop" char=")" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- AssignSubscr first expects a [ then parses subscript and continues with '=value' -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="AssignSubscr" fallthrough="true" fallthroughContext="#pop">
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <Detect2Chars attribute="Variable" context="Assign" char="+" char1="=" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- Subscript consumes anything till ], marks as Variable -->
+      <context attribute="Variable" lineEndContext="#stay" name="Subscript">
+        <DetectChar attribute="Variable" context="#pop" char="]" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- FunctionDef consumes a name, possibly with (), marks as Function -->
+      <context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="Function" context="#pop" String="\s+&funcname;(\s*\(\))?" />
+      </context>
+
+      <!-- VarName consumes spare variable names and assignments -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VarName" fallthrough="true" fallthroughContext="#pop">
+        <!-- handle command line options -->
+        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9]+" />
+        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
+        <RegExpr attribute="Variable" context="#stay" String="\b&varname;" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindMost" />
+        <!-- stay here in spaces and other safe characters -->
+        <RegExpr attribute="Normal Text" context="#stay" String="[^]})|;`&amp;&gt;&lt;]" />
+      </context>
+
+      <!-- ProcessSubst handles <(command) and >(command) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst">
+        <DetectChar attribute="Redirection" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- StringSQ consumes anything till ' -->
+      <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
+        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
+      </context>
+
+      <!-- StringDQ consumes anything till ", substitutes vars and expressions -->
+      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
+        <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\[`&quot;\\$\n]" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <!-- StringEsc eats till ', but escaping many characters -->
+      <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
+        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\[abefnrtv\\']" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)" />
+      </context>
+
+      <!-- VarBrace is called as soon as ${xxx is encoutered -->
+      <context attribute="Error" lineEndContext="#stay" name="VarBrace">
+        <DetectChar attribute="Variable" context="#pop" char="}" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <RegExpr attribute="Variable" context="VarAlt" String="(:?[-=?+]|##?|%%?)" />
+        <RegExpr attribute="Variable" context="VarSubst" String="//?" />
+        <DetectChar attribute="Variable" context="VarSub" char=":" />
+      </context>
+
+      <!-- VarAlt is to handle default/alternate/etc values of variables -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="VarAlt">
+        <DetectChar attribute="Variable" context="#pop#pop" char="}" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <!-- VarSubst is to handle substitutions on variables -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="VarSubst">
+        <DetectChar attribute="Variable" context="#pop#pop" char="}" />
+        <DetectChar attribute="Variable" context="VarSubst2" char="/" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="VarSubst2">
+        <DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <!-- VarSub is to substrings of variables -->
+      <context attribute="Error" lineEndContext="#stay" name="VarSub">
+        <DetectChar attribute="Variable" context="VarSub2" char=":" />
+        <DetectChar attribute="Variable" context="#pop#pop" char="}" />
+        <RegExpr attribute="Variable" context="#stay" String="&varname;" />
+        <RegExpr attribute="Variable" context="#stay" String="[0-9]+(?=[:}])" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+      <context attribute="Error" lineEndContext="#stay" name="VarSub2">
+        <DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />
+        <RegExpr attribute="Variable" context="#stay" String="&varname;" />
+        <RegExpr attribute="Variable" context="#stay" String="[0-9](?=[:}])" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+
+      <!-- SubstFile is called after a <( or >( is encoutered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstFile">
+        <DetectChar attribute="Redirection" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- SubstCommand is called after a $( is encountered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand">
+        <DetectChar attribute="Variable" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- SubstBackq is called when a backquote is encountered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstBackq">
+        <DetectChar attribute="Backquote" context="#pop" char="`" />
+        <IncludeRules context="FindCommentsBackq" />
+        <IncludeRules context="FindCommandsBackq" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- Case is called after the case keyword is encoutered. We handle this because of
+           the lonely closing parentheses that would otherwise disturb the expr matching -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Case">
+        <RegExpr attribute="Keyword" context="CaseIn" String="\sin\b" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- CaseIn is called when the construct 'case ... in' has been found. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="CaseIn">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="\besac(?=$|[\s;)])" endRegion="case" />
+        <DetectChar attribute="Keyword" context="CaseExpr" char=")" beginRegion="caseexpr" />
+        <AnyChar attribute="Keyword" context="#stay" String="(|" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- CaseExpr eats shell input till ;; -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="CaseExpr">
+        <Detect2Chars attribute="Keyword" context="#pop" char=";" char1=";" endRegion="caseexpr" />
+        <RegExpr attribute="Keyword" context="#pop" String="esac(?=$|[\s;)])" lookAhead="true" firstNonSpace="true" endRegion="caseexpr"/>
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- HereDoc consumes Here-documents. It is called at the beginning of the "<<" construct. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*&quot;(&word;)&quot;)" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*'(&word;)')" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*\\(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocINQ" String="(&lt;&lt;-\s*(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*&quot;(&word;)&quot;)" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*'(&word;)')" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*\\(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocNQ"  String="(&lt;&lt;\s*(&word;))" lookAhead="true" />
+        <StringDetect attribute="Redirection" context="#pop"  String="&lt;&lt;" /><!-- always met -->
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder">
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2\b" dynamic="true" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocNQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2\b" dynamic="true" column="0"/>
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocIQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2\b" dynamic="true" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocINQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2\b" dynamic="true" column="0"/>
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"	defStyleNum="dsNormal" />
+      <itemData name="Comment"		defStyleNum="dsComment" />
+      <itemData name="Keyword"		defStyleNum="dsKeyword" />
+      <itemData name="Control"		defStyleNum="dsKeyword" />
+      <itemData name="Builtin"		defStyleNum="dsBuiltIn" />
+      <itemData name="Command"		defStyleNum="dsFunction" />
+      <itemData name="OtherCommand"	defStyleNum="dsExtension" />
+      <itemData name="Redirection"	defStyleNum="dsOperator" />
+      <itemData name="Escape"		defStyleNum="dsDataType" />
+      <itemData name="String SingleQ"	defStyleNum="dsString" />
+      <itemData name="String DoubleQ"	defStyleNum="dsString" />
+      <itemData name="Backquote"	defStyleNum="dsKeyword" />
+      <itemData name="String Transl."	defStyleNum="dsString" />
+      <itemData name="String Escape"	defStyleNum="dsDataType" />
+      <itemData name="Variable" 	defStyleNum="dsVariable" />
+      <itemData name="Expression"	defStyleNum="dsOthers" />
+      <itemData name="Function" 	defStyleNum="dsFunction" />
+      <itemData name="Path"		defStyleNum="dsNormal" />
+      <itemData name="Option"		defStyleNum="dsNormal" />
+      <itemData name="Error"		defStyleNum="dsError" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#"/>
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="^%#[]$._{}:-/" additionalDeliminator="`"/>
+  </general>
+</language>
diff --git a/xml/bibtex.xml b/xml/bibtex.xml
new file mode 100644
--- /dev/null
+++ b/xml/bibtex.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+	  [
+	  <!ENTITY stringVariable   	"[a-zA-Z0-9\-]+">
+	  <!ENTITY fieldFormat    	"[a-zA-Z0-9\-_\.]+">
+	  <!ENTITY latexCmd	  	"\\([a-zA-Z@]+|[^ ])">
+	  <!ENTITY refKeyFormat  	"[a-zA-Z0-9_@\\-\\:]+"> <!--taken from kile 2.0.3-->
+	  ]>
+<language name="BibTeX" version="2" kateversion="5.0" extensions="*.bib" section="Markup" mimetype="text/x-bib" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL">
+  <highlighting>
+    <list name="kw_entry">
+      <item>@article</item> 
+      <item>@book</item> 
+      <item>@booklet</item> 
+      <item>@conference</item> 
+      <item>@collection</item>
+      <item>@electronic</item>
+      <item>@inbook</item> 
+      <item>@incollection</item> 
+      <item>@inproceedings</item> 
+      <item>@manual</item> 
+      <item>@mastersthesis</item> 
+      <item>@misc</item>
+      <item>@online</item>
+      <item>@patent</item>
+      <item>@periodical</item>
+      <item>@proceedings</item>
+      <item>@report</item>
+      <item>@phdthesis</item>
+      <item>@set</item>
+      <item>@thesis</item> 
+      <item>@techreport</item> 
+      <item>@unpublished</item>
+      <item>@www</item>
+      <item>@person</item> <!--all three from the directory package-->
+      <item>@company</item>
+      <item>@place</item>
+    </list>
+    <contexts>
+      <context name="Normal" attribute="Comment" lineEndContext="#stay">
+        <keyword String="kw_entry" attribute="Entry" context="Entry"/>
+	<StringDetect String="@string" attribute="Command" insensitive="true" context="StringCommand"/>
+	<StringDetect String="@preamble" attribute="Command" insensitive="true" context="PreambleCommand"/>
+	<StringDetect String="@comment" attribute="Comment" insensitive="true" context="#stay"/> <!--nothing special needed here-->
+    </context>
+
+	<context name="PreambleCommand" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#stay" >
+		<DetectChar char="{" context="CurlyBracket" />
+	</context>
+	
+	<context name="StringCommand" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#stay" >
+		<DetectChar char="{" context="CurlyBracket" />
+		<RegExpr String="&stringVariable;" attribute="String" context="CurlyBracket"/>
+      </context>
+
+      <context name="Entry" attribute="Normal Text" lineEndContext="#stay">
+	      <DetectChar char="{"  context="#stay" beginRegion="block" />
+	      <RegExpr String="&refKeyFormat;" attribute="Ref Key" context="#stay"/>
+	      <DetectChar char="," context="Field"/>
+	      <DetectChar char="}" attribute="Normal Text" context="#pop" endRegion="block" />
+      </context>
+
+      <context name="Field" attribute="Normal Text" lineEndContext="#stay">
+	      <RegExpr String="&fieldFormat;" attribute="Field" firstNonSpace="true"/>
+	      <DetectSpaces/>
+	      <DetectChar char="=" context="#stay"/>
+	      <DetectSpaces/>
+	      <DetectChar char="{" context="CurlyBracket"/>
+	      <DetectChar char="}" context="#pop" lookAhead="true"/>
+	      <DetectChar char="&quot;"  attribute="Normal Text" context="QuotedText"/>
+	      <DetectChar char="," context="#stay"/>
+	      <DetectChar char="#" context="#stay"/> <!-- the bibtex string concatenate character -->
+	      <RegExpr String="[0-9]+" context="#stay"/>
+	      <RegExpr String="&stringVariable;" attribute="String" /> <!-- assume this is a variable created with @String -->
+	      <DetectSpaces/>
+	      <RegExpr String="." attribute="Error" context="#stay"/> <!--this rule catches all errors-->
+      </context>
+
+      <context name="CurlyBracket" attribute="Normal Text" lineEndContext="#stay">
+	      <DetectChar char="{" context="CurlyBracket"/>
+	      <RegExpr String="&latexCmd;" attribute="LatexCommand" context="#stay"/>
+	      <RegExpr String="}$" context="#pop#pop"/>
+	      <DetectChar char="}" context="#pop"/>
+      </context>
+
+      <context name="QuotedText" attribute="String" lineEndContext="#stay">
+	      <DetectChar char="&quot;" attribute="Normal Text" context="#pop"/>
+	      <RegExpr String="&latexCmd;" attribute="LatexCommand" context="#stay"/>
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Entry" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Command" defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Field" defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Ref Key" defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="LatexCommand" defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Comment" defStyleNum="dsComment" spellChecking="false"/>
+      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+      <itemData name="String" defStyleNum="dsString" spellChecking="true"/>
+</itemDatas>
+  </highlighting>
+  <general>
+   <keywords casesensitive="0" weakDeliminator="\" wordWrapDeliminator=",{}[]"/>
+  </general>
+</language>
diff --git a/xml/boo.xml b/xml/boo.xml
new file mode 100644
--- /dev/null
+++ b/xml/boo.xml
@@ -0,0 +1,314 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<!-- Based on Python syntax highlighting v1.99 by Primoz Anzur, Paul Giannaros, Michael Bueker, Per Wigren -->
+<!-- Also based on boo.lang from gtksourceview -->
+<language name="Boo" version="2" kateversion="5.0" section="Sources" extensions="*.boo" mimetype="text/x-boo" casesensitive="1" author="Marc Dassonneville" license="LGPL">
+	<highlighting>
+		<list name="namespace">
+			<item>import</item>
+			<item>from</item>
+			<item>as</item>
+			<item>namespace</item>
+		</list>
+
+		<list name="operators">
+			<item>and</item>
+			<item>assert</item>
+			<item>in</item>
+			<item>is</item>
+			<item>not</item>
+			<item>or</item>
+		</list>
+
+		<list name="primitive">
+			<item>bool</item>
+			<item>byte</item>
+			<item>sbyte</item>
+			<item>double</item>
+			<item>decimal</item>
+			<item>single</item>
+			<item>short</item>
+			<item>ushort</item>
+			<item>int</item>
+			<item>char</item>
+			<item>uint</item>
+			<item>long</item>
+			<item>ulong</item>
+			<item>object</item>
+			<item>duck</item>
+			<item>string</item>
+			<item>regex</item>
+			<item>date</item>
+			<item>timespan</item>
+		</list>
+
+		<list name="definition">
+			<item>abstract</item>
+			<item>virtual</item>
+			<item>override</item>
+			<item>static</item>
+			<item>final</item>
+			<item>transient</item>
+			<item>macro</item>
+
+			<item>protected</item>
+			<item>private</item>
+			<item>public</item>
+			<item>internal</item>
+			<item>partial</item>
+
+			<item>class</item>
+			<item>struct</item>
+			<item>interface</item>
+			<item>enum</item>
+			<item>callable</item>
+			<item>of</item>
+
+			<item>def</item>
+			<item>constructor</item>
+			<item>destructor</item>
+
+			<item>do</item>
+			<item>get</item>
+			<item>set</item>
+			<item>event</item>
+
+			<item>return</item>
+			<item>yield</item>
+		</list>
+
+		<list name="boolean">
+			<item>true</item>
+			<item>false</item>
+		</list>
+
+		<list name="literals">
+			<item>null</item>
+			<item>self</item>
+			<item>super</item>
+		</list>
+
+		<list name="keywords">
+			<item>and</item>
+			<item>break</item>
+			<item>cast</item>
+			<item>continue</item>
+			<item>elif</item>
+			<item>else</item>
+			<item>except</item>
+			<item>ensure</item>
+			<item>for</item>
+			<item>given</item>
+			<item>goto</item>
+			<item>if</item>
+			<item>in</item>
+			<item>is</item>
+			<item>isa</item>
+			<item>not</item>
+			<item>or</item>
+			<item>otherwise</item>
+			<item>pass</item>
+			<item>raise</item>
+			<item>try</item>
+			<item>unless</item>
+			<item>when</item>
+			<item>while</item>
+			<item>ref</item>
+		</list>
+
+		<list name="builtins">
+			<item>assert</item>
+			<item>__eval__</item>
+			<item>__switch__</item>
+			<item>enumerate</item>
+			<item>filter</item>
+			<item>len</item>
+			<item>typeof</item>
+			<item>map</item>
+			<item>max</item>
+			<item>min</item>
+			<item>property</item>
+			<item>using</item>
+			<item>getter</item>
+			<item>required</item>
+			<item>lock</item>
+			<item>range</item>
+			<item>zip</item>
+			<item>checked</item>
+			<item>unchecked</item>
+			<item>rawArrayIndexing</item>
+			<item>normalArrayIndexing</item>
+			<item>print</item>
+			<item>array</item>
+			<item>matrix</item>
+			<item>yieldAll</item>
+		</list>
+
+		<contexts>
+			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+				<keyword attribute="Preprocessor" String="namespace" context="#stay"/>
+				<keyword attribute="Definition Keyword" String="definition" context="#stay"/>
+				<keyword attribute="Operator" String="operators" context="#stay"/>
+				<keyword attribute="Flow Control Keyword" String="keywords" context="#stay"/>
+				<keyword attribute="Builtin Function" String="builtins" context="#stay"/>
+				<keyword attribute="Special Variable" String="literals" context="#stay"/>
+				<keyword attribute="Special Variable" String="boolean" context="#stay"/>
+				<keyword attribute="Data Type" String="primitive" context="#stay" />
+				<RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]+" context="#stay"/>
+
+				<RegExpr attribute="Complex" String=" ((([0-9]*\.[0-9]+|[0-9]+\.)|([0-9]+|([0-9]*\.[0-9]+|[0-9]+\.))[eE](\+|-)?[0-9]+)|[0-9]+)[jJ]" context="#stay"/>
+				<RegExpr attribute="Float" String="([0-9]+\.[0-9]*|\.[0-9]+)([eE][0-9]+)?" context="#stay"/>
+				<RegExpr attribute="Int" String="([1-9][0-9]*([eE][0-9]+)?|0)" context="#stay"/>
+				<RegExpr attribute="Long" String="[1-9][0-9]*([eE][0-9.]+)?[Ll]" context="#stay"/>
+				<RegExpr attribute="Hex" String="0[Xx][0-9a-fA-F]+" context="#stay"/>
+				<RegExpr attribute="Octal" String="0[1-9][0-9]*" context="#stay"/>
+
+				<RegExpr attribute="Raw String" String="[rR]'''" context="Raw Tripple A-string"/>
+				<RegExpr attribute="Raw String" String="[rR]&quot;&quot;&quot;" context="Raw Tripple Q-string"/>
+
+				<RegExpr attribute="Raw String" String="[rR]'" context="Raw A-string"/>
+				<RegExpr attribute="Raw String" String="[rR]&quot;" context="Raw Q-string"/>
+
+				<RegExpr attribute="Comment" String="#.*$" context="#stay"/>
+				<RegExpr attribute="Comment" String="^\s*u?'''" context="Tripple A-comment" beginRegion="Tripple A-region"/>
+				<RegExpr attribute="Comment" String="^\s*u?&quot;&quot;&quot;" context="Tripple Q-comment" beginRegion="Tripple Q-region"/>
+				<Detect2Chars attribute="Comment" char="/" char1="/" context="Comment SlashSlash"/>
+
+				<StringDetect attribute="String" String="'''" context="Tripple A-string" beginRegion="Tripple A-region"/>
+				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="Tripple Q-string" beginRegion="Tripple Q-region"/>
+				<DetectChar attribute="String" char="'" context="Single A-string"/>
+				<DetectChar attribute="String" char="&quot;" context="Single Q-string"/>
+
+				<DetectChar attribute="Operator" char="(" context="parenthesised" beginRegion="parenthesis"/>
+				<DetectChar attribute="Operator" char=")" context="#pop" endRegion="parenthesis"/>
+
+				<StringDetect attribute="Operator" String="[|" context="Quasi-Quotation" beginRegion="qq"/>
+				<StringDetect attribute="Operator" String="|]" context="#pop" endRegion="qq"/>
+
+				<RegExpr attribute="Operator" String="[+*/%\|=;\!&lt;&gt;!^&amp;~-]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+			</context>
+
+			<context name="parenthesised" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<IncludeRules context="Normal" />
+			</context>
+
+			<context name="Quasi-Quotation" attribute="Operator" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<IncludeRules context="Normal" />
+			</context>
+
+			<context name="Tripple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Tripple A-region"/>
+			</context>
+
+			<context name="Tripple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCChar attribute="Comment" context="#stay"/>
+				<RegExpr attribute="Comment" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
+			</context>
+
+			<context name="Tripple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCStringChar attribute="String Char" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String" String="'''" context="#pop" endRegion="Tripple A-region"/>
+			</context>
+
+			<context name="Raw Tripple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCStringChar attribute="Raw String" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String" String="'''" context="#pop" endRegion="Tripple A-region"/>
+			</context>
+
+			<context name="Tripple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCStringChar attribute="String Char" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
+			</context>
+
+			<context name="Raw Tripple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCStringChar attribute="Raw String" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String" String="&quot;&quot;&quot;" context="#pop" endRegion="Tripple Q-region"/>
+			</context>
+
+			<context name="Comment SlashSlash" attribute="Comment" lineEndContext="#pop" >
+				<LineContinue attribute="Comment" context="#stay"/>
+			</context>
+
+			<context name="Single A-comment" attribute="Comment" lineEndContext="#stay">
+				<HlCStringChar attribute="Comment" context="#stay"/>
+				<DetectChar attribute="Comment" char="'" context="#pop"/>
+			</context>
+
+			<context name="Single Q-comment" attribute="Comment" lineEndContext="#stay">
+				<HlCStringChar attribute="Comment" context="#stay"/>
+				<DetectChar attribute="Comment" char="&quot;" context="#pop"/>
+			</context>
+
+			<context name="Single A-string" attribute="String" lineEndContext="#stay">
+				<HlCStringChar attribute="String Char" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+				<DetectChar attribute="String" char="'" context="#pop"/>
+			</context>
+
+			<context name="Single Q-string" attribute="String" lineEndContext="#stay">
+				<HlCStringChar attribute="String Char" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+				<DetectChar attribute="String" char="&quot;" context="#pop"/>
+			</context>
+
+			<context name="Raw A-string" attribute="Raw String" lineEndContext="#stay">
+				<HlCStringChar attribute="Raw String" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+				<DetectChar attribute="Raw String" char="'" context="#pop"/>
+			</context>
+
+			<context name="Raw Q-string" attribute="Raw String" lineEndContext="#stay">
+				<HlCStringChar attribute="Raw String" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%\([a-zA-Z0-9_]+\)[a-zA-Z]" context="#stay"/>
+				<RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/>
+				<DetectChar attribute="Raw String" char="&quot;" context="#pop"/>
+			</context>
+		</contexts>
+
+
+		<itemDatas>
+			<itemData name="Normal Text" defStyleNum="dsNormal"/>
+			<itemData name="Definition Keyword" defStyleNum="dsKeyword"/>
+			<itemData name="Data Type" defStyleNum="dsDataType"/>
+			<itemData name="Operator" defStyleNum="dsOperator" />
+			<itemData name="String Substitution" defStyleNum="dsNormal"/>
+			<itemData name="Flow Control Keyword" defStyleNum="dsControlFlow"/>
+			<itemData name="Builtin Function" defStyleNum="dsDataType"/>
+			<itemData name="Special Variable" defStyleNum="dsOthers"/>
+			<itemData name="Preprocessor" defStyleNum="dsChar"/>
+			<itemData name="String Char" defStyleNum="dsSpecialChar"/>
+			<itemData name="Long" defStyleNum="dsOthers"/>
+			<itemData name="Float" defStyleNum="dsFloat"/>
+			<itemData name="Int" defStyleNum="dsDecVal"/>
+			<itemData name="Hex" defStyleNum="dsOthers"/>
+			<itemData name="Octal" defStyleNum="dsOthers"/>
+			<itemData name="Complex" defStyleNum="dsOthers"/>
+			<itemData name="Comment" defStyleNum="dsComment"/>
+			<itemData name="String" defStyleNum="dsString"/>
+			<itemData name="Raw String" defStyleNum="dsVerbatimString"/>
+		</itemDatas>
+	</highlighting>
+	<general>
+		<folding indentationsensitive="1" />
+		<emptyLines>
+			<emptyLine regexpr="\s+" casesensitive="false"/>
+			<emptyLine regexpr="\s*#.*$" casesensitive="false"/>
+		</emptyLines>
+		<comments>
+			<comment name="singleLine" start="#" position="afterwhitespace"/>
+		</comments>
+		<keywords casesensitive="1" />
+	</general>
+</language>
diff --git a/xml/c.xml b/xml/c.xml
new file mode 100644
--- /dev/null
+++ b/xml/c.xml
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="C" section="Sources"
+          version="3" kateversion="5.0"
+          indenter="cstyle"
+          extensions="*.c;*.C;*.h"
+          mimetype="text/x-csrc;text/x-c++src;text/x-chdr"
+          priority="5">
+<!--
+##########################################################################
+## Fixes by Sebastian Pipping (webmaster@hartwork.org)
+##
+## NOTE: Keep in sync with C++ highlighter! (cpp.xml)
+##########################################################################
+-->
+  <highlighting>
+    <list name="controlflow">
+      <item>break</item>
+      <item>case</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>do</item>
+      <item>else</item>
+      <item>for</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>return</item>
+      <item>switch</item>
+      <item>while</item>
+    </list>
+    <list name="keywords">
+      <item>enum</item>
+      <item>extern</item>
+      <item>inline</item>
+      <item>sizeof</item>
+      <item>struct</item>
+      <item>typedef</item>
+      <item>union</item>
+      <item>_Alignas</item>
+      <item>_Alignof</item>
+      <item>_Atomic</item>
+      <item>_Noreturn</item>
+      <item>_Static_assert</item>
+      <item>_Thread_local</item>
+    </list>
+    <list name="types">
+      <item>auto</item>
+      <item>char</item>
+      <item>const</item>
+      <item>double</item>
+      <item>float</item>
+      <item>int</item>
+      <item>long</item>
+      <item>register</item>
+      <item>restrict</item>
+      <item>short</item>
+      <item>signed</item>
+      <item>static</item>
+      <item>unsigned</item>
+      <item>void</item>
+      <item>volatile</item>
+      <item>int8_t</item>
+      <item>int16_t</item>
+      <item>int32_t</item>
+      <item>int64_t</item>
+      <item>uint8_t</item>
+      <item>uint16_t</item>
+      <item>uint32_t</item>
+      <item>uint64_t</item>
+      <item>int_least8_t</item>
+      <item>int_least16_t</item>
+      <item>int_least32_t</item>
+      <item>int_least64_t</item>
+      <item>uint_least8_t</item>
+      <item>uint_least16_t</item>
+      <item>uint_least32_t</item>
+      <item>uint_least64_t</item>
+      <item>int_fast8_t</item>
+      <item>int_fast16_t</item>
+      <item>int_fast32_t</item>
+      <item>int_fast64_t</item>
+      <item>uint_fast8_t</item>
+      <item>uint_fast16_t</item>
+      <item>uint_fast32_t</item>
+      <item>uint_fast64_t</item>
+      <item>size_t</item>
+      <item>ssize_t</item>
+      <item>wchar_t</item>
+      <item>intptr_t</item>
+      <item>uintptr_t</item>
+      <item>intmax_t</item>
+      <item>uintmax_t</item>
+      <item>ptrdiff_t</item>
+      <item>sig_atomic_t</item>
+      <item>wint_t</item>
+      <item>_Bool</item>
+      <item>bool</item>
+      <item>_Complex</item>
+      <item>complex</item>
+      <item>_Imaginary</item>
+      <item>imaginary</item>
+      <item>_Generic</item>
+      <item>va_list</item>
+      <item>FILE</item>
+      <item>fpos_t</item>
+      <item>time_t</item>
+      <item>max_align_t</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectSpaces />
+	<RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0\s*$" beginRegion="PP" firstNonSpace="true" />
+        <DetectChar context="AfterHash" char="#" firstNonSpace="true" lookAhead="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
+        <keyword attribute="Control Flow" context="#stay" String="controlflow"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <DetectIdentifier />
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <RegExpr attribute="Binary" context="#stay" String="0b[01]+[ul]{0,3}" insensitive="true" />
+        <Int attribute="Decimal" context="#stay" >
+          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+
+      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
+        <LineContinue attribute="Comment" context="#stay"/>
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="AfterHash">
+        <RegExpr attribute="Preprocessor" context="Include" String="#\s*(?:include|include_next)" insensitive="true" firstNonSpace="true" />
+
+        <!-- define, elif, else, endif, error, if, ifdef, ifndef, line, pragma, undef, warning -->
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
+        
+        <!-- folding for apple style #pragma mark - label -->
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*pragma\s+mark\s+-\s*$" insensitive="true" firstNonSpace="true" endRegion="pragma_mark" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*pragma\s+mark" insensitive="true" firstNonSpace="true" endRegion="pragma_mark" beginRegion="pragma_mark" />
+
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|define|undef|line|error|warning|pragma)" insensitive="true" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s+[0-9]+" insensitive="true" firstNonSpace="true" />
+      </context>
+
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Include">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
+        <IncludeRules context="Preprocessor" />
+      </context>
+
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar/Preprocessor" char="/" char1="*" beginRegion="Comment2" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/" />
+      </context>
+
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar/Preprocessor">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="#\s*el(?:se|if)" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Binary"       defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Char"         defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="String Char"  defStyleNum="dsSpecialChar"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/>
+      <itemData name="Prep. Lib"    defStyleNum="dsImport" spellChecking="false"/>
+      <itemData name="Alert"        defStyleNum="dsAlert" spellChecking="false"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
+      <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="1" additionalDeliminator="'&quot;" />
+  </general>
+</language>
diff --git a/xml/changelog.xml b/xml/changelog.xml
new file mode 100644
--- /dev/null
+++ b/xml/changelog.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="ChangeLog" version="3" kateversion="2.4" section="Other" extensions="ChangeLog" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
+  <highlighting>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectChar attribute="Entry" context="entry" char="*" firstNonSpace="true" />
+        <RegExpr attribute="Date" context="line" String="\d\d\d\d\s*-\s*\d\d\s*-\s*\d\d\s*" column="0"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="line">
+        <RegExpr attribute="Name" context="#stay" String="(\w\s*)+"/>
+        <RegExpr attribute="E-Mail" context="#pop" String="&lt;.*&gt;\s*$"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="entry">
+        <RegExpr attribute="Entry" context="#pop" String=".*:" minimal="true"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Name" defStyleNum="dsKeyword"/>
+      <itemData name="E-Mail" defStyleNum="dsOthers"/>
+      <itemData name="Date" defStyleNum="dsDataType"/>
+      <itemData name="Entry" defStyleNum="dsDecVal"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/clojure.xml b/xml/clojure.xml
new file mode 100644
--- /dev/null
+++ b/xml/clojure.xml
@@ -0,0 +1,883 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+  This file is part of KDE's kate project.
+
+  copyright   : (C) 2004 by Dominik Haumann, (C) 2011 by Caspar Hasenclever
+
+ **********************************************************************
+ * This library is free software; you can redistribute it and/or      *
+ * modify it under the terms of the GNU Library General Public        *
+ * License as published by the Free Software Foundation; either       *
+ * version 2 of the License, or (at your option) any later version.   *
+ *                                                                    *
+ * This library is distributed in the hope that it will be useful,    *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  *
+ * Library General Public License for more details.                   *
+ *                                                                    *
+ * You should have received a copy of the GNU Library General Public  *
+ * License along with this library; if not, write to the              *
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,   *
+ * Boston, MA  02110-1301, USA.                                       *
+ **********************************************************************
+ -->
+<language version="8" kateversion="5.0" name="Clojure" section="Sources" extensions="*.clj;*.cljs;*.cljc" mimetype="" author="Dominik Haumann [lisp] modified for clojure by Caspar Hasenclever" license="LGPLv2+">
+  <highlighting>
+    <list name="definitions">
+      <item>def</item>
+      <item>def-</item>
+      <item>defalias</item>
+      <item>defhinted</item>
+      <item>definline</item>
+      <item>defmethod</item>
+      <item>defmulti</item>
+      <item>defnk</item>
+      <item>defn-memo</item>
+      <item>defonce</item>
+      <item>defonce-</item>
+      <item>defprotocol</item>
+      <item>defrecord</item>
+      <item>defstruct</item>
+      <item>defstruct-</item>
+      <item>deftest</item>
+      <item>deftest-</item>
+      <item>deftype</item>
+      <item>defunbound</item>
+      <item>defunbound-</item>
+      <item>defvar</item>
+      <item>defvar-</item>
+    </list>
+    <list name="documentable_definitions">
+      <item>defn</item>
+      <item>defn-</item>
+      <item>defmacro</item>
+      <item>defmacro-</item>
+    </list>
+    <list name="keywords">
+      <item>&lt;</item>
+      <item>&lt;=</item>
+      <item>=</item>
+      <item>==</item>
+      <item>&gt;</item>
+      <item>&gt;=</item>
+      <item>-</item>
+      <item>-'</item>
+      <item>-&gt;</item>
+      <item>-&gt;&gt;</item>
+      <item>/</item>
+      <item>.</item>
+      <item>..</item>
+      <item>*</item>
+      <item>*'</item>
+      <item>+</item>
+      <item>+'</item>
+      <item>accessor</item>
+      <item>aclone</item>
+      <item>add-classpath</item>
+      <item>add-watch</item>
+      <item>agent</item>
+      <item>agent-errors</item>
+      <item>aget</item>
+      <item>alength</item>
+      <item>alias</item>
+      <item>all-ns</item>
+      <item>alter</item>
+      <item>alter-meta!</item>
+      <item>alter-var-root</item>
+      <item>amap</item>
+      <item>ancestors</item>
+      <item>and</item>
+      <item>append-child</item>
+      <item>apply</item>
+      <item>apply-template</item>
+      <item>are</item>
+      <item>areduce</item>
+      <item>array-map</item>
+      <item>as-&gt;</item>
+      <item>aset</item>
+      <item>aset-boolean</item>
+      <item>aset-byte</item>
+      <item>aset-char</item>
+      <item>aset-double</item>
+      <item>aset-float</item>
+      <item>aset-int</item>
+      <item>aset-long</item>
+      <item>aset-short</item>
+      <item>assert</item>
+      <item>assert-any</item>
+      <item>assert-expr</item>
+      <item>assert-predicate</item>
+      <item>assoc</item>
+      <item>assoc!</item>
+      <item>associative?</item>
+      <item>assoc-in</item>
+      <item>atom</item>
+      <item>atom?</item>
+      <item>attrs</item>
+      <item>await</item>
+      <item>await1</item>
+      <item>await-for</item>
+      <item>bases</item>
+      <item>bean</item>
+      <item>bigdec</item>
+      <item>bigint</item>
+      <item>binding</item>
+      <item>bit-and</item>
+      <item>bit-and-not</item>
+      <item>bit-clear</item>
+      <item>bit-flip</item>
+      <item>bit-not</item>
+      <item>bit-or</item>
+      <item>bit-set</item>
+      <item>bit-shift-left</item>
+      <item>bit-shift-right</item>
+      <item>bit-test</item>
+      <item>bit-xor</item>
+      <item>boolean</item>
+      <item>boolean-array</item>
+      <item>booleans</item>
+      <item>bound-fn</item>
+      <item>bound-fn*</item>
+      <item>branch?</item>
+      <item>butlast</item>
+      <item>byte</item>
+      <item>byte-array</item>
+      <item>bytes</item>
+      <item>case</item>
+      <item>cast</item>
+      <item>catch</item>
+      <item>char</item>
+      <item>char?</item>
+      <item>char-array</item>
+      <item>char-escape-string</item>
+      <item>char-name-string</item>
+      <item>chars</item>
+      <item>children</item>
+      <item>chunk</item>
+      <item>chunk-append</item>
+      <item>chunk-buffer</item>
+      <item>chunk-cons</item>
+      <item>chunked-seq?</item>
+      <item>chunk-first</item>
+      <item>chunk-next</item>
+      <item>chunk-rest</item>
+      <item>class</item>
+      <item>class?</item>
+      <item>clear-agent-errors</item>
+      <item>clojure-version</item>
+      <item>coll?</item>
+      <item>collection-tag</item>
+      <item>comment</item>
+      <item>commute</item>
+      <item>comp</item>
+      <item>comparator</item>
+      <item>compare</item>
+      <item>compare-and-set!</item>
+      <item>compile</item>
+      <item>complement</item>
+      <item>compose-fixtures</item>
+      <item>concat</item>
+      <item>cond</item>
+      <item>condp</item>
+      <item>conj</item>
+      <item>conj!</item>
+      <item>cons</item>
+      <item>constantly</item>
+      <item>construct-proxy</item>
+      <item>contains?</item>
+      <item>content</item>
+      <item>content-handler</item>
+      <item>count</item>
+      <item>counted?</item>
+      <item>create-ns</item>
+      <item>create-struct</item>
+      <item>cycle</item>
+      <item>dec</item>
+      <item>dec'</item>
+      <item>decimal?</item>
+      <item>declare</item>
+      <item>delay</item>
+      <item>delay?</item>
+      <item>deliver</item>
+      <item>deref</item>
+      <item>derive</item>
+      <item>descendants</item>
+      <item>destructure</item>
+      <item>difference</item>
+      <item>disj</item>
+      <item>disj!</item>
+      <item>dissoc</item>
+      <item>dissoc!</item>
+      <item>distinct</item>
+      <item>distinct?</item>
+      <item>do</item>
+      <item>doall</item>
+      <item>doc</item>
+      <item>dorun</item>
+      <item>doseq</item>
+      <item>dosync</item>
+      <item>do-template</item>
+      <item>dotimes</item>
+      <item>doto</item>
+      <item>double</item>
+      <item>double-array</item>
+      <item>doubles</item>
+      <item>down</item>
+      <item>drop</item>
+      <item>drop-last</item>
+      <item>drop-while</item>
+      <item>e</item>
+      <item>edit</item>
+      <item>element</item>
+      <item>emit</item>
+      <item>emit-element</item>
+      <item>empty</item>
+      <item>empty?</item>
+      <item>end?</item>
+      <item>ensure</item>
+      <item>enumeration-seq</item>
+      <item>eval</item>
+      <item>even?</item>
+      <item>every?</item>
+      <item>extend</item>
+      <item>extenders</item>
+      <item>extend-protocol</item>
+      <item>extends?</item>
+      <item>extend-type</item>
+      <item>false?</item>
+      <item>ffirst</item>
+      <item>file-position</item>
+      <item>file-seq</item>
+      <item>filter</item>
+      <item>filterv</item>
+      <item>finally</item>
+      <item>find</item>
+      <item>find-doc</item>
+      <item>find-ns</item>
+      <item>find-var</item>
+      <item>first</item>
+      <item>float</item>
+      <item>float?</item>
+      <item>float-array</item>
+      <item>floats</item>
+      <item>flush</item>
+      <item>fn</item>
+      <item>fn?</item>
+      <item>fnext</item>
+      <item>fnil</item>
+      <item>for</item>
+      <item>force</item>
+      <item>format</item>
+      <item>frequencies</item>
+      <item>function?</item>
+      <item>future</item>
+      <item>future?</item>
+      <item>future-call</item>
+      <item>future-cancel</item>
+      <item>future-cancelled?</item>
+      <item>future-done?</item>
+      <item>gen-and-load-class</item>
+      <item>gen-and-save-class</item>
+      <item>gen-class</item>
+      <item>gen-interface</item>
+      <item>gensym</item>
+      <item>get</item>
+      <item>get-child</item>
+      <item>get-child-count</item>
+      <item>get-in</item>
+      <item>get-method</item>
+      <item>get-possibly-unbound-var</item>
+      <item>get-proxy-class</item>
+      <item>get-thread-bindings</item>
+      <item>get-validator</item>
+      <item>group-by</item>
+      <item>handle</item>
+      <item>handler-case</item>
+      <item>hash</item>
+      <item>hash-map</item>
+      <item>hash-set</item>
+      <item>identical?</item>
+      <item>identity</item>
+      <item>if</item>
+      <item>if-let</item>
+      <item>ifn?</item>
+      <item>if-not</item>
+      <item>import</item>
+      <item>inc</item>
+      <item>inc'</item>
+      <item>inc-report-counter</item>
+      <item>index</item>
+      <item>init-proxy</item>
+      <item>in-ns</item>
+      <item>insert-child</item>
+      <item>insert-left</item>
+      <item>insert-right</item>
+      <item>inspect</item>
+      <item>inspect-table</item>
+      <item>inspect-tree</item>
+      <item>instance?</item>
+      <item>int</item>
+      <item>int-array</item>
+      <item>integer?</item>
+      <item>interleave</item>
+      <item>intern</item>
+      <item>interpose</item>
+      <item>intersection</item>
+      <item>into</item>
+      <item>into-array</item>
+      <item>ints</item>
+      <item>io!</item>
+      <item>is</item>
+      <item>isa?</item>
+      <item>is-leaf</item>
+      <item>iterate</item>
+      <item>iterator-seq</item>
+      <item>join</item>
+      <item>join-fixtures</item>
+      <item>juxt</item>
+      <item>key</item>
+      <item>keys</item>
+      <item>keyword</item>
+      <item>keyword?</item>
+      <item>keywordize-keys</item>
+      <item>last</item>
+      <item>lazy-cat</item>
+      <item>lazy-seq</item>
+      <item>left</item>
+      <item>leftmost</item>
+      <item>lefts</item>
+      <item>let</item>
+      <item>letfn</item>
+      <item>line-seq</item>
+      <item>list</item>
+      <item>list*</item>
+      <item>list?</item>
+      <item>list-model</item>
+      <item>list-provider</item>
+      <item>load</item>
+      <item>loaded-libs</item>
+      <item>load-file</item>
+      <item>load-reader</item>
+      <item>load-script</item>
+      <item>load-string</item>
+      <item>locking</item>
+      <item>long</item>
+      <item>long-array</item>
+      <item>longs</item>
+      <item>loop</item>
+      <item>macroexpand</item>
+      <item>macroexpand-1</item>
+      <item>macroexpand-all</item>
+      <item>main</item>
+      <item>make-array</item>
+      <item>make-hierarchy</item>
+      <item>make-node</item>
+      <item>map</item>
+      <item>map?</item>
+      <item>mapcat</item>
+      <item>mapv</item>
+      <item>map-invert</item>
+      <item>max</item>
+      <item>max-key</item>
+      <item>memfn</item>
+      <item>memoize</item>
+      <item>merge</item>
+      <item>merge-with</item>
+      <item>meta</item>
+      <item>methods</item>
+      <item>method-sig</item>
+      <item>min</item>
+      <item>min-key</item>
+      <item>mod</item>
+      <item>name</item>
+      <item>namespace</item>
+      <item>neg?</item>
+      <item>newline</item>
+      <item>next</item>
+      <item>nfirst</item>
+      <item>nil?</item>
+      <item>nnext</item>
+      <item>node</item>
+      <item>not</item>
+      <item>not=</item>
+      <item>not-any?</item>
+      <item>not-empty</item>
+      <item>not-every?</item>
+      <item>ns</item>
+      <item>ns-aliases</item>
+      <item>ns-imports</item>
+      <item>ns-interns</item>
+      <item>ns-map</item>
+      <item>ns-name</item>
+      <item>ns-publics</item>
+      <item>ns-refers</item>
+      <item>ns-resolve</item>
+      <item>ns-unalias</item>
+      <item>ns-unmap</item>
+      <item>nth</item>
+      <item>nthnext</item>
+      <item>num</item>
+      <item>number?</item>
+      <item>odd?</item>
+      <item>or</item>
+      <item>parents</item>
+      <item>partial</item>
+      <item>partition</item>
+      <item>path</item>
+      <item>pcalls</item>
+      <item>peek</item>
+      <item>persistent!</item>
+      <item>pmap</item>
+      <item>pop</item>
+      <item>pop!</item>
+      <item>pop-thread-bindings</item>
+      <item>pos?</item>
+      <item>postwalk</item>
+      <item>postwalk-demo</item>
+      <item>postwalk-replace</item>
+      <item>pr</item>
+      <item>prefer-method</item>
+      <item>prefers</item>
+      <item>prev</item>
+      <item>prewalk</item>
+      <item>prewalk-demo</item>
+      <item>prewalk-replace</item>
+      <item>primitives-classnames</item>
+      <item>print</item>
+      <item>print-cause-trace</item>
+      <item>print-ctor</item>
+      <item>print-doc</item>
+      <item>print-dup</item>
+      <item>printf</item>
+      <item>println</item>
+      <item>println-str</item>
+      <item>print-method</item>
+      <item>print-namespace-doc</item>
+      <item>print-simple</item>
+      <item>print-special-doc</item>
+      <item>print-stack-trace</item>
+      <item>print-str</item>
+      <item>print-throwable</item>
+      <item>print-trace-element</item>
+      <item>prn</item>
+      <item>prn-str</item>
+      <item>project</item>
+      <item>promise</item>
+      <item>proxy</item>
+      <item>proxy-call-with-super</item>
+      <item>proxy-mappings</item>
+      <item>proxy-name</item>
+      <item>proxy-super</item>
+      <item>pr-str</item>
+      <item>push-thread-bindings</item>
+      <item>pvalues</item>
+      <item>quot</item>
+      <item>rand</item>
+      <item>rand-int</item>
+      <item>rand-nth</item>
+      <item>range</item>
+      <item>ratio?</item>
+      <item>rational?</item>
+      <item>rationalize</item>
+      <item>read</item>
+      <item>read-line</item>
+      <item>read-string</item>
+      <item>recur</item>
+      <item>reduce</item>
+      <item>ref</item>
+      <item>refer</item>
+      <item>refer-clojure</item>
+      <item>ref-history-count</item>
+      <item>re-find</item>
+      <item>ref-max-history</item>
+      <item>ref-min-history</item>
+      <item>ref-set</item>
+      <item>re-groups</item>
+      <item>reify</item>
+      <item>release-pending-sends</item>
+      <item>rem</item>
+      <item>re-matcher</item>
+      <item>re-matches</item>
+      <item>remove</item>
+      <item>remove-method</item>
+      <item>remove-ns</item>
+      <item>remove-watch</item>
+      <item>rename</item>
+      <item>rename-keys</item>
+      <item>re-pattern</item>
+      <item>repeat</item>
+      <item>repeatedly</item>
+      <item>repl</item>
+      <item>replace</item>
+      <item>repl-caught</item>
+      <item>repl-exception</item>
+      <item>replicate</item>
+      <item>repl-prompt</item>
+      <item>repl-read</item>
+      <item>report</item>
+      <item>require</item>
+      <item>re-seq</item>
+      <item>reset!</item>
+      <item>reset-meta!</item>
+      <item>resolve</item>
+      <item>rest</item>
+      <item>resultset-seq</item>
+      <item>reverse</item>
+      <item>reversible?</item>
+      <item>right</item>
+      <item>rightmost</item>
+      <item>rights</item>
+      <item>root</item>
+      <item>rseq</item>
+      <item>rsubseq</item>
+      <item>run-all-tests</item>
+      <item>run-tests</item>
+      <item>satisfies?</item>
+      <item>second</item>
+      <item>select</item>
+      <item>select-keys</item>
+      <item>send</item>
+      <item>send-off</item>
+      <item>seq</item>
+      <item>seq?</item>
+      <item>seque</item>
+      <item>sequence</item>
+      <item>sequential?</item>
+      <item>seq-zip</item>
+      <item>set</item>
+      <item>set?</item>
+      <item>set-test</item>
+      <item>set-validator!</item>
+      <item>short</item>
+      <item>short-array</item>
+      <item>shorts</item>
+      <item>shutdown-agents</item>
+      <item>skip-if-eol</item>
+      <item>skip-whitespace</item>
+      <item>slurp</item>
+      <item>some</item>
+      <item>sort</item>
+      <item>sort-by</item>
+      <item>sorted?</item>
+      <item>sorted-map</item>
+      <item>sorted-map-by</item>
+      <item>sorted-set</item>
+      <item>sorted-set-by</item>
+      <item>special-form-anchor</item>
+      <item>special-symbol?</item>
+      <item>split-at</item>
+      <item>split-with</item>
+      <item>str</item>
+      <item>stream?</item>
+      <item>string?</item>
+      <item>stringify-keys</item>
+      <item>struct</item>
+      <item>struct-map</item>
+      <item>subs</item>
+      <item>subseq</item>
+      <item>subvec</item>
+      <item>successful?</item>
+      <item>supers</item>
+      <item>swap!</item>
+      <item>symbol</item>
+      <item>symbol?</item>
+      <item>sync</item>
+      <item>syntax-symbol-anchor</item>
+      <item>take</item>
+      <item>take-last</item>
+      <item>take-nth</item>
+      <item>take-while</item>
+      <item>test</item>
+      <item>test-all-vars</item>
+      <item>testing</item>
+      <item>testing-contexts-str</item>
+      <item>testing-vars-str</item>
+      <item>test-ns</item>
+      <item>test-var</item>
+      <item>the-ns</item>
+      <item>throw</item>
+      <item>time</item>
+      <item>to-array</item>
+      <item>to-array-2d</item>
+      <item>trampoline</item>
+      <item>transient</item>
+      <item>tree-seq</item>
+      <item>true?</item>
+      <item>try</item>
+      <item>try-expr</item>
+      <item>type</item>
+      <item>unchecked-add</item>
+      <item>unchecked-dec</item>
+      <item>unchecked-divide</item>
+      <item>unchecked-inc</item>
+      <item>unchecked-multiply</item>
+      <item>unchecked-negate</item>
+      <item>unchecked-remainder</item>
+      <item>unchecked-subtract</item>
+      <item>underive</item>
+      <item>unimport</item>
+      <item>union</item>
+      <item>unquote</item>
+      <item>unquote-splicing</item>
+      <item>up</item>
+      <item>update</item>
+      <item>update-in</item>
+      <item>update-proxy</item>
+      <item>use</item>
+      <item>use-fixtures</item>
+      <item>val</item>
+      <item>vals</item>
+      <item>var?</item>
+      <item>var-get</item>
+      <item>var-set</item>
+      <item>vary-meta</item>
+      <item>vec</item>
+      <item>vector</item>
+      <item>vector?</item>
+      <item>vector-of</item>
+      <item>walk</item>
+      <item>when</item>
+      <item>when-first</item>
+      <item>when-let</item>
+      <item>when-not</item>
+      <item>while</item>
+      <item>with-bindings</item>
+      <item>with-bindings*</item>
+      <item>with-in-str</item>
+      <item>with-loading-context</item>
+      <item>with-local-vars</item>
+      <item>with-meta</item>
+      <item>with-open</item>
+      <item>with-out-str</item>
+      <item>with-precision</item>
+      <item>with-test</item>
+      <item>with-test-out</item>
+      <item>xml-seq</item>
+      <item>zero?</item>
+      <item>zipmap</item>
+    </list>
+    <list name="variables">
+      <item>*1</item>
+      <item>*2</item>
+      <item>*3</item>
+      <item>*agent*</item>
+      <item>*allow-unresolved-vars*</item>
+      <item>*assert*</item>
+      <item>*clojure-version*</item>
+      <item>*command-line-args*</item>
+      <item>*compile-files*</item>
+      <item>*compile-path*</item>
+      <item>*current*</item>
+      <item>*e</item>
+      <item>*err*</item>
+      <item>*file*</item>
+      <item>*flush-on-newline*</item>
+      <item>*in*</item>
+      <item>*initial-report-counters*</item>
+      <item>*load-tests*</item>
+      <item>*macro-meta*</item>
+      <item>*math-context*</item>
+      <item>*ns*</item>
+      <item>*out*</item>
+      <item>*print-dup*</item>
+      <item>*print-length*</item>
+      <item>*print-level*</item>
+      <item>*print-meta*</item>
+      <item>*print-readably*</item>
+      <item>*read-eval*</item>
+      <item>*report-counters*</item>
+      <item>*sb*</item>
+      <item>*source-path*</item>
+      <item>*stack*</item>
+      <item>*stack-trace-depth*</item>
+      <item>*state*</item>
+      <item>*testing-contexts*</item>
+      <item>*testing-vars*</item>
+      <item>*test-out*</item>
+      <item>*use-context-classloader*</item>
+      <item>*warn-on-reflection*</item>
+      <item>*warn-on-reflection*</item>
+      <item>false</item>
+      <item>nil</item>
+      <item>true</item>
+    </list>
+    <contexts>
+      <context name="Level0" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets1" context="Level1" char="("/>
+        <Detect2Chars attribute="Brackets1" context="Level1" char="'" char1="("/>
+        <Detect2Chars attribute="Brackets1" context="Level1" char="`" char1="("/>
+        <Detect2Chars attribute="Brackets1" context="Level1" char="#" char1="("/>
+        <Detect2Chars attribute="Brackets1" context="Level1" char="@" char1="("/>
+        <IncludeRules context="Default" />
+      </context>
+      <context name="Default" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Comment" context="Comment" char=";"/>
+        <Detect2Chars attribute="Comment" context="#stay" char="#" char1="_"/>
+        <RegExpr attribute="Readermacro" context="#stay" String="#\?@?"/>
+        <RegExpr attribute="Modifier" context="#stay" String="[@~'`][^\s\(\)\{\}\[\]]+"/>
+        <RegExpr attribute="Modifier" context="#stay" String="[^\s&quot;\(\)\{\}\[\]]+#"/>
+        <RegExpr attribute="Modifier2" context="#stay" String="::?[a-zA-Z0-9\-\./]+"/>
+        <Detect2Chars attribute="BracketsSet" context="BracketsSet" char="#" char1="{"/>
+        <Detect2Chars attribute="BracketsMeta" context="BracketsMeta" char="^" char1="{"/>
+        <DetectChar attribute="BracketsMap" context="BracketsMap" char="{"/>
+        <DetectChar attribute="BracketsSquare" context="#stay" char="["/>
+        <DetectChar attribute="BracketsSquare" context="#stay" char="]"/>
+        <RegExpr attribute="Variable" context="#stay" String="#'[^\s\(\)\{\}\[\]]+"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <RegExpr attribute="Variable" context="#stay" String="%[0-9]*"/>
+        <keyword attribute="Variable" context="#stay" String="variables"/>
+        <keyword attribute="Definition" context="function_decl_documentable" String="documentable_definitions"/>
+        <keyword attribute="Definition" context="function_decl" String="definitions"/>
+        <RegExpr attribute="Char" context="#stay" String="\\u[0-9A-Fa-f]+|\\o[0-7]+|\\backspace|\\formfeed|\\newline|\\space|\\tab|\\[^\s\(\)\{\}\[\]]"/>
+        <Detect2Chars attribute="Regexpr" context="Regexpr" char="#" char1="&quot;"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <RegExpr attribute="Float" context="#stay" String="[0-9]+/[0-9]+"/>
+        <RegExpr attribute="BaseN" context="#stay" String="0[xX][0-9A-Fa-f]+"/>
+        <RegExpr attribute="BaseN" context="#stay" String="([12]?[0-9]|3[0-6])[rR][0-9a-zA-Z]+"/>
+        <RegExpr attribute="Error" context="#stay" String="(3[7-9]|[0-9]*[4-9][0-9]+)[rR][0-9a-zA-Z]+"/>
+        <Float attribute="Float" context="#stay">
+            <StringDetect attribute="Decimal" context="#stay" String="M" insensitive="false"/>
+        </Float>
+        <Int attribute="Decimal" context="#stay">
+            <StringDetect attribute="Decimal" context="#stay" String="N" insensitive="false"/>
+        </Int>
+        <DetectChar attribute="Brackets1" context="Level1" char="("/>
+      </context>
+      <context name="Comment" attribute="Comment" lineEndContext="#pop">
+        <RegExpr String="(FIXME|TODO):?" attribute="Alert" context="#stay"/>
+      </context>
+      <context name="function_decl_documentable" attribute="Function" lineEndContext="#stay">
+        <RegExpr attribute="Function" context="#pop!DocumentationPossible" String="\s*[A-Za-z0-9-+\&lt;\&gt;//\*!\?']*\s*"/>
+      </context>
+      <context name="function_decl" attribute="Function" lineEndContext="#stay">
+        <RegExpr attribute="Function" context="#pop" String="\s*[A-Za-z0-9-+\&lt;\&gt;//\*!\?']*\s*"/>
+      </context>
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <RegExpr attribute="Char" context="#stay" String="#\\."/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context name="Regexpr" attribute="Regexpr" lineEndContext="#stay">
+        <RegExpr attribute="Char" context="#stay" String="#\\."/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="Regexpr" context="#pop" char="&quot;"/>
+      </context>
+      <context name="DocumentationPossible" attribute="Normal" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+        <DetectChar attribute="Comment" context="Comment" char=";"/>
+        <DetectChar attribute="Documentation" context="#pop!Documentation" char="&quot;"/>
+      </context>
+      <context name="Documentation" attribute="Documentation" lineEndContext="#stay">
+        <RegExpr attribute="Char" context="#stay" String="#\\."/>
+        <HlCStringChar attribute="Char" context="#stay"/>
+        <DetectChar attribute="Documentation" context="#pop" char="&quot;"/>
+      </context>
+      <context name="BracketsSet" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="BracketsSet" context="#pop" char="}" />
+        <IncludeRules context="Default" />
+      </context>
+      <context name="BracketsMeta" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="BracketsMeta" context="#pop" char="}" />
+        <DetectChar attribute="Documentation" context="Documentation" char="&quot;"/>
+        <IncludeRules context="Default" />
+      </context>
+      <context name="BracketsMap" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="BracketsMap" context="#pop" char="}" />
+        <IncludeRules context="Default" />
+      </context>
+      <context name="Level1" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets2" context="Level2" char="("/>
+        <Detect2Chars attribute="Brackets2" context="Level2" char="'" char1="("/>
+        <Detect2Chars attribute="Brackets2" context="Level2" char="`" char1="("/>
+        <Detect2Chars attribute="Brackets2" context="Level2" char="#" char1="("/>
+        <Detect2Chars attribute="Brackets2" context="Level2" char="@" char1="("/>
+        <DetectChar attribute="Brackets1" context="#pop" char=")" />
+        <IncludeRules context="Default" />
+      </context>
+      <context name="Level2" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets3" context="Level3" char="("/>
+        <Detect2Chars attribute="Brackets3" context="Level3" char="'" char1="("/>
+        <Detect2Chars attribute="Brackets3" context="Level3" char="`" char1="("/>
+        <Detect2Chars attribute="Brackets3" context="Level3" char="#" char1="("/>
+        <Detect2Chars attribute="Brackets3" context="Level3" char="@" char1="("/>
+        <DetectChar attribute="Brackets2" context="#pop" char=")" />
+        <IncludeRules context="Default" />
+      </context>
+      <context name="Level3" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets4" context="Level4" char="("/>
+        <Detect2Chars attribute="Brackets4" context="Level4" char="'" char1="("/>
+        <Detect2Chars attribute="Brackets4" context="Level4" char="`" char1="("/>
+        <Detect2Chars attribute="Brackets4" context="Level4" char="#" char1="("/>
+        <Detect2Chars attribute="Brackets4" context="Level4" char="@" char1="("/>
+        <DetectChar attribute="Brackets3" context="#pop" char=")" />
+        <IncludeRules context="Default" />
+      </context>
+      <context name="Level4" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets5" context="Level5" char="("/>
+        <Detect2Chars attribute="Brackets5" context="Level5" char="'" char1="("/>
+        <Detect2Chars attribute="Brackets5" context="Level5" char="`" char1="("/>
+        <Detect2Chars attribute="Brackets5" context="Level5" char="#" char1="("/>
+        <Detect2Chars attribute="Brackets5" context="Level5" char="@" char1="("/>
+        <DetectChar attribute="Brackets4" context="#pop" char=")" />
+        <IncludeRules context="Default" />
+      </context>
+      <context name="Level5" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets6" context="Level6" char="("/>
+        <Detect2Chars attribute="Brackets6" context="Level6" char="'" char1="("/>
+        <Detect2Chars attribute="Brackets6" context="Level6" char="`" char1="("/>
+        <Detect2Chars attribute="Brackets6" context="Level6" char="#" char1="("/>
+        <Detect2Chars attribute="Brackets6" context="Level6" char="@" char1="("/>
+        <DetectChar attribute="Brackets5" context="#pop" char=")" />
+        <IncludeRules context="Default" />
+      </context>
+      <context name="Level6" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Brackets1" context="Level1" char="("/>
+        <Detect2Chars attribute="Brackets1" context="Level1" char="'" char1="("/>
+        <Detect2Chars attribute="Brackets1" context="Level1" char="`" char1="("/>
+        <Detect2Chars attribute="Brackets1" context="Level1" char="#" char1="("/>
+        <Detect2Chars attribute="Brackets1" context="Level1" char="@" char1="("/>
+        <DetectChar attribute="Brackets6" context="#pop" char=")" />
+        <IncludeRules context="Default" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
+      <itemData name="Modifier" defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Modifier2" defStyleNum="dsAttribute" spellChecking="false"/>
+      <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Definition" defStyleNum="dsBuiltIn" spellChecking="false"/>
+      <itemData name="Data" defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="BaseN" defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Char" defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="String Char" defStyleNum="dsSpecialChar"/>
+      <itemData name="Regexpr" defStyleNum="dsSpecialString"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Documentation" defStyleNum="dsDocumentation"/>
+      <itemData name="Alert" defStyleNum="dsAlert" spellChecking="false"/>
+      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+      <itemData name="Readermacro" defStyleNum="dsPreprocessor"/>
+      <itemData name="BracketsSet" defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00"/>
+      <itemData name="BracketsMeta" defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00" bold="1" italic="0"/>
+      <itemData name="BracketsMap" defStyleNum="dsNormal" color="#206620" selColor="#219921"/>
+      <itemData name="BracketsSquare" defStyleNum="dsNormal" color="#3333ff" selColor="#3333aa"/>
+      <itemData name="Brackets1" defStyleNum="dsNormal" color="#ff0000" selColor="#ffaa00" bold="0" italic="0"/>
+      <itemData name="Brackets2" defStyleNum="dsNormal" color="#ff8800" selColor="#ffff00" bold="0" italic="0"/>
+      <itemData name="Brackets3" defStyleNum="dsNormal" color="#888800" selColor="#888888" bold="0" italic="0"/>
+      <itemData name="Brackets4" defStyleNum="dsNormal" color="#008800" selColor="#000000" bold="0" italic="0"/>
+      <itemData name="Brackets5" defStyleNum="dsNormal" color="#000088" selColor="#000000" bold="0" italic="0"/>
+      <itemData name="Brackets6" defStyleNum="dsNormal" color="#880088" selColor="#000000" bold="0" italic="0"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" weakDeliminator="-+*?!&lt;&gt;=/:#\"/>
+    <comments>
+      <comment name="singleLine" start=";;"/>
+    </comments>
+  </general>
+</language>
diff --git a/xml/cmake.xml b/xml/cmake.xml
new file mode 100644
--- /dev/null
+++ b/xml/cmake.xml
@@ -0,0 +1,1312 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+  This file is part of KDE's kate project.
+
+  Copyright 2004 Alexander Neundorf (neundorf@kde.org)
+  Copyright 2005 Dominik Haumann (dhdev@gmx.de)
+  Copyright 2007,2008,2013,2014 Matthew Woehlke (mw_triad@users.sourceforge.net)
+  Copyright 2013,2014,2015 Alex Turbov (i.zaufi@gmail.com)
+
+ **********************************************************************
+ * This library is free software; you can redistribute it and/or      *
+ * modify it under the terms of the GNU Lesser General Public         *
+ * License as published by the Free Software Foundation; either       *
+ * version 2 of the License, or (at your option) any later version.   *
+ *                                                                    *
+ * This library is distributed in the hope that it will be useful,    *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  *
+ * Lesser General Public License for more details.                    *
+ *                                                                    *
+ * You should have received a copy of the GNU Lesser General Public   *
+ * License along with this library; if not, write to the              *
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,   *
+ * Boston, MA  02110-1301, USA.                                       *
+ **********************************************************************
+ -->
+<!-- generated for "cmake version 2.8.12.1, 3.0.2, 3.1.2 and 3.3.0" -->
+<language
+    name="CMake"
+    version="4"
+    kateversion="5.0"
+    section="Other"
+    extensions="CMakeLists.txt;*.cmake;*.cmake.in"
+    style="CMake"
+    mimetype="text/x-cmake"
+    author="Alexander Neundorf (neundorf@kde.org)"
+    license="LGPLv2+"
+  >
+  <highlighting>
+
+    <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
+    <list name = "commands">
+      <!-- generated list -->
+      <item>add_compile_options</item>
+      <item>add_custom_command</item>
+      <item>add_custom_target</item>
+      <item>add_definitions</item>
+      <item>add_dependencies</item>
+      <item>add_executable</item>
+      <item>add_library</item>
+      <item>add_subdirectory</item>
+      <item>add_test</item>
+      <item>aux_source_directory</item>
+      <item>break</item>
+      <item>build_command</item>
+      <item>build_name</item>
+      <item>cmake_host_system_information</item>
+      <item>cmake_minimum_required</item>
+      <item>cmake_policy</item>
+      <item>configure_file</item>
+      <item>continue</item>
+      <item>create_test_sourcelist</item>
+      <item>ctest_build</item>
+      <item>ctest_configure</item>
+      <item>ctest_coverage</item>
+      <item>ctest_empty_binary_directory</item>
+      <item>ctest_memcheck</item>
+      <item>ctest_read_custom_files</item>
+      <item>ctest_run_script</item>
+      <item>ctest_sleep</item>
+      <item>ctest_start</item>
+      <item>ctest_submit</item>
+      <item>ctest_test</item>
+      <item>ctest_update</item>
+      <item>ctest_upload</item>
+      <item>define_property</item>
+      <item>else</item>
+      <item>elseif</item>
+      <item>enable_language</item>
+      <item>enable_testing</item>
+      <item>endforeach</item>
+      <item>endfunction</item>
+      <item>endif</item>
+      <item>endmacro</item>
+      <item>endwhile</item>
+      <item>exec_program</item>
+      <item>execute_process</item>
+      <item>export</item>
+      <item>export_library_dependencies</item>
+      <item>file</item>
+      <item>find_file</item>
+      <item>find_library</item>
+      <item>find_package</item>
+      <item>find_path</item>
+      <item>find_program</item>
+      <item>fltk_wrap_ui</item>
+      <item>foreach</item>
+      <item>function</item>
+      <item>get_cmake_property</item>
+      <item>get_directory_property</item>
+      <item>get_filename_component</item>
+      <item>get_property</item>
+      <item>get_source_file_property</item>
+      <item>get_target_property</item>
+      <item>get_test_property</item>
+      <item>if</item>
+      <item>include</item>
+      <item>include_directories</item>
+      <item>include_external_msproject</item>
+      <item>include_regular_expression</item>
+      <item>install</item>
+      <item>install_files</item>
+      <item>install_programs</item>
+      <item>install_targets</item>
+      <item>link_directories</item>
+      <item>link_libraries</item>
+      <item>list</item>
+      <item>load_cache</item>
+      <item>load_command</item>
+      <item>macro</item>
+      <item>make_directory</item>
+      <item>mark_as_advanced</item>
+      <item>math</item>
+      <item>message</item>
+      <item>option</item>
+      <item>output_required_files</item>
+      <item>project</item>
+      <item>qt_wrap_cpp</item>
+      <item>qt_wrap_ui</item>
+      <item>remove</item>
+      <item>remove_definitions</item>
+      <item>return</item>
+      <item>separate_arguments</item>
+      <item>set</item>
+      <item>set_directory_properties</item>
+      <item>set_property</item>
+      <item>set_source_files_properties</item>
+      <item>set_target_properties</item>
+      <item>set_tests_properties</item>
+      <item>site_name</item>
+      <item>source_group</item>
+      <item>string</item>
+      <item>subdir_depends</item>
+      <item>subdirs</item>
+      <item>target_compile_definitions</item>
+      <item>target_compile_features</item>
+      <item>target_compile_options</item>
+      <item>target_include_directories</item>
+      <item>target_link_libraries</item>
+      <item>target_sources</item>
+      <item>try_compile</item>
+      <item>try_run</item>
+      <item>unset</item>
+      <item>use_mangled_mesa</item>
+      <item>utility_source</item>
+      <item>variable_requires</item>
+      <item>variable_watch</item>
+      <item>while</item>
+      <item>write_file</item>
+    </list>
+
+    <list name="itkvtk_commands">
+      <item>itk_wrap_tcl</item>
+      <item>vtk_make_instantiator</item>
+      <item>vtk_wrap_java</item>
+      <item>vtk_wrap_python</item>
+      <item>vtk_wrap_tcl</item>
+    </list>
+
+    <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
+    <list name="special_args">
+      <!-- generated list -->
+      <item>AFTER</item>
+      <item>ALIAS</item>
+      <item>ALL</item>
+      <item>ALPHABET</item>
+      <item>AND</item>
+      <item>APPEND</item>
+      <item>APPENDNUMBER_ERRORS</item>
+      <item>APPEND_STRING</item>
+      <item>ARCHIVE</item>
+      <item>ARGS</item>
+      <item>ASCII</item>
+      <item>AUTHOR_WARNING</item>
+      <item>BEFORE</item>
+      <item>BRIEF_DOCS</item>
+      <item>BUILD</item>
+      <item>BUNDLE</item>
+      <item>BYPRODUCTS</item>
+      <item>CACHE</item>
+      <item>CACHED_VARIABLE</item>
+      <item>CDASH_UPLOAD</item>
+      <item>CDASH_UPLOAD_TYPE</item>
+      <item>CLEAR</item>
+      <item>CMAKE_FIND_ROOT_PATH_BOTH</item>
+      <item>CMAKE_FLAGS</item>
+      <item>CODE</item>
+      <item>COMMAND</item>
+      <item>COMMAND_NAME</item>
+      <item>COMMENT</item>
+      <item>COMPARE</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_OUTPUT_VARIABLE</item>
+      <item>COMPILE_RESULT_VAR</item>
+      <item>COMPONENT</item>
+      <item>COMPONENTS</item>
+      <item>CONCAT</item>
+      <item>CONDITION</item>
+      <item>CONFIG</item>
+      <item>CONFIGS</item>
+      <item>CONFIGURATION</item>
+      <item>CONFIGURATIONS</item>
+      <item>CONFIGURE</item>
+      <item>CONTENT</item>
+      <item>COPY</item>
+      <item>COPYONLY</item>
+      <item>COPY_FILE</item>
+      <item>COPY_FILE_ERROR</item>
+      <item>CRLF</item>
+      <item>DEFINED</item>
+      <item>DEFINITION</item>
+      <item>DEPENDS</item>
+      <item>DESTINATION</item>
+      <item>DIRECTORY</item>
+      <item>DIRECTORY_PERMISSIONS</item>
+      <item>DOC</item>
+      <item>DOS</item>
+      <item>DOWNLOAD</item>
+      <item>ENV</item>
+      <item>END</item>
+      <item>EQUAL</item>
+      <item>ERROR_FILE</item>
+      <item>ERROR_QUIET</item>
+      <item>ERROR_STRIP_TRAILING_WHITESPACE</item>
+      <item>ERROR_VARIABLE</item>
+      <item>ESCAPE_QUOTES</item>
+      <item>EXACT</item>
+      <item>EXCLUDE</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>EXCLUDE_LABEL</item>
+      <item>EXISTS</item>
+      <item>EXPECTED_HASH</item>
+      <item>EXPECTED_MD5</item>
+      <item>EXPORT</item>
+      <item>EXPORT_LINK_INTERFACE_LIBRARIES</item>
+      <item>EXPR</item>
+      <item>EXTRA_INCLUDE</item>
+      <item>FATAL_ERROR</item>
+      <item>FILE</item>
+      <item>FILES</item>
+      <item>FILES_MATCHING</item>
+      <item>FILE_PERMISSIONS</item>
+      <item>FIND</item>
+      <item>FLAGS</item>
+      <item>FOLLOW_SYMLINKS</item>
+      <item>FORCE</item>
+      <item>FRAMEWORK</item>
+      <item>FULL_DOCS</item>
+      <item>FUNCTION</item>
+      <item>GENERATE</item>
+      <item>GENEX_STRIP</item>
+      <item>GET</item>
+      <item>GLOB</item>
+      <item>GLOBAL</item>
+      <item>GLOB_RECURSE</item>
+      <item>GREATER</item>
+      <item>GROUP_EXECUTE</item>
+      <item>GROUP_READ</item>
+      <item>GUARD</item>
+      <item>GUID</item>
+      <item>HEX</item>
+      <item>HINTS</item>
+      <item>IMPLICIT_DEPENDS</item>
+      <item>IMPORTED</item>
+      <item>IN</item>
+      <item>INACTIVITY_TIMEOUT</item>
+      <item>INCLUDE</item>
+      <item>INCLUDES</item>
+      <item>INCLUDE_INTERNALS</item>
+      <item>INCLUDE_LABEL</item>
+      <item>INHERITED</item>
+      <item>INPUT</item>
+      <item>INPUT_FILE</item>
+      <item>INSERT</item>
+      <item>INSTALL</item>
+      <item>INTERFACE</item>
+      <item>IS_ABSOLUTE</item>
+      <item>IS_DIRECTORY</item>
+      <item>IS_NEWER_THAN</item>
+      <item>IS_SYMLINK</item>
+      <item>ITEMS</item>
+      <item>LABELS</item>
+      <item>LANGUAGES</item>
+      <item>LENGTH</item>
+      <item>LENGTH_MAXIMUM</item>
+      <item>LENGTH_MINIMUM</item>
+      <item>LESS</item>
+      <item>LF</item>
+      <item>LIBRARY</item>
+      <item>LIMIT</item>
+      <item>LIMIT_COUNT</item>
+      <item>LIMIT_INPUT</item>
+      <item>LIMIT_OUTPUT</item>
+      <item>LINK_INTERFACE_LIBRARIES</item>
+      <item>LINK_LIBRARIES</item>
+      <item>LINK_PRIVATE</item>
+      <item>LINK_PUBLIC</item>
+      <item>LISTS</item>
+      <item>LIST_DIRECTORIES</item>
+      <item>LOCK</item>
+      <item>LOG</item>
+      <item>MACOSX_BUNDLE</item>
+      <item>MAIN_DEPENDENCY</item>
+      <item>MAKE_C_IDENTIFIER</item>
+      <item>MAKE_DIRECTORY</item>
+      <item>MATCH</item>
+      <item>MATCHALL</item>
+      <item>MATCHES</item>
+      <item>MD5</item>
+      <item>MESSAGE_NEVER</item>
+      <item>MODULE</item>
+      <item>NAME</item>
+      <item>NAMELINK_ONLY</item>
+      <item>NAMELINK_SKIP</item>
+      <item>NAMES</item>
+      <item>NAMESPACE</item>
+      <item>NAMES_PER_DIR</item>
+      <item>NEW</item>
+      <item>NEWLINE_CONSUME</item>
+      <item>NEWLINE_STYLE</item>
+      <item>NEW_PROCESS</item>
+      <item>NOT</item>
+      <item>NOTEQUAL</item>
+      <item>NO_CMAKE_BUILDS_PATH</item>
+      <item>NO_CMAKE_ENVIRONMENT_PATH</item>
+      <item>NO_CMAKE_FIND_ROOT_PATH</item>
+      <item>NO_CMAKE_PACKAGE_REGISTRY</item>
+      <item>NO_CMAKE_PATH</item>
+      <item>NO_CMAKE_SYSTEM_PACKAGE_REGISTRY</item>
+      <item>NO_CMAKE_SYSTEM_PATH</item>
+      <item>NO_DEFAULT_PATH</item>
+      <item>NO_HEX_CONVERSION</item>
+      <item>NO_MODULE</item>
+      <item>NO_POLICY_SCOPE</item>
+      <item>NO_SOURCE_PERMISSIONS</item>
+      <item>NO_SYSTEM_ENVIRONMENT_PATH</item>
+      <item>NUMBER_ERRORS</item>
+      <item>NUMBER_WARNINGS</item>
+      <item>OBJECT</item>
+      <item>OFF</item>
+      <item>OFFSET</item>
+      <item>OLD</item>
+      <item>ON</item>
+      <item>ONLY_CMAKE_FIND_ROOT_PATH</item>
+      <item>OPTIONAL</item>
+      <item>OPTIONAL_COMPONENTS</item>
+      <item>OPTIONS</item>
+      <item>OR</item>
+      <item>OUTPUT</item>
+      <item>OUTPUT_DIRECTORY</item>
+      <item>OUTPUT_FILE</item>
+      <item>OUTPUT_QUIET</item>
+      <item>OUTPUT_STRIP_TRAILING_WHITESPACE</item>
+      <item>OUTPUT_VARIABLE</item>
+      <item>OWNER_EXECUTE</item>
+      <item>OWNER_READ</item>
+      <item>OWNER_WRITE</item>
+      <item>PACKAGE</item>
+      <item>PARALLEL_LEVEL</item>
+      <item>PARENT_SCOPE</item>
+      <item>PARTS</item>
+      <item>PATHS</item>
+      <item>PATH_SUFFIXES</item>
+      <item>PATH_TO_MESA</item>
+      <item>PATTERN</item>
+      <item>PERMISSIONS</item>
+      <item>PLATFORM</item>
+      <item>POLICY</item>
+      <item>POP</item>
+      <item>POST_BUILD</item>
+      <item>PREORDER</item>
+      <item>PRE_BUILD</item>
+      <item>PRE_LINK</item>
+      <item>PRIVATE</item>
+      <item>PRIVATE_HEADER</item>
+      <item>PROCESS</item>
+      <item>PROGRAM</item>
+      <item>PROGRAMS</item>
+      <item>PROGRAM_ARGS</item>
+      <item>PROJECT_NAME</item>
+      <item>PROPERTIES</item>
+      <item>PROPERTY</item>
+      <item>PUBLIC</item>
+      <item>PUBLIC_HEADER</item>
+      <item>PUSH</item>
+      <item>QUERY</item>
+      <item>QUIET</item>
+      <item>RANDOM</item>
+      <item>RANDOM_SEED</item>
+      <item>RANGE</item>
+      <item>READ</item>
+      <item>READ_WITH_PREFIX</item>
+      <item>REGEX</item>
+      <item>REGULAR_EXPRESSION</item>
+      <item>RELATIVE</item>
+      <item>RELATIVE_PATH</item>
+      <item>RELEASE</item>
+      <item>REMOVE</item>
+      <item>REMOVE_AT</item>
+      <item>REMOVE_DUPLICATES</item>
+      <item>REMOVE_ITEM</item>
+      <item>REMOVE_RECURSE</item>
+      <item>RENAME</item>
+      <item>REPLACE</item>
+      <item>REQUIRED</item>
+      <item>REQUIRED_VARIABLE1</item>
+      <item>REQUIRED_VARIABLE2</item>
+      <item>RESOURCE</item>
+      <item>RESULT</item>
+      <item>RESULT_VAR</item>
+      <item>RESULT_VARIABLE</item>
+      <item>RETRY_COUNT</item>
+      <item>RETRY_DELAY</item>
+      <item>RETURN_VALUE</item>
+      <item>REVERSE</item>
+      <item>RUNTIME</item>
+      <item>RUNTIME_DIRECTORY</item>
+      <item>RUN_OUTPUT_VARIABLE</item>
+      <item>RUN_RESULT_VAR</item>
+      <item>SCHEDULE_RANDOM</item>
+      <item>SCRIPT</item>
+      <item>SEND_ERROR</item>
+      <item>SET</item>
+      <item>SHA1</item>
+      <item>SHA224</item>
+      <item>SHA256</item>
+      <item>SHA384</item>
+      <item>SHA512</item>
+      <item>SHARED</item>
+      <item>SHOW_PROGRESS</item>
+      <item>SORT</item>
+      <item>SOURCE</item>
+      <item>SOURCES</item>
+      <item>START</item>
+      <item>STATIC</item>
+      <item>STATUS</item>
+      <item>STREQUAL</item>
+      <item>STRGREATER</item>
+      <item>STOP_TIME</item>
+      <item>STRIDE</item>
+      <item>STRINGS</item>
+      <item>STRIP</item>
+      <item>STRLESS</item>
+      <item>SUBSTRING</item>
+      <item>SYSTEM</item>
+      <item>TARGET</item>
+      <item>TARGETS</item>
+      <item>TEST</item>
+      <item>TEST_VARIABLE</item>
+      <item>TIMEOUT</item>
+      <item>TIMESTAMP</item>
+      <item>TLS_CAINFO</item>
+      <item>TLS_VERIFY</item>
+      <item>TOLOWER</item>
+      <item>TOUPPER</item>
+      <item>TO_CMAKE_PATH</item>
+      <item>TO_NATIVE_PATH</item>
+      <item>TRACK</item>
+      <item>TYPE</item>
+      <item>UNIX</item>
+      <item>UNIX_COMMAND</item>
+      <item>UNKNOWN</item>
+      <item>UPLOAD</item>
+      <item>UPPER</item>
+      <item>USES_TERMINAL</item>
+      <item>USE_SOURCE_PERMISSIONS</item>
+      <item>UTC</item>
+      <item>UUID</item>
+      <item>VALUE</item>
+      <item>VARIABLE</item>
+      <item>VERBATIM</item>
+      <item>VERSION</item>
+      <item>VERSION_EQUAL</item>
+      <item>VERSION_GREATER</item>
+      <item>VERSION_LESS</item>
+      <item>WARNING</item>
+      <item>WIN32</item>
+      <item>WINDOWS_COMMAND</item>
+      <item>WORKING_DIRECTORY</item>
+      <item>WRITE</item>
+    </list>
+
+    <!-- these are "special" and don't show up in the generated lists -->
+    <list name="extra_special_args">
+      <!-- get_filename_component() has <COMP> placeholder for the following special args -->
+      <item>PATH</item>
+      <item>NAME</item>
+      <item>EXT</item>
+      <item>NAME_WE</item>
+      <item>ABSOLUTE</item>
+      <item>REALPATH</item>
+      <!-- set() has <type> placeholder for the following special args -->
+      <item>FILEPATH</item>
+      <!-- PATH already present above -->
+      <item>STRING</item>
+      <item>BOOL</item>
+      <item>INTERNAL</item>
+      <!-- key values to the QUERY parameter of cmake_host_system_information() -->
+      <item>NUMBER_OF_LOGICAL_CORES</item>
+      <item>NUMBER_OF_PHYSICAL_CORES</item>
+      <item>HOSTNAME</item>
+      <item>FQDN</item>
+      <item>TOTAL_VIRTUAL_MEMORY</item>
+      <item>AVAILABLE_VIRTUAL_MEMORY</item>
+      <item>TOTAL_PHYSICAL_MEMORY</item>
+      <item>AVAILABLE_PHYSICAL_MEMORY</item>
+      <!-- Since CMake 3.3 -->
+      <item>IN_LIST</item>
+    </list>
+
+    <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
+    <list name="properties">
+      <!-- generated list -->
+      <item>ABSTRACT</item>
+      <item>ADDITIONAL_MAKE_CLEAN_FILES</item>
+      <item>ADVANCED</item>
+      <item>ALIASED_TARGET</item>
+      <item>ALLOW_DUPLICATE_CUSTOM_TARGETS</item>
+      <item>ANDROID_API</item>
+      <item>ANDROID_API_MIN</item>
+      <item>ANDROID_GUI</item>
+      <item>ARCHIVE_OUTPUT_DIRECTORY</item>
+      <item>ARCHIVE_OUTPUT_NAME</item>
+      <item>ATTACHED_FILES</item>
+      <item>ATTACHED_FILES_ON_FAIL</item>
+      <item>AUTOGEN_TARGETS_FOLDER</item>
+      <item>AUTOGEN_TARGET_DEPENDS</item>
+      <item>AUTOMOC</item>
+      <item>AUTOMOC_MOC_OPTIONS</item>
+      <item>AUTOMOC_TARGETS_FOLDER</item>
+      <item>AUTORCC</item>
+      <item>AUTORCC_OPTIONS</item>
+      <item>AUTOUIC</item>
+      <item>AUTOUIC_OPTIONS</item>
+      <item>BUILD_WITH_INSTALL_RPATH</item>
+      <item>BUNDLE</item>
+      <item>BUNDLE_EXTENSION</item>
+      <item>CACHE_VARIABLES</item>
+      <item>CLEAN_NO_CUSTOM</item>
+      <item>CMAKE_CONFIGURE_DEPENDS</item>
+      <item>CMAKE_CXX_KNOWN_FEATURES</item>
+      <item>CMAKE_C_KNOWN_FEATURES</item>
+      <item>COMPATIBLE_INTERFACE_BOOL</item>
+      <item>COMPATIBLE_INTERFACE_NUMBER_MAX</item>
+      <item>COMPATIBLE_INTERFACE_NUMBER_MIN</item>
+      <item>COMPATIBLE_INTERFACE_STRING</item>
+      <item>COMPILE_DEFINITIONS</item>
+      <item>COMPILE_FEATURES</item>
+      <item>COMPILE_FLAGS</item>
+      <item>COMPILE_OPTIONS</item>
+      <item>COMPILE_PDB_NAME</item>
+      <item>COMPILE_PDB_OUTPUT_DIRECTORY</item>
+      <item>COST</item>
+      <item>CPACK_DESKTOP_SHORTCUTS</item>
+      <item>CPACK_NEVER_OVERWRITE</item>
+      <item>CPACK_PERMANENT</item>
+      <item>CPACK_STARTUP_SHORTCUTS</item>
+      <item>CPACK_START_MENU_SHORTCUTS</item>
+      <item>CPACK_WIX_ACL</item>
+      <item>CROSSCOMPILING_EMULATOR</item>
+      <item>CXX_EXTENSIONS</item>
+      <item>CXX_STANDARD</item>
+      <item>CXX_STANDARD_REQUIRED</item>
+      <item>C_EXTENSIONS</item>
+      <item>C_STANDARD</item>
+      <item>C_STANDARD_REQUIRED</item>
+      <item>DEBUG_CONFIGURATIONS</item>
+      <item>DEBUG_POSTFIX</item>
+      <item>DEFINE_SYMBOL</item>
+      <item>DEFINITIONS</item>
+      <item>DEPENDS</item>
+      <item>DISABLED_FEATURES</item>
+      <item>ECLIPSE_EXTRA_NATURES</item>
+      <item>ENABLED_FEATURES</item>
+      <item>ENABLED_LANGUAGES</item>
+      <item>ENABLE_EXPORTS</item>
+      <item>ENVIRONMENT</item>
+      <item>EXCLUDE_FROM_ALL</item>
+      <item>EXCLUDE_FROM_DEFAULT_BUILD</item>
+      <item>EXPORT_NAME</item>
+      <item>EXTERNAL_OBJECT</item>
+      <item>EchoString</item>
+      <item>FAIL_REGULAR_EXPRESSION</item>
+      <item>FIND_LIBRARY_USE_LIB64_PATHS</item>
+      <item>FIND_LIBRARY_USE_OPENBSD_VERSIONING</item>
+      <item>FOLDER</item>
+      <item>FRAMEWORK</item>
+      <item>Fortran_FORMAT</item>
+      <item>Fortran_MODULE_DIRECTORY</item>
+      <item>GENERATED</item>
+      <item>GENERATOR_FILE_NAME</item>
+      <item>GLOBAL_DEPENDS_DEBUG_MODE</item>
+      <item>GLOBAL_DEPENDS_NO_CYCLES</item>
+      <item>GNUtoMS</item>
+      <item>HAS_CXX</item>
+      <item>HEADER_FILE_ONLY</item>
+      <item>HELPSTRING</item>
+      <item>IMPLICIT_DEPENDS_INCLUDE_TRANSFORM</item>
+      <item>IMPORTED</item>
+      <item>IMPORTED_CONFIGURATIONS</item>
+      <item>IMPORTED_IMPLIB</item>
+      <item>IMPORTED_LINK_DEPENDENT_LIBRARIES</item>
+      <item>IMPORTED_LINK_INTERFACE_LANGUAGES</item>
+      <item>IMPORTED_LINK_INTERFACE_LIBRARIES</item>
+      <item>IMPORTED_LINK_INTERFACE_MULTIPLICITY</item>
+      <item>IMPORTED_LOCATION</item>
+      <item>IMPORTED_NO_SONAME</item>
+      <item>IMPORTED_SONAME</item>
+      <item>IMPORT_PREFIX</item>
+      <item>IMPORT_SUFFIX</item>
+      <item>INCLUDE_DIRECTORIES</item>
+      <item>INCLUDE_REGULAR_EXPRESSION</item>
+      <item>INSTALL_NAME_DIR</item>
+      <item>INSTALL_RPATH</item>
+      <item>INSTALL_RPATH_USE_LINK_PATH</item>
+      <item>INTERFACE_AUTOUIC_OPTIONS</item>
+      <item>INTERFACE_COMPILE_DEFINITIONS</item>
+      <item>INTERFACE_COMPILE_FEATURES</item>
+      <item>INTERFACE_COMPILE_OPTIONS</item>
+      <item>INTERFACE_INCLUDE_DIRECTORIES</item>
+      <item>INTERFACE_LINK_LIBRARIES</item>
+      <item>INTERFACE_POSITION_INDEPENDENT_CODE</item>
+      <item>INTERFACE_SOURCES</item>
+      <item>INTERFACE_SYSTEM_INCLUDE_DIRECTORIES</item>
+      <item>INTERPROCEDURAL_OPTIMIZATION</item>
+      <item>IN_TRY_COMPILE</item>
+      <item>JOB_POOLS</item>
+      <item>JOB_POOL_COMPILE</item>
+      <item>JOB_POOL_LINK</item>
+      <item>KEEP_EXTENSION</item>
+      <item>LABELS</item>
+      <item>LANGUAGE</item>
+      <item>LIBRARY_OUTPUT_DIRECTORY</item>
+      <item>LIBRARY_OUTPUT_NAME</item>
+      <item>LINKER_LANGUAGE</item>
+      <item>LINK_DEPENDS</item>
+      <item>LINK_DEPENDS_NO_SHARED</item>
+      <item>LINK_DIRECTORIES</item>
+      <item>LINK_FLAGS</item>
+      <item>LINK_INTERFACE_LIBRARIES</item>
+      <item>LINK_INTERFACE_MULTIPLICITY</item>
+      <item>LINK_LIBRARIES</item>
+      <item>LINK_SEARCH_END_STATIC</item>
+      <item>LINK_SEARCH_START_STATIC</item>
+      <item>LISTFILE_STACK</item>
+      <item>LOCATION</item>
+      <item>MACOSX_BUNDLE</item>
+      <item>MACOSX_BUNDLE_INFO_PLIST</item>
+      <item>MACOSX_FRAMEWORK_INFO_PLIST</item>
+      <item>MACOSX_PACKAGE_LOCATION</item>
+      <item>MACOSX_RPATH</item>
+      <item>MACROS</item>
+      <item>MEASUREMENT</item>
+      <item>MODIFIED</item>
+      <item>NAME</item>
+      <item>NO_SONAME</item>
+      <item>NO_SYSTEM_FROM_IMPORTED</item>
+      <item>OBJECT_DEPENDS</item>
+      <item>OBJECT_OUTPUTS</item>
+      <item>OSX_ARCHITECTURES</item>
+      <item>OUTPUT_NAME</item>
+      <item>PACKAGES_FOUND</item>
+      <item>PACKAGES_NOT_FOUND</item>
+      <item>PARENT_DIRECTORY</item>
+      <item>PASS_REGULAR_EXPRESSION</item>
+      <item>PDB_NAME</item>
+      <item>PDB_OUTPUT_DIRECTORY</item>
+      <item>POSITION_INDEPENDENT_CODE</item>
+      <item>POST_INSTALL_SCRIPT</item>
+      <item>PREDEFINED_TARGETS_FOLDER</item>
+      <item>PREFIX</item>
+      <item>PRE_INSTALL_SCRIPT</item>
+      <item>PRIVATE_HEADER</item>
+      <item>PROCESSORS</item>
+      <item>PROJECT_LABEL</item>
+      <item>PUBLIC_HEADER</item>
+      <item>REPORT_UNDEFINED_PROPERTIES</item>
+      <item>REQUIRED_FILES</item>
+      <item>RESOURCE</item>
+      <item>RESOURCE_LOCK</item>
+      <item>RULE_LAUNCH_COMPILE</item>
+      <item>RULE_LAUNCH_CUSTOM</item>
+      <item>RULE_LAUNCH_LINK</item>
+      <item>RULE_MESSAGES</item>
+      <item>RUNTIME_OUTPUT_DIRECTORY</item>
+      <item>RUNTIME_OUTPUT_NAME</item>
+      <item>RUN_SERIAL</item>
+      <item>SKIP_BUILD_RPATH</item>
+      <item>SKIP_RETURN_CODE</item>
+      <item>SOURCES</item>
+      <item>SOVERSION</item>
+      <item>STATIC_LIBRARY_FLAGS</item>
+      <item>STRINGS</item>
+      <item>SUFFIX</item>
+      <item>SYMBOLIC</item>
+      <item>TARGET_ARCHIVES_MAY_BE_SHARED_LIBS</item>
+      <item>TARGET_SUPPORTS_SHARED_LIBS</item>
+      <item>TEST_INCLUDE_FILE</item>
+      <item>TIMEOUT</item>
+      <item>TYPE</item>
+      <item>USE_FOLDERS</item>
+      <item>VALUE</item>
+      <item>VARIABLES</item>
+      <item>VERSION</item>
+      <item>VISIBILITY_INLINES_HIDDEN</item>
+      <item>VS_DEPLOYMENT_CONTENT</item>
+      <item>VS_DEPLOYMENT_LOCATION</item>
+      <item>VS_DOTNET_REFERENCES</item>
+      <item>VS_DOTNET_TARGET_FRAMEWORK_VERSION</item>
+      <item>VS_GLOBAL_KEYWORD</item>
+      <item>VS_GLOBAL_PROJECT_TYPES</item>
+      <item>VS_GLOBAL_ROOTNAMESPACE</item>
+      <item>VS_KEYWORD</item>
+      <item>VS_SCC_AUXPATH</item>
+      <item>VS_SCC_LOCALPATH</item>
+      <item>VS_SCC_PROJECTNAME</item>
+      <item>VS_SCC_PROVIDER</item>
+      <item>VS_SHADER_ENTRYPOINT</item>
+      <item>VS_SHADER_FLAGS</item>
+      <item>VS_SHADER_MODEL</item>
+      <item>VS_SHADER_TYPE</item>
+      <item>VS_WINRT_COMPONENT</item>
+      <item>VS_WINRT_EXTENSIONS</item>
+      <item>VS_WINRT_REFERENCES</item>
+      <item>VS_XAML_TYPE</item>
+      <item>WILL_FAIL</item>
+      <item>WIN32_EXECUTABLE</item>
+      <item>WORKING_DIRECTORY</item>
+      <item>WRAP_EXCLUDE</item>
+      <item>XCODE_EXPLICIT_FILE_TYPE</item>
+      <item>XCODE_LAST_KNOWN_FILE_TYPE</item>
+      <item>XCTEST</item>
+    </list>
+
+    <!-- these are "special" and don't show up in the generated lists -->
+    <list name="extra_properties">
+      <item>COMMANDS</item> <!-- WARNING: this one looks like a cmake bug, watch for it to migrate to the generated list! -->
+      <item>DEFINITION</item>
+    </list>
+
+    <!-- ATTENTION Do not change the list name! Or change a generation script accordingly -->
+    <list name="cmake_vars">
+      <!-- generated list -->
+      <item>APPLE</item>
+      <item>BORLAND</item>
+      <item>BUILD_SHARED_LIBS</item>
+      <item>CMAKE_ABSOLUTE_DESTINATION_FILES</item>
+      <item>CMAKE_ANDROID_API</item>
+      <item>CMAKE_ANDROID_API_MIN</item>
+      <item>CMAKE_ANDROID_GUI</item>
+      <item>CMAKE_APPBUNDLE_PATH</item>
+      <item>CMAKE_AR</item>
+      <item>CMAKE_ARCHIVE_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_ARGC</item>
+      <item>CMAKE_ARGV0</item>
+      <item>CMAKE_AUTOMOC</item>
+      <item>CMAKE_AUTOMOC_MOC_OPTIONS</item>
+      <item>CMAKE_AUTOMOC_RELAXED_MODE</item>
+      <item>CMAKE_AUTORCC</item>
+      <item>CMAKE_AUTORCC_OPTIONS</item>
+      <item>CMAKE_AUTOUIC</item>
+      <item>CMAKE_AUTOUIC_OPTIONS</item>
+      <item>CMAKE_BACKWARDS_COMPATIBILITY</item>
+      <item>CMAKE_BINARY_DIR</item>
+      <item>CMAKE_BUILD_TOOL</item>
+      <item>CMAKE_BUILD_TYPE</item>
+      <item>CMAKE_BUILD_WITH_INSTALL_RPATH</item>
+      <item>CMAKE_CACHEFILE_DIR</item>
+      <item>CMAKE_CACHE_MAJOR_VERSION</item>
+      <item>CMAKE_CACHE_MINOR_VERSION</item>
+      <item>CMAKE_CACHE_PATCH_VERSION</item>
+      <item>CMAKE_CFG_INTDIR</item>
+      <item>CMAKE_CL_64</item>
+      <item>CMAKE_COLOR_MAKEFILE</item>
+      <item>CMAKE_COMMAND</item>
+      <item>CMAKE_COMPILER_2005</item>
+      <item>CMAKE_COMPILE_PDB_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_CONFIGURATION_TYPES</item>
+      <item>CMAKE_CROSSCOMPILING</item>
+      <item>CMAKE_CROSSCOMPILING_EMULATOR</item>
+      <item>CMAKE_CTEST_COMMAND</item>
+      <item>CMAKE_CURRENT_BINARY_DIR</item>
+      <item>CMAKE_CURRENT_LIST_DIR</item>
+      <item>CMAKE_CURRENT_LIST_FILE</item>
+      <item>CMAKE_CURRENT_LIST_LINE</item>
+      <item>CMAKE_CURRENT_SOURCE_DIR</item>
+      <item>CMAKE_CXX_COMPILE_FEATURES</item>
+      <item>CMAKE_CXX_EXTENSIONS</item>
+      <item>CMAKE_CXX_STANDARD</item>
+      <item>CMAKE_CXX_STANDARD_REQUIRED</item>
+      <item>CMAKE_C_COMPILE_FEATURES</item>
+      <item>CMAKE_C_EXTENSIONS</item>
+      <item>CMAKE_C_STANDARD</item>
+      <item>CMAKE_C_STANDARD_REQUIRED</item>
+      <item>CMAKE_DEBUG_POSTFIX</item>
+      <item>CMAKE_DEBUG_TARGET_PROPERTIES</item>
+      <item>CMAKE_DL_LIBS</item>
+      <item>CMAKE_EDIT_COMMAND</item>
+      <item>CMAKE_ERROR_DEPRECATED</item>
+      <item>CMAKE_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CMAKE_EXECUTABLE_SUFFIX</item>
+      <item>CMAKE_EXE_LINKER_FLAGS</item>
+      <item>CMAKE_EXPORT_NO_PACKAGE_REGISTRY</item>
+      <item>CMAKE_EXTRA_GENERATOR</item>
+      <item>CMAKE_EXTRA_SHARED_LIBRARY_SUFFIXES</item>
+      <item>CMAKE_FIND_LIBRARY_PREFIXES</item>
+      <item>CMAKE_FIND_LIBRARY_SUFFIXES</item>
+      <item>CMAKE_FIND_NO_INSTALL_PREFIX</item>
+      <item>CMAKE_FIND_PACKAGE_NAME</item>
+      <item>CMAKE_FIND_PACKAGE_NO_PACKAGE_REGISTRY</item>
+      <item>CMAKE_FIND_PACKAGE_NO_SYSTEM_PACKAGE_REGISTRY</item>
+      <item>CMAKE_FIND_PACKAGE_WARN_NO_MODULE</item>
+      <item>CMAKE_FIND_ROOT_PATH</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_INCLUDE</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_LIBRARY</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_PACKAGE</item>
+      <item>CMAKE_FIND_ROOT_PATH_MODE_PROGRAM</item>
+      <item>CMAKE_FRAMEWORK_PATH</item>
+      <item>CMAKE_Fortran_FORMAT</item>
+      <item>CMAKE_Fortran_MODDIR_DEFAULT</item>
+      <item>CMAKE_Fortran_MODDIR_FLAG</item>
+      <item>CMAKE_Fortran_MODOUT_FLAG</item>
+      <item>CMAKE_Fortran_MODULE_DIRECTORY</item>
+      <item>CMAKE_GENERATOR</item>
+      <item>CMAKE_GENERATOR_PLATFORM</item>
+      <item>CMAKE_GENERATOR_TOOLSET</item>
+      <item>CMAKE_GNUtoMS</item>
+      <item>CMAKE_HOME_DIRECTORY</item>
+      <item>CMAKE_HOST_APPLE</item>
+      <item>CMAKE_HOST_SYSTEM</item>
+      <item>CMAKE_HOST_SYSTEM_NAME</item>
+      <item>CMAKE_HOST_SYSTEM_PROCESSOR</item>
+      <item>CMAKE_HOST_SYSTEM_VERSION</item>
+      <item>CMAKE_HOST_UNIX</item>
+      <item>CMAKE_HOST_WIN32</item>
+      <item>CMAKE_IGNORE_PATH</item>
+      <item>CMAKE_IMPORT_LIBRARY_PREFIX</item>
+      <item>CMAKE_IMPORT_LIBRARY_SUFFIX</item>
+      <item>CMAKE_INCLUDE_CURRENT_DIR</item>
+      <item>CMAKE_INCLUDE_CURRENT_DIR_IN_INTERFACE</item>
+      <item>CMAKE_INCLUDE_DIRECTORIES_BEFORE</item>
+      <item>CMAKE_INCLUDE_DIRECTORIES_PROJECT_BEFORE</item>
+      <item>CMAKE_INCLUDE_PATH</item>
+      <item>CMAKE_INSTALL_DEFAULT_COMPONENT_NAME</item>
+      <item>CMAKE_INSTALL_MESSAGE</item>
+      <item>CMAKE_INSTALL_NAME_DIR</item>
+      <item>CMAKE_INSTALL_PREFIX</item>
+      <item>CMAKE_INSTALL_RPATH</item>
+      <item>CMAKE_INSTALL_RPATH_USE_LINK_PATH</item>
+      <item>CMAKE_INTERNAL_PLATFORM_ABI</item>
+      <item>CMAKE_JOB_POOL_COMPILE</item>
+      <item>CMAKE_JOB_POOL_LINK</item>
+      <item>CMAKE_LIBRARY_ARCHITECTURE</item>
+      <item>CMAKE_LIBRARY_ARCHITECTURE_REGEX</item>
+      <item>CMAKE_LIBRARY_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_LIBRARY_PATH</item>
+      <item>CMAKE_LIBRARY_PATH_FLAG</item>
+      <item>CMAKE_LINK_DEF_FILE_FLAG</item>
+      <item>CMAKE_LINK_DEPENDS_NO_SHARED</item>
+      <item>CMAKE_LINK_INTERFACE_LIBRARIES</item>
+      <item>CMAKE_LINK_LIBRARY_FILE_FLAG</item>
+      <item>CMAKE_LINK_LIBRARY_FLAG</item>
+      <item>CMAKE_LINK_LIBRARY_SUFFIX</item>
+      <item>CMAKE_MACOSX_BUNDLE</item>
+      <item>CMAKE_MACOSX_RPATH</item>
+      <item>CMAKE_MAJOR_VERSION</item>
+      <item>CMAKE_MAKE_PROGRAM</item>
+      <item>CMAKE_MATCH_COUNT</item>
+      <item>CMAKE_MFC_FLAG</item>
+      <item>CMAKE_MINIMUM_REQUIRED_VERSION</item>
+      <item>CMAKE_MINOR_VERSION</item>
+      <item>CMAKE_MODULE_LINKER_FLAGS</item>
+      <item>CMAKE_MODULE_PATH</item>
+      <item>CMAKE_NOT_USING_CONFIG_FLAGS</item>
+      <item>CMAKE_NO_BUILTIN_CHRPATH</item>
+      <item>CMAKE_NO_SYSTEM_FROM_IMPORTED</item>
+      <item>CMAKE_OBJECT_PATH_MAX</item>
+      <item>CMAKE_OSX_ARCHITECTURES</item>
+      <item>CMAKE_OSX_DEPLOYMENT_TARGET</item>
+      <item>CMAKE_OSX_SYSROOT</item>
+      <item>CMAKE_PARENT_LIST_FILE</item>
+      <item>CMAKE_PATCH_VERSION</item>
+      <item>CMAKE_PDB_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_POSITION_INDEPENDENT_CODE</item>
+      <item>CMAKE_PREFIX_PATH</item>
+      <item>CMAKE_PROGRAM_PATH</item>
+      <item>CMAKE_PROJECT_NAME</item>
+      <item>CMAKE_RANLIB</item>
+      <item>CMAKE_ROOT</item>
+      <item>CMAKE_RUNTIME_OUTPUT_DIRECTORY</item>
+      <item>CMAKE_SCRIPT_MODE_FILE</item>
+      <item>CMAKE_SHARED_LIBRARY_PREFIX</item>
+      <item>CMAKE_SHARED_LIBRARY_SUFFIX</item>
+      <item>CMAKE_SHARED_LINKER_FLAGS</item>
+      <item>CMAKE_SHARED_MODULE_PREFIX</item>
+      <item>CMAKE_SHARED_MODULE_SUFFIX</item>
+      <item>CMAKE_SIZEOF_VOID_P</item>
+      <item>CMAKE_SKIP_BUILD_RPATH</item>
+      <item>CMAKE_SKIP_INSTALL_ALL_DEPENDENCY</item>
+      <item>CMAKE_SKIP_INSTALL_RPATH</item>
+      <item>CMAKE_SKIP_INSTALL_RULES</item>
+      <item>CMAKE_SKIP_RPATH</item>
+      <item>CMAKE_SOURCE_DIR</item>
+      <item>CMAKE_STAGING_PREFIX</item>
+      <item>CMAKE_STANDARD_LIBRARIES</item>
+      <item>CMAKE_STATIC_LIBRARY_PREFIX</item>
+      <item>CMAKE_STATIC_LIBRARY_SUFFIX</item>
+      <item>CMAKE_STATIC_LINKER_FLAGS</item>
+      <item>CMAKE_SYSROOT</item>
+      <item>CMAKE_SYSTEM</item>
+      <item>CMAKE_SYSTEM_IGNORE_PATH</item>
+      <item>CMAKE_SYSTEM_INCLUDE_PATH</item>
+      <item>CMAKE_SYSTEM_LIBRARY_PATH</item>
+      <item>CMAKE_SYSTEM_NAME</item>
+      <item>CMAKE_SYSTEM_PREFIX_PATH</item>
+      <item>CMAKE_SYSTEM_PROCESSOR</item>
+      <item>CMAKE_SYSTEM_PROGRAM_PATH</item>
+      <item>CMAKE_SYSTEM_VERSION</item>
+      <item>CMAKE_TOOLCHAIN_FILE</item>
+      <item>CMAKE_TRY_COMPILE_CONFIGURATION</item>
+      <item>CMAKE_TWEAK_VERSION</item>
+      <item>CMAKE_USER_MAKE_RULES_OVERRIDE</item>
+      <item>CMAKE_USE_RELATIVE_PATHS</item>
+      <item>CMAKE_VERBOSE_MAKEFILE</item>
+      <item>CMAKE_VERSION</item>
+      <item>CMAKE_VISIBILITY_INLINES_HIDDEN</item>
+      <item>CMAKE_VS_DEVENV_COMMAND</item>
+      <item>CMAKE_VS_INCLUDE_INSTALL_TO_DEFAULT_BUILD</item>
+      <item>CMAKE_VS_INTEL_Fortran_PROJECT_VERSION</item>
+      <item>CMAKE_VS_MSBUILD_COMMAND</item>
+      <item>CMAKE_VS_MSDEV_COMMAND</item>
+      <item>CMAKE_VS_NsightTegra_VERSION</item>
+      <item>CMAKE_VS_PLATFORM_NAME</item>
+      <item>CMAKE_VS_PLATFORM_TOOLSET</item>
+      <item>CMAKE_WARN_DEPRECATED</item>
+      <item>CMAKE_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CMAKE_WIN32_EXECUTABLE</item>
+      <item>CMAKE_XCODE_PLATFORM_TOOLSET</item>
+      <item>CPACK_ABSOLUTE_DESTINATION_FILES</item>
+      <item>CPACK_COMPONENT_INCLUDE_TOPLEVEL_DIRECTORY</item>
+      <item>CPACK_ERROR_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CPACK_INCLUDE_TOPLEVEL_DIRECTORY</item>
+      <item>CPACK_INSTALL_SCRIPT</item>
+      <item>CPACK_PACKAGING_INSTALL_PREFIX</item>
+      <item>CPACK_SET_DESTDIR</item>
+      <item>CPACK_WARN_ON_ABSOLUTE_INSTALL_DESTINATION</item>
+      <item>CTEST_BINARY_DIRECTORY</item>
+      <item>CTEST_BUILD_COMMAND</item>
+      <item>CTEST_BUILD_NAME</item>
+      <item>CTEST_BZR_COMMAND</item>
+      <item>CTEST_BZR_UPDATE_OPTIONS</item>
+      <item>CTEST_CHECKOUT_COMMAND</item>
+      <item>CTEST_CONFIGURATION_TYPE</item>
+      <item>CTEST_CONFIGURE_COMMAND</item>
+      <item>CTEST_COVERAGE_COMMAND</item>
+      <item>CTEST_COVERAGE_EXTRA_FLAGS</item>
+      <item>CTEST_CURL_OPTIONS</item>
+      <item>CTEST_CVS_CHECKOUT</item>
+      <item>CTEST_CVS_COMMAND</item>
+      <item>CTEST_CVS_UPDATE_OPTIONS</item>
+      <item>CTEST_DROP_LOCATION</item>
+      <item>CTEST_DROP_METHOD</item>
+      <item>CTEST_DROP_SITE</item>
+      <item>CTEST_DROP_SITE_CDASH</item>
+      <item>CTEST_DROP_SITE_PASSWORD</item>
+      <item>CTEST_DROP_SITE_USER</item>
+      <item>CTEST_GIT_COMMAND</item>
+      <item>CTEST_GIT_UPDATE_CUSTOM</item>
+      <item>CTEST_GIT_UPDATE_OPTIONS</item>
+      <item>CTEST_HG_COMMAND</item>
+      <item>CTEST_HG_UPDATE_OPTIONS</item>
+      <item>CTEST_MEMORYCHECK_COMMAND</item>
+      <item>CTEST_MEMORYCHECK_COMMAND_OPTIONS</item>
+      <item>CTEST_MEMORYCHECK_SANITIZER_OPTIONS</item>
+      <item>CTEST_MEMORYCHECK_SUPPRESSIONS_FILE</item>
+      <item>CTEST_MEMORYCHECK_TYPE</item>
+      <item>CTEST_NIGHTLY_START_TIME</item>
+      <item>CTEST_P4_CLIENT</item>
+      <item>CTEST_P4_COMMAND</item>
+      <item>CTEST_P4_OPTIONS</item>
+      <item>CTEST_P4_UPDATE_OPTIONS</item>
+      <item>CTEST_SCP_COMMAND</item>
+      <item>CTEST_SITE</item>
+      <item>CTEST_SOURCE_DIRECTORY</item>
+      <item>CTEST_SVN_COMMAND</item>
+      <item>CTEST_SVN_OPTIONS</item>
+      <item>CTEST_SVN_UPDATE_OPTIONS</item>
+      <item>CTEST_TEST_TIMEOUT</item>
+      <item>CTEST_TRIGGER_SITE</item>
+      <item>CTEST_UPDATE_COMMAND</item>
+      <item>CTEST_UPDATE_OPTIONS</item>
+      <item>CTEST_UPDATE_VERSION_ONLY</item>
+      <item>CTEST_USE_LAUNCHERS</item>
+      <item>CYGWIN</item>
+      <item>ENV</item>
+      <item>EXECUTABLE_OUTPUT_PATH</item>
+      <item>GHS-MULTI</item>
+      <item>LIBRARY_OUTPUT_PATH</item>
+      <item>MINGW</item>
+      <item>MSVC</item>
+      <item>MSVC10</item>
+      <item>MSVC11</item>
+      <item>MSVC12</item>
+      <item>MSVC14</item>
+      <item>MSVC60</item>
+      <item>MSVC70</item>
+      <item>MSVC71</item>
+      <item>MSVC80</item>
+      <item>MSVC90</item>
+      <item>MSVC_IDE</item>
+      <item>MSVC_VERSION</item>
+      <item>PROJECT_BINARY_DIR</item>
+      <item>PROJECT_NAME</item>
+      <item>PROJECT_SOURCE_DIR</item>
+      <item>PROJECT_VERSION</item>
+      <item>PROJECT_VERSION_MAJOR</item>
+      <item>PROJECT_VERSION_MINOR</item>
+      <item>PROJECT_VERSION_PATCH</item>
+      <item>PROJECT_VERSION_TWEAK</item>
+      <item>UNIX</item>
+      <item>WIN32</item>
+      <item>WINCE</item>
+      <item>WINDOWS_PHONE</item>
+      <item>WINDOWS_STORE</item>
+      <item>XCODE_VERSION</item>
+    </list>
+
+    <list name="simple_generator_expr">
+      <item>CONFIGURATION</item>
+      <item>ANGLE-R</item>
+      <item>COMMA</item>
+      <item>SEMICOLON</item>
+      <item>INSTALL_PREFIX</item>
+    </list>
+
+    <list name="generator_expr">
+      <!-- Logical Expressions -->
+      <item>0</item>
+      <item>1</item>
+      <item>BOOL</item>
+      <item>AND</item>
+      <item>OR</item>
+      <item>NOT</item>
+      <item>STREQUAL</item>
+      <item>EQUAL</item>
+      <item>CONFIG</item>
+      <item>PLATFORM_ID</item>
+      <item>C_COMPILER_ID</item>
+      <item>CXX_COMPILER_ID</item>
+      <item>VERSION_GREATER</item>
+      <item>VERSION_LESS</item>
+      <item>VERSION_EQUAL</item>
+      <item>C_COMPILER_VERSION</item>
+      <item>CXX_COMPILER_VERSION</item>
+      <item>TARGET_POLICY</item>
+      <item>COMPILER_FEATURES</item>
+      <!-- Informational Expressions -->
+      <item>CONFIGURATION</item>
+      <item>TARGET_FILE</item>
+      <item>TARGET_FILE_NAME</item>
+      <item>TARGET_FILE_DIR</item>
+      <item>TARGET_LINKER_FILE</item>
+      <item>TARGET_LINKER_FILE_NAME</item>
+      <item>TARGET_LINKER_FILE_DIR</item>
+      <item>TARGET_SONAME_FILE</item>
+      <item>TARGET_SONAME_FILE_NAME</item>
+      <item>TARGET_SONAME_FILE_DIR</item>
+      <item>TARGET_PDB_FILE</item>
+      <item>TARGET_PDB_FILE_NAME</item>
+      <item>TARGET_PDB_FILE_DIR</item>
+      <item>TARGET_PROPERTY</item>
+      <item>INSTALL_PREFIX</item>
+      <!-- Output Expressions -->
+      <item>JOIN</item>
+      <item>ANGLE-R</item>
+      <item>COMMA</item>
+      <item>SEMICOLON</item>
+      <item>TARGET_NAME</item>
+      <item>LINK_ONLY</item>
+      <item>INSTALL_INTERFACE</item>
+      <item>BUILD_INTERFACE</item>
+      <item>LOWER_CASE</item>
+      <item>UPPER_CASE</item>
+      <item>MAKE_C_IDENTIFIER</item>
+      <item>TARGET_OBJECTS</item>
+      <!-- TODO Is this from CMake 2.x? -->
+      <item>TARGET_DIR</item>
+    </list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
+        <DetectSpaces/>
+
+        <!-- handle folding for if else elseif endif blocks -->
+        <WordDetect String="if" attribute="Commands" context="Command" beginRegion="ifthenelse" insensitive="true" />
+        <WordDetect String="else" attribute="Commands" context="Command" endRegion="ifthenelse" beginRegion="ifthenelse" insensitive="true" />
+        <WordDetect String="elseif" attribute="Commands" context="Command" endRegion="ifthenelse" beginRegion="ifthenelse" insensitive="true" />
+        <WordDetect String="endif" attribute="Commands" context="Command" endRegion="ifthenelse" insensitive="true" />
+
+        <!-- handle folding for macro endmacro blocks -->
+        <WordDetect String="macro" attribute="Commands" context="Command" beginRegion="macro" insensitive="true" />
+        <WordDetect String="endmacro" attribute="Commands" context="Command" endRegion="macro" insensitive="true" />
+
+        <!-- handle folding for foreach endforeach blocks -->
+        <WordDetect String="foreach" attribute="Commands" context="Command" beginRegion="foreach" insensitive="true" />
+        <WordDetect String="endforeach" attribute="Commands" context="Command" endRegion="foreach" insensitive="true" />
+
+        <!-- handle folding for while endwhile blocks -->
+        <WordDetect String="while" attribute="Commands" context="Command" beginRegion="while" insensitive="true" />
+        <WordDetect String="endwhile" attribute="Commands" context="Command" endRegion="while" insensitive="true" />
+
+        <keyword attribute="Commands" context="Command" String="commands" insensitive="true" />
+        <keyword attribute="Third-Party Commands" context="#stay" String="itkvtk_commands" insensitive="true" />
+        <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="block" firstNonSpace="true" />
+        <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="block" firstNonSpace="true" />
+        <RegExpr attribute="Region Marker" context="RST Documentation" String="^#\[(=*)\[\.rst:" column="0" />
+        <RegExpr attribute="Comment" context="Bracketed Comment" String="^#\[(=*)\[" column="0" />
+        <DetectChar attribute="Comment" context="Comment" char="#" />
+        <IncludeRules context="Detect Variables" />
+        <RegExpr attribute="Macros" context="Macro" String="\w+" />
+      </context>
+      <!-- ATTENTION Do not change the context name! Or change a generation script accordingly -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect More Builtin Variables">
+        <!-- generated rules -->
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_ARCHIVE_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_COMPILER_IS_GNU[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_COMPILE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_DISABLE_FIND_PACKAGE_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_EXE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_LIBRARY_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_MAP_IMPORTED_CONFIG_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_MODULE_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_PDB_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_POLICY_DEFAULT_CMP[0-9]+\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_POLICY_WARNING_CMP[0-9]+\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_PROJECT_[A-Za-z_][A-Za-z_0-9]*_INCLUDE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_RUNTIME_OUTPUT_DIRECTORY_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_SHARED_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_STATIC_LINKER_FLAGS_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_USER_MAKE_RULES_OVERRIDE_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_XCODE_ATTRIBUTE_[A-Za-z_][A-Za-z_0-9]*\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_APPEND\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_CREATE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_ARCHIVE_FINISH\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ABI\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_EXTERNAL_TOOLCHAIN\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_ID\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_LOADED\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_TARGET\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILER_VERSION\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_COMPILE_OBJECT\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_LIBRARY\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_SHARED_MODULE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_CREATE_STATIC_LIBRARY\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_DEBUG\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_MINSIZEREL\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELEASE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_FLAGS_RELWITHDEBINFO\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_DEBUG\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_MINSIZEREL\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELEASE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_GHS_KERNEL_FLAGS_RELWITHDEBINFO\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IGNORE_EXTENSIONS\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_INCLUDE_DIRECTORIES\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_DIRECTORIES\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_FRAMEWORK_DIRECTORIES\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_IMPLICIT_LINK_LIBRARIES\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_INCLUDE_WHAT_YOU_USE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LIBRARY_ARCHITECTURE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINKER_PREFERENCE_PROPAGATES\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_LINK_EXECUTABLE\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_OUTPUT_EXTENSION\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_PLATFORM_ID\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_POSTFIX\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_ID\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIMULATE_VERSION\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SIZEOF_DATA_PTR\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_SOURCE_FILE_EXTENSIONS\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\bCMAKE_[A-Za-z_][A-Za-z_0-9]*_VISIBILITY_PRESET\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_BINARY_DIR\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_SOURCE_DIR\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MAJOR\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_MINOR\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_PATCH\b" />
+        <RegExpr attribute="Builtin CMake Variable" context="#stay" String="\b[A-Za-z_][A-Za-z_0-9]*_VERSION_TWEAK\b" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Builtin Variables">
+        <keyword attribute="Builtin CMake Variable" context="#stay" String="cmake_vars" insensitive="false" />
+        <IncludeRules context="Detect More Builtin Variables" />
+      </context>
+      <context attribute="CMake Variable" lineEndContext="#pop" name="VarSubst">
+        <IncludeRules context="Detect Builtin Variables" />
+        <DetectIdentifier />
+        <DetectChar attribute="CMake Variable" context="#pop" char="}" />
+        <IncludeRules context="Detect Variables" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Variables">
+        <RegExpr attribute="Environment Variable" context="#stay" String="\$ENV\{\s*[\w-]+\s*\}" />
+        <Detect2Chars attribute="CMake Variable" context="VarSubst" char="$" char1="{" />
+      </context>
+      <context attribute="Generator Expression" lineEndContext="#pop#pop" name="DetectSimpleGEEnd">
+        <DetectChar attribute="Generator Expression" context="#pop#pop" char="&gt;" />
+      </context>
+      <context attribute="Generator Expression" lineEndContext="#pop" name="Generator Expression">
+        <IncludeRules context="Detect Generator Expressions" />
+        <DetectChar attribute="Generator Expression" context="#pop" char="&gt;" />
+        <keyword attribute="Generator Expression Keyword" context="DetectSimpleGEEnd" String="simple_generator_expr" insensitive="false" />
+        <keyword attribute="Generator Expression Keyword" context="#stay" String="generator_expr" insensitive="false" />
+        <IncludeRules context="Detect Variables" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Detect Generator Expressions">
+        <Detect2Chars attribute="Generator Expression" context="Generator Expression" char="$" char1="&lt;" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Command" fallthroughContext="#pop" fallthrough="true">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="Command Args" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Macro" fallthroughContext="#pop" fallthrough="true">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="Macro Args" char="(" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Command Args">
+        <keyword attribute="Special Args" context="#stay" String="special_args" />
+        <keyword attribute="Special Args" context="#stay" String="extra_special_args" />
+        <!-- NOTE Handle CMP<NNN> as a special arg -->
+        <RegExpr attribute="Special Args" context="#stay" String="\bCMP[0-9]+\b" />
+        <keyword attribute="Properties" context="#stay" String="properties" />
+        <keyword attribute="Properties" context="#stay" String="extra_properties" />
+        <DetectChar attribute="Normal Text" context="Command Args" char="(" />
+        <DetectChar attribute="Normal Text" context="#pop" char=")" />
+        <IncludeRules context="Detect Builtin Variables" />
+        <IncludeRules context="Macro Args" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Macro Args">
+        <DetectChar attribute="Normal Text" context="Macro Args" char="(" />
+        <DetectChar attribute="Normal Text" context="#pop" char=")" />
+        <RegExpr attribute="Escapes" context="#stay" String="\\[&quot;$n\\]" />
+        <DetectChar attribute="Strings" context="String" char="&quot;" />
+        <RegExpr attribute="Strings" context="Bracketed String" String="\[(=*)\[" />
+        <DetectChar attribute="Comment" context="Comment" char="#" />
+        <IncludeRules context="Detect Builtin Variables" />
+        <IncludeRules context="Detect Variables" />
+        <IncludeRules context="Detect Generator Expressions" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <LineContinue attribute="Comment" context="#pop" />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="RST Documentation" dynamic="true">
+        <RegExpr attribute="Region Marker" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Bracketed Comment" dynamic="true">
+        <RegExpr attribute="Comment" context="#pop" String="^#?\]%1\]" dynamic="true" column="0" />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+      </context>
+      <context attribute="Strings" lineEndContext="#stay" name="String">
+        <RegExpr attribute="Strings" context="#pop" String="&quot;(?=[ );]|$)" />
+        <RegExpr attribute="Escapes" context="#stay" String="\\[&quot;$nrt\\]" />
+        <IncludeRules context="Detect Variables" />
+        <IncludeRules context="Detect Generator Expressions" />
+      </context>
+      <context attribute="Strings" lineEndContext="#stay" name="Bracketed String" dynamic="true">
+        <RegExpr attribute="Strings" context="#pop" String="\]%1\]" dynamic="true" />
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
+      <itemData name="Special Args" defStyleNum="dsOthers" spellChecking="false" />
+      <itemData name="Properties" defStyleNum="dsOthers" spellChecking="false" />
+      <itemData name="Commands" defStyleNum="dsKeyword" spellChecking="false" />
+      <itemData name="Third-Party Commands" defStyleNum="dsExtension" spellChecking="false" />
+      <itemData name="Macros"  defStyleNum="dsFunction" spellChecking="false" />
+      <itemData name="Strings" defStyleNum="dsString" spellChecking="true" />
+      <itemData name="Escapes" defStyleNum="dsSpecialChar" spellChecking="false" />
+      <itemData name="Builtin CMake Variable" defStyleNum="dsVariable" spellChecking="false" />
+      <!-- TODO Rename to "Variable Substitution" -->
+      <itemData name="CMake Variable" defStyleNum="dsVariable" spellChecking="false" />
+      <!-- TODO Rename to "Environment Variable Substitution" -->
+      <itemData name="Environment Variable" defStyleNum="dsFloat" spellChecking="false" />
+      <itemData name="Generator Expression Keyword" defStyleNum="dsKeyword" color="#b84040" selColor="#b84040" spellChecking="false" />
+      <itemData name="Generator Expression" defStyleNum="dsOthers" color="#b86050" selColor="#b86050" spellChecking="false" />
+      <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/coffee.xml b/xml/coffee.xml
new file mode 100644
--- /dev/null
+++ b/xml/coffee.xml
@@ -0,0 +1,268 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<language name="CoffeeScript"
+          version="2"
+          kateversion="3.4"
+          section="Scripts"
+          extensions="Cakefile;*.coffee;*.coco"
+          mimetype="text/x-coffeescript;application/x-coffeescript"
+          indenter="python"
+          casesensitive="1"
+          author="Max Shawabkeh (max99x@gmail.com)"
+          license="MIT">
+  <highlighting>
+    <!-- Built-in constants. -->
+    <list name="value_keywords">
+      <item>false</item>
+      <item>true</item>
+      <item>yes</item>
+      <item>no</item>
+      <item>on</item>
+      <item>off</item>
+      <item>undefined</item>
+      <item>null</item>
+      <item>NaN</item>
+      <item>Infinity</item>
+    </list>
+    <!-- Generic keywords. -->
+    <list name="keywords">
+      <item>return</item>
+      <item>break</item>
+      <item>continue</item>
+      <item>throw</item>
+      <item>for</item>
+      <item>while</item>
+      <item>until</item>
+      <item>loop</item>
+      <item>if</item>
+      <item>else</item>
+      <item>unless</item>
+      <item>switch</item>
+      <item>when</item>
+      <item>then</item>
+      <item>and</item>
+      <item>or</item>
+      <item>in</item>
+      <item>do</item>
+      <item>of</item>
+      <item>by</item>
+      <item>is</item>
+      <item>isnt</item>
+      <item>not</item>
+      <item>typeof</item>
+      <item>delete</item>
+      <item>where</item>
+      <item>super</item>
+      <item>try</item>
+      <item>catch</item>
+      <item>finally</item>
+      <item>try</item>
+      <item>catch</item>
+      <item>finally</item>
+      <item>constructor</item>
+    </list>
+    <!-- Keywords which are always followed by a class name. -->
+    <list name="class_keywords">
+      <item>class</item>
+      <item>extends</item>
+      <item>new</item>
+      <item>instanceof</item>
+    </list>
+    <!-- Reserved words. -->
+    <list name="reserved">
+      <item>case</item>
+      <item>default</item>
+      <item>function</item>
+      <item>var</item>
+      <item>void</item>
+      <item>with</item>
+      <item>const</item>
+      <item>let</item>
+      <item>enum</item>
+      <item>export</item>
+      <item>import</item>
+      <item>native</item>
+      <item>__hasProp</item>
+      <item>__extends</item>
+      <item>__slice</item>
+      <item>__bind</item>
+      <item>__indexOf</item>
+    </list>
+    <!-- Built-in globals provided in most contexts. -->
+    <list name="globals">
+      <item>Object</item>
+      <item>Number</item>
+      <item>Boolean</item>
+      <item>Array</item>
+      <item>String</item>
+      <item>RegExp</item>
+      <item>Function</item>
+      <item>Date</item>
+      <item>Math</item>
+      <item>eval</item>
+      <item>setInterval</item>
+      <item>clearInterval</item>
+      <item>setTimeout</item>
+      <item>clearTimeout</item>
+      <item>isFinite</item>
+      <item>isNaN</item>
+      <item>parseFloat</item>
+      <item>parseInt</item>
+      <item>escape</item>
+      <item>unescape</item>
+      <item>console</item>
+      <item>encodeURI</item>
+      <item>encodeURIComponent</item>
+      <item>decodeURI</item>
+      <item>decodeURIComponent</item>
+    </list>
+    <!-- Built-in globals provided in browser context. -->
+    <list name="browser_globals">
+      <item>window</item>
+      <item>document</item>
+      <item>navigator</item>
+      <item>location</item>
+      <item>history</item>
+      <item>screen</item>
+      <item>alert</item>
+      <item>prompt</item>
+    </list>
+    <!-- Built-in globals provided in Node.js context. -->
+    <list name="nodejs_globals">
+      <item>process</item>
+      <item>GLOBAL</item>
+      <item>require</item>
+      <item>exports</item>
+    </list>
+    <!-- Context-sensitive highlighting rules. -->
+    <contexts>
+      <!-- Generic code. -->
+      <context name="Normal" attribute="Normal" lineEndContext="#stay">
+        <DetectSpaces/>
+        <!-- Numbers. -->
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+        <HlCOct attribute="Oct" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <!-- Keywords. -->
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Keyword" context="Class" String="class_keywords"/>
+        <keyword attribute="Value Keywords" context="#stay" String="value_keywords"/>
+        <keyword attribute="Reserved" context="#stay" String="reserved"/>
+        <!-- Globals. -->
+        <keyword attribute="Globals" context="#stay" String="globals"/>
+        <keyword attribute="Browser Globals" context="#stay" String="browser_globals"/>
+        <keyword attribute="Node.js Globals" context="#stay" String="nodejs_globals"/>
+        <!-- Member accessors. -->
+        <RegExpr attribute="Accessor" context="#stay" String="(@[_$a-zA-Z][$\w]*|\bthis)\b" insensitive="false"/>
+        <!-- Function definitions. Matches an optional argument list followed by a function arrow (normal or fat). -->
+        <RegExpr attribute="Function" context="#stay" String="(\((\'[^']*'|&quot;[^&quot;]*&quot;|[^()])*\))?\s*(-|=)&gt;" insensitive="true"/>
+        <!-- Generic identifiers. -->
+        <RegExpr attribute="Identifier" context="#stay" String="[_$a-z][$\w]*\b" insensitive="true"/>
+        <!-- Strings. -->
+        <StringDetect attribute="String" context="Heredoc" String="'''" beginRegion="Heredoc"/>
+        <StringDetect attribute="String" context="Rich Heredoc" String="&quot;&quot;&quot;" beginRegion="Rich Heredoc"/>
+        <DetectChar attribute="String" context="String" char="'"/>
+        <DetectChar attribute="String" context="Rich String" char="&quot;"/>
+        <!-- Embedded JavaScript. -->
+        <DetectChar attribute="Javascript" context="Javascript" char="`" beginRegion="Javascript"/>
+        <!-- Comments. -->
+        <StringDetect attribute="Comment" context="Multiline Comment" String="###" beginRegion="Comment"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <!-- Regular expressions. -->
+        <RegExpr attribute="Regex" context="Multiline Regex" String="///" beginRegion="Multiline Regex"/>
+        <RegExpr attribute="Regex" context="#stay" String="/([^/\\\r\n]|\\.)*/[mig]{0,3}"/>
+        <!-- Operators and other non-alphanumeric symbols. -->
+        <AnyChar attribute="Symbol" context="#stay" String="():!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;{}"/>
+      </context>
+      <!-- Multiline regular expressions. -->
+      <context name="Multiline Regex" attribute="Regex" lineEndContext="#stay" noIndentationBasedFolding="1">
+        <HlCStringChar attribute="Regex" context="#stay"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <RegExpr attribute="Regex" context="#pop" String="///[mig]{0,3}" endRegion="Multiline Regex"/>
+      </context>
+      <!-- Class names. -->
+      <context name="Class" attribute="Normal" lineEndContext="#stay">
+        <DetectSpaces/>
+        <RegExpr attribute="Class" context="#pop" String="[@$:.\w\[\]]+"/>
+      </context>
+      <!-- Comments. -->
+      <context name="Comment" attribute="Comment" lineEndContext="#pop">
+        <IncludeRules context="##Alerts_indent"/>
+      </context>
+      <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="1">
+        <StringDetect attribute="Comment" context="#pop" String="###" endRegion="Comment"/>
+        <IncludeRules context="##Alerts_indent"/>
+      </context>
+      <!-- Single-line strings. -->
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <HlCStringChar attribute="String" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="'"/>
+      </context>
+      <context name="Rich String" attribute="String" lineEndContext="#stay">
+        <HlCStringChar attribute="String" context="#stay"/>
+        <Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <!-- Multi-line strings. -->
+      <context name="Heredoc" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="1">
+        <HlCStringChar attribute="String" context="#stay"/>
+        <StringDetect attribute="String" context="#pop" String="'''" endRegion="Heredoc"/>
+      </context>
+      <context name="Rich Heredoc" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="1">
+        <HlCStringChar attribute="String" context="#stay"/>
+        <Detect2Chars attribute="Embedding" context="Embedding" char="#" char1="{"/>
+        <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;" endRegion="Rich Heredoc"/>
+      </context>
+      <!-- Expressions embedded in strings. -->
+      <context name="Embedding" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="Embedding" context="#pop" char="}"/>
+      </context>
+      <!-- Embedded Javascript. -->
+      <context name="Javascript" attribute="Javascript" lineEndContext="#stay" noIndentationBasedFolding="1">
+        <DetectChar attribute="Javascript" context="#pop" char="`" endRegion="Javascript"/>
+        <!-- NOTE: This hides errors where a backtick is embedded in a JS string. -->
+        <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
+      </context>
+    </contexts>
+    <!-- Style mappings. -->
+    <itemDatas>
+      <itemData name="Normal" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Identifier" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Oct" defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="String" defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="Comment" defStyleNum="dsComment" spellChecking="true"/>
+      <itemData name="Symbol" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Embedding" defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Accessor" defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Class" defStyleNum="dsDataType" spellChecking="false" bold="1"/>
+      <itemData name="Javascript" defStyleNum="dsAlert" spellChecking="false" italic="1"/>
+      <itemData name="Regex" defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="Reserved" defStyleNum="dsAlert" spellChecking="false"/>
+      <itemData name="Value Keywords" defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Globals" defStyleNum="dsOthers" spellChecking="false"/>
+      <!-- Context-sensitive globals - not styled by default. -->
+      <itemData name="Browser Globals" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Node.js Globals" defStyleNum="dsNormal" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <!-- Global settings. -->
+  <general>
+    <indentation mode="python"/>
+    <folding indentationsensitive="1"/>
+    <comments>
+      <comment name="singleLine" start="#"/>
+      <comment name="multiLine" start="###" end="###" region="Comment"/>
+    </comments>
+    <keywords casesensitive="1" additionalDeliminator="#'"/>
+    <emptyLines>
+      <emptyLine regexpr="(?:\s+|\s*#.*)"/>
+    </emptyLines>
+  </general>
+</language>
diff --git a/xml/coldfusion.xml b/xml/coldfusion.xml
new file mode 100644
--- /dev/null
+++ b/xml/coldfusion.xml
@@ -0,0 +1,731 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="ColdFusion" version="3" kateversion="2.2" section="Markup" extensions="*.cfm;*.cfc;*.cfml;*.dbm" mimetype="text/x-coldfusion">
+
+	<highlighting>
+
+		<list name="Script Keywords">
+
+			<item>if</item>
+			<item>else</item>
+			<item>for</item>
+			<item>in</item>
+			<item>while</item>
+			<item>do</item>
+			<item>continue</item>
+			<item>break</item>
+			<item>with</item>
+			<item>try</item>
+			<item>catch</item>
+			<item>switch</item>
+			<item>case</item>
+			<item>new</item>
+			<item>var</item>
+			<item>function</item>
+			<item>return</item>
+			<item>this</item>
+			<item>delete</item>
+			<item>true</item>
+			<item>false</item>
+			<item>void</item>
+			<item>throw</item>
+			<item>typeof</item>
+			<item>const</item>
+			<item>default</item>
+
+		</list>
+
+		<list name="Script Objects">
+
+			<item>Anchor</item>
+			<item>Applet</item>
+			<item>Area</item>
+			<item>Array</item>
+			<item>Boolean</item>
+			<item>Button</item>
+			<item>Checkbox</item>
+			<item>Date</item>
+			<item>Document</item>
+			<item>Event</item>
+			<item>FileUpload</item>
+			<item>Form</item>
+			<item>Frame</item>
+			<item>Function</item>
+			<item>Hidden</item>
+			<item>History</item>
+			<item>Image</item>
+			<item>Layer</item>
+			<item>Linke</item>
+			<item>Location</item>
+			<item>Math</item>
+			<item>Navigator</item>
+			<item>Number</item>
+			<item>Object</item>
+			<item>Option</item>
+			<item>Password</item>
+			<item>Radio</item>
+			<item>RegExp</item>
+			<item>Reset</item>
+			<item>Screen</item>
+			<item>Select</item>
+			<item>String</item>
+			<item>Submit</item>
+			<item>Text</item>
+			<item>Textarea</item>
+			<item>Window</item>
+
+		</list>
+
+		<list name="Script Methods">
+
+			<item>abs</item>
+			<item>acos</item>
+			<item>alert</item>
+			<item>anchor</item>
+			<item>apply</item>
+			<item>asin</item>
+			<item>atan</item>
+			<item>atan2</item>
+			<item>back</item>
+			<item>blur</item>
+			<item>call</item>
+			<item>captureEvents</item>
+			<item>ceil</item>
+			<item>charAt</item>
+			<item>charCodeAt</item>
+			<item>clearInterval</item>
+			<item>clearTimeout</item>
+			<item>click</item>
+			<item>close</item>
+			<item>compile</item>
+			<item>concat</item>
+			<item>confirm</item>
+			<item>cos</item>
+			<item>disableExternalCapture</item>
+			<item>enableExternalCapture</item>
+			<item>eval</item>
+			<item>exec</item>
+			<item>exp</item>
+			<item>find</item>
+			<item>floor</item>
+			<item>focus</item>
+			<item>forward</item>
+			<item>fromCharCode</item>
+			<item>getDate</item>
+			<item>getDay</item>
+			<item>getFullYear</item>
+			<item>getHours</item>
+			<item>getMilliseconds</item>
+			<item>getMinutes</item>
+			<item>getMonth</item>
+			<item>getSeconds</item>
+			<item>getSelection</item>
+			<item>getTime</item>
+			<item>getTimezoneOffset</item>
+			<item>getUTCDate</item>
+			<item>getUTCDay</item>
+			<item>getUTCFullYear</item>
+			<item>getUTCHours</item>
+			<item>getUTCMilliseconds</item>
+			<item>getUTCMinutes</item>
+			<item>getUTCMonth</item>
+			<item>getUTCSeconds</item>
+			<item>go</item>
+			<item>handleEvent</item>
+			<item>home</item>
+			<item>indexOf</item>
+			<item>javaEnabled</item>
+			<item>join</item>
+			<item>lastIndexOf</item>
+			<item>link</item>
+			<item>load</item>
+			<item>log</item>
+			<item>match</item>
+			<item>max</item>
+			<item>min</item>
+			<item>moveAbove</item>
+			<item>moveBelow</item>
+			<item>moveBy</item>
+			<item>moveTo</item>
+			<item>moveToAbsolute</item>
+			<item>open</item>
+			<item>parse</item>
+			<item>plugins.refresh</item>
+			<item>pop</item>
+			<item>pow</item>
+			<item>preference</item>
+			<item>print</item>
+			<item>prompt</item>
+			<item>push</item>
+			<item>random</item>
+			<item>releaseEvents</item>
+			<item>reload</item>
+			<item>replace</item>
+			<item>reset</item>
+			<item>resizeBy</item>
+			<item>resizeTo</item>
+			<item>reverse</item>
+			<item>round</item>
+			<item>routeEvent</item>
+			<item>scrollBy</item>
+			<item>scrollTo</item>
+			<item>search</item>
+			<item>select</item>
+			<item>setDate</item>
+			<item>setFullYear</item>
+			<item>setHours</item>
+			<item>setInterval</item>
+			<item>setMilliseconds</item>
+			<item>setMinutes</item>
+			<item>setMonth</item>
+			<item>setSeconds</item>
+			<item>setTime</item>
+			<item>setTimeout</item>
+			<item>setUTCDate</item>
+			<item>setUTCFullYear</item>
+			<item>setUTCHours</item>
+			<item>setUTCMilliseconds</item>
+			<item>setUTCMinutes</item>
+			<item>setUTCMonth</item>
+			<item>setUTCSeconds</item>
+			<item>shift</item>
+			<item>sin</item>
+			<item>slice</item>
+			<item>sort</item>
+			<item>splice</item>
+			<item>split</item>
+			<item>sqrt</item>
+			<item>stop</item>
+			<item>submit</item>
+			<item>substr</item>
+			<item>substring</item>
+			<item>taintEnabled</item>
+			<item>tan</item>
+			<item>test</item>
+			<item>toLocaleString</item>
+			<item>toLowerCase</item>
+			<item>toSource</item>
+			<item>toString</item>
+			<item>toUpperCase</item>
+			<item>toUTCString</item>
+			<item>unshift</item>
+			<item>unwatch</item>
+			<item>UTC</item>
+			<item>valueOf</item>
+			<item>watch</item>
+			<item>write</item>
+			<item>writeln</item>
+
+		</list>
+
+		<list name="CFSCRIPT Keywords">
+
+			<item>break</item>
+			<item>case</item>
+			<item>catch</item>
+			<item>continue</item>
+			<item>default</item>
+			<item>do</item>
+			<item>else</item>
+			<item>for</item>
+			<item>function</item>
+			<item>if</item>
+			<item>in</item>
+			<item>return</item>
+			<item>switch</item>
+			<item>try</item>
+			<item>var</item>
+			<item>while</item>
+
+		</list>
+
+		<list name="CFSCRIPT Functions">
+
+			<item>Abs</item>
+			<item>ACos</item>
+			<item>ArrayAppend</item>
+			<item>ArrayAvg</item>
+			<item>ArrayClear</item>
+			<item>ArrayDeleteAt</item>
+			<item>ArrayInsertAt</item>
+			<item>ArrayIsEmpty</item>
+			<item>ArrayLen</item>
+			<item>ArrayMax</item>
+			<item>ArrayMin</item>
+			<item>ArrayNew</item>
+			<item>ArrayPrepend</item>
+			<item>ArrayResize</item>
+			<item>ArraySet</item>
+			<item>ArraySort</item>
+			<item>ArraySum</item>
+			<item>ArraySwap</item>
+			<item>ArrayToList</item>
+			<item>Asc</item>
+			<item>ASin</item>
+			<item>Atn</item>
+			<item>BitAnd</item>
+			<item>BitMaskClear</item>
+			<item>BitMaskRead</item>
+			<item>BitMaskSet</item>
+			<item>BitNot</item>
+			<item>BitOr</item>
+			<item>BitSHLN</item>
+			<item>BitSHRN</item>
+			<item>BitXor</item>
+			<item>Ceiling</item>
+			<item>Chr</item>
+			<item>CJustify</item>
+			<item>Compare</item>
+			<item>CompareNoCase</item>
+			<item>Cos</item>
+			<item>CreateDate</item>
+			<item>CreateDateTime</item>
+			<item>CreateObject</item>
+			<item>CreateODBCDate</item>
+			<item>CreateODBCDateTime</item>
+			<item>CreateODBCTime</item>
+			<item>CreateTime</item>
+			<item>CreateTimeSpan</item>
+			<item>CreateUUID</item>
+			<item>DateAdd</item>
+			<item>DateCompare</item>
+			<item>DateConvert</item>
+			<item>DateDiff</item>
+			<item>DateFormat</item>
+			<item>DatePart</item>
+			<item>Day</item>
+			<item>DayOfWeek</item>
+			<item>DayOfWeekAsString</item>
+			<item>DayOfYear</item>
+			<item>DaysInMonth</item>
+			<item>DaysInYear</item>
+			<item>DE</item>
+			<item>DecimalFormat</item>
+			<item>DecrementValue</item>
+			<item>Decrypt</item>
+			<item>DeleteClientVariable</item>
+			<item>DirectoryExists</item>
+			<item>DollarFormat</item>
+			<item>Duplicate</item>
+			<item>Encrypt</item>
+			<item>Evaluate</item>
+			<item>Exp</item>
+			<item>ExpandPath</item>
+			<item>FileExists</item>
+			<item>Find</item>
+			<item>FindNoCase</item>
+			<item>FindOneOf</item>
+			<item>FirstDayOfMonth</item>
+			<item>Fix</item>
+			<item>FormatBaseN</item>
+			<item>GetAuthUser</item>
+			<item>GetBaseTagData</item>
+			<item>GetBaseTagList</item>
+			<item>GetBaseTemplatePath</item>
+			<item>GetClientVariablesList</item>
+			<item>GetCurrentTemplatePath</item>
+			<item>GetDirectoryFromPath</item>
+			<item>GetException</item>
+			<item>GetFileFromPath</item>
+			<item>GetFunctionList</item>
+			<item>GetHttpRequestData</item>
+			<item>GetHttpTimeString</item>
+			<item>GetK2ServerDocCount</item>
+			<item>GetK2ServerDocCountLimit</item>
+			<item>GetLocale</item>
+			<item>GetMetaData</item>
+			<item>GetMetricData</item>
+			<item>GetPageContext</item>
+			<item>GetProfileSections</item>
+			<item>GetProfileString</item>
+			<item>GetServiceSettings</item>
+			<item>GetTempDirectory</item>
+			<item>GetTempFile</item>
+			<item>GetTemplatePath</item>
+			<item>GetTickCount</item>
+			<item>GetTimeZoneInfo</item>
+			<item>GetToken</item>
+			<item>Hash</item>
+			<item>Hour</item>
+			<item>HTMLCodeFormat</item>
+			<item>HTMLEditFormat</item>
+			<item>IIf</item>
+			<item>IncrementValue</item>
+			<item>InputBaseN</item>
+			<item>Insert</item>
+			<item>Int</item>
+			<item>IsArray</item>
+			<item>IsBinary</item>
+			<item>IsBoolean</item>
+			<item>IsCustomFunction</item>
+			<item>IsDate</item>
+			<item>IsDebugMode</item>
+			<item>IsDefined</item>
+			<item>IsK2ServerABroker</item>
+			<item>IsK2ServerDocCountExceeded</item>
+			<item>IsK2ServerOnline</item>
+			<item>IsLeapYear</item>
+			<item>IsNumeric</item>
+			<item>IsNumericDate</item>
+			<item>IsObject</item>
+			<item>IsQuery</item>
+			<item>IsSimpleValue</item>
+			<item>IsStruct</item>
+			<item>IsUserInRole</item>
+			<item>IsWDDX</item>
+			<item>IsXmlDoc</item>
+			<item>IsXmlElement</item>
+			<item>IsXmlRoot</item>
+			<item>JavaCast</item>
+			<item>JSStringFormat</item>
+			<item>LCase</item>
+			<item>Left</item>
+			<item>Len</item>
+			<item>ListAppend</item>
+			<item>ListChangeDelims</item>
+			<item>ListContains</item>
+			<item>ListContainsNoCase</item>
+			<item>ListDeleteAt</item>
+			<item>ListFind</item>
+			<item>ListFindNoCase</item>
+			<item>ListFirst</item>
+			<item>ListGetAt</item>
+			<item>ListInsertAt</item>
+			<item>ListLast</item>
+			<item>ListLen</item>
+			<item>ListPrepend</item>
+			<item>ListQualify</item>
+			<item>ListRest</item>
+			<item>ListSetAt</item>
+			<item>ListSort</item>
+			<item>ListToArray</item>
+			<item>ListValueCount</item>
+			<item>ListValueCountNoCase</item>
+			<item>LJustify</item>
+			<item>Log</item>
+			<item>Log10</item>
+			<item>LSCurrencyFormat</item>
+			<item>LSDateFormat</item>
+			<item>LSEuroCurrencyFormat</item>
+			<item>LSIsCurrency</item>
+			<item>LSIsDate</item>
+			<item>LSIsNumeric</item>
+			<item>LSNumberFormat</item>
+			<item>LSParseCurrency</item>
+			<item>LSParseDateTime</item>
+			<item>LSParseEuroCurrency</item>
+			<item>LSParseNumber</item>
+			<item>LSTimeFormat</item>
+			<item>LTrim</item>
+			<item>Max</item>
+			<item>Mid</item>
+			<item>Min</item>
+			<item>Minute</item>
+			<item>Month</item>
+			<item>MonthAsString</item>
+			<item>Now</item>
+			<item>NumberFormat</item>
+			<item>ParagraphFormat</item>
+			<item>ParameterExists</item>
+			<item>ParseDateTime</item>
+			<item>Pi</item>
+			<item>PreserveSingleQuotes</item>
+			<item>Quarter</item>
+			<item>QueryAddColumn</item>
+			<item>QueryAddRow</item>
+			<item>QueryNew</item>
+			<item>QuerySetCell</item>
+			<item>QuotedValueList</item>
+			<item>Rand</item>
+			<item>Randomize</item>
+			<item>RandRange</item>
+			<item>REFind</item>
+			<item>REFindNoCase</item>
+			<item>RemoveChars</item>
+			<item>RepeatString</item>
+			<item>Replace</item>
+			<item>ReplaceList</item>
+			<item>ReplaceNoCase</item>
+			<item>REReplace</item>
+			<item>REReplaceNoCase</item>
+			<item>Reverse</item>
+			<item>Right</item>
+			<item>RJustify</item>
+			<item>Round</item>
+			<item>RTrim</item>
+			<item>Second</item>
+			<item>SetEncoding</item>
+			<item>SetLocale</item>
+			<item>SetProfileString</item>
+			<item>SetVariable</item>
+			<item>Sgn</item>
+			<item>Sin</item>
+			<item>SpanExcluding</item>
+			<item>SpanIncluding</item>
+			<item>Sqr</item>
+			<item>StripCR</item>
+			<item>StructAppend</item>
+			<item>StructClear</item>
+			<item>StructCopy</item>
+			<item>StructCount</item>
+			<item>StructDelete</item>
+			<item>StructFind</item>
+			<item>StructFindKey</item>
+			<item>StructFindValue</item>
+			<item>StructGet</item>
+			<item>StructInsert</item>
+			<item>StructIsEmpty</item>
+			<item>StructKeyArray</item>
+			<item>StructKeyExists</item>
+			<item>StructKeyList</item>
+			<item>StructNew</item>
+			<item>StructSort</item>
+			<item>StructUpdate</item>
+			<item>Tan</item>
+			<item>TimeFormat</item>
+			<item>ToBase64</item>
+			<item>ToBinary</item>
+			<item>ToString</item>
+			<item>Trim</item>
+			<item>UCase</item>
+			<item>URLDecode</item>
+			<item>URLEncodedFormat</item>
+			<item>URLSessionFormat</item>
+			<item>Val</item>
+			<item>ValueList</item>
+			<item>Week</item>
+			<item>WriteOutput</item>
+			<item>XmlChildPos</item>
+			<item>XmlElemNew</item>
+			<item>XmlFormat</item>
+			<item>XmlNew</item>
+			<item>XmlParse</item>
+			<item>XmlSearch</item>
+			<item>XmlTransform</item>
+			<item>Year</item>
+			<item>YesNoFormat</item>
+
+		</list>
+
+		<contexts>
+
+			<context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
+				<StringDetect attribute="CF Comment" context="ctxCF Comment" String="&lt;!---" />
+				<StringDetect attribute="HTML Comment" context="ctxHTML Comment" String="&lt;!--" />
+				<RegExpr attribute="Script Tags" context="ctxCFSCRIPT Tag" String="&lt;[cC][fF][sS][cC][rR][iI][pP][tT]" />
+				<RegExpr attribute="Script Tags" context="ctxSCRIPT Tag" String="&lt;[sS][cC][rR][iI][pP][tT]" />
+				<RegExpr attribute="Style Tags" context="ctxSTYLE Tag" String="&lt;[sS][tT][yY][lL][eE]" />
+				<DetectChar attribute="HTML Entities" context="ctxHTML Entities" char="&amp;" />
+				<RegExpr attribute="Custom Tags" context="ctxCustom Tag" String="&lt;\/?[cC][fF]_" />
+				<RegExpr attribute="CFX Tags" context="ctxCFX Tag" String="&lt;\/?[cC][fF][xX]_" />
+				<RegExpr attribute="CF Tags" context="ctxCF Tag" String="&lt;\/?[cC][fF]" />
+				<RegExpr attribute="Table Tags" context="ctxTable Tag" String="&lt;\/?([tT][aAhHbBfFrRdD])|([cC][aA][pP][tT])" />
+				<RegExpr attribute="Anchor Tags" context="ctxAnchor Tag" String="&lt;\/?[aA] " />
+				<RegExpr attribute="Image Tags" context="ctxImage Tag" String="&lt;\/?[iI][mM][gG] " />
+				<RegExpr attribute="Tags" context="ctxTag" String="&lt;!?\/?[a-zA-Z0-9_]+" />
+			</context>
+
+
+
+			<context name="ctxCFSCRIPT Tag" attribute="Script Tags" lineEndContext="#stay">
+				<DetectChar attribute="Script Tags" context="ctxCFSCRIPT Block" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+			<context name="ctxSCRIPT Tag" attribute="Script Tags" lineEndContext="#stay">
+				<DetectChar attribute="Script Tags" context="ctxSCRIPT Block" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+			<context name="ctxSTYLE Tag" attribute="Style Tags" lineEndContext="#stay">
+				<DetectChar attribute="Style Tags" context="ctxSTYLE Block" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+
+
+			<context name="ctxTag" attribute="Tags" lineEndContext="#stay">
+				<DetectChar attribute="Tags" context="#pop" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+			<context name="ctxTable Tag" attribute="Table Tags" lineEndContext="#stay">
+				<DetectChar attribute="Table Tags" context="#pop" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+			<context name="ctxAnchor Tag" attribute="Anchor Tags" lineEndContext="#stay">
+				<DetectChar attribute="Anchor Tags" context="#pop" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+			<context name="ctxImage Tag" attribute="Image Tags" lineEndContext="#stay">
+				<DetectChar attribute="Image Tags" context="#pop" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+			<context name="ctxCF Tag" attribute="CF Tags" lineEndContext="#stay">
+				<DetectChar attribute="CF Tags" context="#pop" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+			<context name="ctxCustom Tag" attribute="Custom Tags" lineEndContext="#stay">
+				<DetectChar attribute="Custom Tags" context="#pop" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+			<context name="ctxCFX Tag" attribute="CFX Tags" lineEndContext="#stay">
+				<DetectChar attribute="CFX Tags" context="#pop" char="&gt;" />
+				<DetectChar attribute="Normal Text" context="#stay" char="=" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+
+
+			<context name="ctxHTML Comment" attribute="HTML Comment" lineEndContext="#stay">
+				<StringDetect attribute="CF Comment" context="ctxCF Comment" String="&lt;!---" />
+				<StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
+			</context>
+
+			<context name="ctxCF Comment" attribute="CF Comment" lineEndContext="#stay">
+				<StringDetect attribute="CF Comment" context="#pop" String="---&gt;" />
+			</context>
+
+			<context name="ctxC Style Comment" attribute="Script Comment" lineEndContext="#stay">
+        		<Detect2Chars attribute="Script Comment" context="#pop" char="*" char1="/" />
+			</context>
+
+			<context name="ctxOne Line Comment" attribute="Script Comment" lineEndContext="#pop" />
+
+			<context name="ctxHTML Entities" attribute="HTML Entities" lineEndContext="#pop">
+				<DetectChar attribute="HTML Entities" context="#pop" char=";" />
+			</context>
+
+
+
+			<context name="ctxCFSCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
+				<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" />
+				<Detect2Chars attribute="Script Comment" context="ctxOne Line Comment" char="/" char1="/" />
+				<RegExpr attribute="Script Strings" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Script Strings" context="#stay" String="'[^']*'" />
+				<Int attribute="Script Numbers" context="#stay" />
+				<Float attribute="Script Numbers" context="#stay" />
+				<AnyChar attribute="Script Operators" context="#stay" String="[()[\]=+-*/]+" />
+				<AnyChar attribute="Brackets" context="#stay" String="{}" />
+
+				<keyword attribute="Script Keywords" context="#stay" String="CFSCRIPT Keywords" />
+				<keyword attribute="Script Functions" context="#stay" String="CFSCRIPT Functions" />
+				<RegExpr attribute="Script Tags" context="#pop#pop" String="&lt;/[cC][fF][sS][cC][rR][iI][pP][tT]&gt;" />
+			</context>
+
+
+
+			<context name="ctxSCRIPT Block" attribute="Normal Text" lineEndContext="#stay">
+				<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" />
+				<Detect2Chars attribute="Script Comment" context="ctxOne Line Comment" char="/" char1="/" />
+				<RegExpr attribute="Script Strings" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Script Strings" context="#stay" String="'[^']*'" />
+				<Int attribute="Script Numbers" context="#stay" />
+				<Float attribute="Script Numbers" context="#stay" />
+				<AnyChar attribute="Script Operators" context="#stay" String="[()[\]=+-*/]+" />
+				<AnyChar attribute="Brackets" context="#stay" String="{}" />
+
+				<keyword attribute="Script Keywords" context="#stay" String="Script Keywords" />
+				<keyword attribute="Script Objects" context="#stay" String="Script Objects" />
+				<keyword attribute="Script Functions" context="#stay" String="Script Methods" />
+				<RegExpr attribute="Script Tags" context="#pop#pop" String="&lt;/[sS][cC][rR][iI][pP][tT]&gt;" />
+			</context>
+
+
+
+			<context name="ctxSTYLE Block" attribute="Style Selectors" lineEndContext="#stay">
+				<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" />
+				<DetectChar attribute="Brackets" context="ctxStyle Properties" char="{" />
+				<RegExpr attribute="Style Tags" context="#pop#pop" String="&lt;/[sS][tT][yY][lL][eE]&gt;" />
+			</context>
+
+			<context name="ctxStyle Properties" attribute="Style Properties" lineEndContext="#stay">
+				<DetectChar attribute="Brackets" context="#pop" char="}" />
+				<Detect2Chars attribute="Script Comment" context="ctxC Style Comment" char="/" char1="*" />
+				<DetectChar attribute="Normal Text" context="ctxStyle Values" char=":" />
+			</context>
+
+			<context name="ctxStyle Values" attribute="Style Values" lineEndContext="#pop">
+				<DetectChar attribute="Normal Text" context="#pop" char=";" />
+				<DetectChar attribute="Normal Text" context="#stay" char="," />
+				<Int attribute="Numbers" context="#stay" />
+				<Float attribute="Numbers" context="#stay" />
+				<RegExpr attribute="Numbers" context="#stay" String="#([0-9a-fA-F]{3})|([0-9a-fA-F]{6})" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="&quot;[^&quot;]*&quot;" />
+				<RegExpr attribute="Attribute Values" context="#stay" String="'[^']*'" />
+			</context>
+
+		</contexts>
+
+		<itemDatas>
+
+			<itemData name="Normal Text" defStyleNum="dsNormal" />
+			<itemData name="Tags" defStyleNum="dsNormal"				color="#000080" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Table Tags" defStyleNum="dsNormal"			color="#008080" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Script Tags" defStyleNum="dsNormal"			color="#800000" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Image Tags" defStyleNum="dsNormal"			color="#800080" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Style Tags" defStyleNum="dsNormal"			color="#800080" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Anchor Tags" defStyleNum="dsNormal"			color="#008000" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Attribute Values" defStyleNum="dsNormal"	color="#0000ff" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="HTML Comment" defStyleNum="dsComment"		color="#008000" selColor="#999999" bold="0" italic="0" />
+			<itemData name="CF Comment" defStyleNum="dsComment"			color="#ff9900" selColor="#999999" bold="0" italic="0" />
+			<itemData name="Script Comment" defStyleNum="dsComment"		color="#ff9900" selColor="#999999" bold="0" italic="0" />
+			<itemData name="CF Tags" defStyleNum="dsNormal"				color="#800000" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Custom Tags" defStyleNum="dsNormal"			color="#cc6666" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="CFX Tags" defStyleNum="dsNormal"			color="#008000" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Numbers" defStyleNum="dsNormal"				color="#0000ff" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="HTML Entities" defStyleNum="dsNormal"		color="#000000" selColor="#ffffff" bold="1" italic="0" />
+			<itemData name="Style Selectors" defStyleNum="dsNormal"		color="#ff00ff" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Style Properties" defStyleNum="dsNormal"	color="#000080" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Style Values" defStyleNum="dsNormal"		color="#ff0000" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Brackets" defStyleNum="dsNormal"			color="#000080" selColor="#ffffff" bold="1" italic="0" />
+			<itemData name="Script Numbers" defStyleNum="dsNormal"		color="#ff00ff" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Script Strings" defStyleNum="dsNormal"		color="#008080" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Script Operators" defStyleNum="dsNormal"	color="#0000ff" selColor="#ffffff" bold="0" italic="0" />
+			<itemData name="Script Keywords" defStyleNum="dsNormal"		color="#0000cc" selColor="#ffffff" bold="1" italic="0" />
+			<itemData name="Script Functions" defStyleNum="dsFunction"	bold="1" />
+			<itemData name="Script Objects" defStyleNum="dsNormal"		color="#0000cc" selColor="#ffffff" bold="1" italic="0" />
+
+		</itemDatas>
+
+	</highlighting>
+
+	<general>
+
+		<comments>
+
+			<comment name="multiLine" start="&lt;!--" end="--&gt;" />
+			<comment name="multiLine" start="/*" end="*/" />
+			<comment name="singleLine" start="//" />
+
+		</comments>
+
+		<keywords casesensitive="0" weakDeliminator="-" />
+
+	</general>
+
+</language>
diff --git a/xml/commonlisp.xml b/xml/commonlisp.xml
new file mode 100644
--- /dev/null
+++ b/xml/commonlisp.xml
@@ -0,0 +1,1178 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language version="5" kateversion="5.0" name="Common Lisp" section="Sources" extensions="*.lisp;*.cl;*.lsp" mimetype="" author="Dominik Haumann (dhaumann@kde.org)" license="MIT">
+  <highlighting>
+    <list name="symbols">
+      <item>&lt;</item>
+      <item>&lt;=</item>
+      <item>=</item>
+      <item>&gt;</item>
+      <item>&gt;=</item>
+      <item>=&gt;</item>
+      <item>-</item> 
+      <item>/</item> 
+      <item>/=</item> 
+      <item>//</item> 
+      <item>///</item> 
+      <item>*</item> 
+      <item>**</item> 
+      <item>***</item> 
+      <item>+</item> 
+      <item>++</item> 
+      <item>+++</item> 
+      <item>1-</item> 
+      <item>1+</item> 
+    </list>
+    <list name="definitions">
+      <item>defclass</item> 
+      <item>defconstant</item> 
+      <item>defgeneric</item> 
+      <item>define-compiler-macro</item> 
+      <item>define-condition</item> 
+      <item>define-method-combination</item> 
+      <item>define-modify-macro</item> 
+      <item>define-setf-expander</item> 
+      <item>define-setf-method</item> 
+      <item>define-symbol-macro</item> 
+      <item>defmacro</item> 
+      <item>defmethod</item> 
+      <item>defpackage</item> 
+      <item>defparameter</item> 
+      <item>defsetf</item> 
+      <item>deftype</item> 
+      <item>defvar</item> 
+      <item>defun</item> 
+      <item>defstruct</item> 
+    </list>
+    <list name="keywords">
+      <item>abort</item> 
+      <item>abs</item> 
+      <item>access</item> 
+      <item>acons</item> 
+      <item>acos</item> 
+      <item>acosh</item> 
+      <item>add-method</item> 
+      <item>adjoin</item> 
+      <item>adjustable-array-p</item> 
+      <item>adjust-array</item> 
+      <item>allocate-instance</item> 
+      <item>alpha-char-p</item> 
+      <item>alphanumericp</item> 
+      <item>and</item> 
+      <item>append</item> 
+      <item>apply</item> 
+      <item>applyhook</item> 
+      <item>apropos</item> 
+      <item>apropos-list</item> 
+      <item>aref</item> 
+      <item>arithmetic-error</item> 
+      <item>arithmetic-error-operands</item> 
+      <item>arithmetic-error-operation</item> 
+      <item>array</item> 
+      <item>array-dimension</item> 
+      <item>array-dimension-limit</item> 
+      <item>array-dimensions</item> 
+      <item>array-displacement</item> 
+      <item>array-element-type</item> 
+      <item>array-has-fill-pointer-p</item> 
+      <item>array-in-bounds-p</item> 
+      <item>arrayp</item> 
+      <item>array-rank</item> 
+      <item>array-rank-limit</item> 
+      <item>array-row-major-index</item> 
+      <item>array-total-size</item> 
+      <item>array-total-size-limit</item> 
+      <item>ash</item> 
+      <item>asin</item> 
+      <item>asinh</item> 
+      <item>assert</item> 
+      <item>assoc</item> 
+      <item>assoc-if</item> 
+      <item>assoc-if-not</item> 
+      <item>atan</item> 
+      <item>atanh</item> 
+      <item>atom</item> 
+      <item>base-char</item> 
+      <item>base-string</item> 
+      <item>bignum</item> 
+      <item>bit</item> 
+      <item>bit-and</item> 
+      <item>bit-andc1</item> 
+      <item>bit-andc2</item> 
+      <item>bit-eqv</item> 
+      <item>bit-ior</item> 
+      <item>bit-nand</item> 
+      <item>bit-nor</item> 
+      <item>bit-not</item> 
+      <item>bit-orc1</item> 
+      <item>bit-orc2</item> 
+      <item>bit-vector</item> 
+      <item>bit-vector-p</item> 
+      <item>bit-xor</item> 
+      <item>block</item> 
+      <item>boole</item> 
+      <item>boole-1</item> 
+      <item>boole-2</item> 
+      <item>boolean</item> 
+      <item>boole-and</item> 
+      <item>boole-andc1</item> 
+      <item>boole-andc2</item> 
+      <item>boole-c1</item> 
+      <item>boole-c2</item> 
+      <item>boole-clr</item> 
+      <item>boole-eqv</item> 
+      <item>boole-ior</item> 
+      <item>boole-nand</item> 
+      <item>boole-nor</item> 
+      <item>boole-orc1</item> 
+      <item>boole-orc2</item> 
+      <item>boole-set</item> 
+      <item>boole-xor</item> 
+      <item>both-case-p</item> 
+      <item>boundp</item> 
+      <item>break</item> 
+      <item>broadcast-stream</item> 
+      <item>broadcast-stream-streams</item> 
+      <item>built-in-class</item> 
+      <item>butlast</item> 
+      <item>byte</item> 
+      <item>byte-position</item> 
+      <item>byte-size</item> 
+      <item>caaaar</item>
+      <item>caaadr</item>
+      <item>caaar</item> 
+      <item>caadar</item>
+      <item>caaddr</item>
+      <item>caadr</item> 
+      <item>caar</item> 
+      <item>cadaar</item>
+      <item>cadadr</item>
+      <item>cadar</item> 
+      <item>caddar</item>
+      <item>cadddr</item>
+      <item>caddr</item> 
+      <item>cadr</item> 
+      <item>call-arguments-limit</item> 
+      <item>call-method</item> 
+      <item>call-next-method</item> 
+      <item>capitalize</item> 
+      <item>car</item> 
+      <item>case</item> 
+      <item>catch</item> 
+      <item>ccase</item> 
+      <item>cdaaar</item> 
+      <item>cdaadr</item> 
+      <item>cdaar</item> 
+      <item>cdadar</item> 
+      <item>cdaddr</item> 
+      <item>cdadr</item> 
+      <item>cdar</item> 
+      <item>cddaar</item> 
+      <item>cddadr</item> 
+      <item>cddar</item> 
+      <item>cdddar</item> 
+      <item>cddddr</item> 
+      <item>cdddr</item> 
+      <item>cddr</item> 
+      <item>cdr</item> 
+      <item>ceiling</item> 
+      <item>cell-error</item> 
+      <item>cell-error-name</item> 
+      <item>cerror</item> 
+      <item>change-class</item> 
+      <item>char</item> 
+      <item>char&lt;</item> 
+      <item>char&lt;=</item> 
+      <item>char=</item> 
+      <item>char&gt;</item> 
+      <item>char&gt;=</item> 
+      <item>char/=</item> 
+      <item>character</item> 
+      <item>characterp</item> 
+      <item>char-bit</item> 
+      <item>char-bits</item> 
+      <item>char-bits-limit</item> 
+      <item>char-code</item> 
+      <item>char-code-limit</item> 
+      <item>char-control-bit</item> 
+      <item>char-downcase</item> 
+      <item>char-equal</item> 
+      <item>char-font</item> 
+      <item>char-font-limit</item> 
+      <item>char-greaterp</item> 
+      <item>char-hyper-bit</item> 
+      <item>char-int</item> 
+      <item>char-lessp</item> 
+      <item>char-meta-bit</item> 
+      <item>char-name</item> 
+      <item>char-not-equal</item> 
+      <item>char-not-greaterp</item> 
+      <item>char-not-lessp</item> 
+      <item>char-super-bit</item> 
+      <item>char-upcase</item> 
+      <item>check-type</item> 
+      <item>cis</item> 
+      <item>class</item> 
+      <item>class-name</item> 
+      <item>class-of</item> 
+      <item>clear-input</item> 
+      <item>clear-output</item> 
+      <item>close</item> 
+      <item>clrhash</item> 
+      <item>code-char</item> 
+      <item>coerce</item> 
+      <item>commonp</item> 
+      <item>compilation-speed</item> 
+      <item>compile</item> 
+      <item>compiled-function</item> 
+      <item>compiled-function-p</item> 
+      <item>compile-file</item> 
+      <item>compile-file-pathname</item> 
+      <item>compiler-let</item> 
+      <item>compiler-macro</item> 
+      <item>compiler-macro-function</item> 
+      <item>complement</item> 
+      <item>complex</item> 
+      <item>complexp</item> 
+      <item>compute-applicable-methods</item> 
+      <item>compute-restarts</item> 
+      <item>concatenate</item> 
+      <item>concatenated-stream</item> 
+      <item>concatenated-stream-streams</item> 
+      <item>cond</item> 
+      <item>condition</item> 
+      <item>conjugate</item> 
+      <item>cons</item> 
+      <item>consp</item> 
+      <item>constantly</item> 
+      <item>constantp</item> 
+      <item>continue</item> 
+      <item>control-error</item> 
+      <item>copy-alist</item> 
+      <item>copy-list</item> 
+      <item>copy-pprint-dispatch</item> 
+      <item>copy-readtable</item> 
+      <item>copy-seq</item> 
+      <item>copy-structure</item> 
+      <item>copy-symbol</item> 
+      <item>copy-tree</item> 
+      <item>cos</item> 
+      <item>cosh</item> 
+      <item>count</item> 
+      <item>count-if</item> 
+      <item>count-if-not</item> 
+      <item>ctypecase</item> 
+      <item>debug</item> 
+      <item>decf</item> 
+      <item>declaim</item> 
+      <item>declaration</item> 
+      <item>declare</item> 
+      <item>decode-float</item> 
+      <item>decode-universal-time</item> 
+      <item>delete</item> 
+      <item>delete-duplicates</item> 
+      <item>delete-file</item> 
+      <item>delete-if</item> 
+      <item>delete-if-not</item> 
+      <item>delete-package</item> 
+      <item>denominator</item> 
+      <item>deposit-field</item> 
+      <item>describe</item> 
+      <item>describe-object</item> 
+      <item>destructuring-bind</item> 
+      <item>digit-char</item> 
+      <item>digit-char-p</item> 
+      <item>directory</item> 
+      <item>directory-namestring</item> 
+      <item>disassemble</item> 
+      <item>division-by-zero</item> 
+      <item>do</item> 
+      <item>do*</item> 
+      <item>do-all-symbols</item> 
+      <item>documentation</item> 
+      <item>do-exeternal-symbols</item> 
+      <item>do-external-symbols</item> 
+      <item>dolist</item> 
+      <item>do-symbols</item> 
+      <item>dotimes</item> 
+      <item>double-float</item> 
+      <item>double-float-epsilon</item> 
+      <item>double-float-negative-epsilon</item> 
+      <item>dpb</item> 
+      <item>dribble</item> 
+      <item>dynamic-extent</item> 
+      <item>ecase</item> 
+      <item>echo-stream</item> 
+      <item>echo-stream-input-stream</item> 
+      <item>echo-stream-output-stream</item> 
+      <item>ed</item> 
+      <item>eighth</item> 
+      <item>elt</item> 
+      <item>encode-universal-time</item> 
+      <item>end-of-file</item> 
+      <item>endp</item> 
+      <item>enough-namestring</item> 
+      <item>ensure-directories-exist</item> 
+      <item>ensure-generic-function</item> 
+      <item>eq</item> 
+      <item>eql</item> 
+      <item>equal</item> 
+      <item>equalp</item> 
+      <item>error</item> 
+      <item>etypecase</item> 
+      <item>eval</item> 
+      <item>evalhook</item> 
+      <item>eval-when</item> 
+      <item>evenp</item> 
+      <item>every</item> 
+      <item>exp</item> 
+      <item>export</item> 
+      <item>expt</item> 
+      <item>extended-char</item> 
+      <item>fboundp</item> 
+      <item>fceiling</item> 
+      <item>fdefinition</item> 
+      <item>ffloor</item> 
+      <item>fifth</item> 
+      <item>file-author</item> 
+      <item>file-error</item> 
+      <item>file-error-pathname</item> 
+      <item>file-length</item> 
+      <item>file-namestring</item> 
+      <item>file-position</item> 
+      <item>file-stream</item> 
+      <item>file-string-length</item> 
+      <item>file-write-date</item> 
+      <item>fill</item> 
+      <item>fill-pointer</item> 
+      <item>find</item> 
+      <item>find-all-symbols</item> 
+      <item>find-class</item> 
+      <item>find-if</item> 
+      <item>find-if-not</item> 
+      <item>find-method</item> 
+      <item>find-package</item> 
+      <item>find-restart</item> 
+      <item>find-symbol</item> 
+      <item>finish-output</item> 
+      <item>first</item> 
+      <item>fixnum</item> 
+      <item>flet</item> 
+      <item>float</item> 
+      <item>float-digits</item> 
+      <item>floating-point-inexact</item> 
+      <item>floating-point-invalid-operation</item> 
+      <item>floating-point-overflow</item> 
+      <item>floating-point-underflow</item> 
+      <item>floatp</item> 
+      <item>float-precision</item> 
+      <item>float-radix</item> 
+      <item>float-sign</item> 
+      <item>floor</item> 
+      <item>fmakunbound</item> 
+      <item>force-output</item> 
+      <item>format</item> 
+      <item>formatter</item> 
+      <item>fourth</item> 
+      <item>fresh-line</item> 
+      <item>fround</item> 
+      <item>ftruncate</item> 
+      <item>ftype</item> 
+      <item>funcall</item> 
+      <item>function</item> 
+      <item>function-keywords</item> 
+      <item>function-lambda-expression</item> 
+      <item>functionp</item> 
+      <item>gbitp</item> 
+      <item>gcd</item> 
+      <item>generic-function</item> 
+      <item>gensym</item> 
+      <item>gentemp</item> 
+      <item>get</item> 
+      <item>get-decoded-time</item> 
+      <item>get-dispatch-macro-character</item> 
+      <item>getf</item> 
+      <item>gethash</item> 
+      <item>get-internal-real-time</item> 
+      <item>get-internal-run-time</item> 
+      <item>get-macro-character</item> 
+      <item>get-output-stream-string</item> 
+      <item>get-properties</item> 
+      <item>get-setf-expansion</item> 
+      <item>get-setf-method</item> 
+      <item>get-universal-time</item> 
+      <item>go</item> 
+      <item>graphic-char-p</item> 
+      <item>handler-bind</item> 
+      <item>handler-case</item> 
+      <item>hash-table</item> 
+      <item>hash-table-count</item> 
+      <item>hash-table-p</item> 
+      <item>hash-table-rehash-size</item> 
+      <item>hash-table-rehash-threshold</item> 
+      <item>hash-table-size</item> 
+      <item>hash-table-test</item> 
+      <item>host-namestring</item> 
+      <item>identity</item> 
+      <item>if</item> 
+      <item>if-exists</item> 
+      <item>ignorable</item> 
+      <item>ignore</item> 
+      <item>ignore-errors</item> 
+      <item>imagpart</item> 
+      <item>import</item> 
+      <item>incf</item> 
+      <item>initialize-instance</item> 
+      <item>inline</item> 
+      <item>in-package</item> 
+      <item>in-package</item> 
+      <item>input-stream-p</item> 
+      <item>inspect</item> 
+      <item>int-char</item> 
+      <item>integer</item> 
+      <item>integer-decode-float</item> 
+      <item>integer-length</item> 
+      <item>integerp</item> 
+      <item>interactive-stream-p</item> 
+      <item>intern</item> 
+      <item>internal-time-units-per-second</item> 
+      <item>intersection</item> 
+      <item>invalid-method-error</item> 
+      <item>invoke-debugger</item> 
+      <item>invoke-restart</item> 
+      <item>invoke-restart-interactively</item> 
+      <item>isqrt</item> 
+      <item>keyword</item> 
+      <item>keywordp</item> 
+      <item>labels</item> 
+      <item>lambda</item> 
+      <item>lambda-list-keywords</item> 
+      <item>lambda-parameters-limit</item> 
+      <item>last</item> 
+      <item>lcm</item> 
+      <item>ldb</item> 
+      <item>ldb-test</item> 
+      <item>ldiff</item> 
+      <item>least-negative-double-float</item> 
+      <item>least-negative-long-float</item> 
+      <item>least-negative-normalized-double-float</item> 
+      <item>least-negative-normalized-long-float</item> 
+      <item>least-negative-normalized-short-float</item> 
+      <item>least-negative-normalized-single-float</item> 
+      <item>least-negative-short-float</item> 
+      <item>least-negative-single-float</item> 
+      <item>least-positive-double-float</item> 
+      <item>least-positive-long-float</item> 
+      <item>least-positive-normalized-double-float</item> 
+      <item>least-positive-normalized-long-float</item> 
+      <item>least-positive-normalized-short-float</item> 
+      <item>least-positive-normalized-single-float</item> 
+      <item>least-positive-short-float</item> 
+      <item>least-positive-single-float</item> 
+      <item>length</item> 
+      <item>let</item> 
+      <item>let*</item> 
+      <item>lisp</item> 
+      <item>lisp-implementation-type</item> 
+      <item>lisp-implementation-version</item> 
+      <item>list</item> 
+      <item>list*</item> 
+      <item>list-all-packages</item> 
+      <item>listen</item> 
+      <item>list-length</item> 
+      <item>listp</item> 
+      <item>load</item> 
+      <item>load-logical-pathname-translations</item> 
+      <item>load-time-value</item> 
+      <item>locally</item> 
+      <item>log</item> 
+      <item>logand</item> 
+      <item>logandc1</item> 
+      <item>logandc2</item> 
+      <item>logbitp</item> 
+      <item>logcount</item> 
+      <item>logeqv</item> 
+      <item>logical-pathname</item> 
+      <item>logical-pathname-translations</item> 
+      <item>logior</item> 
+      <item>lognand</item> 
+      <item>lognor</item> 
+      <item>lognot</item> 
+      <item>logorc1</item> 
+      <item>logorc2</item> 
+      <item>logtest</item> 
+      <item>logxor</item> 
+      <item>long-float</item> 
+      <item>long-float-epsilon</item> 
+      <item>long-float-negative-epsilon</item> 
+      <item>long-site-name</item> 
+      <item>loop</item> 
+      <item>loop-finish</item> 
+      <item>lower-case-p</item> 
+      <item>machine-instance</item> 
+      <item>machine-type</item> 
+      <item>machine-version</item> 
+      <item>macroexpand</item> 
+      <item>macroexpand-1</item> 
+      <item>macroexpand-l</item> 
+      <item>macro-function</item> 
+      <item>macrolet</item> 
+      <item>make-array</item> 
+      <item>make-array</item> 
+      <item>make-broadcast-stream</item> 
+      <item>make-char</item> 
+      <item>make-concatenated-stream</item> 
+      <item>make-condition</item> 
+      <item>make-dispatch-macro-character</item> 
+      <item>make-echo-stream</item> 
+      <item>make-hash-table</item> 
+      <item>make-instance</item> 
+      <item>make-instances-obsolete</item> 
+      <item>make-list</item> 
+      <item>make-load-form</item> 
+      <item>make-load-form-saving-slots</item> 
+      <item>make-method</item> 
+      <item>make-package</item> 
+      <item>make-pathname</item> 
+      <item>make-random-state</item> 
+      <item>make-sequence</item> 
+      <item>make-string</item> 
+      <item>make-string-input-stream</item> 
+      <item>make-string-output-stream</item> 
+      <item>make-symbol</item> 
+      <item>make-synonym-stream</item> 
+      <item>make-two-way-stream</item> 
+      <item>makunbound</item> 
+      <item>map</item> 
+      <item>mapc</item> 
+      <item>mapcan</item> 
+      <item>mapcar</item> 
+      <item>mapcon</item> 
+      <item>maphash</item> 
+      <item>map-into</item> 
+      <item>mapl</item> 
+      <item>maplist</item> 
+      <item>mask-field</item> 
+      <item>max</item> 
+      <item>member</item> 
+      <item>member-if</item> 
+      <item>member-if-not</item> 
+      <item>merge</item> 
+      <item>merge-pathname</item> 
+      <item>merge-pathnames</item> 
+      <item>method</item> 
+      <item>method-combination</item> 
+      <item>method-combination-error</item> 
+      <item>method-qualifiers</item> 
+      <item>min</item> 
+      <item>minusp</item> 
+      <item>mismatch</item> 
+      <item>mod</item> 
+      <item>most-negative-double-float</item> 
+      <item>most-negative-fixnum</item> 
+      <item>most-negative-long-float</item> 
+      <item>most-negative-short-float</item> 
+      <item>most-negative-single-float</item> 
+      <item>most-positive-double-float</item> 
+      <item>most-positive-fixnum</item> 
+      <item>most-positive-long-float</item> 
+      <item>most-positive-short-float</item> 
+      <item>most-positive-single-float</item> 
+      <item>muffle-warning</item> 
+      <item>multiple-value-bind</item> 
+      <item>multiple-value-call</item> 
+      <item>multiple-value-list</item> 
+      <item>multiple-value-prog1</item> 
+      <item>multiple-value-seteq</item> 
+      <item>multiple-value-setq</item> 
+      <item>multiple-values-limit</item> 
+      <item>name-char</item> 
+      <item>namestring</item> 
+      <item>nbutlast</item> 
+      <item>nconc</item> 
+      <item>next-method-p</item> 
+      <item>nil</item> 
+      <item>nintersection</item> 
+      <item>ninth</item> 
+      <item>no-applicable-method</item> 
+      <item>no-next-method</item> 
+      <item>not</item> 
+      <item>notany</item> 
+      <item>notevery</item> 
+      <item>notinline</item> 
+      <item>nreconc</item> 
+      <item>nreverse</item> 
+      <item>nset-difference</item> 
+      <item>nset-exclusive-or</item> 
+      <item>nstring</item> 
+      <item>nstring-capitalize</item> 
+      <item>nstring-downcase</item> 
+      <item>nstring-upcase</item> 
+      <item>nsublis</item> 
+      <item>nsubst</item> 
+      <item>nsubst-if</item> 
+      <item>nsubst-if-not</item> 
+      <item>nsubstitute</item> 
+      <item>nsubstitute-if</item> 
+      <item>nsubstitute-if-not</item> 
+      <item>nth</item> 
+      <item>nthcdr</item> 
+      <item>nth-value</item> 
+      <item>null</item> 
+      <item>number</item> 
+      <item>numberp</item> 
+      <item>numerator</item> 
+      <item>nunion</item> 
+      <item>oddp</item> 
+      <item>open</item> 
+      <item>open-stream-p</item> 
+      <item>optimize</item> 
+      <item>or</item> 
+      <item>otherwise</item> 
+      <item>output-stream-p</item> 
+      <item>package</item> 
+      <item>package-error</item> 
+      <item>package-error-package</item> 
+      <item>package-name</item> 
+      <item>package-nicknames</item> 
+      <item>packagep</item> 
+      <item>package-shadowing-symbols</item> 
+      <item>package-used-by-list</item> 
+      <item>package-use-list</item> 
+      <item>pairlis</item> 
+      <item>parse-error</item> 
+      <item>parse-integer</item> 
+      <item>parse-namestring</item> 
+      <item>pathname</item> 
+      <item>pathname-device</item> 
+      <item>pathname-directory</item> 
+      <item>pathname-host</item> 
+      <item>pathname-match-p</item> 
+      <item>pathname-name</item> 
+      <item>pathnamep</item> 
+      <item>pathname-type</item> 
+      <item>pathname-version</item> 
+      <item>peek-char</item> 
+      <item>phase</item> 
+      <item>pi</item> 
+      <item>plusp</item> 
+      <item>pop</item> 
+      <item>position</item> 
+      <item>position-if</item> 
+      <item>position-if-not</item> 
+      <item>pprint</item> 
+      <item>pprint-dispatch</item> 
+      <item>pprint-exit-if-list-exhausted</item> 
+      <item>pprint-fill</item> 
+      <item>pprint-indent</item> 
+      <item>pprint-linear</item> 
+      <item>pprint-logical-block</item> 
+      <item>pprint-newline</item> 
+      <item>pprint-pop</item> 
+      <item>pprint-tab</item> 
+      <item>pprint-tabular</item> 
+      <item>prin1</item> 
+      <item>prin1-to-string</item> 
+      <item>princ</item> 
+      <item>princ-to-string</item> 
+      <item>print</item> 
+      <item>print-not-readable</item> 
+      <item>print-not-readable-object</item> 
+      <item>print-object</item> 
+      <item>print-unreadable-object</item> 
+      <item>probe-file</item> 
+      <item>proclaim</item> 
+      <item>prog</item> 
+      <item>prog*</item> 
+      <item>prog1</item> 
+      <item>prog2</item> 
+      <item>progn</item> 
+      <item>program-error</item> 
+      <item>progv</item> 
+      <item>provide</item> 
+      <item>psetf</item> 
+      <item>psetq</item> 
+      <item>push</item> 
+      <item>pushnew</item> 
+      <item>putprop</item> 
+      <item>quote</item> 
+      <item>random</item> 
+      <item>random-state</item> 
+      <item>random-state-p</item> 
+      <item>rassoc</item> 
+      <item>rassoc-if</item> 
+      <item>rassoc-if-not</item> 
+      <item>ratio</item> 
+      <item>rational</item> 
+      <item>rationalize</item> 
+      <item>rationalp</item> 
+      <item>read</item> 
+      <item>read-byte</item> 
+      <item>read-char</item> 
+      <item>read-char-no-hang</item> 
+      <item>read-delimited-list</item> 
+      <item>reader-error</item> 
+      <item>read-eval-print</item> 
+      <item>read-from-string</item> 
+      <item>read-line</item> 
+      <item>read-preserving-whitespace</item> 
+      <item>read-sequence</item> 
+      <item>readtable</item> 
+      <item>readtable-case</item> 
+      <item>readtablep</item> 
+      <item>real</item> 
+      <item>realp</item> 
+      <item>realpart</item> 
+      <item>reduce</item> 
+      <item>reinitialize-instance</item> 
+      <item>rem</item> 
+      <item>remf</item> 
+      <item>remhash</item> 
+      <item>remove</item> 
+      <item>remove-duplicates</item> 
+      <item>remove-if</item> 
+      <item>remove-if-not</item> 
+      <item>remove-method</item> 
+      <item>remprop</item> 
+      <item>rename-file</item> 
+      <item>rename-package</item> 
+      <item>replace</item> 
+      <item>require</item> 
+      <item>rest</item> 
+      <item>restart</item> 
+      <item>restart-bind</item> 
+      <item>restart-case</item> 
+      <item>restart-name</item> 
+      <item>return</item> 
+      <item>return-from</item> 
+      <item>revappend</item> 
+      <item>reverse</item> 
+      <item>room</item> 
+      <item>rotatef</item> 
+      <item>round</item> 
+      <item>row-major-aref</item> 
+      <item>rplaca</item> 
+      <item>rplacd</item> 
+      <item>safety</item> 
+      <item>satisfies</item> 
+      <item>sbit</item> 
+      <item>scale-float</item> 
+      <item>schar</item> 
+      <item>search</item> 
+      <item>second</item> 
+      <item>sequence</item> 
+      <item>serious-condition</item> 
+      <item>set</item> 
+      <item>set-char-bit</item> 
+      <item>set-difference</item> 
+      <item>set-dispatch-macro-character</item> 
+      <item>set-exclusive-or</item> 
+      <item>setf</item> 
+      <item>set-macro-character</item> 
+      <item>set-pprint-dispatch</item> 
+      <item>setq</item> 
+      <item>set-syntax-from-char</item> 
+      <item>seventh</item> 
+      <item>shadow</item> 
+      <item>shadowing-import</item> 
+      <item>shared-initialize</item> 
+      <item>shiftf</item> 
+      <item>short-float</item> 
+      <item>short-float-epsilon</item> 
+      <item>short-float-negative-epsilon</item> 
+      <item>short-site-name</item> 
+      <item>signal</item> 
+      <item>signed-byte</item> 
+      <item>signum</item> 
+      <item>simle-condition</item> 
+      <item>simple-array</item> 
+      <item>simple-base-string</item> 
+      <item>simple-bit-vector</item> 
+      <item>simple-bit-vector-p</item> 
+      <item>simple-condition-format-arguments</item> 
+      <item>simple-condition-format-control</item> 
+      <item>simple-error</item> 
+      <item>simple-string</item> 
+      <item>simple-string-p</item> 
+      <item>simple-type-error</item> 
+      <item>simple-vector</item> 
+      <item>simple-vector-p</item> 
+      <item>simple-warning</item> 
+      <item>sin</item> 
+      <item>single-flaot-epsilon</item> 
+      <item>single-float</item> 
+      <item>single-float-epsilon</item> 
+      <item>single-float-negative-epsilon</item> 
+      <item>sinh</item> 
+      <item>sixth</item> 
+      <item>sleep</item> 
+      <item>slot-boundp</item> 
+      <item>slot-exists-p</item> 
+      <item>slot-makunbound</item> 
+      <item>slot-missing</item> 
+      <item>slot-unbound</item> 
+      <item>slot-value</item> 
+      <item>software-type</item> 
+      <item>software-version</item> 
+      <item>some</item> 
+      <item>sort</item> 
+      <item>space</item> 
+      <item>special</item> 
+      <item>special-form-p</item> 
+      <item>special-operator-p</item> 
+      <item>speed</item> 
+      <item>sqrt</item> 
+      <item>stable-sort</item> 
+      <item>standard</item> 
+      <item>standard-char</item> 
+      <item>standard-char-p</item> 
+      <item>standard-class</item> 
+      <item>standard-generic-function</item> 
+      <item>standard-method</item> 
+      <item>standard-object</item> 
+      <item>step</item> 
+      <item>storage-condition</item> 
+      <item>store-value</item> 
+      <item>stream</item> 
+      <item>stream-element-type</item> 
+      <item>stream-error</item> 
+      <item>stream-error-stream</item> 
+      <item>stream-external-format</item> 
+      <item>streamp</item> 
+      <item>streamup</item> 
+      <item>string</item> 
+      <item>string&lt;</item> 
+      <item>string&lt;=</item> 
+      <item>string=</item> 
+      <item>string&gt;</item> 
+      <item>string&gt;=</item> 
+      <item>string/=</item> 
+      <item>string-capitalize</item> 
+      <item>string-char</item> 
+      <item>string-char-p</item> 
+      <item>string-downcase</item> 
+      <item>string-equal</item> 
+      <item>string-greaterp</item> 
+      <item>string-left-trim</item> 
+      <item>string-lessp</item> 
+      <item>string-not-equal</item> 
+      <item>string-not-greaterp</item> 
+      <item>string-not-lessp</item> 
+      <item>stringp</item> 
+      <item>string-right-strim</item> 
+      <item>string-right-trim</item> 
+      <item>string-stream</item> 
+      <item>string-trim</item> 
+      <item>string-upcase</item> 
+      <item>structure</item> 
+      <item>structure-class</item> 
+      <item>structure-object</item> 
+      <item>style-warning</item> 
+      <item>sublim</item> 
+      <item>sublis</item> 
+      <item>subseq</item> 
+      <item>subsetp</item> 
+      <item>subst</item> 
+      <item>subst-if</item> 
+      <item>subst-if-not</item> 
+      <item>substitute</item> 
+      <item>substitute-if</item> 
+      <item>substitute-if-not</item> 
+      <item>subtypep</item> 
+      <item>svref</item> 
+      <item>sxhash</item> 
+      <item>symbol</item> 
+      <item>symbol-function</item> 
+      <item>symbol-macrolet</item> 
+      <item>symbol-name</item> 
+      <item>symbolp</item> 
+      <item>symbol-package</item> 
+      <item>symbol-plist</item> 
+      <item>symbol-value</item> 
+      <item>synonym-stream</item> 
+      <item>synonym-stream-symbol</item> 
+      <item>sys</item> 
+      <item>system</item> 
+      <item>t</item> 
+      <item>tagbody</item> 
+      <item>tailp</item> 
+      <item>tan</item> 
+      <item>tanh</item> 
+      <item>tenth</item> 
+      <item>terpri</item> 
+      <item>the</item> 
+      <item>third</item> 
+      <item>throw</item> 
+      <item>time</item> 
+      <item>trace</item> 
+      <item>translate-logical-pathname</item> 
+      <item>translate-pathname</item> 
+      <item>tree-equal</item> 
+      <item>truename</item> 
+      <item>truncase</item> 
+      <item>truncate</item> 
+      <item>two-way-stream</item> 
+      <item>two-way-stream-input-stream</item> 
+      <item>two-way-stream-output-stream</item> 
+      <item>type</item> 
+      <item>typecase</item> 
+      <item>type-error</item> 
+      <item>type-error-datum</item> 
+      <item>type-error-expected-type</item> 
+      <item>type-of</item> 
+      <item>typep</item> 
+      <item>unbound-slot</item> 
+      <item>unbound-slot-instance</item> 
+      <item>unbound-variable</item> 
+      <item>undefined-function</item> 
+      <item>unexport</item> 
+      <item>unintern</item> 
+      <item>union</item> 
+      <item>unless</item> 
+      <item>unread</item> 
+      <item>unread-char</item> 
+      <item>unsigned-byte</item> 
+      <item>untrace</item> 
+      <item>unuse-package</item> 
+      <item>unwind-protect</item> 
+      <item>update-instance-for-different-class</item> 
+      <item>update-instance-for-redefined-class</item> 
+      <item>upgraded-array-element-type</item> 
+      <item>upgraded-complex-part-type</item> 
+      <item>upper-case-p</item> 
+      <item>use-package</item> 
+      <item>user</item> 
+      <item>user-homedir-pathname</item> 
+      <item>use-value</item> 
+      <item>values</item> 
+      <item>values-list</item> 
+      <item>vector</item> 
+      <item>vectorp</item> 
+      <item>vector-pop</item> 
+      <item>vector-push</item> 
+      <item>vector-push-extend</item> 
+      <item>warn</item> 
+      <item>warning</item> 
+      <item>when</item> 
+      <item>wild-pathname-p</item> 
+      <item>with-accessors</item> 
+      <item>with-compilation-unit</item> 
+      <item>with-condition-restarts</item> 
+      <item>with-hash-table-iterator</item> 
+      <item>with-input-from-string</item> 
+      <item>with-open-file</item> 
+      <item>with-open-stream</item> 
+      <item>with-output-to-string</item> 
+      <item>with-package-iterator</item> 
+      <item>with-simple-restart</item> 
+      <item>with-slots</item> 
+      <item>with-standard-io-syntax</item> 
+      <item>write</item> 
+      <item>write-byte</item> 
+      <item>write-char</item> 
+      <item>write-line</item> 
+      <item>write-sequence</item> 
+      <item>write-string</item> 
+      <item>write-to-string</item> 
+      <item>yes-or-no-p</item> 
+      <item>y-or-n-p</item> 
+      <item>zerop</item> 
+    </list>
+
+    <list name="modifiers">
+      <item>:abort</item> 
+      <item>:adjustable</item> 
+      <item>:append</item> 
+      <item>:array</item> 
+      <item>:base</item> 
+      <item>:case</item> 
+      <item>:circle</item> 
+      <item>:conc-name</item> 
+      <item>:constructor</item> 
+      <item>:copier</item> 
+      <item>:count</item> 
+      <item>:create</item> 
+      <item>:default</item> 
+      <item>:defaults</item> 
+      <item>:device</item> 
+      <item>:direction</item> 
+      <item>:directory</item> 
+      <item>:displaced-index-offset</item> 
+      <item>:displaced-to</item> 
+      <item>:element-type</item> 
+      <item>:end1</item> 
+      <item>:end2</item> 
+      <item>:end</item> 
+      <item>:error</item> 
+      <item>:escape</item> 
+      <item>:external</item> 
+      <item>:from-end</item> 
+      <item>:gensym</item> 
+      <item>:host</item> 
+      <item>:if-does-not-exist:pretty</item> 
+      <item>:if-exists:print</item> 
+      <item>:include:print-function</item> 
+      <item>:index</item> 
+      <item>:inherited</item> 
+      <item>:initial-contents</item> 
+      <item>:initial-element</item> 
+      <item>:initial-offset</item> 
+      <item>:initial-value</item> 
+      <item>:input</item> 
+      <item>:internal:size</item> 
+      <item>:io</item> 
+      <item>:junk-allowed</item> 
+      <item>:key</item> 
+      <item>:length</item> 
+      <item>:level</item> 
+      <item>:named</item> 
+      <item>:name</item> 
+      <item>:new-version</item> 
+      <item>:nicknames</item> 
+      <item>:output-file</item> 
+      <item>:output</item> 
+      <item>:overwrite</item> 
+      <item>:predicate</item> 
+      <item>:preserve-whitespace</item> 
+      <item>:probe</item> 
+      <item>:radix</item> 
+      <item>:read-only</item> 
+      <item>:rehash-size</item> 
+      <item>:rehash-threshold</item> 
+      <item>:rename-and-delete</item> 
+      <item>:rename</item> 
+      <item>:start1</item> 
+      <item>:start2</item> 
+      <item>:start</item> 
+      <item>:stream</item> 
+      <item>:supersede</item> 
+      <item>:test</item> 
+      <item>:test-not</item> 
+      <item>:type</item> 
+      <item>:use</item> 
+      <item>:verbose</item> 
+      <item>:version</item> 
+    </list>
+    <list name="variables">
+      <item>*applyhook*</item>
+      <item>*break-on-signals*</item>
+      <item>*break-on-signals*</item>
+      <item>*break-on-warnings*</item>
+      <item>*compile-file-pathname*</item>
+      <item>*compile-file-pathname*</item>
+      <item>*compile-file-truename*</item>
+      <item>*compile-file-truename*</item>
+      <item>*compile-print*</item>
+      <item>*compile-verbose*</item>
+      <item>*compile-verbose*</item>
+      <item>*debugger-hook*</item>
+      <item>*debug-io*</item>
+      <item>*default-pathname-defaults*</item>
+      <item>*error-output*</item>
+      <item>*evalhook*</item>
+      <item>*features*</item>
+      <item>*gensym-counter*</item>
+      <item>*load-pathname*</item>
+      <item>*load-print*</item>
+      <item>*load-truename*</item>
+      <item>*load-verbose*</item>
+      <item>*macroexpand-hook*</item>
+      <item>*modules*</item>
+      <item>*package*</item>
+      <item>*print-array*</item>
+      <item>*print-base*</item>
+      <item>*print-case*</item>
+      <item>*print-circle*</item>
+      <item>*print-escape*</item>
+      <item>*print-gensym*</item>
+      <item>*print-length*</item>
+      <item>*print-level*</item>
+      <item>*print-lines*</item>
+      <item>*print-miser-width*</item>
+      <item>*print-miser-width*</item>
+      <item>*print-pprint-dispatch*</item>
+      <item>*print-pprint-dispatch*</item>
+      <item>*print-pretty*</item>
+      <item>*print-radix*</item>
+      <item>*print-readably*</item>
+      <item>*print-right-margin*</item>
+      <item>*print-right-margin*</item>
+      <item>*query-io*</item>
+      <item>*random-state*</item>
+      <item>*read-base*</item>
+      <item>*read-default-float-format*</item>
+      <item>*read-eval*</item>
+      <item>*read-suppress*</item>
+      <item>*readtable*</item>
+      <item>*standard-input*</item>
+      <item>*standard-output*</item>
+      <item>*terminal-io*</item>
+      <item>*trace-output*</item>
+    </list>
+
+    <contexts>
+      <context name="Normal" attribute="Normal" lineEndContext="#stay">
+        <RegExpr attribute="Region Marker" context="#stay" String=";+\s*BEGIN.*$" beginRegion="region"/>
+        <RegExpr attribute="Region Marker" context="#stay" String=";+\s*END.*$" endRegion="region"/>
+        <RegExpr attribute="Comment" context="#stay" String=";.*$"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="#" char1="|" beginRegion="region"/>
+        <DetectChar attribute="Brackets" context="#stay" char="("/>
+        <DetectChar attribute="Brackets" context="#stay" char=")"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Operator" context="#stay" String="symbols"/>
+        <keyword attribute="Modifier" context="#stay" String="modifiers"/>
+        <keyword attribute="Variable" context="#stay" String="variables"/>
+        <keyword attribute="Definition" context="function_decl" String="definitions"/>
+        <RegExpr attribute="Char" context="#stay" String="#\\."/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <RegExpr attribute="Char" context="SpecialNumber" String="#[bodxei]"/>
+        <RegExpr attribute="Decimal" context="#stay" String="#[tf]"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+      </context>
+      <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="|" char1="#" endRegion="region"/>
+      </context>
+      <context name="function_decl" attribute="Function" lineEndContext="#stay">
+        <RegExpr attribute="Function" context="#pop" String="\s*[A-Za-z0-9-+\&lt;\&gt;//\*]*\s*" />
+      </context>
+      <context name="SpecialNumber" attribute="Normal" lineEndContext="#pop">
+        <Float attribute="Float" context="#pop"/>
+        <Int attribute="Decimal" context="#pop"/>
+        <HlCOct attribute="BaseN" context="#pop"/>
+        <HlCHex attribute="Float" context="#pop"/>
+      </context>
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <RegExpr attribute="Char" context="#stay" String="#\\."/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal"      defStyleNum="dsNormal"/>
+      <itemData name="Keyword"     defStyleNum="dsKeyword"/>
+      <itemData name="Operator"    defStyleNum="dsOperator"/>
+      <itemData name="Modifier"    defStyleNum="dsBuiltIn"/>
+      <itemData name="Variable"    defStyleNum="dsVariable"/>
+      <itemData name="Definition"  defStyleNum="dsKeyword"/>
+      <itemData name="Data"        defStyleNum="dsDataType"/>
+      <itemData name="Decimal"     defStyleNum="dsDecVal"/>
+      <itemData name="BaseN"       defStyleNum="dsBaseN"/>
+      <itemData name="Float"       defStyleNum="dsFloat"/>
+      <itemData name="Function"    defStyleNum="dsFunction"/>
+      <itemData name="Char"        defStyleNum="dsChar"/>
+      <itemData name="String"      defStyleNum="dsString"/>
+      <itemData name="String Char" defStyleNum="dsSpecialChar"/>
+      <itemData name="Comment"     defStyleNum="dsComment"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
+      <itemData name="Brackets"    defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00" bold="1" italic="0"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" weakDeliminator="-+*?!&lt;&gt;=/:#\"/>
+    <comments>
+      <comment name="singleLine" start=";;" />
+      <comment name="multiLine" start="#|" end="|#" />
+    </comments>
+  </general>
+</language>
diff --git a/xml/cpp.xml b/xml/cpp.xml
new file mode 100644
--- /dev/null
+++ b/xml/cpp.xml
@@ -0,0 +1,2031 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+    <!ENTITY space " ">
+    <!ENTITY separators ",&#59;">
+    <!ENTITY ns_punctuators "!&#37;&space;&amp;()+-/.*&lt;=&gt;?[]{|}~^&separators;">
+]>
+<!--
+  Copyright (c) 2012 by Alex Turbov (i.zaufi@gmail.com)
+  -->
+<language
+    name="C++"
+    section="Sources"
+    version="5"
+    kateversion="5.0"
+    indenter="cstyle"
+    style="C++"
+    mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr"
+    extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.ino;*.pde;*.moc"
+    author="Alex Turbov (i.zaufi@gmail.com)"
+    license="LGPL"
+    priority="9"
+  >
+<!--
+  The main purpose of this file is to hold Qt extensions syntax in a single place,
+  so later it can be included (using IncludeRules) to other (C++ based) syntaxes.
+
+  Based on Qt 5 documentation (http://doc.qt.io/qt-5)
+-->
+<highlighting>
+  <list name="QtMacros">
+    <item>emit</item>
+    <item>signals</item>
+    <item>slots</item>
+    <item>foreach</item>
+    <item>forever</item>
+    <item>SIGNAL</item>
+    <item>SLOT</item>
+    <!-- http://doc.qt.io/qt-5/qapplication.html#macros -->
+    <item>qApp</item>
+    <!-- http://doc.qt.io/qt-5/qcoreapplication.html#macros -->
+    <item>Q_COREAPP_STARTUP_FUNCTION</item>
+    <item>Q_DECLARE_TR_FUNCTIONS</item>
+    <!-- QObject related macros from http://doc.qt.io/qt-5/qobject.html#macros -->
+    <item>QT_NO_NARROWING_CONVERSIONS_IN_CONNECT</item>
+    <item>Q_CLASSINFO</item>
+    <item>Q_DISABLE_COPY</item>
+    <item>Q_EMIT</item>
+    <item>Q_ENUM</item>
+    <item>Q_ENUMS</item>
+    <item>Q_FLAG</item>
+    <item>Q_FLAGS</item>
+    <item>Q_GADGET</item>
+    <item>Q_INTERFACES</item>
+    <item>Q_INVOKABLE</item>
+    <item>Q_OBJECT</item>
+    <item>Q_PROPERTY</item>
+    <item>Q_REVISION</item>
+    <item>Q_SET_OBJECT_NAME</item>
+    <item>Q_SIGNAL</item>
+    <item>Q_SIGNALS</item>
+    <item>Q_SLOT</item>
+    <item>Q_SLOTS</item>
+    <!-- Various macros from:
+        http://doc.qt.io/qt-5/qmetatype.html#macros
+        http://doc.qt.io/qt-5/qbytearray.html#macros
+        http://doc.qt.io/qt-5/qstring.html#macros
+        http://doc.qt.io/qt-5/qurl.html#macros
+      -->
+    <item>Q_DECLARE_ASSOCIATIVE_CONTAINER_METATYPE</item>
+    <item>Q_DECLARE_METATYPE</item>
+    <item>Q_DECLARE_OPAQUE_POINTER</item>
+    <item>Q_DECLARE_SEQUENTIAL_CONTAINER_METATYPE</item>
+    <item>Q_DECLARE_SMART_POINTER_METATYPE</item>
+    <item>QT_NO_CAST_FROM_BYTEARRAY</item>
+    <item>QT_NO_CAST_FROM_ASCII</item>
+    <item>QT_NO_CAST_TO_ASCII</item>
+    <item>QT_RESTRICTED_CAST_FROM_ASCII</item>
+    <item>QT_NO_URL_CAST_FROM_STRING</item>
+    <item>QT_USE_QSTRINGBUILDER</item>
+    <!-- QtTest macros: http://doc.qt.io/qt-5/qtest.html#macros -->
+    <item>QBENCHMARK</item>
+    <item>QBENCHMARK_ONCE</item>
+    <item>QCOMPARE</item>
+    <item>QEXPECT_FAIL</item>
+    <item>QFAIL</item>
+    <item>QFETCH</item>
+    <item>QFINDTESTDATA</item>
+    <item>QSKIP</item>
+    <item>QTEST</item>
+    <item>QTEST_APPLESS_MAIN</item>
+    <item>QTEST_GUILESS_MAIN</item>
+    <item>QTEST_MAIN</item>
+    <item>QTRY_COMPARE</item>
+    <item>QTRY_COMPARE_WITH_TIMEOUT</item>
+    <item>QTRY_VERIFY2</item>
+    <item>QTRY_VERIFY</item>
+    <item>QTRY_VERIFY2_WITH_TIMEOUT</item>
+    <item>QTRY_VERIFY_WITH_TIMEOUT</item>
+    <item>QVERIFY2</item>
+    <item>QVERIFY</item>
+    <item>QVERIFY_EXCEPTION_THROWN</item>
+    <item>QWARN</item>
+    <!-- http://doc.qt.io/qt-5/qaxfactory.html#macros -->
+    <item>QAXCLASS</item>
+    <item>QAXFACTORY_BEGIN</item>
+    <item>QAXFACTORY_DEFAULT</item>
+    <item>QAXFACTORY_END</item>
+    <item>QAXFACTORY_EXPORT</item>
+    <item>QAXTYPE</item>
+    <!-- http://doc.qt.io/qt-5/qdesignercustomwidgetinterface.html#macros -->
+    <item>QDESIGNER_WIDGET_EXPORT</item>
+    <!-- http://doc.qt.io/qt-5/qqmlengine.html#macros -->
+    <item>QML_DECLARE_TYPE</item>
+    <item>QML_DECLARE_TYPEINFO</item>
+    <!-- http://doc.qt.io/qt-5/qmetaobject.html#macros -->
+    <item>Q_ARG</item>
+    <item>Q_RETURN_ARG</item>
+    <!-- http://doc.qt.io/qt-5/qatomicpointer.html#macros -->
+    <item>Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_ALWAYS_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_NOT_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_SOMETIMES_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_FETCH_AND_ADD_IS_WAIT_FREE</item>
+    <item>Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_ALWAYS_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_NOT_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_SOMETIMES_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_FETCH_AND_STORE_IS_WAIT_FREE</item>
+    <item>Q_ATOMIC_POINTER_TEST_AND_SET_IS_ALWAYS_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_TEST_AND_SET_IS_NOT_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_TEST_AND_SET_IS_SOMETIMES_NATIVE</item>
+    <item>Q_ATOMIC_POINTER_TEST_AND_SET_IS_WAIT_FREE</item>
+    <!-- http://doc.qt.io/qt-5/qextensionmanager.html#macros -->
+    <item>Q_DECLARE_EXTENSION_INTERFACE</item>
+    <!-- http://doc.qt.io/qt-5/qtplugin.html#macros -->
+    <item>Q_DECLARE_INTERFACE</item>
+    <item>Q_IMPORT_PLUGIN</item>
+    <item>Q_PLUGIN_METADATA</item>
+    <!-- http://doc.qt.io/qt-5/qdbusabstractadaptor.html#macros -->
+    <item>Q_NOREPLY</item>
+    <!-- http://doc.qt.io/qt-5/qscriptengine.html#macros -->
+    <item>Q_SCRIPT_DECLARE_QMETAOBJECT</item>
+    <!-- http://doc.qt.io/qt-5/qwidget.html#macros -->
+    <item>QWIDGETSIZE_MAX</item>
+    <!-- List of Qt macros obtained by
+         part/syntax/data/get-Qt-macros.sh for qglobal.h qfeatures.h qconfig.h
+      -->
+    <item>QT_ASCII_CAST_WARN</item>
+    <item>QT_CATCH</item>
+    <item>QT_COMPILER_SUPPORTS_AVX</item>
+    <item>QT_COMPILER_SUPPORTS_AVX2</item>
+    <item>QT_COMPILER_SUPPORTS_SSE2</item>
+    <item>QT_COMPILER_SUPPORTS_SSE3</item>
+    <item>QT_COMPILER_SUPPORTS_SSE4_1</item>
+    <item>QT_COMPILER_SUPPORTS_SSE4_2</item>
+    <item>QT_COMPILER_SUPPORTS_SSSE3</item>
+    <item>QT_DEBUG</item>
+    <item>QT_DEPRECATED</item>
+    <item>QT_DEPRECATED_CONSTRUCTOR</item>
+    <item>QT_DEPRECATED_SINCE</item>
+    <item>QT_DEPRECATED_VARIABLE</item>
+    <item>QT_DEPRECATED_X</item>
+    <item>QT_DISABLE_DEPRECATED_BEFORE</item>
+    <item>QT_EMULATED_ALIGNOF</item>
+    <item>QT_ENSURE_STACK_ALIGNED_FOR_SSE</item>
+    <item>QT_FASTCALL</item>
+    <item>QT_FORWARD_DECLARE_CLASS</item>
+    <item>QT_FORWARD_DECLARE_STRUCT</item>
+    <item>QT_IOS_DEPLOYMENT_TARGET_BELOW</item>
+    <item>QT_IOS_PLATFORM_SDK_EQUAL_OR_ABOVE</item>
+    <item>QT_LARGEFILE_SUPPORT</item>
+    <item>QT_LINKED_OPENSSL</item>
+    <item>QT_MAC_DEPLOYMENT_TARGET_BELOW</item>
+    <item>QT_MAC_PLATFORM_SDK_EQUAL_OR_ABOVE</item>
+    <item>QT_MOC_COMPAT</item>
+    <item>QT_MODULE</item>
+    <item>QT_NO_ACCESSIBILITY</item>
+    <item>QT_NO_ANIMATION</item>
+    <item>QT_NO_BEARERMANAGEMENT</item>
+    <item>QT_NO_BIG_CODECS</item>
+    <item>QT_NO_BUTTONGROUP</item>
+    <item>QT_NO_CALENDARWIDGET</item>
+    <item>QT_NO_CODECS</item>
+    <item>QT_NO_COLORDIALOG</item>
+    <item>QT_NO_COLUMNVIEW</item>
+    <item>QT_NO_COMBOBOX</item>
+    <item>QT_NO_COMPLETER</item>
+    <item>QT_NO_CONTEXTMENU</item>
+    <item>QT_NO_CRASHHANDLER</item>
+    <item>QT_NO_CUPS</item>
+    <item>QT_NO_DATAWIDGETMAPPER</item>
+    <item>QT_NO_DATESTRING</item>
+    <item>QT_NO_DATETIMEEDIT</item>
+    <item>QT_NO_DBUS</item>
+    <item>QT_NO_DIAL</item>
+    <item>QT_NO_DIRMODEL</item>
+    <item>QT_NO_DOCKWIDGET</item>
+    <item>QT_NO_DRAGANDDROP</item>
+    <item>QT_NO_ERRORMESSAGE</item>
+    <item>QT_NO_EXCEPTIONS</item>
+    <item>QT_NO_FILEDIALOG</item>
+    <item>QT_NO_FILESYSTEMWATCHER</item>
+    <item>QT_NO_FONTCOMBOBOX</item>
+    <item>QT_NO_FONTDIALOG</item>
+    <item>QT_NO_FSCOMPLETER</item>
+    <item>QT_NO_FTP</item>
+    <item>QT_NO_GRAPHICSEFFECT</item>
+    <item>QT_NO_GRAPHICSVIEW</item>
+    <item>QT_NO_ICONV</item>
+    <item>QT_NO_IDENTITYPROXYMODEL</item>
+    <item>QT_NO_IM</item>
+    <item>QT_NO_IMAGEFORMATPLUGIN</item>
+    <item>QT_NO_IMAGEFORMAT_JPEG</item>
+    <item>QT_NO_INPUTDIALOG</item>
+    <item>QT_NO_ITEMVIEWS</item>
+    <item>QT_NO_KEYSEQUENCEEDIT</item>
+    <item>QT_NO_LISTVIEW</item>
+    <item>QT_NO_LISTWIDGET</item>
+    <item>QT_NO_LOCALSERVER</item>
+    <item>QT_NO_MAINWINDOW</item>
+    <item>QT_NO_MDIAREA</item>
+    <item>QT_NO_MENU</item>
+    <item>QT_NO_MENUBAR</item>
+    <item>QT_NO_MULTIPROCESS</item>
+    <item>QT_NO_NETWORKDISKCACHE</item>
+    <item>QT_NO_NETWORKPROXY</item>
+    <item>QT_NO_OPENVG</item>
+    <item>QT_NO_PAINT_DEBUG</item>
+    <item>QT_NO_PDF</item>
+    <item>QT_NO_PRINTDIALOG</item>
+    <item>QT_NO_PRINTER</item>
+    <item>QT_NO_PRINTPREVIEWDIALOG</item>
+    <item>QT_NO_PRINTPREVIEWWIDGET</item>
+    <item>QT_NO_PROCESS</item>
+    <item>QT_NO_PROGRESSDIALOG</item>
+    <item>QT_NO_PROXYMODEL</item>
+    <item>QT_NO_SCROLLAREA</item>
+    <item>QT_NO_SCROLLBAR</item>
+    <item>QT_NO_SHAREDMEMORY</item>
+    <item>QT_NO_SOCKETNOTIFIER</item>
+    <item>QT_NO_SOCKS5</item>
+    <item>QT_NO_SORTFILTERPROXYMODEL</item>
+    <item>QT_NO_SPINBOX</item>
+    <item>QT_NO_SPLITTER</item>
+    <item>QT_NO_STANDARDITEMMODEL</item>
+    <item>QT_NO_STATEMACHINE</item>
+    <item>QT_NO_STRINGLISTMODEL</item>
+    <item>QT_NO_STYLE_FUSION</item>
+    <item>QT_NO_STYLE_STYLESHEET</item>
+    <item>QT_NO_STYLE_WINDOWSCE</item>
+    <item>QT_NO_STYLE_WINDOWSMOBILE</item>
+    <item>QT_NO_STYLE_WINDOWSVISTA</item>
+    <item>QT_NO_STYLE_WINDOWSXP</item>
+    <item>QT_NO_SYNTAXHIGHLIGHTER</item>
+    <item>QT_NO_SYSTEMSEMAPHORE</item>
+    <item>QT_NO_TABBAR</item>
+    <item>QT_NO_TABLEVIEW</item>
+    <item>QT_NO_TABLEWIDGET</item>
+    <item>QT_NO_TABWIDGET</item>
+    <item>QT_NO_TEXTBROWSER</item>
+    <item>QT_NO_TEXTEDIT</item>
+    <item>QT_NO_TEXTODFWRITER</item>
+    <item>QT_NO_TOOLBAR</item>
+    <item>QT_NO_TOOLBOX</item>
+    <item>QT_NO_TOOLBUTTON</item>
+    <item>QT_NO_TREEVIEW</item>
+    <item>QT_NO_TREEWIDGET</item>
+    <item>QT_NO_UNDOGROUP</item>
+    <item>QT_NO_UNDOSTACK</item>
+    <item>QT_NO_UNDOVIEW</item>
+    <item>QT_NO_UNSHARABLE_CONTAINERS</item>
+    <item>QT_NO_WARNINGS</item>
+    <item>QT_NO_WHATSTHIS</item>
+    <item>QT_NO_WIZARD</item>
+    <item>QT_NO_XMLSTREAMREADER</item>
+    <item>QT_NO_XMLSTREAMWRITER</item>
+    <item>QT_NO_ZLIB</item>
+    <item>QT_OSX_DEPLOYMENT_TARGET_BELOW</item>
+    <item>QT_OSX_PLATFORM_SDK_EQUAL_OR_ABOVE</item>
+    <item>QT_POINTER_SIZE</item>
+    <item>QT_PREPEND_NAMESPACE</item>
+    <item>QT_QPA_DEFAULT_PLATFORM_NAME</item>
+    <item>QT_REDUCE_RELOCATIONS</item>
+    <item>QT_REQUIRE_VERSION</item>
+    <item>QT_RETHROW</item>
+    <item>QT_SHARED</item>
+    <item>QT_STATIC</item>
+    <item>QT_STRINGIFY</item>
+    <item>QT_STRINGIFY2</item>
+    <item>QT_SUPPORTS</item>
+    <item>QT_TERMINATE_ON_EXCEPTION</item>
+    <item>QT_THREADSAFE_CLOEXEC</item>
+    <item>QT_THROW</item>
+    <item>QT_TRANSLATE_NOOP</item>
+    <item>QT_TRANSLATE_NOOP3</item>
+    <item>QT_TRANSLATE_NOOP3_UTF8</item>
+    <item>QT_TRANSLATE_NOOP_UTF8</item>
+    <item>QT_TRID_NOOP</item>
+    <item>QT_TRY</item>
+    <item>QT_TR_NOOP</item>
+    <item>QT_TR_NOOP_UTF8</item>
+    <item>QT_USE_NAMESPACE</item>
+    <item>QT_VERSION</item>
+    <item>QT_VERSION_CHECK</item>
+    <item>QT_VERSION_MAJOR</item>
+    <item>QT_VERSION_MINOR</item>
+    <item>QT_VERSION_PATCH</item>
+    <item>QT_VERSION_STR</item>
+    <item>QT_VISIBILITY_AVAILABLE</item>
+    <item>QT_WIN_CALLBACK</item>
+    <item>Q_ALIGNOF</item>
+    <item>Q_ALWAYS_INLINE</item>
+    <item>Q_ASSERT</item>
+    <item>Q_ASSERT_X</item>
+    <item>Q_ASSUME</item>
+    <item>Q_ATTRIBUTE_FORMAT_PRINTF</item>
+    <item>Q_BIG_ENDIAN</item>
+    <item>Q_BYTE_ORDER</item>
+    <item>Q_CC_BOR</item>
+    <item>Q_CC_CDS</item>
+    <item>Q_CC_COMEAU</item>
+    <item>Q_CC_DEC</item>
+    <item>Q_CC_EDG</item>
+    <item>Q_CC_GHS</item>
+    <item>Q_CC_GNU</item>
+    <item>Q_CC_HIGHC</item>
+    <item>Q_CC_HPACC</item>
+    <item>Q_CC_INTEL</item>
+    <item>Q_CC_KAI</item>
+    <item>Q_CC_MIPS</item>
+    <item>Q_CC_MSVC</item>
+    <item>Q_CC_OC</item>
+    <item>Q_CC_PGI</item>
+    <item>Q_CC_SUN</item>
+    <item>Q_CC_SYM</item>
+    <item>Q_CC_USLC</item>
+    <item>Q_CC_WAT</item>
+    <item>Q_CHECK_PTR</item>
+    <item>Q_CHECK_PTRx</item>
+    <item>Q_CLEANUP_RESOURCE</item>
+    <item>Q_CONSTRUCTOR_FUNCTION</item>
+    <item>Q_CONSTRUCTOR_FUNCTION0</item>
+    <item>Q_D</item>
+    <item>Q_DECLARE_PRIVATE</item>
+    <item>Q_DECLARE_PRIVATE_D</item>
+    <item>Q_DECLARE_PUBLIC</item>
+    <item>Q_DECLARE_TYPEINFO</item>
+    <item>Q_DECL_CONSTEXPR</item>
+    <item>Q_DECL_EXPORT</item>
+    <item>Q_DECL_FINAL</item>
+    <item>Q_DECL_IMPORT</item>
+    <item>Q_DECL_NOEXCEPT</item>
+    <item>Q_DECL_NOEXCEPT_EXPR</item>
+    <item>Q_DECL_NOTHROW</item>
+    <item>Q_DECL_OVERRIDE</item>
+    <item>Q_DECL_RELAXED_CONSTEXPR</item>
+    <item>Q_DESTRUCTOR_FUNCTION</item>
+    <item>Q_DESTRUCTOR_FUNCTION0</item>
+    <item>Q_DISABLE_COPY</item>
+    <item>Q_DUMMY_COMPARISON_OPERATOR</item>
+    <item>Q_FALLTHROUGH</item>
+    <item>Q_FOREACH</item>
+    <item>Q_FOREVER</item>
+    <item>Q_FORWARD_DECLARE_CF_TYPE</item>
+    <item>Q_FORWARD_DECLARE_MUTABLE_CF_TYPE</item>
+    <item>Q_FORWARD_DECLARE_OBJC_CLASS</item>
+    <item>Q_FUNC_INFO</item>
+    <item>Q_INIT_RESOURCE</item>
+    <item>Q_INLINE_TEMPLATE</item>
+    <item>Q_INT64_C</item>
+    <item>Q_LIKELY</item>
+    <item>Q_LITTLE_ENDIAN</item>
+    <item>Q_NEVER_INLINE</item>
+    <item>Q_OF_ELF</item>
+    <item>Q_OF_MACH_O</item>
+    <item>Q_OS_AIX</item>
+    <item>Q_OS_ANDROID</item>
+    <item>Q_OS_BSD4</item>
+    <item>Q_OS_BSDI</item>
+    <item>Q_OS_CYGWIN</item>
+    <item>Q_OS_DARWIN</item>
+    <item>Q_OS_DGUX</item>
+    <item>Q_OS_DYNIX</item>
+    <item>Q_OS_FREEBSD</item>
+    <item>Q_OS_HPUX</item>
+    <item>Q_OS_HURD</item>
+    <item>Q_OS_IOS</item>
+    <item>Q_OS_IRIX</item>
+    <item>Q_OS_LINUX</item>
+    <item>Q_OS_LYNX</item>
+    <item>Q_OS_MAC</item>
+    <item>Q_OS_MACOS</item>
+    <item>Q_OS_NETBSD</item>
+    <item>Q_OS_OPENBSD</item>
+    <item>Q_OS_OSF</item>
+    <item>Q_OS_OSX</item>
+    <item>Q_OS_QNX</item>
+    <item>Q_OS_RELIANT</item>
+    <item>Q_OS_SCO</item>
+    <item>Q_OS_SOLARIS</item>
+    <item>Q_OS_TVOS</item>
+    <item>Q_OS_ULTRIX</item>
+    <item>Q_OS_UNIX</item>
+    <item>Q_OS_UNIXWARE</item>
+    <item>Q_OS_WATCHOS</item>
+    <item>Q_OS_WIN</item>
+    <item>Q_OS_WIN32</item>
+    <item>Q_OS_WIN64</item>
+    <item>Q_OS_WINPHONE</item>
+    <item>Q_OS_WINRT</item>
+    <item>Q_OUTOFLINE_TEMPLATE</item>
+    <item>Q_PROCESSOR_ALPHA</item>
+    <item>Q_PROCESSOR_ARM</item>
+    <item>Q_PROCESSOR_ARM_V5</item>
+    <item>Q_PROCESSOR_ARM_V6</item>
+    <item>Q_PROCESSOR_ARM_V7</item>
+    <item>Q_PROCESSOR_AVR32</item>
+    <item>Q_PROCESSOR_BLACKFIN</item>
+    <item>Q_PROCESSOR_IA64</item>
+    <item>Q_PROCESSOR_MIPS</item>
+    <item>Q_PROCESSOR_MIPS_32</item>
+    <item>Q_PROCESSOR_MIPS_64</item>
+    <item>Q_PROCESSOR_MIPS_I</item>
+    <item>Q_PROCESSOR_MIPS_II</item>
+    <item>Q_PROCESSOR_MIPS_III</item>
+    <item>Q_PROCESSOR_MIPS_IV</item>
+    <item>Q_PROCESSOR_MIPS_V</item>
+    <item>Q_PROCESSOR_POWER</item>
+    <item>Q_PROCESSOR_POWER_32</item>
+    <item>Q_PROCESSOR_POWER_64</item>
+    <item>Q_PROCESSOR_S390</item>
+    <item>Q_PROCESSOR_S390_X</item>
+    <item>Q_PROCESSOR_SH</item>
+    <item>Q_PROCESSOR_SH_4A</item>
+    <item>Q_PROCESSOR_SPARC</item>
+    <item>Q_PROCESSOR_SPARC_V9</item>
+    <item>Q_PROCESSOR_X86</item>
+    <item>Q_PROCESSOR_X86_32</item>
+    <item>Q_PROCESSOR_X86_64</item>
+    <item>Q_Q</item>
+    <item>Q_STATIC_ASSERT</item>
+    <item>Q_STATIC_ASSERT_PRIVATE_JOIN</item>
+    <item>Q_STATIC_ASSERT_PRIVATE_JOIN_IMPL</item>
+    <item>Q_STATIC_ASSERT_X</item>
+    <item>Q_UINT64_C</item>
+    <item>Q_UNIMPLEMENTED</item>
+    <item>Q_UNLIKELY</item>
+    <item>Q_UNREACHABLE</item>
+    <item>Q_UNUSED</item>
+    <!-- arguments for Q_DECLARE_TYPEINFO, not really macros but good if highlighted like that -->
+    <item>Q_COMPLEX_TYPE</item>
+    <item>Q_PRIMITIVE_TYPE</item>
+    <item>Q_STATIC_TYPE</item>
+    <item>Q_MOVABLE_TYPE</item>
+    <item>Q_DUMMY_TYPE</item>
+    <item>Q_RELOCATABLE_TYPE</item>
+  </list>
+
+  <list name="QtFunc">
+    <!-- Global functions list from http://doc.qt.io/qt-5/qobject.html#static-public-members -->
+    <item>connect</item>
+    <item>disconnect</item>
+    <item>staticMetaObject</item>
+    <item>tr</item>
+    <item>trUtf8</item>
+    <!-- Global functions list from http://doc.qt.io/qt-5/qobject.html#related-non-members -->
+    <item>qFindChildren</item>
+    <item>qobject_cast</item>
+    <!-- Global functions list http://doc.qt.io/qt-5/qtglobal.html -->
+    <item>qAbs</item>
+    <item>qAsConst</item>
+    <item>qBound</item>
+    <item>qConstOverload</item>
+    <item>qCritical</item>
+    <item>qDebug</item>
+    <item>qEnvironmentVariableIntValue</item>
+    <item>qEnvironmentVariableIsEmpty</item>
+    <item>qEnvironmentVariableIsSet</item>
+    <item>qFloatDistance</item>
+    <item>qFormatLogMessage</item>
+    <item>qFatal</item>
+    <item>qFuzzyCompare</item>
+    <item>qFuzzyIsNull</item>
+    <item>qInfo</item>
+    <item>qMove</item>
+    <item>qInstallMessageHandler</item>
+    <item>qIsFinite</item>
+    <item>qIsInf</item>
+    <item>qIsNaN</item>
+    <item>qMakePair</item>
+    <item>qMax</item>
+    <item>qMin</item>
+    <item>qNonConstOverload</item>
+    <item>qOverload</item>
+    <item>qPrintable</item>
+    <item>qQNaN</item>
+    <item>qUtf16Printable</item>
+    <item>qUtf8Printable</item>
+    <item>qRound64</item>
+    <item>qRound</item>
+    <item>qSNaN</item>
+    <item>qSetMessagePattern</item>
+    <item>qVersion</item>
+    <item>qWarning</item>
+    <item>q_check_ptr</item>
+    <item>qgetenv</item>
+    <item>qrand</item>
+    <item>qsrand</item>
+    <item>qtTrId</item>
+    <item>qt_set_sequence_auto_mnemonic</item>
+      <!-- Global functions list from http://qt-project.org/doc/qt-4.8/qtalgorithms.html -->
+    <item>qCountLeadingZeroBits</item>
+    <item>qCountTrailingZeroBits</item>
+    <item>qBinaryFind</item>
+    <item>qCopy</item>
+    <item>qCopyBackward</item>
+    <item>qCount</item>
+    <item>qDeleteAll</item>
+    <item>qPopulationCount</item>
+    <item>qEqual</item>
+    <item>qFill</item>
+    <item>qFind</item>
+    <item>qGreater</item>
+    <item>qLess</item>
+    <item>qLowerBound</item>
+    <item>qSort</item>
+    <item>qStableSort</item>
+    <item>qSwap</item>
+    <item>qUpperBound</item>
+    <!-- Related non-members from http://doc.qt.io/qt-5/qbytearray.html#related-non-members -->
+    <item>qChecksum</item>
+    <item>qCompress</item>
+    <item>qUncompress</item>
+    <item>qsnprintf</item>
+    <item>qstrcmp</item>
+    <item>qstrcpy</item>
+    <item>qstrdup</item>
+    <item>qstricmp</item>
+    <item>qstrlen</item>
+    <item>qstrncmp</item>
+    <item>qstrncpy</item>
+    <item>qstrnicmp</item>
+    <item>qstrnlen</item>
+    <item>qvsnprintf</item>
+    <!-- http://doc.qt.io/qt-5/qhash.html#related-non-members -->
+    <item>qGlobalQHashSeed</item>
+    <item>qHash</item>
+    <item>qHashBits</item>
+    <item>qHashRange</item>
+    <item>qHashRangeCommutative</item>
+    <item>qSetGlobalQHashSeed</item>
+    <!-- http://doc.qt.io/qt-5/qmetatype.html#related-non-members -->
+    <item>qMetaTypeId</item>
+    <item>qRegisterMetaType</item>
+    <item>qRegisterMetaTypeStreamOperators</item>
+    <!-- http://doc.qt.io/qt-5/qcolor.html#related-non-members -->
+    <item>qAlpha</item>
+    <item>qBlue</item>
+    <item>qGray</item>
+    <item>qGreen</item>
+    <item>qPremultiply</item>
+    <item>qRed</item>
+    <item>qRgb</item>
+    <item>qRgba</item>
+    <item>qRgba</item>
+    <item>qRgba64</item>
+    <item>qUnpremultiply</item>
+    <!-- http://doc.qt.io/qt-5/qcoreapplication.html#related-non-members -->
+    <item>qAddPostRoutine</item>
+    <item>qRemovePostRoutine</item>
+    <!-- http://doc.qt.io/qt-5/qqmlengine.html#related-non-members -->
+    <item>qmlAttachedPropertiesObject</item>
+    <item>qmlClearTypeRegistrations</item>
+    <item>qmlContext</item>
+    <item>qmlEngine</item>
+    <item>qmlInfo</item>
+    <item>qmlProtectModule</item>
+    <item>qmlRegisterExtendedType</item>
+    <item>qmlRegisterExtendedUncreatableType</item>
+    <item>qmlRegisterInterface</item>
+    <item>qmlRegisterRevision</item>
+    <item>qmlRegisterSingletonType</item>
+    <item>qmlRegisterType</item>
+    <item>qmlRegisterTypeNotAvailable</item>
+    <item>qmlRegisterUncreatableType</item>
+    <!-- http://doc.qt.io/qt-5/qextensionmanager.html#related-non-members -->
+    <item>qt_extension</item>
+    <!-- http://doc.qt.io/qt-5/qdbusargument.html#related-non-members -->
+    <item>qDBusRegisterMetaType</item>
+    <item>qdbus_cast</item>
+  </list>
+
+  <!-- Types list from http://doc.qt.io/qt-5/qtglobal.html -->
+  <list name="QtTypes">
+    <item>QtFunctionPointer</item>
+    <item>QtMessageHandler</item>
+    <item>QtMsgType</item>
+    <item>qint8</item>
+    <item>qint16</item>
+    <item>qint32</item>
+    <item>qint64</item>
+    <item>qlonglong</item>
+    <item>qptrdiff</item>
+    <item>qreal</item>
+    <item>quint8</item>
+    <item>quint16</item>
+    <item>quint32</item>
+    <item>quint64</item>
+    <item>quintptr</item>
+    <item>qulonglong</item>
+    <item>uchar</item>
+    <item>uint</item>
+    <item>ulong</item>
+    <item>ushort</item>
+    <!-- http://doc.qt.io/qt-5/qprocess.html#Q_PID-typedef -->
+    <item>Q_PID</item>
+    <!-- http://doc.qt.io/qt-5/qcolor.html#related-non-members -->
+    <item>QRgb</item>
+    <!-- http://doc.qt.io/qt-5/qscriptengine.html#related-non-members -->
+    <item>qScriptConnect</item>
+    <item>qScriptDisconnect</item>
+    <item>qScriptRegisterMetaType</item>
+    <item>qScriptRegisterSequenceMetaType</item>
+    <item>qScriptValueFromSequence</item>
+    <item>qScriptValueToSequence</item>
+  </list>
+
+  <!-- List of Qt5 classes, obtained from http://doc.qt.io/qt-5/classes.html -->
+  <list name="QtClasses">
+    <!-- Extracted with regular expression  Q[A-Z0-9][A-Za-z0-9]*  -->
+    <item>Q3DBars</item>
+    <item>Q3DCamera</item>
+    <item>Q3DInputHandler</item>
+    <item>Q3DLight</item>
+    <item>Q3DObject</item>
+    <item>Q3DScatter</item>
+    <item>Q3DScene</item>
+    <item>Q3DSurface</item>
+    <item>Q3DTheme</item>
+    <item>QAbstract3DAxis</item>
+    <item>QAbstract3DGraph</item>
+    <item>QAbstract3DInputHandler</item>
+    <item>QAbstract3DSeries</item>
+    <item>QAbstractAnimation</item>
+    <item>QAbstractAxis</item>
+    <item>QAbstractBarSeries</item>
+    <item>QAbstractButton</item>
+    <item>QAbstractDataProxy</item>
+    <item>QAbstractEventDispatcher</item>
+    <item>QAbstractExtensionFactory</item>
+    <item>QAbstractExtensionManager</item>
+    <item>QAbstractFormBuilder</item>
+    <item>QAbstractGraphicsShapeItem</item>
+    <item>QAbstractItemDelegate</item>
+    <item>QAbstractItemModel</item>
+    <item>QAbstractItemView</item>
+    <item>QAbstractListModel</item>
+    <item>QAbstractMessageHandler</item>
+    <item>QAbstractNativeEventFilter</item>
+    <item>QAbstractNetworkCache</item>
+    <item>QAbstractOAuth</item>
+    <item>QAbstractOAuth2</item>
+    <item>QAbstractOAuthReplyHandler</item>
+    <item>QAbstractOpenGLFunctions</item>
+    <item>QAbstractPlanarVideoBuffer</item>
+    <item>QAbstractPrintDialog</item>
+    <item>QAbstractProxyModel</item>
+    <item>QAbstractScrollArea</item>
+    <item>QAbstractSeries</item>
+    <item>QAbstractSlider</item>
+    <item>QAbstractSocket</item>
+    <item>QAbstractSpinBox</item>
+    <item>QAbstractState</item>
+    <item>QAbstractTableModel</item>
+    <item>QAbstractTextDocumentLayout</item>
+    <item>QAbstractTransition</item>
+    <item>QAbstractUriResolver</item>
+    <item>QAbstractVideoBuffer</item>
+    <item>QAbstractVideoFilter</item>
+    <item>QAbstractVideoSurface</item>
+    <item>QAbstractXmlNodeModel</item>
+    <item>QAbstractXmlReceiver</item>
+    <item>QAccelerometer</item>
+    <item>QAccelerometerFilter</item>
+    <item>QAccelerometerReading</item>
+    <item>QAccessible</item>
+    <item>QAccessibleActionInterface</item>
+    <item>QAccessibleEditableTextInterface</item>
+    <item>QAccessibleEvent</item>
+    <item>QAccessibleInterface</item>
+    <item>QAccessibleObject</item>
+    <item>QAccessiblePlugin</item>
+    <item>QAccessibleStateChangeEvent</item>
+    <item>QAccessibleTableCellInterface</item>
+    <item>QAccessibleTableInterface</item>
+    <item>QAccessibleTableModelChangeEvent</item>
+    <item>QAccessibleTextCursorEvent</item>
+    <item>QAccessibleTextInsertEvent</item>
+    <item>QAccessibleTextInterface</item>
+    <item>QAccessibleTextRemoveEvent</item>
+    <item>QAccessibleTextSelectionEvent</item>
+    <item>QAccessibleTextUpdateEvent</item>
+    <item>QAccessibleValueChangeEvent</item>
+    <item>QAccessibleValueInterface</item>
+    <item>QAccessibleWidget</item>
+    <item>QAction</item>
+    <item>QActionEvent</item>
+    <item>QActionGroup</item>
+    <item>QAltimeter</item>
+    <item>QAltimeterFilter</item>
+    <item>QAltimeterReading</item>
+    <item>QAmbientLightFilter</item>
+    <item>QAmbientLightReading</item>
+    <item>QAmbientLightSensor</item>
+    <item>QAmbientTemperatureFilter</item>
+    <item>QAmbientTemperatureReading</item>
+    <item>QAmbientTemperatureSensor</item>
+    <item>QAndroidActivityResultReceiver</item>
+    <item>QAndroidJniEnvironment</item>
+    <item>QAndroidJniObject</item>
+    <item>QAnimationGroup</item>
+    <item>QApplication</item>
+    <item>QAreaLegendMarker</item>
+    <item>QAreaSeries</item>
+    <item>QAssociativeIterable</item>
+    <item>QAtomicInt</item>
+    <item>QAtomicInteger</item>
+    <item>QAtomicPointer</item>
+    <item>QAudioBuffer</item>
+    <item>QAudioDecoder</item>
+    <item>QAudioDecoderControl</item>
+    <item>QAudioDeviceInfo</item>
+    <item>QAudioEncoderSettings</item>
+    <item>QAudioEncoderSettingsControl</item>
+    <item>QAudioFormat</item>
+    <item>QAudioInput</item>
+    <item>QAudioInputSelectorControl</item>
+    <item>QAudioOutput</item>
+    <item>QAudioOutputSelectorControl</item>
+    <item>QAudioProbe</item>
+    <item>QAudioRecorder</item>
+    <item>QAudioRoleControl</item>
+    <item>QAuthenticator</item>
+    <item>QAxAggregated</item>
+    <item>QAxBase</item>
+    <item>QAxBindable</item>
+    <item>QAxFactory</item>
+    <item>QAxObject</item>
+    <item>QAxScript</item>
+    <item>QAxScriptEngine</item>
+    <item>QAxScriptManager</item>
+    <item>QAxSelect</item>
+    <item>QAxWidget</item>
+    <item>QBackingStore</item>
+    <item>QBar3DSeries</item>
+    <item>QBarCategoryAxis</item>
+    <item>QBarDataItem</item>
+    <item>QBarDataProxy</item>
+    <item>QBarLegendMarker</item>
+    <item>QBarSeries</item>
+    <item>QBarSet</item>
+    <item>QBasicTimer</item>
+    <item>QBitArray</item>
+    <item>QBitmap</item>
+    <item>QBluetoothAddress</item>
+    <item>QBluetoothDeviceDiscoveryAgent</item>
+    <item>QBluetoothDeviceInfo</item>
+    <item>QBluetoothHostInfo</item>
+    <item>QBluetoothLocalDevice</item>
+    <item>QBluetoothServer</item>
+    <item>QBluetoothServiceDiscoveryAgent</item>
+    <item>QBluetoothServiceInfo</item>
+    <item>QBluetoothSocket</item>
+    <item>QBluetoothTransferManager</item>
+    <item>QBluetoothTransferReply</item>
+    <item>QBluetoothTransferRequest</item>
+    <item>QBluetoothUuid</item>
+    <item>QBoxLayout</item>
+    <item>QBoxPlotLegendMarker</item>
+    <item>QBoxPlotSeries</item>
+    <item>QBoxSet</item>
+    <item>QBrush</item>
+    <item>QBuffer</item>
+    <item>QButtonGroup</item>
+    <item>QByteArray</item>
+    <item>QByteArrayList</item>
+    <item>QByteArrayMatcher</item>
+    <item>QCache</item>
+    <item>QCalendarWidget</item>
+    <item>QCamera</item>
+    <item>QCameraCaptureBufferFormatControl</item>
+    <item>QCameraCaptureDestinationControl</item>
+    <item>QCameraControl</item>
+    <item>QCameraExposure</item>
+    <item>QCameraExposureControl</item>
+    <item>QCameraFeedbackControl</item>
+    <item>QCameraFlashControl</item>
+    <item>QCameraFocus</item>
+    <item>QCameraFocusControl</item>
+    <item>QCameraFocusZone</item>
+    <item>QCameraImageCapture</item>
+    <item>QCameraImageCaptureControl</item>
+    <item>QCameraImageProcessing</item>
+    <item>QCameraImageProcessingControl</item>
+    <item>QCameraInfo</item>
+    <item>QCameraInfoControl</item>
+    <item>QCameraLocksControl</item>
+    <item>QCameraViewfinder</item>
+    <item>QCameraViewfinderSettings</item>
+    <item>QCameraViewfinderSettingsControl</item>
+    <item>QCameraViewfinderSettingsControl2</item>
+    <item>QCameraZoomControl</item>
+    <item>QCanBus</item>
+    <item>QCanBusDevice</item>
+    <item>QCanBusFactory</item>
+    <item>QCanBusFrame</item>
+    <item>QCandlestickLegendMarker</item>
+    <item>QCandlestickModelMapper</item>
+    <item>QCandlestickSeries</item>
+    <item>QCandlestickSet</item>
+    <item>QCategory3DAxis</item>
+    <item>QCategoryAxis</item>
+    <item>QChar</item>
+    <item>QChart</item>
+    <item>QChartView</item>
+    <item>QCheckBox</item>
+    <item>QChildEvent</item>
+    <item>QClipboard</item>
+    <item>QCloseEvent</item>
+    <item>QCocoaNativeContext</item>
+    <item>QCocoaWindowFunctions</item>
+    <item>QCollator</item>
+    <item>QCollatorSortKey</item>
+    <item>QColor</item>
+    <item>QColorDialog</item>
+    <item>QColormap</item>
+    <item>QColumnView</item>
+    <item>QComboBox</item>
+    <item>QCommandLineOption</item>
+    <item>QCommandLineParser</item>
+    <item>QCommandLinkButton</item>
+    <item>QCommonStyle</item>
+    <item>QCompass</item>
+    <item>QCompassFilter</item>
+    <item>QCompassReading</item>
+    <item>QCompleter</item>
+    <item>QConicalGradient</item>
+    <item>QContextMenuEvent</item>
+    <item>QContiguousCache</item>
+    <item>QCoreApplication</item>
+    <item>QCryptographicHash</item>
+    <item>QCursor</item>
+    <item>QCustom3DItem</item>
+    <item>QCustom3DLabel</item>
+    <item>QCustom3DVolume</item>
+    <item>QDataStream</item>
+    <item>QDataWidgetMapper</item>
+    <item>QDate</item>
+    <item>QDateEdit</item>
+    <item>QDateTime</item>
+    <item>QDateTimeAxis</item>
+    <item>QDateTimeEdit</item>
+    <item>QDBusAbstractAdaptor</item>
+    <item>QDBusAbstractInterface</item>
+    <item>QDBusArgument</item>
+    <item>QDBusConnection</item>
+    <item>QDBusConnectionInterface</item>
+    <item>QDBusContext</item>
+    <item>QDBusError</item>
+    <item>QDBusInterface</item>
+    <item>QDBusMessage</item>
+    <item>QDBusObjectPath</item>
+    <item>QDBusPendingCall</item>
+    <item>QDBusPendingCallWatcher</item>
+    <item>QDBusPendingReply</item>
+    <item>QDBusReply</item>
+    <item>QDBusServer</item>
+    <item>QDBusServiceWatcher</item>
+    <item>QDBusSignature</item>
+    <item>QDBusUnixFileDescriptor</item>
+    <item>QDBusVariant</item>
+    <item>QDBusVirtualObject</item>
+    <item>QDeadlineTimer</item>
+    <item>QDebug</item>
+    <item>QDebugStateSaver</item>
+    <item>QDesignerActionEditorInterface</item>
+    <item>QDesignerContainerExtension</item>
+    <item>QDesignerCustomWidgetCollectionInterface</item>
+    <item>QDesignerCustomWidgetInterface</item>
+    <item>QDesignerDynamicPropertySheetExtension</item>
+    <item>QDesignerFormEditorInterface</item>
+    <item>QDesignerFormWindowCursorInterface</item>
+    <item>QDesignerFormWindowInterface</item>
+    <item>QDesignerFormWindowManagerInterface</item>
+    <item>QDesignerMemberSheetExtension</item>
+    <item>QDesignerObjectInspectorInterface</item>
+    <item>QDesignerPropertyEditorInterface</item>
+    <item>QDesignerPropertySheetExtension</item>
+    <item>QDesignerTaskMenuExtension</item>
+    <item>QDesignerWidgetBoxInterface</item>
+    <item>QDesktopServices</item>
+    <item>QDesktopWidget</item>
+    <item>QDial</item>
+    <item>QDialog</item>
+    <item>QDialogButtonBox</item>
+    <item>QDir</item>
+    <item>QDirIterator</item>
+    <item>QDirModel</item>
+    <item>QDistanceFilter</item>
+    <item>QDistanceReading</item>
+    <item>QDistanceSensor</item>
+    <item>QDnsDomainNameRecord</item>
+    <item>QDnsHostAddressRecord</item>
+    <item>QDnsLookup</item>
+    <item>QDnsMailExchangeRecord</item>
+    <item>QDnsServiceRecord</item>
+    <item>QDnsTextRecord</item>
+    <item>QDockWidget</item>
+    <item>QDomAttr</item>
+    <item>QDomCDATASection</item>
+    <item>QDomCharacterData</item>
+    <item>QDomComment</item>
+    <item>QDomDocument</item>
+    <item>QDomDocumentFragment</item>
+    <item>QDomDocumentType</item>
+    <item>QDomElement</item>
+    <item>QDomEntity</item>
+    <item>QDomEntityReference</item>
+    <item>QDomImplementation</item>
+    <item>QDomNamedNodeMap</item>
+    <item>QDomNode</item>
+    <item>QDomNodeList</item>
+    <item>QDomNotation</item>
+    <item>QDomProcessingInstruction</item>
+    <item>QDomText</item>
+    <item>QDoubleSpinBox</item>
+    <item>QDoubleValidator</item>
+    <item>QDrag</item>
+    <item>QDragEnterEvent</item>
+    <item>QDragLeaveEvent</item>
+    <item>QDragMoveEvent</item>
+    <item>QDropEvent</item>
+    <item>QDynamicPropertyChangeEvent</item>
+    <item>QEasingCurve</item>
+    <item>QEglFSFunctions</item>
+    <item>QEGLNativeContext</item>
+    <item>QElapsedTimer</item>
+    <item>QEnableSharedFromThis</item>
+    <item>QEnterEvent</item>
+    <item>QErrorMessage</item>
+    <item>QEvent</item>
+    <item>QEventLoop</item>
+    <item>QEventLoopLocker</item>
+    <item>QEventTransition</item>
+    <item>QException</item>
+    <item>QExplicitlySharedDataPointer</item>
+    <item>QExposeEvent</item>
+    <item>QExtensionFactory</item>
+    <item>QExtensionManager</item>
+    <item>QFile</item>
+    <item>QFileDevice</item>
+    <item>QFileDialog</item>
+    <item>QFileIconProvider</item>
+    <item>QFileInfo</item>
+    <item>QFileOpenEvent</item>
+    <item>QFileSelector</item>
+    <item>QFileSystemModel</item>
+    <item>QFileSystemWatcher</item>
+    <item>QFinalState</item>
+    <item>QFlag</item>
+    <item>QFlags</item>
+    <item>QFocusEvent</item>
+    <item>QFocusFrame</item>
+    <item>QFont</item>
+    <item>QFontComboBox</item>
+    <item>QFontDatabase</item>
+    <item>QFontDialog</item>
+    <item>QFontInfo</item>
+    <item>QFontMetrics</item>
+    <item>QFontMetricsF</item>
+    <item>QFormBuilder</item>
+    <item>QFormLayout</item>
+    <item>QFrame</item>
+    <item>QFuture</item>
+    <item>QFutureIterator</item>
+    <item>QFutureSynchronizer</item>
+    <item>QFutureWatcher</item>
+    <item>QGamepad</item>
+    <item>QGenericArgument</item>
+    <item>QGenericMatrix</item>
+    <item>QGenericPlugin</item>
+    <item>QGenericPluginFactory</item>
+    <item>QGenericReturnArgument</item>
+    <item>QGeoAddress</item>
+    <item>QGeoAreaMonitorInfo</item>
+    <item>QGeoAreaMonitorSource</item>
+    <item>QGeoCircle</item>
+    <item>QGeoCodeReply</item>
+    <item>QGeoCodingManager</item>
+    <item>QGeoCodingManagerEngine</item>
+    <item>QGeoCoordinate</item>
+    <item>QGeoLocation</item>
+    <item>QGeoManeuver</item>
+    <item>QGeoPositionInfo</item>
+    <item>QGeoPositionInfoSource</item>
+    <item>QGeoPositionInfoSourceFactory</item>
+    <item>QGeoRectangle</item>
+    <item>QGeoRoute</item>
+    <item>QGeoRouteReply</item>
+    <item>QGeoRouteRequest</item>
+    <item>QGeoRouteSegment</item>
+    <item>QGeoRoutingManager</item>
+    <item>QGeoRoutingManagerEngine</item>
+    <item>QGeoSatelliteInfo</item>
+    <item>QGeoSatelliteInfoSource</item>
+    <item>QGeoServiceProvider</item>
+    <item>QGeoServiceProviderFactory</item>
+    <item>QGeoShape</item>
+    <item>QGesture</item>
+    <item>QGestureEvent</item>
+    <item>QGestureRecognizer</item>
+    <item>QGLBuffer</item>
+    <item>QGLColormap</item>
+    <item>QGLContext</item>
+    <item>QGLFormat</item>
+    <item>QGLFramebufferObject</item>
+    <item>QGLFramebufferObjectFormat</item>
+    <item>QGLFunctions</item>
+    <item>QGlobalStatic</item>
+    <item>QGLPixelBuffer</item>
+    <item>QGLShader</item>
+    <item>QGLShaderProgram</item>
+    <item>QGLWidget</item>
+    <item>QGLXNativeContext</item>
+    <item>QGlyphRun</item>
+    <item>QGradient</item>
+    <item>QGraphicsAnchor</item>
+    <item>QGraphicsAnchorLayout</item>
+    <item>QGraphicsBlurEffect</item>
+    <item>QGraphicsColorizeEffect</item>
+    <item>QGraphicsDropShadowEffect</item>
+    <item>QGraphicsEffect</item>
+    <item>QGraphicsEllipseItem</item>
+    <item>QGraphicsGridLayout</item>
+    <item>QGraphicsItem</item>
+    <item>QGraphicsItemAnimation</item>
+    <item>QGraphicsItemGroup</item>
+    <item>QGraphicsLayout</item>
+    <item>QGraphicsLayoutItem</item>
+    <item>QGraphicsLinearLayout</item>
+    <item>QGraphicsLineItem</item>
+    <item>QGraphicsObject</item>
+    <item>QGraphicsOpacityEffect</item>
+    <item>QGraphicsPathItem</item>
+    <item>QGraphicsPixmapItem</item>
+    <item>QGraphicsPolygonItem</item>
+    <item>QGraphicsProxyWidget</item>
+    <item>QGraphicsRectItem</item>
+    <item>QGraphicsRotation</item>
+    <item>QGraphicsScale</item>
+    <item>QGraphicsScene</item>
+    <item>QGraphicsSceneContextMenuEvent</item>
+    <item>QGraphicsSceneDragDropEvent</item>
+    <item>QGraphicsSceneEvent</item>
+    <item>QGraphicsSceneHelpEvent</item>
+    <item>QGraphicsSceneHoverEvent</item>
+    <item>QGraphicsSceneMouseEvent</item>
+    <item>QGraphicsSceneMoveEvent</item>
+    <item>QGraphicsSceneResizeEvent</item>
+    <item>QGraphicsSceneWheelEvent</item>
+    <item>QGraphicsSimpleTextItem</item>
+    <item>QGraphicsSvgItem</item>
+    <item>QGraphicsTextItem</item>
+    <item>QGraphicsTransform</item>
+    <item>QGraphicsVideoItem</item>
+    <item>QGraphicsView</item>
+    <item>QGraphicsWidget</item>
+    <item>QGridLayout</item>
+    <item>QGroupBox</item>
+    <item>QGuiApplication</item>
+    <item>QGyroscope</item>
+    <item>QGyroscopeFilter</item>
+    <item>QGyroscopeReading</item>
+    <item>QHash</item>
+    <item>QHashIterator</item>
+    <item>QHBarModelMapper</item>
+    <item>QHBoxLayout</item>
+    <item>QHBoxPlotModelMapper</item>
+    <item>QHCandlestickModelMapper</item>
+    <item>QHeaderView</item>
+    <item>QHeightMapSurfaceDataProxy</item>
+    <item>QHelpContentItem</item>
+    <item>QHelpContentModel</item>
+    <item>QHelpContentWidget</item>
+    <item>QHelpEngine</item>
+    <item>QHelpEngineCore</item>
+    <item>QHelpEvent</item>
+    <item>QHelpIndexModel</item>
+    <item>QHelpIndexWidget</item>
+    <item>QHelpSearchEngine</item>
+    <item>QHelpSearchQuery</item>
+    <item>QHelpSearchQueryWidget</item>
+    <item>QHelpSearchResultWidget</item>
+    <item>QHideEvent</item>
+    <item>QHistoryState</item>
+    <item>QHolsterFilter</item>
+    <item>QHolsterReading</item>
+    <item>QHolsterSensor</item>
+    <item>QHorizontalBarSeries</item>
+    <item>QHorizontalPercentBarSeries</item>
+    <item>QHorizontalStackedBarSeries</item>
+    <item>QHostAddress</item>
+    <item>QHostInfo</item>
+    <item>QHoverEvent</item>
+    <item>QHPieModelMapper</item>
+    <item>QHttpMultiPart</item>
+    <item>QHttpPart</item>
+    <item>QHXYModelMapper</item>
+    <item>QIcon</item>
+    <item>QIconDragEvent</item>
+    <item>QIconEngine</item>
+    <item>QIconEnginePlugin</item>
+    <item>QIdentityProxyModel</item>
+    <item>QImage</item>
+    <item>QImageEncoderControl</item>
+    <item>QImageEncoderSettings</item>
+    <item>QImageIOHandler</item>
+    <item>QImageIOPlugin</item>
+    <item>QImageReader</item>
+    <item>QImageWriter</item>
+    <item>QInAppProduct</item>
+    <item>QInAppStore</item>
+    <item>QInAppTransaction</item>
+    <item>QInputDialog</item>
+    <item>QInputEvent</item>
+    <item>QInputMethod</item>
+    <item>QInputMethodEvent</item>
+    <item>QInputMethodQueryEvent</item>
+    <item>QIntValidator</item>
+    <item>QIODevice</item>
+    <item>QIRProximityFilter</item>
+    <item>QIRProximityReading</item>
+    <item>QIRProximitySensor</item>
+    <item>QItemDelegate</item>
+    <item>QItemEditorCreator</item>
+    <item>QItemEditorCreatorBase</item>
+    <item>QItemEditorFactory</item>
+    <item>QItemModelBarDataProxy</item>
+    <item>QItemModelScatterDataProxy</item>
+    <item>QItemModelSurfaceDataProxy</item>
+    <item>QItemSelection</item>
+    <item>QItemSelectionModel</item>
+    <item>QItemSelectionRange</item>
+    <item>QJSEngine</item>
+    <item>QJsonArray</item>
+    <item>QJsonDocument</item>
+    <item>QJsonObject</item>
+    <item>QJsonParseError</item>
+    <item>QJsonValue</item>
+    <item>QJSValue</item>
+    <item>QJSValueIterator</item>
+    <item>QKeyEvent</item>
+    <item>QKeyEventTransition</item>
+    <item>QKeySequence</item>
+    <item>QKeySequenceEdit</item>
+    <item>QLabel</item>
+    <item>QLatin1Char</item>
+    <item>QLatin1String</item>
+    <item>QLayout</item>
+    <item>QLayoutItem</item>
+    <item>QLCDNumber</item>
+    <item>QLegend</item>
+    <item>QLegendMarker</item>
+    <item>QLibrary</item>
+    <item>QLibraryInfo</item>
+    <item>QLightFilter</item>
+    <item>QLightReading</item>
+    <item>QLightSensor</item>
+    <item>QLine</item>
+    <item>QLinearGradient</item>
+    <item>QLineEdit</item>
+    <item>QLineF</item>
+    <item>QLineSeries</item>
+    <item>QLinkedList</item>
+    <item>QLinkedListIterator</item>
+    <item>QList</item>
+    <item>QListIterator</item>
+    <item>QListView</item>
+    <item>QListWidget</item>
+    <item>QListWidgetItem</item>
+    <item>QLocale</item>
+    <item>QLocalServer</item>
+    <item>QLocalSocket</item>
+    <item>QLockFile</item>
+    <item>QLoggingCategory</item>
+    <item>QLogValue3DAxisFormatter</item>
+    <item>QLogValueAxis</item>
+    <item>QLowEnergyAdvertisingData</item>
+    <item>QLowEnergyAdvertisingParameters</item>
+    <item>QLowEnergyCharacteristic</item>
+    <item>QLowEnergyCharacteristicData</item>
+    <item>QLowEnergyConnectionParameters</item>
+    <item>QLowEnergyController</item>
+    <item>QLowEnergyDescriptor</item>
+    <item>QLowEnergyDescriptorData</item>
+    <item>QLowEnergyService</item>
+    <item>QLowEnergyServiceData</item>
+    <item>QMacCocoaViewContainer</item>
+    <item>QMacNativeWidget</item>
+    <item>QMacPasteboardMime</item>
+    <item>QMacToolBar</item>
+    <item>QMacToolBarItem</item>
+    <item>QMagnetometer</item>
+    <item>QMagnetometerFilter</item>
+    <item>QMagnetometerReading</item>
+    <item>QMainWindow</item>
+    <item>QMap</item>
+    <item>QMapIterator</item>
+    <item>QMargins</item>
+    <item>QMarginsF</item>
+    <item>QMaskGenerator</item>
+    <item>QMatrix</item>
+    <item>QMatrix4x4</item>
+    <item>QMdiArea</item>
+    <item>QMdiSubWindow</item>
+    <item>QMediaAudioProbeControl</item>
+    <item>QMediaAvailabilityControl</item>
+    <item>QMediaBindableInterface</item>
+    <item>QMediaContainerControl</item>
+    <item>QMediaContent</item>
+    <item>QMediaControl</item>
+    <item>QMediaGaplessPlaybackControl</item>
+    <item>QMediaNetworkAccessControl</item>
+    <item>QMediaObject</item>
+    <item>QMediaPlayer</item>
+    <item>QMediaPlayerControl</item>
+    <item>QMediaPlaylist</item>
+    <item>QMediaRecorder</item>
+    <item>QMediaRecorderControl</item>
+    <item>QMediaResource</item>
+    <item>QMediaService</item>
+    <item>QMediaServiceCameraInfoInterface</item>
+    <item>QMediaServiceDefaultDeviceInterface</item>
+    <item>QMediaServiceFeaturesInterface</item>
+    <item>QMediaServiceProviderPlugin</item>
+    <item>QMediaServiceSupportedDevicesInterface</item>
+    <item>QMediaServiceSupportedFormatsInterface</item>
+    <item>QMediaStreamsControl</item>
+    <item>QMediaTimeInterval</item>
+    <item>QMediaTimeRange</item>
+    <item>QMediaVideoProbeControl</item>
+    <item>QMenu</item>
+    <item>QMenuBar</item>
+    <item>QMessageAuthenticationCode</item>
+    <item>QMessageBox</item>
+    <item>QMessageLogContext</item>
+    <item>QMessageLogger</item>
+    <item>QMetaClassInfo</item>
+    <item>QMetaDataReaderControl</item>
+    <item>QMetaDataWriterControl</item>
+    <item>QMetaEnum</item>
+    <item>QMetaMethod</item>
+    <item>QMetaObject</item>
+    <item>QMetaProperty</item>
+    <item>QMetaType</item>
+    <item>QMimeData</item>
+    <item>QMimeDatabase</item>
+    <item>QMimeType</item>
+    <item>QModbusClient</item>
+    <item>QModbusDataUnit</item>
+    <item>QModbusDevice</item>
+    <item>QModbusDeviceIdentification</item>
+    <item>QModbusExceptionResponse</item>
+    <item>QModbusPdu</item>
+    <item>QModbusReply</item>
+    <item>QModbusRequest</item>
+    <item>QModbusResponse</item>
+    <item>QModbusRtuSerialMaster</item>
+    <item>QModbusRtuSerialSlave</item>
+    <item>QModbusServer</item>
+    <item>QModbusTcpClient</item>
+    <item>QModbusTcpServer</item>
+    <item>QModelIndex</item>
+    <item>QMouseEvent</item>
+    <item>QMouseEventTransition</item>
+    <item>QMoveEvent</item>
+    <item>QMovie</item>
+    <item>QMultiHash</item>
+    <item>QMultiMap</item>
+    <item>QMutableHashIterator</item>
+    <item>QMutableLinkedListIterator</item>
+    <item>QMutableListIterator</item>
+    <item>QMutableMapIterator</item>
+    <item>QMutableSetIterator</item>
+    <item>QMutableVectorIterator</item>
+    <item>QMutex</item>
+    <item>QMutexLocker</item>
+    <item>QNativeGestureEvent</item>
+    <item>QNdefFilter</item>
+    <item>QNdefMessage</item>
+    <item>QNdefNfcSmartPosterRecord</item>
+    <item>QNdefNfcTextRecord</item>
+    <item>QNdefNfcUriRecord</item>
+    <item>QNdefRecord</item>
+    <item>QNearFieldManager</item>
+    <item>QNearFieldShareManager</item>
+    <item>QNearFieldShareTarget</item>
+    <item>QNearFieldTarget</item>
+    <item>QNetworkAccessManager</item>
+    <item>QNetworkAddressEntry</item>
+    <item>QNetworkCacheMetaData</item>
+    <item>QNetworkConfiguration</item>
+    <item>QNetworkConfigurationManager</item>
+    <item>QNetworkCookie</item>
+    <item>QNetworkCookieJar</item>
+    <item>QNetworkDatagram</item>
+    <item>QNetworkDiskCache</item>
+    <item>QNetworkInterface</item>
+    <item>QNetworkProxy</item>
+    <item>QNetworkProxyFactory</item>
+    <item>QNetworkProxyQuery</item>
+    <item>QNetworkReply</item>
+    <item>QNetworkRequest</item>
+    <item>QNetworkSession</item>
+    <item>QNmeaPositionInfoSource</item>
+    <item>QObject</item>
+    <item>QObjectCleanupHandler</item>
+    <item>QOffscreenSurface</item>
+    <item>QOpenGLBuffer</item>
+    <item>QOpenGLContext</item>
+    <item>QOpenGLContextGroup</item>
+    <item>QOpenGLDebugLogger</item>
+    <item>QOpenGLDebugMessage</item>
+    <item>QOpenGLExtraFunctions</item>
+    <item>QOpenGLFramebufferObject</item>
+    <item>QOpenGLFramebufferObjectFormat</item>
+    <item>QOpenGLFunctions</item>
+    <item>QOpenGLFunctions_1_0</item>
+    <item>QOpenGLFunctions_1_1</item>
+    <item>QOpenGLFunctions_1_2</item>
+    <item>QOpenGLFunctions_1_3</item>
+    <item>QOpenGLFunctions_1_4</item>
+    <item>QOpenGLFunctions_1_5</item>
+    <item>QOpenGLFunctions_2_0</item>
+    <item>QOpenGLFunctions_2_1</item>
+    <item>QOpenGLFunctions_3_0</item>
+    <item>QOpenGLFunctions_3_1</item>
+    <item>QOpenGLFunctions_3_2_Compatibility</item>
+    <item>QOpenGLFunctions_3_2_Core</item>
+    <item>QOpenGLFunctions_3_3_Compatibility</item>
+    <item>QOpenGLFunctions_3_3_Core</item>
+    <item>QOpenGLFunctions_4_0_Compatibility</item>
+    <item>QOpenGLFunctions_4_0_Core</item>
+    <item>QOpenGLFunctions_4_1_Compatibility</item>
+    <item>QOpenGLFunctions_4_1_Core</item>
+    <item>QOpenGLFunctions_4_2_Compatibility</item>
+    <item>QOpenGLFunctions_4_2_Core</item>
+    <item>QOpenGLFunctions_4_3_Compatibility</item>
+    <item>QOpenGLFunctions_4_3_Core</item>
+    <item>QOpenGLFunctions_4_4_Compatibility</item>
+    <item>QOpenGLFunctions_4_4_Core</item>
+    <item>QOpenGLFunctions_4_5_Compatibility</item>
+    <item>QOpenGLFunctions_4_5_Core</item>
+    <item>QOpenGLFunctions_ES2</item>
+    <item>QOpenGLPaintDevice</item>
+    <item>QOpenGLPixelTransferOptions</item>
+    <item>QOpenGLShader</item>
+    <item>QOpenGLShaderProgram</item>
+    <item>QOpenGLTexture</item>
+    <item>QOpenGLTextureBlitter</item>
+    <item>QOpenGLTimeMonitor</item>
+    <item>QOpenGLTimerQuery</item>
+    <item>QOpenGLVersionProfile</item>
+    <item>QOpenGLVertexArrayObject</item>
+    <item>QOpenGLWidget</item>
+    <item>QOpenGLWindow</item>
+    <item>QOrientationFilter</item>
+    <item>QOrientationReading</item>
+    <item>QOrientationSensor</item>
+    <item>QPagedPaintDevice</item>
+    <item>QPageLayout</item>
+    <item>QPageSetupDialog</item>
+    <item>QPageSize</item>
+    <item>QPaintDevice</item>
+    <item>QPaintDeviceWindow</item>
+    <item>QPaintEngine</item>
+    <item>QPaintEngineState</item>
+    <item>QPainter</item>
+    <item>QPainterPath</item>
+    <item>QPainterPathStroker</item>
+    <item>QPaintEvent</item>
+    <item>QPair</item>
+    <item>QPalette</item>
+    <item>QPanGesture</item>
+    <item>QParallelAnimationGroup</item>
+    <item>QPauseAnimation</item>
+    <item>QPdfWriter</item>
+    <item>QPen</item>
+    <item>QPercentBarSeries</item>
+    <item>QPersistentModelIndex</item>
+    <item>QPicture</item>
+    <item>QPictureFormatPlugin</item>
+    <item>QPictureIO</item>
+    <item>QPieLegendMarker</item>
+    <item>QPieSeries</item>
+    <item>QPieSlice</item>
+    <item>QPinchGesture</item>
+    <item>QPixelFormat</item>
+    <item>QPixmap</item>
+    <item>QPixmapCache</item>
+    <item>QPlace</item>
+    <item>QPlaceAttribute</item>
+    <item>QPlaceCategory</item>
+    <item>QPlaceContactDetail</item>
+    <item>QPlaceContent</item>
+    <item>QPlaceContentReply</item>
+    <item>QPlaceContentRequest</item>
+    <item>QPlaceDetailsReply</item>
+    <item>QPlaceEditorial</item>
+    <item>QPlaceIcon</item>
+    <item>QPlaceIdReply</item>
+    <item>QPlaceImage</item>
+    <item>QPlaceManager</item>
+    <item>QPlaceManagerEngine</item>
+    <item>QPlaceMatchReply</item>
+    <item>QPlaceMatchRequest</item>
+    <item>QPlaceProposedSearchResult</item>
+    <item>QPlaceRatings</item>
+    <item>QPlaceReply</item>
+    <item>QPlaceResult</item>
+    <item>QPlaceReview</item>
+    <item>QPlaceSearchReply</item>
+    <item>QPlaceSearchRequest</item>
+    <item>QPlaceSearchResult</item>
+    <item>QPlaceSearchSuggestionReply</item>
+    <item>QPlaceSupplier</item>
+    <item>QPlaceUser</item>
+    <item>QPlainTextDocumentLayout</item>
+    <item>QPlainTextEdit</item>
+    <item>QPlatformGraphicsBuffer</item>
+    <item>QPlatformSurfaceEvent</item>
+    <item>QPlatformSystemTrayIcon</item>
+    <item>QPluginLoader</item>
+    <item>QPoint</item>
+    <item>QPointer</item>
+    <item>QPointF</item>
+    <item>QPointingDeviceUniqueId</item>
+    <item>QPolarChart</item>
+    <item>QPolygon</item>
+    <item>QPolygonF</item>
+    <item>QPressureFilter</item>
+    <item>QPressureReading</item>
+    <item>QPressureSensor</item>
+    <item>QPrintDialog</item>
+    <item>QPrintEngine</item>
+    <item>QPrinter</item>
+    <item>QPrinterInfo</item>
+    <item>QPrintPreviewDialog</item>
+    <item>QPrintPreviewWidget</item>
+    <item>QProcess</item>
+    <item>QProcessEnvironment</item>
+    <item>QProgressBar</item>
+    <item>QProgressDialog</item>
+    <item>QPropertyAnimation</item>
+    <item>QProximityFilter</item>
+    <item>QProximityReading</item>
+    <item>QProximitySensor</item>
+    <item>QProxyStyle</item>
+    <item>QPushButton</item>
+    <item>QQmlAbstractUrlInterceptor</item>
+    <item>QQmlApplicationEngine</item>
+    <item>QQmlComponent</item>
+    <item>QQmlContext</item>
+    <item>QQmlEngine</item>
+    <item>QQmlError</item>
+    <item>QQmlExpression</item>
+    <item>QQmlExtensionPlugin</item>
+    <item>QQmlFileSelector</item>
+    <item>QQmlImageProviderBase</item>
+    <item>QQmlIncubationController</item>
+    <item>QQmlIncubator</item>
+    <item>QQmlListProperty</item>
+    <item>QQmlListReference</item>
+    <item>QQmlNdefRecord</item>
+    <item>QQmlNetworkAccessManagerFactory</item>
+    <item>QQmlParserStatus</item>
+    <item>QQmlProperty</item>
+    <item>QQmlPropertyMap</item>
+    <item>QQmlPropertyValueSource</item>
+    <item>QQmlScriptString</item>
+    <item>QQuaternion</item>
+    <item>QQueue</item>
+    <item>QQuickAsyncImageProvider</item>
+    <item>QQuickFramebufferObject</item>
+    <item>QQuickImageProvider</item>
+    <item>QQuickImageResponse</item>
+    <item>QQuickItem</item>
+    <item>QQuickItemGrabResult</item>
+    <item>QQuickPaintedItem</item>
+    <item>QQuickRenderControl</item>
+    <item>QQuickStyle</item>
+    <item>QQuickTextDocument</item>
+    <item>QQuickTextureFactory</item>
+    <item>QQuickView</item>
+    <item>QQuickWebEngineProfile</item>
+    <item>QQuickWidget</item>
+    <item>QQuickWindow</item>
+    <item>QRadialGradient</item>
+    <item>QRadioButton</item>
+    <item>QRadioData</item>
+    <item>QRadioDataControl</item>
+    <item>QRadioTuner</item>
+    <item>QRadioTunerControl</item>
+    <item>QRasterPaintEngine</item>
+    <item>QRasterWindow</item>
+    <item>QRawFont</item>
+    <item>QReadLocker</item>
+    <item>QReadWriteLock</item>
+    <item>QRect</item>
+    <item>QRectF</item>
+    <item>QRegExp</item>
+    <item>QRegExpValidator</item>
+    <item>QRegion</item>
+    <item>QRegularExpression</item>
+    <item>QRegularExpressionMatch</item>
+    <item>QRegularExpressionMatchIterator</item>
+    <item>QRegularExpressionValidator</item>
+    <item>QResizeEvent</item>
+    <item>QResource</item>
+    <item>QRgba64</item>
+    <item>QRotationFilter</item>
+    <item>QRotationReading</item>
+    <item>QRotationSensor</item>
+    <item>QRubberBand</item>
+    <item>QRunnable</item>
+    <item>QSaveFile</item>
+    <item>QScatter3DSeries</item>
+    <item>QScatterDataItem</item>
+    <item>QScatterDataProxy</item>
+    <item>QScatterSeries</item>
+    <item>QScopedArrayPointer</item>
+    <item>QScopedPointer</item>
+    <item>QScopedValueRollback</item>
+    <item>QScreen</item>
+    <item>QScriptable</item>
+    <item>QScriptClass</item>
+    <item>QScriptClassPropertyIterator</item>
+    <item>QScriptContext</item>
+    <item>QScriptContextInfo</item>
+    <item>QScriptEngine</item>
+    <item>QScriptEngineAgent</item>
+    <item>QScriptEngineDebugger</item>
+    <item>QScriptExtensionPlugin</item>
+    <item>QScriptProgram</item>
+    <item>QScriptString</item>
+    <item>QScriptSyntaxCheckResult</item>
+    <item>QScriptValue</item>
+    <item>QScriptValueIterator</item>
+    <item>QScrollArea</item>
+    <item>QScrollBar</item>
+    <item>QScroller</item>
+    <item>QScrollerProperties</item>
+    <item>QScrollEvent</item>
+    <item>QScrollPrepareEvent</item>
+    <item>QSctpServer</item>
+    <item>QSctpSocket</item>
+    <item>QScxmlCompiler</item>
+    <item>QScxmlCppDataModel</item>
+    <item>QScxmlDataModel</item>
+    <item>QScxmlDynamicScxmlServiceFactory</item>
+    <item>QScxmlEcmaScriptDataModel</item>
+    <item>QScxmlError</item>
+    <item>QScxmlEvent</item>
+    <item>QScxmlInvokableService</item>
+    <item>QScxmlInvokableServiceFactory</item>
+    <item>QScxmlNullDataModel</item>
+    <item>QScxmlStateMachine</item>
+    <item>QScxmlStaticScxmlServiceFactory</item>
+    <item>QScxmlTableData</item>
+    <item>QSemaphore</item>
+    <item>QSensor</item>
+    <item>QSensorBackend</item>
+    <item>QSensorBackendFactory</item>
+    <item>QSensorChangesInterface</item>
+    <item>QSensorFilter</item>
+    <item>QSensorGesture</item>
+    <item>QSensorGestureManager</item>
+    <item>QSensorGesturePluginInterface</item>
+    <item>QSensorGestureRecognizer</item>
+    <item>QSensorManager</item>
+    <item>QSensorPluginInterface</item>
+    <item>QSensorReading</item>
+    <item>QSequentialAnimationGroup</item>
+    <item>QSequentialIterable</item>
+    <item>QSerialPort</item>
+    <item>QSerialPortInfo</item>
+    <item>QSessionManager</item>
+    <item>QSet</item>
+    <item>QSetIterator</item>
+    <item>QSettings</item>
+    <item>QSGAbstractRenderer</item>
+    <item>QSGBasicGeometryNode</item>
+    <item>QSGClipNode</item>
+    <item>QSGDynamicTexture</item>
+    <item>QSGEngine</item>
+    <item>QSGFlatColorMaterial</item>
+    <item>QSGGeometry</item>
+    <item>QSGGeometryNode</item>
+    <item>QSGImageNode</item>
+    <item>QSGMaterial</item>
+    <item>QSGMaterialShader</item>
+    <item>QSGMaterialType</item>
+    <item>QSGNode</item>
+    <item>QSGOpacityNode</item>
+    <item>QSGOpaqueTextureMaterial</item>
+    <item>QSGRectangleNode</item>
+    <item>QSGRendererInterface</item>
+    <item>QSGRenderNode</item>
+    <item>QSGSimpleMaterial</item>
+    <item>QSGSimpleMaterialShader</item>
+    <item>QSGSimpleRectNode</item>
+    <item>QSGSimpleTextureNode</item>
+    <item>QSGTexture</item>
+    <item>QSGTextureMaterial</item>
+    <item>QSGTextureProvider</item>
+    <item>QSGTransformNode</item>
+    <item>QSGVertexColorMaterial</item>
+    <item>QSharedData</item>
+    <item>QSharedDataPointer</item>
+    <item>QSharedMemory</item>
+    <item>QSharedPointer</item>
+    <item>QShortcut</item>
+    <item>QShortcutEvent</item>
+    <item>QShowEvent</item>
+    <item>QSignalBlocker</item>
+    <item>QSignalMapper</item>
+    <item>QSignalSpy</item>
+    <item>QSignalTransition</item>
+    <item>QSimpleXmlNodeModel</item>
+    <item>QSize</item>
+    <item>QSizeF</item>
+    <item>QSizeGrip</item>
+    <item>QSizePolicy</item>
+    <item>QSlider</item>
+    <item>QSocketNotifier</item>
+    <item>QSortFilterProxyModel</item>
+    <item>QSound</item>
+    <item>QSoundEffect</item>
+    <item>QSourceLocation</item>
+    <item>QSpacerItem</item>
+    <item>QSpinBox</item>
+    <item>QSplashScreen</item>
+    <item>QSplineSeries</item>
+    <item>QSplitter</item>
+    <item>QSplitterHandle</item>
+    <item>QSqlDatabase</item>
+    <item>QSqlDriver</item>
+    <item>QSqlDriverCreator</item>
+    <item>QSqlDriverCreatorBase</item>
+    <item>QSqlDriverPlugin</item>
+    <item>QSqlError</item>
+    <item>QSqlField</item>
+    <item>QSqlIndex</item>
+    <item>QSqlQuery</item>
+    <item>QSqlQueryModel</item>
+    <item>QSqlRecord</item>
+    <item>QSqlRelation</item>
+    <item>QSqlRelationalDelegate</item>
+    <item>QSqlRelationalTableModel</item>
+    <item>QSqlResult</item>
+    <item>QSqlTableModel</item>
+    <item>QSslCertificate</item>
+    <item>QSslCertificateExtension</item>
+    <item>QSslCipher</item>
+    <item>QSslConfiguration</item>
+    <item>QSslDiffieHellmanParameters</item>
+    <item>QSslEllipticCurve</item>
+    <item>QSslError</item>
+    <item>QSslKey</item>
+    <item>QSslPreSharedKeyAuthenticator</item>
+    <item>QSslSocket</item>
+    <item>QStack</item>
+    <item>QStackedBarSeries</item>
+    <item>QStackedLayout</item>
+    <item>QStackedWidget</item>
+    <item>QStandardItem</item>
+    <item>QStandardItemEditorCreator</item>
+    <item>QStandardItemModel</item>
+    <item>QStandardPaths</item>
+    <item>QState</item>
+    <item>QStateMachine</item>
+    <item>QStaticPlugin</item>
+    <item>QStaticText</item>
+    <item>QStatusBar</item>
+    <item>QStatusTipEvent</item>
+    <item>QStorageInfo</item>
+    <item>QString</item>
+    <item>QStringList</item>
+    <item>QStringListModel</item>
+    <item>QStringMatcher</item>
+    <item>QStringRef</item>
+    <item>QStyle</item>
+    <item>QStyledItemDelegate</item>
+    <item>QStyleFactory</item>
+    <item>QStyleHintReturn</item>
+    <item>QStyleHintReturnMask</item>
+    <item>QStyleHintReturnVariant</item>
+    <item>QStyleHints</item>
+    <item>QStyleOption</item>
+    <item>QStyleOptionButton</item>
+    <item>QStyleOptionComboBox</item>
+    <item>QStyleOptionComplex</item>
+    <item>QStyleOptionDockWidget</item>
+    <item>QStyleOptionFocusRect</item>
+    <item>QStyleOptionFrame</item>
+    <item>QStyleOptionGraphicsItem</item>
+    <item>QStyleOptionGroupBox</item>
+    <item>QStyleOptionHeader</item>
+    <item>QStyleOptionMenuItem</item>
+    <item>QStyleOptionProgressBar</item>
+    <item>QStyleOptionRubberBand</item>
+    <item>QStyleOptionSizeGrip</item>
+    <item>QStyleOptionSlider</item>
+    <item>QStyleOptionSpinBox</item>
+    <item>QStyleOptionTab</item>
+    <item>QStyleOptionTabBarBase</item>
+    <item>QStyleOptionTabWidgetFrame</item>
+    <item>QStyleOptionTitleBar</item>
+    <item>QStyleOptionToolBar</item>
+    <item>QStyleOptionToolBox</item>
+    <item>QStyleOptionToolButton</item>
+    <item>QStyleOptionViewItem</item>
+    <item>QStylePainter</item>
+    <item>QStylePlugin</item>
+    <item>QSupportedWritingSystems</item>
+    <item>QSurface</item>
+    <item>QSurface3DSeries</item>
+    <item>QSurfaceDataItem</item>
+    <item>QSurfaceDataProxy</item>
+    <item>QSurfaceFormat</item>
+    <item>QSvgGenerator</item>
+    <item>QSvgRenderer</item>
+    <item>QSvgWidget</item>
+    <item>QSwipeGesture</item>
+    <item>QSyntaxHighlighter</item>
+    <item>QSysInfo</item>
+    <item>QSystemSemaphore</item>
+    <item>QSystemTrayIcon</item>
+    <item>QTabBar</item>
+    <item>QTabletEvent</item>
+    <item>QTableView</item>
+    <item>QTableWidget</item>
+    <item>QTableWidgetItem</item>
+    <item>QTableWidgetSelectionRange</item>
+    <item>QTabWidget</item>
+    <item>QTapAndHoldGesture</item>
+    <item>QTapFilter</item>
+    <item>QTapGesture</item>
+    <item>QTapReading</item>
+    <item>QTapSensor</item>
+    <item>QTcpServer</item>
+    <item>QTcpSocket</item>
+    <item>QTemporaryDir</item>
+    <item>QTemporaryFile</item>
+    <item>QTestEventList</item>
+    <item>QTextBlock</item>
+    <item>QTextBlockFormat</item>
+    <item>QTextBlockGroup</item>
+    <item>QTextBlockUserData</item>
+    <item>QTextBoundaryFinder</item>
+    <item>QTextBrowser</item>
+    <item>QTextCharFormat</item>
+    <item>QTextCodec</item>
+    <item>QTextCursor</item>
+    <item>QTextDecoder</item>
+    <item>QTextDocument</item>
+    <item>QTextDocumentFragment</item>
+    <item>QTextDocumentWriter</item>
+    <item>QTextEdit</item>
+    <item>QTextEncoder</item>
+    <item>QTextFormat</item>
+    <item>QTextFragment</item>
+    <item>QTextFrame</item>
+    <item>QTextFrameFormat</item>
+    <item>QTextImageFormat</item>
+    <item>QTextInlineObject</item>
+    <item>QTextItem</item>
+    <item>QTextLayout</item>
+    <item>QTextLength</item>
+    <item>QTextLine</item>
+    <item>QTextList</item>
+    <item>QTextListFormat</item>
+    <item>QTextObject</item>
+    <item>QTextObjectInterface</item>
+    <item>QTextOption</item>
+    <item>QTextStream</item>
+    <item>QTextTable</item>
+    <item>QTextTableCell</item>
+    <item>QTextTableCellFormat</item>
+    <item>QTextTableFormat</item>
+    <item>QTextToSpeech</item>
+    <item>QTextToSpeechPlugin</item>
+    <item>QThread</item>
+    <item>QThreadPool</item>
+    <item>QThreadStorage</item>
+    <item>QTileRules</item>
+    <item>QTiltFilter</item>
+    <item>QTiltReading</item>
+    <item>QTiltSensor</item>
+    <item>QTime</item>
+    <item>QTimeEdit</item>
+    <item>QTimeLine</item>
+    <item>QTimer</item>
+    <item>QTimerEvent</item>
+    <item>QTimeZone</item>
+    <item>QToolBar</item>
+    <item>QToolBox</item>
+    <item>QToolButton</item>
+    <item>QToolTip</item>
+    <item>QTouch3DInputHandler</item>
+    <item>QTouchDevice</item>
+    <item>QTouchEvent</item>
+    <item>QTransform</item>
+    <item>QTranslator</item>
+    <item>QTreeView</item>
+    <item>QTreeWidget</item>
+    <item>QTreeWidgetItem</item>
+    <item>QTreeWidgetItemIterator</item>
+    <item>QUdpSocket</item>
+    <item>QUiLoader</item>
+    <item>QUndoCommand</item>
+    <item>QUndoGroup</item>
+    <item>QUndoStack</item>
+    <item>QUndoView</item>
+    <item>QUnhandledException</item>
+    <item>QUrl</item>
+    <item>QUrlQuery</item>
+    <item>QUuid</item>
+    <item>QValidator</item>
+    <item>QValue3DAxis</item>
+    <item>QValue3DAxisFormatter</item>
+    <item>QValueAxis</item>
+    <item>QVariant</item>
+    <item>QVariantAnimation</item>
+    <item>QVarLengthArray</item>
+    <item>QVBarModelMapper</item>
+    <item>QVBoxLayout</item>
+    <item>QVBoxPlotModelMapper</item>
+    <item>QVCandlestickModelMapper</item>
+    <item>QVector</item>
+    <item>QVector2D</item>
+    <item>QVector3D</item>
+    <item>QVector4D</item>
+    <item>QVectorIterator</item>
+    <item>QVersionNumber</item>
+    <item>QVideoDeviceSelectorControl</item>
+    <item>QVideoEncoderSettings</item>
+    <item>QVideoEncoderSettingsControl</item>
+    <item>QVideoFilterRunnable</item>
+    <item>QVideoFrame</item>
+    <item>QVideoProbe</item>
+    <item>QVideoRendererControl</item>
+    <item>QVideoSurfaceFormat</item>
+    <item>QVideoWidget</item>
+    <item>QVideoWidgetControl</item>
+    <item>QVideoWindowControl</item>
+    <item>QVPieModelMapper</item>
+    <item>QVXYModelMapper</item>
+    <item>QWaitCondition</item>
+    <item>QWaylandBufferRef</item>
+    <item>QWaylandClient</item>
+    <item>QWaylandCompositor</item>
+    <item>QWaylandIviSurface</item>
+    <item>QWaylandKeyboard</item>
+    <item>QWaylandOutput</item>
+    <item>QWaylandOutputMode</item>
+    <item>QWaylandPointer</item>
+    <item>QWaylandQuickItem</item>
+    <item>QWaylandQuickShellSurfaceItem</item>
+    <item>QWaylandSeat</item>
+    <item>QWaylandSurface</item>
+    <item>QWaylandSurfaceGrabber</item>
+    <item>QWaylandTouch</item>
+    <item>QWaylandView</item>
+    <item>QWaylandWlShell</item>
+    <item>QWaylandWlShellSurface</item>
+    <item>QWaylandXdgPopupV5</item>
+    <item>QWaylandXdgSurfaceV5</item>
+    <item>QWeakPointer</item>
+    <item>QWebChannel</item>
+    <item>QWebChannelAbstractTransport</item>
+    <item>QWebEngineCertificateError</item>
+    <item>QWebEngineContextMenuData</item>
+    <item>QWebEngineCookieStore</item>
+    <item>QWebEngineDownloadItem</item>
+    <item>QWebEngineFullScreenRequest</item>
+    <item>QWebEngineHistory</item>
+    <item>QWebEngineHistoryItem</item>
+    <item>QWebEnginePage</item>
+    <item>QWebEngineProfile</item>
+    <item>QWebEngineScript</item>
+    <item>QWebEngineScriptCollection</item>
+    <item>QWebEngineSettings</item>
+    <item>QWebEngineUrlRequestInfo</item>
+    <item>QWebEngineUrlRequestInterceptor</item>
+    <item>QWebEngineUrlRequestJob</item>
+    <item>QWebEngineUrlSchemeHandler</item>
+    <item>QWebEngineView</item>
+    <item>QWebSocket</item>
+    <item>QWebSocketCorsAuthenticator</item>
+    <item>QWebSocketServer</item>
+    <item>QWGLNativeContext</item>
+    <item>QWhatsThis</item>
+    <item>QWhatsThisClickedEvent</item>
+    <item>QWheelEvent</item>
+    <item>QWidget</item>
+    <item>QWidgetAction</item>
+    <item>QWidgetItem</item>
+    <item>QWindow</item>
+    <item>QWindowStateChangeEvent</item>
+    <item>QWindowsWindowFunctions</item>
+    <item>QWinEventNotifier</item>
+    <item>QWinJumpList</item>
+    <item>QWinJumpListCategory</item>
+    <item>QWinJumpListItem</item>
+    <item>QWinMime</item>
+    <item>QWinTaskbarButton</item>
+    <item>QWinTaskbarProgress</item>
+    <item>QWinThumbnailToolBar</item>
+    <item>QWinThumbnailToolButton</item>
+    <item>QWizard</item>
+    <item>QWizardPage</item>
+    <item>QWriteLocker</item>
+    <item>QX11Info</item>
+    <item>QXcbWindowFunctions</item>
+    <item>QXmlAttributes</item>
+    <item>QXmlContentHandler</item>
+    <item>QXmlDeclHandler</item>
+    <item>QXmlDefaultHandler</item>
+    <item>QXmlDTDHandler</item>
+    <item>QXmlEntityResolver</item>
+    <item>QXmlErrorHandler</item>
+    <item>QXmlFormatter</item>
+    <item>QXmlInputSource</item>
+    <item>QXmlItem</item>
+    <item>QXmlLexicalHandler</item>
+    <item>QXmlLocator</item>
+    <item>QXmlName</item>
+    <item>QXmlNamePool</item>
+    <item>QXmlNamespaceSupport</item>
+    <item>QXmlNodeModelIndex</item>
+    <item>QXmlParseException</item>
+    <item>QXmlQuery</item>
+    <item>QXmlReader</item>
+    <item>QXmlResultItems</item>
+    <item>QXmlSchema</item>
+    <item>QXmlSchemaValidator</item>
+    <item>QXmlSerializer</item>
+    <item>QXmlSimpleReader</item>
+    <item>QXmlStreamAttribute</item>
+    <item>QXmlStreamAttributes</item>
+    <item>QXmlStreamEntityDeclaration</item>
+    <item>QXmlStreamEntityResolver</item>
+    <item>QXmlStreamNamespaceDeclaration</item>
+    <item>QXmlStreamNotationDeclaration</item>
+    <item>QXmlStreamReader</item>
+    <item>QXmlStreamWriter</item>
+    <item>QXYLegendMarker</item>
+    <item>QXYSeries</item>
+    <!-- Not actually classes, but used like those -->
+    <item>QStringLiteral</item>
+    <!-- Not actually classes, but namespaces -->
+    <item>Qt</item>
+    <item>QTest</item>
+    <item>QtConcurrent</item>
+    <item>Phonon</item>
+    <!-- Some public types, but not listed in main class list -->
+    <item>QFileInfoList</item>
+    <item>QMutableStringListIterator</item>
+    <item>QTouchEventSequence</item>                      <!-- QTest -->
+    <item>QStringListIterator</item>
+    <item>QStringBuilder</item>
+  </list>
+
+  <contexts>
+    <!-- Base context for C++ and Qt highlighting to be used as standalone syntax -->
+    <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+      <IncludeRules context="DetectQtExtensions" />
+      <IncludeRules context="##ISO C++" />
+    </context>
+
+    <!-- This context can be used from other (alternative) C++ syntax files
+         To use it just <IncludeRules context="DetectQtExtensions##Qt/C++" />
+      -->
+    <context attribute="Normal Text" lineEndContext="#stay" name="DetectQtExtensions">
+      <keyword attribute="Qt Types" context="#stay" String="QtTypes" />
+      <keyword attribute="Qt Classes" context="Qt5ClassMember" String="QtClasses" />
+      <keyword attribute="Qt Functions" context="#stay" String="QtFunc" />
+      <keyword attribute="Qt Macros" context="#stay" String="QtMacros" />
+    </context>
+
+    <context attribute="Qt Classes" lineEndContext="#pop" name="Qt5ClassMember">
+      <IncludeRules context="DetectNSEnd" />
+    </context>
+
+    <context lineEndContext="#pop" name="DetectNSEnd" attribute="Normal Text">
+      <DetectIdentifier context="#stay" />
+      <AnyChar context="#pop" String="&ns_punctuators;" lookAhead="true" />
+      <AnyChar context="#stay" String="&space;" lookAhead="true" />
+    </context>
+
+  </contexts>
+
+  <itemDatas>
+    <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
+    <itemData name="Qt Macros" defStyleNum="dsExtension" spellChecking="false" bold="1" italic="0" />
+    <itemData name="Qt Types" defStyleNum="dsExtension" spellChecking="false" />
+    <itemData name="Qt Classes" defStyleNum="dsExtension" spellChecking="false" />
+    <itemData name="Qt Functions" defStyleNum="dsFunction" spellChecking="false" />
+  </itemDatas>
+</highlighting>
+
+<general>
+  <comments>
+    <comment name="singleLine" start="//" />
+    <comment name="multiLine" start="/*" end="*/" />
+  </comments>
+  <keywords casesensitive="1" />
+</general>
+
+</language>
+<!-- kate: indent-width 2; tab-width 2; -->
diff --git a/xml/cs.xml b/xml/cs.xml
new file mode 100644
--- /dev/null
+++ b/xml/cs.xml
@@ -0,0 +1,166 @@
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="C#" version="2" kateversion="5.0" section="Sources" extensions="*.cs" mimetype="text/x-csharp-src;text/x-csharp-hde">
+  <highlighting>
+    <list name="keywords">
+      <item>abstract</item>
+      <item>as</item>
+      <item>base</item>
+      <item>break</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>class</item>
+      <item>checked</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>delegate</item>
+      <item>do</item>
+      <item>else</item>
+      <item>enum</item>
+      <item>event</item>
+      <item>explicit</item>
+      <item>extern</item>
+      <item>false</item>
+      <item>for</item>
+      <item>foreach</item>
+      <item>finally</item>
+      <item>fixed</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>implicit</item>
+      <item>in</item>
+      <item>interface</item>
+      <item>internal</item>
+      <item>is</item>
+      <item>lock</item>
+      <item>namespace</item>
+      <item>new</item>
+      <item>null</item>
+      <item>operator</item>
+      <item>out</item>
+      <item>override</item>
+      <item>params</item>
+      <item>private</item>
+      <item>protected</item>
+      <item>public</item>
+      <item>readonly</item>
+      <item>ref</item>
+      <item>return</item>
+      <item>sealed</item>
+      <item>sizeof</item>
+      <item>stackalloc</item>
+      <item>static</item>
+      <item>struct</item>
+      <item>switch</item>
+      <item>this</item>
+      <item>throw</item>
+      <item>true</item>
+      <item>try</item>
+      <item>typeof</item>
+      <item>unchecked</item>
+      <item>unsafe</item>
+      <item>using</item>
+      <item>virtual</item>
+      <item>while</item>
+      <item>#if</item>
+      <item>#else</item>
+      <item>#elif</item>
+      <item>#endif</item>
+      <item>#define</item>
+      <item>#undef</item>
+      <item>#warning</item>
+      <item>#error</item>
+      <item>#line</item>
+    </list>
+    <list name="types">
+      <item>bool</item>
+      <item>byte</item>
+      <item>char</item>
+      <item>const</item>
+      <item>decimal</item>
+      <item>double</item>
+      <item>float</item>
+      <item>int</item>
+      <item>long</item>
+      <item>object</item>
+      <item>uint</item>
+      <item>ushort</item>
+      <item>ulong</item>
+      <item>sbyte</item>
+      <item>short</item>
+      <item>string</item>
+      <item>void</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Data Type" context="#stay" String="types" />
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay" >
+          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*"/>
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="block1"/>
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="block1"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bpartial(?=\s+(class|struct|interface|void))"/>
+        <RegExpr attribute="Data Type" context="#stay" String="\bvar(?=\s+\w+\s*=\s*\w+)"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\byield(?=\s+(return|break))"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(set|get)(?=\s*[;{])"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bglobal(?=\s*::\s*\w+)"/>
+        <RegExpr attribute="Decimal" context="#stay" String="#region.*$" beginRegion="Region1"/>
+        <RegExpr attribute="Decimal" context="#stay" String="#endregion.*$" endRegion="Region1"/>
+        <RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*[(])" />
+        <RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#pop"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="Function" context="#pop" String="\b[_\w][_\w\d]*(?=[\s]*)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword"/>
+      <itemData name="Function"     defStyleNum="dsFunction"/>
+      <itemData name="Data Type"    defStyleNum="dsDataType"/>
+      <itemData name="Decimal"      defStyleNum="dsDecVal"/>
+      <itemData name="Octal"        defStyleNum="dsBaseN"/>
+      <itemData name="Hex"          defStyleNum="dsBaseN"/>
+      <itemData name="Float"        defStyleNum="dsFloat"/>
+      <itemData name="Char"         defStyleNum="dsChar"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="String Char"  defStyleNum="dsSpecialChar"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Symbol"       defStyleNum="dsNormal"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/css.xml b/xml/css.xml
new file mode 100644
--- /dev/null
+++ b/xml/css.xml
@@ -0,0 +1,1062 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+  <!-- http://www.w3.org/TR/CSS21/syndata.html#tokenization -->
+  <!ENTITY nmstart "[_a-zA-Z]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
+  <!ENTITY nmchar  "[_a-zA-Z0-9-]|(\\[0-9a-fA-F]{1,6})|(\\[^\n\r\f0-9a-fA-F])">
+]>
+
+<!--
+
+Kate CSS syntax highlighting definition
+
+Changelog:
+
+- Version 4, by Guo Yunhe guoyunhebrave@gmail.com
+- Remake for complex CSS syntax, avoid errors
+
+- Version 2.13, by Guo Yunhe
+- Add all W3C Work Draft properties
+
+- Version 2.06, by Mte90:
+- CSS3 tag
+
+- Version 2.03, by Milian Wolff:
+- Make it spelling aware
+
+- Version 2.08, Joseph Wenninger:
+- CSS3 media queries
+
+-->
+
+<language name="CSS" version="4" kateversion="5.0" section="Markup" extensions="*.css" indenter="cstyle" mimetype="text/css" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
+
+    <highlighting>
+        <list name="properties">
+            <!-- W3C > Work Draft, from https://www.w3.org/Style/CSS/all-properties -->
+            <item>azimuth</item>
+            <item>align-content</item>
+            <item>align-items</item>
+            <item>align-self</item>
+            <item>alignment-baseline</item>
+            <item>all</item>
+            <item>animation-name</item>
+            <item>animation-duration</item>
+            <item>animation-iteration-count</item>
+            <item>animation-direction</item>
+            <item>animation-delay</item>
+            <item>animation-play-state</item>
+            <item>animation-fill-mode</item>
+            <item>animation-timing-function</item>
+            <item>backface-visibility</item>
+            <item>background</item>
+            <item>background-attachment</item>
+            <item>background-blend-mode</item>
+            <item>background-break</item>
+            <item>background-clip</item>
+            <item>background-color</item>
+            <item>background-image</item>
+            <item>background-origin</item>
+            <item>background-position</item>
+            <item>background-repeat</item>
+            <item>background-size</item>
+            <item>baseline-shift</item>
+            <item>bookmark-label</item>
+            <item>bookmark-level</item>
+            <item>bookmark-level</item>
+            <item>border</item>
+            <item>border-bottom</item>
+            <item>border-bottom-color</item>
+            <item>border-bottom-image</item>
+            <item>border-bottom-style</item>
+            <item>border-bottom-width</item>
+            <item>border-bottom-left-image</item>
+            <item>border-bottom-left-radius</item>
+            <item>border-bottom-right-image</item>
+            <item>border-bottom-right-radius</item>
+            <item>border-boundary</item>
+            <item>border-collapse</item>
+            <item>border-color</item>
+            <item>border-corner-image</item>
+            <item>border-image</item>
+            <item>border-image-outset</item>
+            <item>border-image-repeat</item>
+            <item>border-image-slice</item>
+            <item>border-image-source</item>
+            <item>border-image-width</item>
+            <item>border-left</item>
+            <item>border-left-color</item>
+            <item>border-left-image</item>
+            <item>border-left-style</item>
+            <item>border-left-width</item>
+            <item>border-radius</item>
+            <item>border-right</item>
+            <item>border-right-color</item>
+            <item>border-right-image</item>
+            <item>border-right-style</item>
+            <item>border-right-width</item>
+            <item>border-spacing</item>
+            <item>border-style</item>
+            <item>border-top</item>
+            <item>border-top-color</item>
+            <item>border-top-image</item>
+            <item>border-top-style</item>
+            <item>border-top-width</item>
+            <item>border-top-left-image</item>
+            <item>border-top-left-radius</item>
+            <item>border-top-right-image</item>
+            <item>border-top-right-radius</item>
+            <item>border-width</item>
+            <item>bottom</item>
+            <item>box-align</item>
+            <item>box-decoration-break</item>
+            <item>box-direction</item>
+            <item>box-flex</item>
+            <item>box-shadow</item>
+            <item>box-sizing</item>
+            <item>box-snap</item>
+            <item>box-suppress</item>
+            <item>break-after</item>
+            <item>break-before</item>
+            <item>break-inside</item>
+            <item>caret-color</item>
+            <item>caption-side</item>
+            <item>chains</item>
+            <item>clear</item>
+            <item>clip</item>
+            <item>clip-path</item>
+            <item>clip-rule</item>
+            <item>color</item>
+            <item>color-interpolation-filters</item>
+            <item>column-count</item>
+            <item>column-fill</item>
+            <item>column-gap</item>
+            <item>column-rule</item>
+            <item>column-rule-color</item>
+            <item>column-rule-style</item>
+            <item>column-rule-width</item>
+            <item>column-span</item>
+            <item>column-width</item>
+            <item>columns</item>
+            <item>content</item>
+            <item>counter-increment</item>
+            <item>counter-reset</item>
+            <item>counter-set</item>
+            <item>cue</item>
+            <item>cue-after</item>
+            <item>cue-before</item>
+            <item>cursor</item>
+            <item>direction</item>
+            <item>display</item>
+            <item>dominant-baseline</item>
+            <item>elevation</item>
+            <item>empty-cells</item>
+            <item>filter</item>
+            <item>flex</item>
+            <item>flex-basis</item>
+            <item>flex-direction</item>
+            <item>flex-flow</item>
+            <item>flex-grow</item>
+            <item>flex-shrink</item>
+            <item>flex-wrap</item>
+            <item>float</item>
+            <item>flood-color</item>
+            <item>flood-opacity</item>
+            <item>flow</item>
+            <item>flow-from</item>
+            <item>flow-into</item>
+            <item>font</item>
+            <item>font-family</item>
+            <item>font-size</item>
+            <item>font-size-adjust</item>
+            <item>font-stretch</item>
+            <item>font-style</item>
+            <item>font-variant</item>
+            <item>font-weight</item>
+            <item>font-stretch</item>
+            <item>font-feature-settings</item>
+            <item>font-kerning</item>
+            <item>font-language-override</item>
+            <item>font-synthesis</item>
+            <item>font-variant-alternates</item>
+            <item>font-variant-caps</item>
+            <item>font-variant-east-asian</item>
+            <item>font-variant-ligatures</item>
+            <item>font-variant-numeric</item>
+            <item>font-variant-position</item>
+            <item>footnote-display</item>
+            <item>footnote-policy</item>
+            <item>glyph-orientation-vertical</item>
+            <item>grid</item>
+            <item>grid-area</item>
+            <item>grid-auto-columns</item>
+            <item>grid-auto-flow</item>
+            <item>grid-auto-rows</item>
+            <item>grid-column</item>
+            <item>grid-column-end</item>
+            <item>grid-column-gap</item>
+            <item>grid-column-start</item>
+            <item>grid-gap</item>
+            <item>grid-row</item>
+            <item>grid-row-end</item>
+            <item>grid-row-gap</item>
+            <item>grid-row-start</item>
+            <item>grid-template</item>
+            <item>grid-template-areas</item>
+            <item>grid-template-columns</item>
+            <item>grid-template-rows</item>
+            <item>hanging-punctuation</item>
+            <item>height</item>
+            <item>hyphens</item>
+            <item>image-orientation</item>
+            <item>image-rendering</item>
+            <item>image-resolution</item>
+            <item>initial-letter</item>
+            <item>initial-letter-align</item>
+            <item>initial-letter-wrap</item>
+            <item>isolation</item>
+            <item>justify-content</item>
+            <item>justify-items</item>
+            <item>justify-self</item>
+            <item>left</item>
+            <item>letter-spacing</item>
+            <item>lighting-color</item>
+            <item>linear-gradient</item>
+            <item>line-grid</item>
+            <item>line-height</item>
+            <item>line-snap</item>
+            <item>list-style</item>
+            <item>list-style-image</item>
+            <item>list-style-keyword</item>
+            <item>list-style-position</item>
+            <item>list-style-type</item>
+            <item>margin</item>
+            <item>margin-bottom</item>
+            <item>margin-left</item>
+            <item>margin-right</item>
+            <item>margin-top</item>
+            <item>marker-offset</item>
+            <item>marker-side</item>
+            <item>marquee-direction</item>
+            <item>marquee-loop</item>
+            <item>marquee-speed</item>
+            <item>marquee-style</item>
+            <item>mask</item>
+            <item>mask-border</item>
+            <item>mask-border-mode</item>
+            <item>mask-border-outset</item>
+            <item>mask-border-repeat</item>
+            <item>mask-border-slice</item>
+            <item>mask-border-source</item>
+            <item>mask-border-width</item>
+            <item>mask-clip</item>
+            <item>mask-composite</item>
+            <item>mask-image</item>
+            <item>mask-mode</item>
+            <item>mask-origin</item>
+            <item>mask-position</item>
+            <item>mask-repeat</item>
+            <item>mask-size</item>
+            <item>mask-type</item>
+            <item>max-height</item>
+            <item>max-lines</item>
+            <item>max-width</item>
+            <item>min-height</item>
+            <item>min-width</item>
+            <item>mix-blend-mode</item>
+            <item>nav-down</item>
+            <item>nav-left</item>
+            <item>nav-right</item>
+            <item>nav-up</item>
+            <item>object-fit</item>
+            <item>object-position</item>
+            <item>offset-after</item>
+            <item>offset-before</item>
+            <item>offset-end</item>
+            <item>offset-start</item>
+            <item>opacity</item>
+            <item>order</item>
+            <item>orphans</item>
+            <item>outline</item>
+            <item>outline-color</item>
+            <item>outline-offset</item>
+            <item>outline-style</item>
+            <item>outline-width</item>
+            <item>overflow</item>
+            <item>overflow-style</item>
+            <item>overflow-wrap</item>
+            <item>overflow-x</item>
+            <item>overflow-y</item>
+            <item>padding</item>
+            <item>padding-bottom</item>
+            <item>padding-left</item>
+            <item>padding-right</item>
+            <item>padding-top</item>
+            <item>page</item>
+            <item>page-break-after</item>
+            <item>page-break-before</item>
+            <item>page-break-inside</item>
+            <item>pause</item>
+            <item>pause-after</item>
+            <item>pause-before</item>
+            <item>perspective</item>
+            <item>perspective-origin</item>
+            <item>pitch</item>
+            <item>pitch-range</item>
+            <item>play-during</item>
+            <item>pointer-events</item>
+            <item>polar-anchor</item>
+            <item>polar-angle</item>
+            <item>polar-distance</item>
+            <item>polar-origin</item>
+            <item>position</item>
+            <item>presentation-level</item>
+            <item>quotes</item>
+            <item>resize</item>
+            <item>rest</item>
+            <item>rest-after</item>
+            <item>rest-before</item>
+            <item>richness</item>
+            <item>right</item>
+            <item>rotation</item>
+            <item>rotation-point</item>
+            <item>ruby-align</item>
+            <item>ruby-merge</item>
+            <item>ruby-position</item>
+            <item>running</item>
+            <item>scroll-behavior</item>
+            <item>scroll-snap-align</item>
+            <item>scroll-snap-margin</item>
+            <item>scroll-snap-margin-block</item>
+            <item>scroll-snap-margin-block-end</item>
+            <item>scroll-snap-margin-block-start</item>
+            <item>scroll-snap-margin-bottom</item>
+            <item>scroll-snap-margin-inline</item>
+            <item>scroll-snap-margin-inline-end</item>
+            <item>scroll-snap-margin-inline-start</item>
+            <item>scroll-snap-margin-left</item>
+            <item>scroll-snap-margin-right</item>
+            <item>scroll-snap-margin-top</item>
+            <item>scroll-snap-padding</item>
+            <item>scroll-snap-padding-block</item>
+            <item>scroll-snap-padding-block-end</item>
+            <item>scroll-snap-padding-block-start</item>
+            <item>scroll-snap-padding-bottom</item>
+            <item>scroll-snap-padding-inline</item>
+            <item>scroll-snap-padding-inline-end</item>
+            <item>scroll-snap-padding-inline-start</item>
+            <item>scroll-snap-padding-left</item>
+            <item>scroll-snap-padding-right</item>
+            <item>scroll-snap-padding-top</item>
+            <item>scroll-snap-stop</item>
+            <item>scroll-snap-type</item>
+            <item>shape-image-threshold</item>
+            <item>shape-inside</item>
+            <item>shape-margin</item>
+            <item>shape-outside</item>
+            <item>size</item>
+            <item>speak</item>
+            <item>speak-as</item>
+            <item>speak-header</item>
+            <item>speak-numeral</item>
+            <item>speak-punctuation</item>
+            <item>speech-rate</item>
+            <item>stress</item>
+            <item>string-set</item>
+            <item>tab-size</item>
+            <item>table-layout</item>
+            <item>text-align</item>
+            <item>text-align-last</item>
+            <item>text-combine-upright</item>
+            <item>text-decoration</item>
+            <item>text-decoration-color</item>
+            <item>text-decoration-line</item>
+            <item>text-decoration-skip</item>
+            <item>text-decoration-style</item>
+            <item>text-emphasis</item>
+            <item>text-emphasis-color</item>
+            <item>text-emphasis-position</item>
+            <item>text-emphasis-style</item>
+            <item>text-indent</item>
+            <item>text-justify</item>
+            <item>text-orientation</item>
+            <item>text-overflow</item>
+            <item>text-shadow</item>
+            <item>text-transform</item>
+            <item>text-underline-position</item>
+            <item>text-wrap</item>
+            <item>top</item>
+            <item>transform</item>
+            <item>transform-origin</item>
+            <item>transform-style</item>
+            <item>transition</item>
+            <item>transition-delay</item>
+            <item>transition-property</item>
+            <item>transition-duration</item>
+            <item>transition-timing-function</item>
+            <item>unicode-bidi</item>
+            <item>vertical-align</item>
+            <item>visibility</item>
+            <item>voice-balance</item>
+            <item>voice-duration</item>
+            <item>voice-family</item>
+            <item>voice-pitch</item>
+            <item>voice-range</item>
+            <item>voice-rate</item>
+            <item>voice-stress</item>
+            <item>voice-volume</item>
+            <item>volume</item>
+            <item>white-space</item>
+            <item>widows</item>
+            <item>width</item>
+            <item>will-change</item>
+            <item>word-break</item>
+            <item>word-spacing</item>
+            <item>word-wrap</item>
+            <item>wrap-flow</item>
+            <item>wrap-through</item>
+            <item>writing-mode</item>
+            <item>z-index</item>
+
+            <!-- Gecko rendering engine CSS property extensions -->
+            <item>-moz-animation-name</item>
+            <item>-moz-animation-duration</item>
+            <item>-moz-animation-iteration</item>
+            <item>-moz-animation-direction</item>
+            <item>-moz-animation-delay</item>
+            <item>-moz-animation-play-state</item>
+            <item>-moz-animation-fill-mode</item>
+            <item>-moz-background-size</item>
+            <item>-moz-border-image</item>
+            <item>-moz-border-bottom-colors</item>
+            <item>-moz-border-left-colors</item>
+            <item>-moz-border-radius</item>
+            <item>-moz-border-radius-topleft</item>
+            <item>-moz-border-radius-topright</item>
+            <item>-moz-border-radius-bottomleft</item>
+            <item>-moz-border-radius-bottomright</item>
+            <item>-moz-border-right-colors</item>
+            <item>-moz-border-top-colors</item>
+            <item>-moz-box</item>
+            <item>-moz-box-flex</item>
+            <item>-moz-box-shadow</item>
+            <item>-moz-box-sizing</item>
+            <item>-moz-column-count</item>
+            <item>-moz-column-gap</item>
+            <item>-moz-hyphens</item>
+            <item>-moz-linear-gradient</item>
+            <item>-moz-opacity</item>
+            <item>-moz-outline-style</item>
+            <item>-moz-perspective</item>
+            <item>-moz-radial-gradient</item>
+            <item>-moz-resize</item>
+            <item>-moz-transform</item>
+            <item>-moz-transform-origin</item>
+            <item>-moz-transform-style</item>
+            <item>-moz-transition</item>
+            <item>-moz-transition-property</item>
+            <item>-moz-transition-duration</item>
+
+            <!-- Opera rendering engine CSS property extensions -->
+            <item>-o-background-size</item>
+            <item>-o-linear-gradient</item>
+            <item>-o-text-overflow</item>
+            <item>-o-transition</item>
+            <item>-o-transform-origin</item>
+
+            <!-- konq specific -->
+            <item>konq_bgpos_x</item>
+            <item>konq_bgpos_y</item>
+            <item>-khtml-background-size</item>
+            <item>-khtml-border-top-left-radius</item>
+            <item>-khtml-border-top-right-radius</item>
+            <item>-khtml-border-bottom-left-radius</item>
+            <item>-khtml-border-bottom-right-radius</item>
+            <item>-khtml-border-radius</item>
+            <item>-khtml-box-shadow</item>
+            <item>-khtml-opacity</item>
+
+            <!-- Webkit rendering engine CSS property extensions -->
+            <item>-webkit-appearance</item>
+            <item>-webkit-animation-name</item>
+            <item>-webkit-animation-duration</item>
+            <item>-webkit-animation-iteration</item>
+            <item>-webkit-animation-direction</item>
+            <item>-webkit-animation-delay</item>
+            <item>-webkit-animation-play-state</item>
+            <item>-webkit-animation-fill-mode</item>
+            <item>-webkit-background-size</item>
+            <item>-webkit-border-image</item>
+            <item>-webkit-border-bottom-colors</item>
+            <item>-webkit-border-left-colors</item>
+            <item>-webkit-border-radius</item>
+            <item>-webkit-border-right-colors</item>
+            <item>-webkit-border-top-colors</item>
+            <item>-webkit-border-top-left-radius</item>
+            <item>-webkit-border-top-right-radius</item>
+            <item>-webkit-border-bottom-left-radius</item>
+            <item>-webkit-border-bottom-right-radius</item>
+            <item>-webkit-border-radius-bottomleft</item>
+            <item>-webkit-border-radius-bottomright</item>
+            <item>-webkit-box-flex</item>
+            <item>-webkit-box-reflect</item>
+            <item>-webkit-box-shadow</item>
+            <item>-webkit-box-sizing</item>
+            <item>-webkit-column-count</item>
+            <item>-webkit-column-gap</item>
+            <item>-webkit-hyphens</item>
+            <item>-webkit-linear-gradient</item>
+            <item>-webkit-gradient</item>
+            <item>-webkit-perspective</item>
+            <item>-webkit-text-fill-color</item>
+            <item>-webkit-text-stroke-color</item>
+            <item>-webkit-text-stroke-width</item>
+            <item>-webkit-text-size-adjust</item>
+            <item>-webkit-transform</item>
+            <item>-webkit-transform-origin</item>
+            <item>-webkit-transform-style</item>
+            <item>-webkit-transition</item>
+            <item>-webkit-transition-property</item>
+            <item>-webkit-transition-duration</item>
+
+            <!-- Trident (a.k.a., MSHTML) CSS property extensions -->
+            <item>zoom</item>
+            <item>-ms-animation-name</item>
+            <item>-ms-animation-duration</item>
+            <item>-ms-animation-iteration</item>
+            <item>-ms-animation-direction</item>
+            <item>-ms-animation-delay</item>
+            <item>-ms-animation-play-state</item>
+            <item>-ms-animation-fill-mode</item>
+            <item>-ms-box-sizing</item>
+            <item>-ms-filter</item>
+            <item>-ms-interpolation-mode</item>
+            <item>-ms-linear-gradient</item>
+            <item>-ms-text-size-adjust</item>
+            <item>-ms-transform</item>
+            <item>-ms-transition</item>
+
+            <!-- font properties in @font-face -->
+            <item>font-family</item>
+            <item>font-size</item>
+            <item>font-stretch</item>
+            <item>font-style</item>
+            <item>font-variant</item>
+            <item>font-weight</item>
+            <item>unicode-range</item>
+            <item>units-per-em</item>
+            <item>src</item>
+            <item>panose-1</item>
+            <item>stemv</item>
+            <item>stemh</item>
+            <item>slope</item>
+            <item>cap-height</item>
+            <item>x-height</item>
+            <item>ascent</item>
+            <item>descent</item>
+            <item>widths</item>
+            <item>bbox</item>
+            <item>definition-src</item>
+            <item>baseline</item>
+            <item>centerline</item>
+            <item>mathline</item>
+            <item>topline</item>
+        </list>
+
+        <list name="values">
+            <item>inherit</item>
+            <item>none</item>
+            <item>hidden</item>
+            <item>dotted</item>
+            <item>dashed</item>
+            <item>solid</item>
+            <item>double</item>
+            <item>groove</item>
+            <item>ridge</item>
+            <item>inset</item>
+            <item>outset</item>
+            <item>xx-small</item>
+            <item>x-small</item>
+            <item>small</item>
+            <item>medium</item>
+            <item>large</item>
+            <item>x-large</item>
+            <item>xx-large</item>
+            <item>smaller</item>
+            <item>larger</item>
+            <item>italic</item>
+            <item>oblique</item>
+            <item>small-caps</item>
+            <item>normal</item>
+            <item>bold</item>
+            <item>bolder</item>
+            <item>lighter</item>
+            <item>light</item>
+            <item>100</item>
+            <item>200</item>
+            <item>300</item>
+            <item>400</item>
+            <item>500</item>
+            <item>600</item>
+            <item>700</item>
+            <item>800</item>
+            <item>900</item>
+            <item>transparent</item>
+            <item>repeat</item>
+            <item>repeat-x</item>
+            <item>repeat-y</item>
+            <item>no-repeat</item>
+            <item>baseline</item>
+            <item>sub</item>
+            <item>super</item>
+            <item>top</item>
+            <item>text-top</item>
+            <item>middle</item>
+            <item>bottom</item>
+            <item>text-bottom</item>
+            <item>left</item>
+            <item>right</item>
+            <item>center</item>
+            <item>justify</item>
+            <item>konq-center</item>
+            <item>disc</item>
+            <item>circle</item>
+            <item>square</item>
+            <item>box</item>
+            <item>decimal</item>
+            <item>decimal-leading-zero</item>
+            <item>lower-roman</item>
+            <item>upper-roman</item>
+            <item>lower-greek</item>
+            <item>lower-alpha</item>
+            <item>lower-latin</item>
+            <item>upper-alpha</item>
+            <item>upper-latin</item>
+            <item>hebrew</item>
+            <item>armenian</item>
+            <item>georgian</item>
+            <item>cjk-ideographic</item>
+            <item>hiragana</item>
+            <item>katakana</item>
+            <item>hiragana-iroha</item>
+            <item>katakana-iroha</item>
+            <item>inline</item>
+            <item>inline-block</item>
+            <item>block</item>
+            <item>list-item</item>
+            <item>run-in</item>
+            <item>compact</item>
+            <item>marker</item>
+            <item>table</item>
+            <item>inline-table</item>
+            <item>table-row-group</item>
+            <item>table-header-group</item>
+            <item>table-footer-group</item>
+            <item>table-row</item>
+            <item>table-column-group</item>
+            <item>table-column</item>
+            <item>table-cell</item>
+            <item>table-caption</item>
+            <item>auto</item>
+            <item>crosshair</item>
+            <item>default</item>
+            <item>pointer</item>
+            <item>move</item>
+            <item>e-resize</item>
+            <item>ne-resize</item>
+            <item>nw-resize</item>
+            <item>n-resize</item>
+            <item>se-resize</item>
+            <item>sw-resize</item>
+            <item>s-resize</item>
+            <item>w-resize</item>
+            <item>text</item>
+            <item>wait</item>
+            <item>help</item>
+            <item>above</item>
+            <item>absolute</item>
+            <item>always</item>
+            <item>avoid</item>
+            <item>below</item>
+            <item>bidi-override</item>
+            <item>blink</item>
+            <item>both</item>
+            <item>capitalize</item>
+            <item>caption</item>
+            <item>clip</item>
+            <item>close-quote</item>
+            <item>collapse</item>
+            <item>condensed</item>
+            <item>crop</item>
+            <item>cross</item>
+            <item>ellipsis</item>
+            <item>ellipsis-word</item>
+            <item>embed</item>
+            <item>expanded</item>
+            <item>extra-condensed</item>
+            <item>extra-expanded</item>
+            <item>fixed</item>
+            <item>hand</item>
+            <item>hide</item>
+            <item>higher</item>
+            <item>icon</item>
+            <item>inside</item>
+            <item>invert</item>
+            <item>landscape</item>
+            <item>level</item>
+            <item>line-through</item>
+            <item>loud</item>
+            <item>lower</item>
+            <item>lowercase</item>
+            <item>ltr</item>
+            <item>menu</item>
+            <item>message-box</item>
+            <item>mix</item>
+            <item>narrower</item>
+            <item>no-close-quote</item>
+            <item>no-open-quote</item>
+            <item>nowrap</item>
+            <item>open-quote</item>
+            <item>outside</item>
+            <item>overline</item>
+            <item>portrait</item>
+            <item>pre</item>
+            <item>pre-line</item>
+            <item>pre-wrap</item>
+            <item>relative</item>
+            <item>rtl</item>
+            <item>scroll</item>
+            <item>semi-condensed</item>
+            <item>semi-expanded</item>
+            <item>separate</item>
+            <item>show</item>
+            <item>small-caption</item>
+            <item>static</item>
+            <item>static-position</item>
+            <item>status-bar</item>
+            <item>thick</item>
+            <item>thin</item>
+            <item>ultra-condensed</item>
+            <item>ultra-expanded</item>
+            <item>underline</item>
+            <item>uppercase</item>
+            <item>visible</item>
+            <item>wider</item>
+            <item>break</item>
+            <item>serif</item>
+            <item>sans-serif</item>
+            <item>cursive</item>
+            <item>fantasy</item>
+            <item>monospace</item>
+            <item>border-box</item>
+            <item>content-box</item>
+            <item>-epub-hyphens</item>
+        </list>
+
+        <list name="colors">
+            <item>aqua</item>
+            <item>black</item>
+            <item>blue</item>
+            <item>cyan</item>
+            <item>fuchsia</item>
+            <item>gray</item>
+            <item>green</item>
+            <item>lime</item>
+            <item>maroon</item>
+            <item>navy</item>
+            <item>olive</item>
+            <item>purple</item>
+            <item>red</item>
+            <item>silver</item>
+            <item>teal</item>
+            <item>white</item>
+            <item>yellow</item>
+            <item>ActiveBorder</item>
+            <item>ActiveCaption</item>
+            <item>AppWorkspace</item>
+            <item>Background</item>
+            <item>ButtonFace</item>
+            <item>ButtonHighlight</item>
+            <item>ButtonShadow</item>
+            <item>ButtonText</item>
+            <item>CaptionText</item>
+            <item>GrayText</item>
+            <item>Highlight</item>
+            <item>HighlightText</item>
+            <item>InactiveBorder</item>
+            <item>InactiveCaption</item>
+            <item>InactiveCaptionText</item>
+            <item>InfoBackground</item>
+            <item>InfoText</item>
+            <item>Menu</item>
+            <item>MenuText</item>
+            <item>Scrollbar</item>
+            <item>ThreeDDarkShadow</item>
+            <item>ThreeDFace</item>
+            <item>ThreeDHighlight</item>
+            <item>ThreeDLightShadow</item>
+            <item>ThreeDShadow</item>
+            <item>Window</item>
+            <item>WindowFrame</item>
+            <item>WindowText</item>
+        </list>
+
+        <list name="functions">
+            <item>url</item>
+            <item>attr</item>
+            <item>rect</item>
+            <item>rgb</item>
+            <item>rgba</item>
+            <item>hsl</item>
+            <item>hsla</item>
+            <item>counter</item>
+            <item>counters</item>
+
+            <!-- in @font-face -->
+            <item>local</item>
+            <item>format</item>
+
+            <!-- Trident (a.k.a., MSHTML) rendering engine functional notation extensions -->
+            <item>expression</item>
+
+        </list>
+
+        <list name="mediatypes">
+            <item>all</item>
+            <item>aural</item>
+            <item>braille</item>
+            <item>embossed</item>
+            <item>handheld</item>
+            <item>print</item>
+            <item>projection</item>
+            <item>screen</item>
+            <item>speech</item>
+            <item>tty</item>
+            <item>tv</item>
+        </list>
+
+        <list name="mediatypes_op">
+            <item>not</item>
+            <item>only</item>
+        </list>
+
+        <list name="media_features">
+            <item>width</item>
+            <item>min-width</item>
+            <item>max-width</item>
+            <item>height</item>
+            <item>min-height</item>
+            <item>max-height</item>
+            <item>device-width</item>
+            <item>min-device-width</item>
+            <item>max-device-width</item>
+            <item>device-height</item>
+            <item>min-device-height</item>
+            <item>max-device-height</item>
+            <item>orientation</item>
+            <item>aspect-ratio</item>
+            <item>min-aspect-ratio</item>
+            <item>max-aspect-ratio</item>
+            <item>device-aspect-ratio</item>
+            <item>min-device-aspect-ratio</item>
+            <item>max-device-aspect-ratio</item>
+            <item>color</item>
+            <item>min-color</item>
+            <item>max-color</item>
+            <item>color-index</item>
+            <item>min-color-index</item>
+            <item>max-color-index</item>
+            <item>monochrome</item>
+            <item>min-monochrome</item>
+            <item>max-monochrome</item>
+            <item>resolution</item>
+            <item>min-resolution</item>
+            <item>max-resolution</item>
+            <item>scan</item>
+            <item>grid</item>
+        </list>
+
+        <list name="pseudoclasses">
+            <item>hover</item>
+            <item>link</item>
+            <item>visited</item>
+            <item>active</item>
+            <item>focus</item>
+            <item>first-child</item>
+            <item>last-child</item>
+            <item>only-child</item>
+            <item>first-of-type</item>
+            <item>last-of-type</item>
+            <item>only-of-type</item>
+            <item>first-letter</item>
+            <item>first-line</item>
+            <item>before</item>
+            <item>after</item>
+            <item>selection</item>
+            <item>root</item>
+            <item>empty</item>
+            <item>target</item>
+            <item>enabled</item>
+            <item>disabled</item>
+            <item>checked</item>
+            <item>indeterminate</item>
+            <item>nth-child</item>
+            <item>nth-last-child</item>
+            <item>nth-of-type</item>
+            <item>nth-last-of-type</item>
+            <item>not</item>
+        </list>
+
+        <contexts>
+            <context name="Base" attribute="Normal Text" lineEndContext="#stay">
+                <IncludeRules context="FindComments" />
+                <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" />
+                <RegExpr attribute="At Rule" context="AtRule" String="@[a-zA-Z0-1-]+\b" />
+                <IncludeRules context="FindSelectors" />
+            </context>
+
+            <!-- find selectors // .class #id :hover :nth-child(2n+1) [type="search"] -->
+            <context name="FindSelectors" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="Selector Attribute" context="SelectorAttr" char="[" />
+                <RegExpr attribute="Selector Id" context="#stay" String="#(-)?(&nmstart;)(&nmchar;)*" />
+                <RegExpr attribute="Selector Class" context="#stay" String="\.([a-zA-Z0-9\-_]|[\x80-\xFF]|\\[0-9A-Fa-f]{1,6})*" />
+                <RegExpr attribute="Selector Pseudo" context="#stay" String=":lang\([\w_-]+\)" />
+                <DetectChar attribute="Selector Pseudo" context="SelectorPseudo" char=":" />
+            </context>
+
+            <!-- find functions // rgba(255,255,255,0.75) -->
+            <context name="FindFunctions" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr attribute="Function" context="Function" String="[a-z\-]+\(" lookAhead="true" />
+            </context>
+
+            <!-- find values //  10px 12pt 2.5em 1rem 75% #ffcc99 red solid -->
+            <context name="FindValues" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr attribute="Annotation" context="#stay" String="!important\b" />
+                <keyword attribute="Value" context="#stay" String="values" />
+                <keyword attribute="Value" context="#stay" String="colors" />
+                <RegExpr attribute="Value" context="#stay" String="#([0-9A-Fa-f]{3}){1,4}\b" />
+                <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+(em|ex|ch|rem|vw|vh|vm|px|in|cm|mm|pt|pc|deg|rad|grad|turn|ms|s|Hz|kHz)\b" />
+                <RegExpr attribute="Value" context="#stay" String="[-+]?[0-9.]+[%]?" />
+                <RegExpr attribute="Normal Text" context="#stay" String="[\w\-]+" />
+            </context>
+
+            <!-- find strings // "some words" 'some words' -->
+            <context name="FindStrings" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="String" context="StringDQ" char="&quot;" />
+                <DetectChar attribute="String" context="StringSQ" char="'" />
+            </context>
+
+            <!-- find comments // /* comment */ -->
+            <context name="FindComments" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr attribute="Region Marker" context="#stay" String="/\*BEGIN.*\*/" beginRegion="UserDefined" />
+                <RegExpr attribute="Region Marker" context="#stay" String="/\*END.*\*/" endRegion="UserDefined" />
+                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment" />
+            </context>
+
+            <context name="AtRule" attribute="Normal Text" lineEndContext="#pop">
+                <IncludeRules context="FindComments" />
+                <IncludeRules context="FindStrings" />
+                <keyword attribute="Value" context="#stay" String="mediatypes" />
+                <keyword attribute="Property" context="#stay" String="media_features" />
+                <AnyChar attribute="Normal Text" context="#pop" String=";{" lookAhead="true" />
+                <IncludeRules context="FindValues" />
+            </context>
+
+            <context name="SelectorAttr" attribute="Selector Attribute" lineEndContext="#stay">
+                <DetectChar attribute="Selector Attribute" context="#pop" char="]" />
+                <IncludeRules context="FindStrings" />
+            </context>
+
+            <context name="SelectorPseudo" attribute="Selector Pseudo" lineEndContext="#pop"
+                     fallthrough="true" fallthroughContext="#pop">
+                <keyword attribute="Selector Pseudo" context="#pop" String="pseudoclasses" />
+            </context>
+
+            <context name="Comment" attribute="Comment" lineEndContext="#stay">
+                <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="comment" />
+                <IncludeRules context="##Alerts" />
+            </context>
+
+            <context name="RuleSet" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="Normal Text" context="RuleSet" char="{" beginRegion="ruleset" />
+                <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="ruleset" />
+                <RegExpr attribute="Property" context="Rule" String="-?[A-Za-z_-]+(?=\s*:)" lookAhead="true" />
+                <IncludeRules context="Base" />
+            </context>
+
+            <context name="Rule" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="Normal Text" context="RuleParameters" char=":" />
+                <keyword attribute="Property" context="#stay" String="properties" />
+                <RegExpr attribute="Unknown Property" context="#stay" String="-?[A-Za-z_-]+(?=\s*:)" />
+                <RegExpr attribute="Error" context="#stay" String="\S" />
+            </context>
+
+            <context name="RuleParameters" attribute="Normal Text" lineEndContext="#stay">
+                <IncludeRules context="FindComments" />
+                <IncludeRules context="FindStrings" />
+                <IncludeRules context="FindFunctions" />
+                <IncludeRules context="FindValues" />
+                <!-- Jump out conditions -->
+                <DetectChar attribute="Normal Text" context="#pop#pop" char=";" />
+                <DetectChar attribute="Normal Text" context="#pop#pop#pop" char="}" endRegion="ruleset" />
+            </context>
+
+            <context name="Function" attribute="Normal Text" lineEndContext="#stay">
+                <DetectChar attribute="Normal Text" context="FunctionParameters" char="(" />
+                <keyword attribute="Function" context="#stay" String="functions" />
+            </context>
+
+            <context name="FunctionParameters" attribute="Normal Text" lineEndContext="#stay">
+                <IncludeRules context="FindComments" />
+                <IncludeRules context="FindStrings" />
+                <IncludeRules context="FindValues" />
+                <!-- Jump out conditions -->
+                <DetectChar attribute="Normal Text" context="#pop#pop" char=")" />
+            </context>
+
+            <!-- string contexts -->
+            <context name="StringDQ" attribute="String" lineEndContext="#stay">
+                <DetectChar attribute="String" context="#pop" char="&quot;" />
+                <IncludeRules context="InsideString" />
+            </context>
+
+            <context name="StringSQ" attribute="String" lineEndContext="#stay">
+                <DetectChar attribute="String" context="#pop" char="'" />
+                <IncludeRules context="InsideString" />
+            </context>
+
+            <context name="InsideString" attribute="String" lineEndContext="#stay">
+                <RegExpr attribute="String" context="#stay" String="\\[&quot;']" />
+                <DetectIdentifier/>
+            </context>
+
+        </contexts>
+
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="At Rule" defStyleNum="dsImport" spellChecking="false"/>
+            <itemData name="Property" defStyleNum="dsKeyword" spellChecking="false"/>
+            <itemData name="Unknown Property" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="String" defStyleNum="dsString"/>
+            <itemData name="Value" defStyleNum="dsDecVal" spellChecking="false"/>
+            <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Annotation" defStyleNum="dsAttribute" spellChecking="false"/>
+            <itemData name="Selector Id" defStyleNum="dsPreprocessor" bold="1" spellChecking="false"/>
+            <itemData name="Selector Class" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="Selector Attribute" defStyleNum="dsExtension" spellChecking="false"/>
+            <itemData name="Selector Pseudo" defStyleNum="dsInformation" italic="1" spellChecking="false"/>
+            <itemData name="Comment" defStyleNum="dsComment" />
+            <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
+            <itemData name="Alert" defStyleNum="dsAlert" spellChecking="false"/>
+            <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+        </itemDatas>
+    </highlighting>
+
+    <general>
+        <keywords casesensitive="0" weakDeliminator="-%"/>
+        <comments>
+            <comment name="multiLine" start="/*" end="*/" />
+        </comments>
+    </general>
+
+</language>
diff --git a/xml/curry.xml b/xml/curry.xml
new file mode 100644
--- /dev/null
+++ b/xml/curry.xml
@@ -0,0 +1,364 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+  <!-- qualification of entities -->
+  <!ENTITY qualify     "([A-Z][a-zA-Z0-9_']*\.)*">
+  <!-- identifier -->
+  <!ENTITY ident       "[a-z][a-zA-Z0-9_']*">
+  <!-- Type -->
+  <!ENTITY type        "[A-Z][a-zA-Z0-9_']*">
+  <!-- infix operator characters -->
+  <!ENTITY infixchar   "~!@#\$&#37;\^&amp;\*\+\-=&lt;&gt;\?\./\|&backslash;:">
+  <!-- identifier in prefix notation, e.g.: id, ($) -->
+  <!ENTITY prefixIdent "(&ident;|\([&infixchar;]+\))">
+
+  <!-- Characters allowed in character escape sequence, e.g., \n -->
+  <!ENTITY escSeqChar  "abfnrtv\&quot;'" >
+  <!-- Ascii escape sequence, e.g., \NUL -->
+  <!ENTITY escSeqAscii "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" >
+  <!-- Control escape sequence, e.g., \^X -->
+  <!ENTITY escSeqCntrl "\^[A-Z@\[&backslash;\]\^_]" >
+
+  <!-- octal number -->
+  <!ENTITY octal       "[0-7]+" >
+  <!-- decimal number -->
+  <!ENTITY decimal     "[0-9]+" >
+  <!-- hexadecimal number -->
+  <!ENTITY hexadecimal "[0-9a-fA-F]+" >
+  <!-- a backslash, escaped for use in regular expressions -->
+  <!ENTITY backslash   "\\" >
+  <!-- dashes introducing a currydoc comment -->
+  <!ENTITY currydoc    "---" >
+]>
+<language name="Curry" version="1" kateversion="5.0"
+          section="Sources" extensions="*.curry" mimetype="text/x-curry"
+          author="Björn Peemöller (bjp@informatik.uni-kiel.de)" license="LGPL"
+          indenter="haskell">
+  <highlighting>
+  <list name="keywords">
+    <item>case</item>
+    <item>data</item>
+    <item>do</item>
+    <item>else</item>
+    <item>external</item>
+    <item>fcase</item>
+    <item>free</item>
+    <item>if</item>
+<!-- Although import is a keyword, it is handled in a special context
+     to highlight "qualified", "as" and "hiding" in keyword style,
+     albeit these lexemes are no keywords.
+    <item>import</item>
+  -->
+    <item>in</item>
+    <item>infix</item>
+    <item>infixl</item>
+    <item>infixr</item>
+    <item>let</item>
+    <item>module</item>
+    <item>of</item>
+    <item>then</item>
+    <item>type</item>
+    <item>where</item>
+  </list>
+  <list name="Prelude Func">
+    <item>and</item>
+    <item>all</item>
+    <item>any</item>
+    <item>appendFile</item>
+    <item>best</item>
+    <item>break</item>
+    <item>browse</item>
+    <item>browseList</item>
+    <item>chr</item>
+    <item>concat</item>
+    <item>concatMap</item>
+    <item>const</item>
+    <item>curry</item>
+    <item>div</item>
+    <item>done</item>
+    <item>doSolve</item>
+    <item>drop</item>
+    <item>dropWhile</item>
+    <item>either</item>
+    <item>elem</item>
+    <item>ensureNotFree</item>
+    <item>ensureSpine</item>
+    <item>enumFrom</item>
+    <item>enumFromThen</item>
+    <item>enumFromTo</item>
+    <item>enumFromThenTo</item>
+    <item>error</item>
+    <item>failed</item>
+    <item>filter</item>
+    <item>findall</item>
+    <item>flip</item>
+    <item>foldl</item>
+    <item>foldl1</item>
+    <item>foldr</item>
+    <item>foldr1</item>
+    <item>fst</item>
+    <item>getChar</item>
+    <item>getLine</item>
+    <item>id</item>
+    <item>if_then_else</item>
+    <item>iterate</item>
+    <item>head</item>
+    <item>length</item>
+    <item>lines</item>
+    <item>lookup</item>
+    <item>map</item>
+    <item>mapIO</item>
+    <item>mapIO_</item>
+    <item>max</item>
+    <item>maybe</item>
+    <item>min</item>
+    <item>mod</item>
+    <item>negate</item>
+    <item>not</item>
+    <item>notElem</item>
+    <item>null</item>
+    <item>once</item>
+    <item>or</item>
+    <item>ord</item>
+    <item>otherwise</item>
+    <item>print</item>
+    <item>putChar</item>
+    <item>putStr</item>
+    <item>putStrLn</item>
+    <item>readFile</item>
+    <item>repeat</item>
+    <item>replicate</item>
+    <item>return</item>
+    <item>reverse</item>
+    <item>seq</item>
+    <item>sequenceIO</item>
+    <item>sequenceIO_</item>
+    <item>show</item>
+    <item>snd</item>
+    <item>solveAll</item>
+    <item>span</item>
+    <item>splitAt</item>
+    <item>success</item>
+    <item>tail</item>
+    <item>take</item>
+    <item>takeWhile</item>
+    <item>try</item>
+    <item>uncurry</item>
+    <item>unknown</item>
+    <item>unlines</item>
+    <item>unpack</item>
+    <item>until</item>
+    <item>unwords</item>
+    <item>unzip</item>
+    <item>unzip3</item>
+    <item>writeFile</item>
+    <item>words</item>
+    <item>zip</item>
+    <item>zip3</item>
+    <item>zipWith</item>
+    <item>zipWith3</item>
+  </list>
+  <list name="Prelude Type">
+    <item>Bool</item>
+    <item>Char</item>
+    <item>Either</item>
+    <item>Float</item>
+    <item>Int</item>
+    <item>IO</item>
+    <item>Maybe</item>
+    <item>Ordering</item>
+    <item>String</item>
+    <item>Success</item>
+  </list>
+  <list name="Prelude Cons">
+    <item>False</item>
+    <item>True</item>
+    <item>Left</item>
+    <item>Right</item>
+    <item>Just</item>
+    <item>Nothing</item>
+    <item>EQ</item>
+    <item>LT</item>
+    <item>GT</item>
+  </list>
+  <contexts>
+    <context name="Normal" attribute="Normal" lineEndContext="#stay">
+      <!-- pragmas, currydoc, comments -->
+      <StringDetect attribute="Pragma"   context="Pragma"            String="{-#"        beginRegion="Pragma"  />
+      <Detect2Chars attribute="Comment"  context="Multiline Comment" char="{" char1="-"  beginRegion="Multiline Comment" />
+      <StringDetect attribute="Currydoc" context="Currydoc"          String="&currydoc;" />
+      <Detect2Chars attribute="Comment"  context="Comment"           char="-" char1="-"  />
+
+      <!-- keywords, Prelude entities -->
+      <keyword      attribute="Keyword"             context="#stay"   String="keywords" />
+      <keyword      attribute="Prelude Function"    context="#stay"   String="Prelude Func" />
+      <keyword      attribute="Prelude Type"        context="#stay"   String="Prelude Type" />
+      <keyword      attribute="Prelude Constructor" context="#stay"   String="Prelude Cons" />
+      <RegExpr      attribute="Keyword"             context="Import"  String="import\s+(qualified)?" />
+
+      <!-- Literals -->
+      <Float        attribute="Float"   context="#stay"   />
+      <RegExpr      attribute="Octal"   context="#stay"   String="0(o|O)&octal;" />
+      <HlCHex       attribute="Hex"     context="#stay"   />
+      <Int          attribute="Decimal" context="#stay"   />
+      <DetectChar   attribute="Char"    context="Char"    char="'" />
+      <DetectChar   attribute="String"  context="String"  char="&quot;" />
+
+      <!-- Others -->
+      <RegExpr      attribute="Special Symbol"    context="#stay"   String="(::|:=|:&gt;|\-&gt;|&lt;\-|\.\.)" />
+      <RegExpr      attribute="Signature"         context="#stay"   String="\s*&prefixIdent;\s*(,\s*&prefixIdent;)*\s*(?=::[^&infixchar;])" />
+      <RegExpr      attribute="Function"          context="#stay"   String="&qualify;&ident;" />
+      <RegExpr      attribute="Operator"          context="#stay"   String="&qualify;[&infixchar;]+" />
+      <RegExpr      attribute="Type, Constructor" context="#stay"   String="&qualify;&type;" />
+      <DetectChar   attribute="Infix Application" context="Infix"   char="`" />
+
+      <!-- Folding of braces -->
+      <DetectChar char="(" context="#stay" beginRegion="nested" attribute="Braces" />
+      <DetectChar char=")" context="#stay" endRegion="nested"   attribute="Braces" />
+      <DetectChar char="[" context="#stay" beginRegion="list"   attribute="Braces" />
+      <DetectChar char="]" context="#stay" endRegion="list"     attribute="Braces" />
+      <DetectChar char="{" context="#stay" beginRegion="curly"  attribute="Braces" />
+      <DetectChar char="}" context="#stay" endRegion="curly"    attribute="Braces" />
+    </context>
+
+    <!-- Pragma -->
+    <context name="Pragma" attribute="Pragma" lineEndContext="#stay" >
+      <StringDetect attribute="Pragma" context="#pop" String="#-}" endRegion="Pragma" />
+    </context>
+
+    <!-- Multiline comment -->
+    <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay" >
+      <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" endRegion="Multiline Comment" />
+    </context>
+
+    <!-- Currydoc -->
+    <context name="Currydoc" attribute="Currydoc" lineEndContext="#pop" />
+
+    <!-- Single line comment -->
+    <context name="Comment" attribute="Comment" lineEndContext="#pop" />
+
+    <!-- Import section -->
+    <context name="Import" attribute="Normal" lineEndContext="#pop" >
+      <!-- pragmas, currydoc, comments -->
+      <StringDetect attribute="Pragma"   context="Pragma"            String="{-#"        beginRegion="Pragma"  />
+      <Detect2Chars attribute="Comment"  context="Multiline Comment" char="{" char1="-"  beginRegion="Multiline Comment" />
+      <StringDetect attribute="Currydoc" context="Currydoc"          String="&currydoc;" />
+      <Detect2Chars attribute="Comment"  context="Comment"           char="-" char1="-"  />
+
+      <RegExpr      attribute="Type, Constructor" context="#stay" String="&qualify;&type;" />
+      <Detect2Chars attribute="Keyword"           context="#stay" char="a" char1="s" />
+      <StringDetect attribute="Keyword"           context="#stay" String="hiding" />
+      <!-- Pop context at open paren to highlight imported entities -->
+      <DetectChar   attribute="Braces"            context="#pop"   char="(" beginRegion="nested" />
+      <RegExpr      attribute="Syntax Error"      context="#stay"  String="\S+" />
+    </context>
+
+    <!-- A single characters, with escape sequences -->
+    <context name="Char" attribute="Char" lineEndContext="CharSyntaxError" >
+      <DetectChar attribute="Syntax Error" context="#pop"       char="'" />
+      <DetectChar attribute="Char"         context="CharEscape" char="\" />
+      <RegExpr    attribute="Char"         context="CharEnd"    String="[^'&backslash;]" />
+    </context>
+
+    <!-- Character escape sequence -->
+    <context name="CharEscape" attribute="Char" lineEndContext="#popCharSyntaxError" >
+      <AnyChar attribute="Char"         context="#popCharEnd" String="&escSeqChar;"   />
+      <RegExpr attribute="Char"         context="#popCharEnd" String="o&octal;"       />
+      <RegExpr attribute="Char"         context="#popCharEnd" String="&decimal;"      />
+      <RegExpr attribute="Char"         context="#popCharEnd" String="x&hexadecimal;" />
+      <RegExpr attribute="Char"         context="#popCharEnd" String="&escSeqCntrl;"  />
+      <RegExpr attribute="Char"         context="#popCharEnd" String="&escSeqAscii;"  />
+      <RegExpr attribute="Syntax Error" context="#popCharEnd" String="."              />
+    </context>
+
+    <!-- Ending quote of character literal -->
+    <context name="CharEnd" attribute="Char" lineEndContext="#popCharSyntaxError" >
+      <DetectChar attribute="Char"         context="#pop#pop" char="'" />
+      <RegExpr    attribute="Syntax Error" context="#stay"    String="." />
+    </context>
+
+    <!-- Character syntax error: Newline inside literal -->
+    <context name="CharSyntaxError" attribute="Syntax Error" lineEndContext="#stay" >
+      <DetectChar attribute="Syntax Error" context="#pop#pop" char="'" />
+    </context>
+
+    <!-- A string, with escape sequences -->
+    <context name="String" attribute="String" lineEndContext="StringSyntaxError" >
+      <DetectChar   attribute="String"        context="#pop"         char="&quot;" />
+      <DetectChar   attribute="String Escape" context="StringEscape" char="\" />
+      <RegExpr      attribute="String"        context="#stay"        String="[^&quot;&backslash;]*" />
+    </context>
+
+    <!-- String escape sequence -->
+    <context name="StringEscape" attribute="String" lineEndContext="StringGap" >
+      <AnyChar      attribute="String Escape"  context="#pop"      String="&escSeqChar;&amp;" />
+      <RegExpr      attribute="String Escape"  context="#pop"      String="o&octal;"          />
+      <RegExpr      attribute="String Escape"  context="#pop"      String="&decimal;"         />
+      <RegExpr      attribute="String Escape"  context="#pop"      String="x&hexadecimal;"    />
+      <RegExpr      attribute="String Escape"  context="#pop"      String="&escSeqCntrl;"     />
+      <RegExpr      attribute="String Escape"  context="#pop"      String="&escSeqAscii;"     />
+      <DetectSpaces attribute="String Escape"  context="StringGap"                            />
+      <RegExpr      attribute="Syntax Error"   context="#pop"      String="."                 />
+    </context>
+
+    <context name="StringGap" attribute="String" lineEndContext="#stay" >
+      <DetectSpaces attribute="String Escape" context="#stay" />
+      <DetectChar   attribute="String Escape" context="#pop#pop#popString" char="\"      />
+      <DetectChar   attribute="Syntax Error"  context="#pop#pop#pop"       char="&quot;" />
+      <RegExpr      attribute="Syntax Error"  context="#stay"              String="."    />
+    </context>
+
+    <!-- String syntax error: Newline inside literal -->
+    <context name="StringSyntaxError" attribute="Syntax Error" lineEndContext="#stay" >
+      <DetectChar attribute="Syntax Error" context="#pop#pop" char="&quot;" />
+    </context>
+
+    <!-- Infix application -->
+    <context name="Infix" attribute="Infix Application" lineEndContext="#stay" >
+      <DetectChar attribute="Infix Application" context="#pop" char="`"/>
+    </context>
+  </contexts>
+
+  <itemDatas>
+    <itemData name="Normal"              defStyleNum="dsNormal"   spellChecking="false" />
+
+    <!-- Comments -->
+    <itemData name="Pragma"              defStyleNum="dsOthers"   spellChecking="false" />
+    <itemData name="Comment"             defStyleNum="dsComment"  />
+    <itemData name="Currydoc"            defStyleNum="dsDocumentation" />
+
+    <!-- Keywords, predefined entities -->
+    <itemData name="Keyword"             defStyleNum="dsKeyword"  spellChecking="false" />
+    <itemData name="Prelude Type"        defStyleNum="dsDataType" spellChecking="false" />
+    <itemData name="Prelude Function"    defStyleNum="dsFunction" spellChecking="false" />
+    <itemData name="Prelude Constructor" defStyleNum="dsKeyword"  spellChecking="false" />
+
+    <!-- Literals -->
+    <itemData name="Float"               defStyleNum="dsFloat"    spellChecking="false" />
+    <itemData name="Octal"               defStyleNum="dsBaseN"    spellChecking="false" />
+    <itemData name="Hex"                 defStyleNum="dsBaseN"    spellChecking="false" />
+    <itemData name="Decimal"             defStyleNum="dsDecVal"   spellChecking="false" />
+    <itemData name="Char"                defStyleNum="dsChar"     spellChecking="false" />
+    <itemData name="String Escape"       defStyleNum="dsChar"     spellChecking="false" />
+    <itemData name="String"              defStyleNum="dsString"   />
+
+    <!-- Others -->
+    <itemData name="Braces"              defStyleNum="dsNormal"   spellChecking="false" />
+    <itemData name="Signature"           defStyleNum="dsOthers"   spellChecking="false" />
+    <itemData name="Function"            defStyleNum="dsNormal"   spellChecking="false" />
+    <itemData name="Operator"            defStyleNum="dsFunction" spellChecking="false" />
+    <itemData name="Type, Constructor"   defStyleNum="dsDataType" spellChecking="false" />
+    <itemData name="Special Symbol"      defStyleNum="dsOthers"   spellChecking="false" />
+    <itemData name="Infix Application"   defStyleNum="dsOthers"   spellChecking="false" />
+    <itemData name="Syntax Error"        defStyleNum="dsError"    spellChecking="false" />
+  </itemDatas>
+  </highlighting>
+  <general>
+    <folding indentationsensitive="1"/>
+    <comments>
+      <comment name="singleLine" start="--" />
+      <comment name="multiLine" start="{-" end="-}" region="Multiline Comment" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/d.xml b/xml/d.xml
new file mode 100644
--- /dev/null
+++ b/xml/d.xml
@@ -0,0 +1,819 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+  ========================================================================
+
+  D.XML supports syntax highlighting for the D programming language under Kate.
+
+  Updated 2007-2008 - Diggory Hardy <diggory.hardy@gmail.com> (copyright kate project).
+  Copyright (C) 2007 - Aziz Köksal <aziz.koeksal@gmail.com>
+  Copyright (C) 2007 - Jari-Matti Mäkelä <jmjm@iki.fi>
+  Copyright (C) 2004 - Simon J Mackenzie <project.katedxml@smackoz.fastmail.fm>
+
+  This code is released under the LGPL as part of kdelibs/kate.
+
+  ========================================================================
+
+  D is a next generation language written by Walter Bright of Digital Mars fame.
+  Digital Mars C, C++ and D Compilers can be obtained from http://www.digitalmars.com/d/
+
+  ========================================================================
+
+  UPDATE HISTORY:-
+  2008.09.22 - d.xml 1.61 - D 1.035/2.019 - Fix for identifiers starting _ and containing numbers.
+  2008.08.01 - d.xml 1.60 - D 1.033/2.017 - Merging ddoc.xml 1.14 since there is no advantage to having it separate.
+  2008.07.14 - uncommited                 - Added properties: .tupleof, .offsetof
+  2008.06.14 - D.XML 1.53 - D 1.030/2.014 - Added user keyword highlighting.
+  2008.06.06 - D.XML 1.53 - D 1.030/2.014 - Small fix involving floats starting . in embedded Ddoc.
+                                          - Added nothrow and pure attributes (D2.0 only).
+  2008.04.09 - D.XML 1.52 - D 1.028/2.012 - Added properties (especially for arrays).
+                                          - Added rules for C-Style indenter (thanks vektorboson!)
+  2008.02.22 - D.XML 1.51 - D 1.027/2.011 - Changed char rule behaviour on line end.
+                                          - Added support for strings ending with c, w or d (must have got lost at some point).
+  2008.02.22 - ddoc.xml 1.14              - Fixes/improvements for macros. Highlights first symbol and non-symbols
+                                            before as errors; matches embedded brackets () properly.
+  2008.01.09 - D.XML 1.50 - D 1.025/2.009 - Changed pragma, version, deprecated matching to use keyword not DetectString.
+  2007.12.18 - D.XML 1.49 - D 1.025/2.009 - Fixed some bugs to make the StartingLetter context exit correctly and match identifiers properly.
+  2007.12.12 - D.XML 1.48 - D 1.024/2.008 - Adjusted existing contexts somewhat (mostly cleanup).
+                                          - Implemented scope context to hightlight exit in scope(exit) etc.
+                                          - Adjusted deprecated keyword highlighting.
+                                          - Changed layout somewhat.
+                                          - Implemented extra highlighting rules for expressions, attributes, etc.
+                                          - Changed a lot of colours.
+  2007.11.15 - D.XML 1.47 - D 1.023/2.007 - Fixed a few unapperent "bugs" found by checkdtd.
+  2007.11.15 - ddoc.xml 1.13              - Fixed a couple of bugs found by checkdtd and changed the version number format.
+  2007.11.5  - ddoc.xml 1.12              - Fixed: correct matching of things like /***/ .
+  2007.10.11 - ddoc.xml 1.11              - Safety catch: check for unterminated code sections (i.e. check for end of
+                                            ddoc comment even in code sections).
+                                          - Used DetectIdentifier to (presumably) improve performance.
+  2007.10.09 - uncommited - ditto         - Changed some context="#pop" tags to context="#stay" within the normal
+                                            context (bugfix for ddoc embedded code highlighting).
+  2007.10.9  - ddoc.xml 1.10              - Enabled embedded ddoc code highlighting
+  2007.10.9  - ddoc.xml 1.00              - Initial version
+  2007.10.08 - D.XML 1.46 - D 1.022/2.005 - Stole Alert and Region Marker highlighting from C++ syntax.
+                                          - Added support for DDoc highlighting.
+                                          - Reviewed the float regexps again! Tried to make the best of both versions.
+  2007.09.17 - D.XML 1.45 - D 1.021/2.004 - Reverted back to old regexps (but fixed hex floats).
+                                            Can't combine all float regexps into a single RegExpr element using the '|' operator.
+                                            It creates strange problems (like program lock-ups and wrong matches).
+                                          - Fix: '=' is allowed in import statements now.
+                                          - Fix: character literals are matched correctly now.
+                                          - The #line special token sequence is matched fully now (the filespec string needs special handling).
+  2007.09.10 - D.XML 1.44 - D 1.021/2.004 - Added __EOF__ to specialtokens.
+                                          - Replaced float regexps with more accurate ones. Not sure about speed.
+                                          - Fixed Octal regexp not to match 0_ .
+  2007.07.24 - D.XML 1.43 - D 1.020/2.003 - Added System to ltypes.
+                                          - Improved matching of version declarations.
+                                          - Fixed matching of hexadecimal floats.
+                                          - Deprecated style is stroked out again.
+  2007.07.21 - D.XML 1.42 - D 1.018/2.002 - d.xml validates again according to language.xml.
+                                          - HTML entities are highlighted now.
+                                          - Numbers before and after the slice operator are not highl. as floats anymore.
+                                          - Added C++ to ltypes.
+                                          - Improved matching of module/import declarations.
+  2007.07.01 - D.XML 1.41 - D 1.017/2.001 - fixed matching of numbers, added deprecated style, minor changes to styles, updated authors line
+  2007.07.01 - D.XML 1.40 - D 1.017/2.001 - matches now .di extensions, removed phobos-specific printf/writef and added
+                                          - library defined symbols string, wstring, dstring, size_t, ptrdiff_t, hash_t,
+                                          - Error, Exception, Object, TypeInfo and ClassInfo
+  2007.06.30 - D.XML 1.39 - D 1.017 - matching is much faster now, added "lib" to pragma types, added special tokens,
+                                    - /+ +/ can be nested now, numbers are matched more correctly, character literals don't span multiple lines anymore
+                                    - escape sequences inside strings and character literals are highlighted,
+                                    - non-hex characters in hex strings are highlighted with the Error style,
+                                    - using more default styles instead of custom ones
+  2007.04.11 - D.XML 1.38 - D 1.011 - ref, macro keywords are now supported, fixed \\ inside a string, updated author
+  2007.02.12 - D.XML 1.37 - D 1.006 - bool, foreach_reverse, lazy, scope and typeid keywords are now supported, fixed \"
+                                    - inside a string, fixed ending of wysiwyg strings.
+  2004.08.15 - D.XML 1.36 - D 0.98  - Current release of D.
+                                    - package, writef(strictly speaking writef isn't a keyword) - keywords are now supported.
+  2004.??.?? - D.XML 1.35 - D 0.??  - Not sure how this release got posted!
+  2004.05.23 - D.XML 1.34 - D 0.90  - updated.
+  2004.05.19 - D.XML 1.33 - D 0.89  - mixin - keyword is now supported.
+  2004.05.19 - D.XML 1.32 - D 0.77  - pragma, typeof - keywords are now supported.
+  2004.05.19 - D.XML 1.31 - D 0.76  - is - keyword is now supported.
+  2003.09.06 - D.XML 1.30 - D 0.71  - foreach - keyword is now supported.
+  2003.08.18 - D.XML 1.20 - D 0.69  - floats are now supported.
+                                    - embedded underscores in integer and float literals are now supported.
+  2003.08.11 - D.XML 1.10           - updated.
+  2003.07.18 - D.XML 1.00           - First released.
+
+  TODO:- Deliminated strings and Token strings (D2.0) are not supported.
+
+   ========================================================================
+-->
+
+<language name="D" version="2" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">
+  <highlighting>
+    <!-- User-defined keywords (add identifiers you'd like highlighted here) -->
+    <list name="userkeywords">
+    </list>
+    <list name="statements">
+      <item>asm</item>
+      <item>body</item>
+      <item>break</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>do</item>
+      <item>else</item>
+      <item>finally</item>
+      <item>for</item>
+      <item>foreach</item>
+      <item>foreach_reverse</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>mixin</item>
+      <item>return</item>
+      <item>switch</item>
+      <item>throw</item>
+      <item>try</item>
+      <item>while</item>
+      <item>with</item>
+      
+      <!-- these are statements according to the spec, although I might call them attributes -->
+      <item>synchronized</item>
+
+    </list>
+
+    <list name="attributes">
+      <!-- also storage classes -->
+      <item>abstract</item>
+      <item>align</item>
+      <item>auto</item>
+      <item>const</item>
+      <item>export</item>
+      <item>final</item>
+      <item>immutable</item>
+      <item>inout</item>
+      <item>invariant</item>
+      <item>lazy</item>
+      <item>nothrow</item>
+      <item>override</item>
+      <item>package</item>
+      <item>private</item>
+      <item>protected</item>
+      <item>public</item>
+      <item>pure</item>
+      <item>ref</item>
+      <item>static</item>
+      
+      <!-- these may be statements -->
+      <!-- in (more common to use as an expression since in attribute is only ever the default) -->
+      <item>out</item>
+      <item>scope</item>
+    </list>
+    
+    <list name="expressions">
+      <!-- primary expressions -->
+      <item>false</item>
+      <item>null</item>
+      <item>super</item>
+      <item>this</item>
+      <item>true</item>
+      <item>typeid</item>
+      
+      <!-- other expressions -->
+      <item>assert</item>
+      <item>cast</item>
+      <item>is</item>
+      <item>new</item>
+      <item>delete</item>
+      <item>in</item> <!-- also an attribute and a statement -->
+      
+      <!-- sometimes declarators -->
+      <item>delegate</item>
+      <item>function</item>
+    </list>
+    
+    <list name="modules">
+      <item>module</item>
+      <item>import</item> <!-- also an expression -->
+    </list>
+
+    <list name="declarators">
+      <item>alias</item>
+      <item>enum</item>
+      <item>typedef</item>
+      <item>class</item>
+      <item>interface</item>
+      <item>struct</item>
+      <item>union</item>
+    </list>
+    
+    <list name="types">
+      <item>typeof</item>
+      
+      <item>void</item>
+      <item>bool</item>
+      <item>byte</item>
+      <item>ubyte</item>
+      <item>short</item>
+      <item>ushort</item>
+      <item>int</item>
+      <item>uint</item>
+      <item>long</item>
+      <item>ulong</item>
+      <item>cent</item>
+      <item>ucent</item>
+      <item>float</item>
+      <item>double</item>
+      <item>real</item>
+      <item>ireal</item>
+      <item>ifloat</item>
+      <item>idouble</item>
+      <item>creal</item>
+      <item>cfloat</item>
+      <item>cdouble</item>
+      <item>char</item>
+      <item>wchar</item>
+      <item>dchar</item>
+    </list>
+
+    <list name="templates">
+      <item>macro</item> <!-- what's this? just reserved? -->
+      <item>template</item>
+    </list>
+    
+    <list name="properties">
+      <item>init</item>
+      <item>sizeof</item>
+      <item>alignof</item>
+      <item>mangleof</item>
+      <item>stringof</item>
+      <item>tupleof</item>
+      <item>offsetof</item>
+      <item>max</item>
+      <item>min</item>
+      <item>infinity</item>
+      <item>nan</item>
+      <item>dig</item>
+      <item>epsilon</item>
+      <item>mant_dig</item>
+      <item>max_10_exp</item>
+      <item>max_exp</item>
+      <item>min_10_exp</item>
+      <item>min_exp</item>
+      <item>re</item>
+      <item>im</item>
+      <item>length</item>
+      <item>ptr</item>
+      <item>dup</item>
+      <item>idup</item>
+      <item>reverse</item>
+      <item>sort</item>
+      <item>keys</item>
+      <item>values</item>
+      <item>rehash</item>
+    </list>
+    
+    <list name="libsymbols">
+      <!-- these are only symbols defined in object.d(i) -->
+      <item>size_t</item>
+      <item>ptrdiff_t</item>
+      <item>hash_t</item>
+      <item>Error</item>
+      <item>Exception</item>
+      <item>Object</item>
+      <item>TypeInfo</item>
+      <item>ClassInfo</item>
+      <item>ModuleInfo</item>
+      <item>Interface</item>
+      <item>OffsetTypeInfo</item>
+      <item>TypeInfo_Typedef</item>
+      <item>TypeInfo_Enum</item>
+      <item>TypeInfo_Pointer</item>
+      <item>TypeInfo_Array</item>
+      <item>TypeInfo_StaticArray</item>
+      <item>TypeInfo_AssociativeArray</item>
+      <item>TypeInfo_Function</item>
+      <item>TypeInfo_Delegate</item>
+      <item>TypeInfo_Class</item>
+      <item>TypeInfo_Interface</item>
+      <item>TypeInfo_Struct</item>
+      <item>TypeInfo_Tuple</item>
+      
+      <!-- phobos only as of tango 0.99.3 -->
+      <item>string</item>
+      <item>wstring</item>
+      <item>dstring</item>
+      <item>bit</item>
+      <item>TypeInfo_Const</item>
+      <item>TypeInfo_Invariant</item>
+    </list>
+
+    <list name="linkage">
+      <item>extern</item>
+    </list>
+    <list name="ltypes">
+      <item>C</item>
+      <!-- <item>C++</item> --><!-- is handled specially in Linkage rule -->
+      <item>D</item>
+      <item>Windows</item>
+      <item>Pascal</item>
+      <item>System</item>
+    </list>
+
+    <list name="ptypes">
+      <item>msg</item>
+      <item>lib</item>
+    </list>
+    
+    <list name="scope_keywords">
+      <item>exit</item>
+      <item>success</item>
+      <item>failure</item>
+    </list>
+
+    <list name="vtypes">
+      <item>DigitalMars</item>
+      <item>X86</item>
+      <item>X86_64</item>
+      <item>Windows</item>
+      <item>Win32</item>
+      <item>Win64</item>
+      <item>linux</item>
+      <item>LittleEndian</item>
+      <item>BigEndian</item>
+      <item>D_Coverage</item>
+      <item>D_InlineAsm_X86</item>
+      <item>unittest</item>
+      <item>D_Version2</item>
+      <item>none</item>
+      <item>all</item>
+    </list>
+
+    <list name="specialtokens">
+      <item>__FILE__</item>
+      <item>__LINE__</item>
+      <item>__DATE__</item>
+      <item>__TIME__</item>
+      <item>__TIMESTAMP__</item>
+      <item>__VENDOR__</item>
+      <item>__VERSION__</item>
+      <item>__EOF__</item>
+    </list>
+    
+    <list name="tests">
+      <item>debug</item>
+      <item>unittest</item>
+    </list>
+    
+    <list name="pragma">
+        <item>pragma</item>
+    </list>
+
+    <list name="version">
+        <item>version</item>
+    </list>
+    
+    <list name="deprecated">
+        <item>deprecated</item>
+        <item>volatile</item> <!-- has been deprecated -->
+    </list>
+    
+    <contexts>
+      <context name="normal" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <!-- Performance improvement (probably): anything starting with a letter is matched separately -->
+        <RegExpr String="[a-zA-Z_]" attribute="Normal Text" context="StartingLetter" lookAhead="true"/>
+
+        <HlCStringChar attribute="EscapeSequence" context="#stay"/>
+        <Detect2Chars attribute="EscapeSequence" context="UnicodeShort"   char="\" char1="u"/>
+        <Detect2Chars attribute="EscapeSequence" context="UnicodeLong"   char="\" char1="U"/>
+        <Detect2Chars attribute="EscapeSequence" context="HTMLEntity"   char="\" char1="&amp;"/>
+
+        <DetectChar attribute="Char"     context="CharLiteral" char="'"/>
+        <DetectChar attribute="String"   context="String"      char="&quot;"/>
+        <DetectChar attribute="BQString" context="BQString"    char="`"/>
+
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
+        <IncludeRules context="CommentRules" />
+
+        <!-- Match ... and .. before numbers are matched. -->
+        <!-- Now in symbols keywords section	-->
+        <StringDetect attribute="Normal Text" context="#stay" String="..."/>
+        <Detect2Chars attribute="Normal Text"   char="." char1="."/>
+        
+        <!-- Float starting with a dot -->
+        <RegExpr attribute="Float" context="#stay" String="\.\d[\d_]*([eE][-+]?\d[\d_]*)?[fFL]?i?"/>
+        
+        <!-- Try to match various built-in properties -->
+        <DetectChar char="." attribute="Normal Text" context="Properties"/>
+
+        <!-- Look ahead for a digit and switch to NumberLiteral context if found. -->
+        <RegExpr context="NumberLiteral" String="\d" attribute="" lookAhead="true"/>
+
+        <!-- #line Integer [Filespec] -->
+        <StringDetect attribute="Pragma" context="LinePragma" String="#line"/>
+        
+        <!-- Rules for the C-style indenter. Currently problems with /// and /++ comments. -->
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="BraceA" />
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="BraceA" />
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+      </context>
+
+      <context name="StartingLetter" attribute="Normal Text" lineEndContext="#pop">
+          <DetectSpaces />
+          <!-- fall-through should work now that DetectIdentifier is used (without infinite loops) -->
+          <!-- maybe not... got an infinite loop -->
+          <RegExpr String="[^a-zA-Z_]" attribute="Normal Text" context="#pop" lookAhead="true"/>
+          
+          <!-- detect whether scope, in, out, etc. are used as attributes or statements (etc.) -->
+          <!-- rules cannot match across newlines unfortunately -->
+          <RegExpr String="in\s*(?=\{)"    attribute="Statement"       context="#stay"     />
+          <RegExpr String="out\s*(?=(\(([a-zA-Z_][\w_]*)?\)\s*)?\{)" attribute="Statement" context="#stay" />
+          <RegExpr String="scope\s*(?=\()" attribute="Statement"       context="Scope"     />
+          <RegExpr String="import\s*(?=\()" attribute="Expression"     context="#stay"     />
+          <RegExpr String="function\s*(?=\()" attribute="Declarator"   context="#stay"     />
+          <RegExpr String="delegate\s*(?=\()" attribute="Declarator"   context="#stay"     />
+          
+          <keyword String="statements"      attribute="Statement"      context="#stay"     />
+          <keyword String="attributes"      attribute="Attribute"      context="#stay"     />
+          <keyword String="expressions"     attribute="Expression"     context="#stay"     />
+          <keyword String="declarators"     attribute="Declarator"     context="#stay"     />
+          <keyword String="templates"       attribute="Template"       context="#stay"     />
+          <keyword String="modules"         attribute="Module"         context="ModuleName"/>
+          <keyword String="types"           attribute="Type"           context="#stay"     />
+          <keyword String="libsymbols"      attribute="LibrarySymbols" context="#stay"     />
+          <keyword String="linkage"         attribute="Linkage"        context="Linkage"   />
+          <keyword String="specialtokens"   attribute="SpecialTokens"  context="#stay"     />
+          <keyword String="tests"           attribute="Tests"          context="#stay"     />
+          <!-- These must use keyword not DetectString: DetectString does not check for word-break after string. -->
+          <keyword String="pragma"          attribute="Pragma"         context="Pragma"    />
+          <keyword String="version"         attribute="Version"        context="Version"   />
+          <keyword String="deprecated"      attribute="Deprecated"     context="#stay"     />
+          
+          <Detect2Chars attribute="RawString" context="RawString" char="r" char1="&quot;"/>
+          <Detect2Chars attribute="HexString" context="HexString" char="x" char1="&quot;"/>
+          
+          <!-- user highlighting: last so as not to interfere with anything else -->
+          <keyword String="userkeywords"    attribute="UserKeywords"   context="#stay"     />
+          
+          <DetectIdentifier />
+      </context>
+      
+      <context name="Properties" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+        <keyword String="properties" attribute="Property" context="#pop" />
+      </context>
+      <context name="NumberLiteral" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+        <!-- Float literals -->
+        <!-- Floats must be matched before Binary|Octal|Hex|DecInteger -->
+        <RegExpr attribute="Float" context="#pop" String="0[xX][\da-fA-F_]*(\.[\da-fA-F_]*)?[pP][-+]?\d[\d_]*[fFL]?i?"/>
+        <!-- Float starting with a dot is matched in main context -->
+        <!-- All floats except integers -->
+        <!-- RegExpr is branched rather than using look aheads for efficiency at the expense of extra length -->
+        <RegExpr attribute="Float" context="#pop" String="\d[_\d]*(\.(?!\.)[_\d]*([eE][-+]?\d[_\d]*)?[fFL]?i?|[eE][-+]?\d[_\d]*[fFL]?i?|[fF]i?|[fFL]?i)"/>
+        
+        <!-- Binary|Octal|Hex|DecInteger -->
+        <!-- Common, optional suffix: (L[uU]?|[uU]L?)? -->
+        <RegExpr attribute="Binary"  context="#pop" String="0[bB]_*[01][01_]*(L[uU]?|[uU]L?)?"/>
+        <!-- Octal must be matched before DecInteger -->
+        <RegExpr attribute="Octal"   context="#pop" String="0[0-7_]+(L[uU]?|[uU]L?)?"/>
+        <RegExpr attribute="Hex"     context="#pop" String="0[xX]_*[\da-fA-F][\da-fA-F_]*(L[uU]?|[uU]L?)?"/>
+        <!-- Decimal integers must be matched last -->
+        <RegExpr attribute="Integer" context="#pop" String="\d+[\d_]*(L[uU]?|[uU]L?)?"/>
+      </context>
+
+      <context name="LinePragma" attribute="Pragma" lineEndContext="#pop">
+        <DetectSpaces/>
+        <!-- Match an Integer -->
+        <RegExpr attribute="Integer" context="#stay" String="((0([0-7_]+|[bB]_*[01][01_]*|[xX]_*[\da-fA-F][\da-fA-F_]*))|\d+[\d_]*)(L[uU]?|[uU]L?)?"/>
+        <RegExpr attribute="String" context="#stay" String="&quot;[^&quot;]*&quot;"/>
+        <keyword attribute="SpecialTokens"  context="#stay"      String="specialtokens"/>
+        <IncludeRules context="CommentRules" />
+        <RegExpr attribute="Error" context="#pop" String=".+"/>
+      </context>
+
+      <!-- \u 4HexDigits -->
+      <context name="UnicodeShort" attribute="EscapeSequence" lineEndContext="#pop">
+        <RegExpr attribute="EscapeSequence" context="#pop" String="[\da-fA-F]{4}"/>
+      </context>
+      <!-- \U 8HexDigits -->
+      <context name="UnicodeLong" attribute="EscapeSequence" lineEndContext="#pop">
+        <RegExpr attribute="EscapeSequence" context="#pop" String="[\da-fA-F]{8}"/>
+      </context>
+      <!-- \& Alpha Alphanumerical+ ; -->
+      <context name="HTMLEntity" attribute="EscapeSequence" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="EscapeSequence" context="#pop" String="[a-zA-Z]\w+;"/>
+      </context>
+
+      <context name="ModuleName" attribute="Module Name" lineEndContext="#stay">
+        <DetectSpaces/>
+        <IncludeRules context="CommentRules" />
+        <RegExpr context="#pop" String="[^\s\w.:,=]" lookAhead="true"/>
+      </context>
+
+      <context name="Linkage" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="Linkage2" char="("/>
+        <IncludeRules context="CommentRules" />
+      </context>
+      <context name="Linkage2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <StringDetect attribute="Linkage Type" context="#pop#pop" String="C++"/>
+        <keyword    attribute="Linkage Type" context="#pop#pop" String="ltypes"/>
+        <IncludeRules context="CommentRules" />
+        <!-- Fall-through rules, highlighting errors: -->
+        <DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
+        <RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
+      </context>
+
+      <context name="Version" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text"  context="Version2"  char="="/>
+        <DetectChar attribute="Normal Text"  context="Version2" char="("/>
+        <IncludeRules context="CommentRules" />
+        <!-- Fall-through rules, highlighting errors: -->
+        <RegExpr String="[^\s\n]+" attribute="Error" context="#pop"/>
+      </context>
+      <context name="Version2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <keyword    attribute="Version Type" context="#pop#pop" String="vtypes"/>
+        <DetectIdentifier attribute="Normal Text" context="#pop#pop"/>
+        <RegExpr attribute="Integer" context="#pop#pop" String="\d+[\d_]*(L[uU]?|[uU]L?)?"/>
+        <IncludeRules context="CommentRules" />
+        <!-- Fall-through rules, highlighting errors: -->
+        <DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
+        <RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
+      </context>
+      
+      <context name="Scope" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text" context="Scope2" char="("/>
+        <IncludeRules context="CommentRules" />
+      </context>
+      <context name="Scope2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+        <keyword String="scope_keywords" attribute="Expression" context="#pop#pop"/>
+        <IncludeRules context="CommentRules" />
+        <!-- Fall-through rules, highlighting errors: -->
+        <DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
+        <RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
+      </context>
+
+      <context name="Pragma" attribute="Pragma" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar attribute="Normal Text"  context="Pragma2" char="("/>
+        <IncludeRules context="CommentRules" />
+        <!-- Fall-through rules, highlighting errors: -->
+        <RegExpr String="[^\s\n]+" attribute="Error" context="#pop"/>
+      </context>
+      <context name="Pragma2" attribute="Pragma" lineEndContext="#stay">
+        <DetectSpaces/>
+        <keyword    attribute="Version Type" context="#pop#pop" String="ptypes"/>
+        <DetectIdentifier attribute="Normal Text" context="#pop#pop"/>
+        <IncludeRules context="CommentRules" />
+        <!-- Fall-through rules, highlighting errors: -->
+        <DetectChar char=")" attribute="Normal Text" context="#pop#pop"/>
+        <RegExpr String="[^)\s\n]+" attribute="Error" context="#pop#pop"/>
+      </context>
+
+      <!-- Strings -->
+      <!-- r"..." -->
+      <context name="RawString" attribute="RawString" lineEndContext="#stay">
+        <DetectChar attribute="RawString" context="#pop" char="&quot;"/>
+      </context>
+      <!-- `...` -->
+      <context name="BQString" attribute="BQString" lineEndContext="#stay">
+        <DetectChar attribute="BQString" context="#pop" char="`"/>
+      </context>
+      <!-- x"..." -->
+      <context name="HexString" attribute="HexString" lineEndContext="#stay">
+        <DetectChar attribute="HexString" context="#pop" char="&quot;"/>
+        <RegExpr attribute="Error" context="#stay" String="[^\sa-fA-F\d&quot;]+" />
+      </context>
+      <!-- '...' -->
+      <context name="CharLiteral" attribute="Char" lineEndContext="CharLiteralClosing" fallthrough="true" fallthroughContext="#pop">
+        <!-- Empty '' -->
+        <DetectChar   attribute="Char" context="#pop"  char="'"/>
+        <!-- \t \n \r etc. -->
+        <HlCStringChar attribute="EscapeSequence" context="CharLiteralClosing"/>
+        <!-- \u 4HexDigits | \U 8HexDigits | HTMLEntity -->
+        <RegExpr attribute="EscapeSequence" context="CharLiteralClosing" String="\\(u[\da-fA-F]{4}|U[\da-fA-F]{8}|&amp;[a-zA-Z]\w+;)"/>
+        <!-- Invalid escape sequences -->
+        <RegExpr attribute="Error" context="CharLiteralClosing" String="\\."/>
+        <!-- Any character -->
+        <RegExpr attribute="Char" context="CharLiteralClosing" String="."/>
+      </context>
+      <!-- Anything other than a closing ' is now be an error -->
+      <context name="CharLiteralClosing" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+        <DetectChar attribute="Char" context="#pop#pop"  char="'"/>
+      </context>
+      <!-- "..." -->
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <HlCStringChar attribute="EscapeSequence"/>
+        <Detect2Chars attribute="String" context="#pop" char="&quot;" char1="c"/>
+        <Detect2Chars attribute="String" context="#pop" char="&quot;" char1="w"/>
+        <Detect2Chars attribute="String" context="#pop" char="&quot;" char1="d"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+        <Detect2Chars attribute="EscapeSequence" context="UnicodeShort"   char="\" char1="u"/>
+        <Detect2Chars attribute="EscapeSequence" context="UnicodeLong"   char="\" char1="U"/>
+        <Detect2Chars attribute="EscapeSequence" context="HTMLEntity"   char="\" char1="&amp;"/>
+      </context>
+
+      <!-- Comments -->
+      <context name="CommentRules" attribute="Normal Text" lineEndContext="#pop">
+        <IncludeRules context="DdocNormal" />
+        <Detect2Chars attribute="Comment" context="CommentLine"   char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="CommentBlock" char="/" char1="*" beginRegion="CommentBlock"/>
+        <Detect2Chars attribute="Comment" context="CommentNested" char="/" char1="+" beginRegion="CommentNested"/>
+        <!-- This context is only for including rules from. -->
+      </context>
+      <context name="Region Marker" attribute="Region Marker" lineEndContext="#pop">
+      </context>
+      <context name="CommentLine" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+      </context>
+      <context name="CommentBlock" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="CommentBlock"/>
+        <IncludeRules context="##Alerts" />
+      </context>
+      <context name="CommentNested" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces />
+       <Detect2Chars attribute="Comment" context="CommentNested" char="/" char1="+" beginRegion="CommentNested"/>
+       <Detect2Chars attribute="Comment" context="#pop" char="+" char1="/" endRegion="CommentNested"/>
+       <IncludeRules context="##Alerts" />
+      </context>
+      
+      
+      <!-- Ddoc contexts -->
+      <context name="DdocNormal" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="DdocLine" String="/{3,}"/>
+        <RegExpr attribute="Comment" context="DdocBlock" String="/\*{2,}(?!/)" beginRegion="DdocBlock"/>
+        <RegExpr attribute="Comment" context="DdocNested" String="/\+{2,}(?!/)" beginRegion="DdocNested"/>
+      </context>
+      
+      <context name="DdocLine" attribute="Ddoc" lineEndContext="#pop">
+        <DetectSpaces />
+        <DetectIdentifier attribute="Ddoc"/>
+        <Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
+        <RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:($|\s)" />
+        <IncludeRules context="##Alerts" />
+      </context>
+      
+      <context name="DdocBlock" attribute="Ddoc" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectIdentifier attribute="Ddoc"/>
+        <RegExpr attribute="Comment" context="#pop" String="\*+/" endRegion="DdocBlock"/>
+        <DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
+        
+        <Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
+        <RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:($|\s)" />
+        <IncludeRules context="##Alerts" />
+        
+        <!-- Avoid matching this; do it this way since (^|\s)-* always matches .- and \s-* never
+             matches .- (spaces have already been matched); however -*($|\s) matches just fine.
+             Also can't use \b since - is not a word character. -->
+        <RegExpr attribute="Ddoc" context="#stay" String="[^-]-{3,}" />
+        <RegExpr attribute="Comment" context="DdocBlockCode" String="-{3,}($|\s)" />
+      </context>
+      
+      <context name="DdocNested" attribute="Ddoc" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectIdentifier attribute="Ddoc"/>
+        <!-- Ddoc recognises nested comments/ddoc, but ignores them as far as formatting is concerned. -->
+        <Detect2Chars attribute="Ddoc" context="DdocNested2" char="/" char1="+"/>
+        <RegExpr attribute="Comment" context="#pop" String="\++/" endRegion="DdocNested"/>
+        <DetectChar attribute="Comment" context="#stay" char="+" firstNonSpace="true" />
+        
+        <Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" />
+        <RegExpr attribute="DdocSection" context="#stay" String="[\w_]+:($|\s)" />
+        <IncludeRules context="##Alerts" />
+        
+        <!-- As above. -->
+        <RegExpr attribute="Ddoc" context="#stay" String="[^-]-{3,}" />
+        <RegExpr attribute="Comment" context="DdocNestedCode" String="-{3,}($|\s)" />
+      </context>
+      
+      <context name="DdocNested2" attribute="Ddoc" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectIdentifier attribute="Ddoc"/>
+        <!-- Identical to DdocNested except that nested comments don't receive any formatting -->
+        <RegExpr attribute="Ddoc" context="#pop" String="\++/"/>
+        <!-- The above rules should match before the unwanted rule in DdocNested -->
+        <IncludeRules context="DdocNested" />
+      </context>
+      
+      <!-- When entering a macro: provides highlighting for first symbol (macro name) -->
+      <context name="DdocMacro" attribute="Error" lineEndContext="#stay">
+        <DetectSpaces attribute="Macro Text" /> <!-- avoid showing space as an error -->
+        
+        <DetectChar attribute="Macros" context="#pop" char=")" /> <!-- early end of macro -->
+        <IncludeRules context="MacroRules" />
+        
+        <!-- first symbol of macro -->
+        <DetectIdentifier attribute="Macros" context="DdocMacro2" />
+      </context>
+      <!-- For rest of macro -->
+      <context name="DdocMacro2" attribute="Macro Text" lineEndContext="#stay">
+        <DetectChar attribute="Macros" context="#pop#pop" char=")" /> <!-- end of macro -->
+        <IncludeRules context="MacroRules" />
+      </context>
+      <!-- For embedded brackets (yeah, extra work to ignore them) -->
+      <context name="DdocMacro3" attribute="Macro Text" lineEndContext="#stay">
+        <DetectChar attribute="Macro Text" context="#pop" char=")" /> <!-- end of embedded brackets -->
+        <IncludeRules context="MacroRules" />
+      </context>
+      <!-- Rules common to all macros -->
+      <context name="MacroRules" attribute="Macro Text" lineEndContext="#stay">
+        <Detect2Chars attribute="Macros" context="DdocMacro" char="$" char1="(" /> <!-- embedded -->
+        <DetectChar attribute="Macro Text" context="DdocMacro3" char="(" /> <!-- extra brackets -->
+        
+        <DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
+      </context>
+      
+      <context name="DdocBlockCode" attribute="DdocCode" lineEndContext="#stay">
+        <DetectSpaces />
+        <!-- See update 1.11 -->
+        <RegExpr attribute="Comment" context="#pop#pop" String="\*+/" endRegion="DdocBlock"/>
+        <DetectChar attribute="Comment" context="#stay" char="*" firstNonSpace="true" />
+        <!-- As above. -->
+        <RegExpr attribute="DdocCode" context="#stay" String="[^-]-{3,}" />
+        <RegExpr attribute="Comment" context="#pop" String="-{3,}($|\s)" />
+        <IncludeRules context="##D" />
+      </context>
+      <context name="DdocNestedCode" attribute="DdocCode" lineEndContext="#stay">
+        <DetectSpaces />
+        <!-- See update 1.11 -->
+        <RegExpr attribute="Comment" context="#pop#pop" String="\++/" endRegion="DdocNested"/>
+        <DetectChar attribute="Comment" context="#stay" char="+" firstNonSpace="true" />
+        <!-- As above. -->
+        <RegExpr attribute="DdocCode" context="#stay" String="[^-]-{3,}" />
+        <RegExpr attribute="Comment" context="#pop" String="-{3,}($|\s)" />
+        <IncludeRules context="##D" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"    defStyleNum="dsNormal"/>
+      <itemData name="Symbol"         defStyleNum="dsNormal"/>
+      
+      <!-- keywords -->
+      <itemData name="Statement"      defStyleNum="dsKeyword"/>
+      <itemData name="Expression"     defStyleNum="dsKeyword"  color="#000080"/>
+      <itemData name="Declarator"     defStyleNum="dsKeyword"  color="#800000"/>
+      <itemData name="Template"       defStyleNum="dsKeyword"  color="#008000"/>
+      
+      <itemData name="Attribute"      defStyleNum="dsKeyword"  color="#800080"/>
+      <itemData name="Deprecated"     defStyleNum="dsKeyword"  color="#800080" strikeOut="true"/>
+      
+      <itemData name="Property"       defStyleNum="dsDataType" color="#000080"/>
+      
+      <itemData name="Type"           defStyleNum="dsDataType"/>
+      <itemData name="LibrarySymbols" defStyleNum="dsBuiltIn" italic="1"/>
+
+      <itemData name="UserKeywords"   defStyleNum="dsDataType" italic="1"/>
+
+      <!-- module, import -->
+      <itemData name="Module"         defStyleNum="dsKeyword"  color="#008000"/>
+      <itemData name="Module Name"    defStyleNum="dsNormal"   color="#008000"/>
+
+      <!-- pragma, special tokens -->
+      <itemData name="SpecialTokens"  defStyleNum="dsNormal"   color="#00aa00"/>
+      <itemData name="Pragma"         defStyleNum="dsKeyword"  color="#00aa00"/>
+
+      <!-- version, extern -->
+      <itemData name="Version"        defStyleNum="dsKeyword"  color="#808000"/>
+      <itemData name="Version Type"   defStyleNum="dsNormal"   bold="1"/>
+      <itemData name="Linkage"        defStyleNum="dsKeyword"  color="#808000"/>
+      <itemData name="Linkage Type"   defStyleNum="dsNormal"   bold="1"/>
+
+      <itemData name="Tests"        defStyleNum="dsKeyword"    color="#ff00ff"/>
+
+      <itemData name="Comment"        defStyleNum="dsComment"/>
+      <itemData name="Region Marker"  defStyleNum="dsRegionMarker" />
+      
+      <itemData name="Error"          defStyleNum="dsError"/>
+      
+      <!-- literals -->
+      <itemData name="Integer"        defStyleNum="dsDecVal"/>
+      <itemData name="Binary"         defStyleNum="dsBaseN"/>
+      <itemData name="Octal"          defStyleNum="dsBaseN"/>
+      <itemData name="Hex"            defStyleNum="dsBaseN"/>
+      <itemData name="Float"          defStyleNum="dsFloat"/>
+      
+      <itemData name="EscapeSequence" defStyleNum="dsSpecialChar"/>
+      <itemData name="String"         defStyleNum="dsString"/>
+      <itemData name="Char"           defStyleNum="dsChar"/>
+      <itemData name="RawString"      defStyleNum="dsVerbatimString"/>
+      <itemData name="BQString"       defStyleNum="dsSpecialString"/>
+      <itemData name="HexString"      defStyleNum="dsSpecialString"/>
+      
+      <!-- Ddoc specific -->
+      <itemData name="Macros"      defStyleNum="dsOthers" color="#bf5fbf" selColor="#ffffff" bold="1" italic="0" />
+      <itemData name="Macro Text"  defStyleNum="dsNormal" color="#bf7fff" selColor="#ffffff" bold="0" italic="0" />
+      <itemData name="Ddoc"        defStyleNum="dsComment" color="#7f7fff" />
+      <itemData name="DdocSection" defStyleNum="dsKeyword" color="#7f7fff" bold="1" />
+      <itemData name="DdocCode"    defStyleNum="dsNormal" italic="1" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//"/>
+      <comment name="multiLine"  start="/+" end="+/" region="CommentNested"/>
+    </comments>
+    <keywords casesensitive="true"/>
+  </general>
+</language>
diff --git a/xml/diff.xml b/xml/diff.xml
new file mode 100644
--- /dev/null
+++ b/xml/diff.xml
@@ -0,0 +1,119 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+  <!ENTITY file  "(====|\*\*\*|\-\-\-|diff|Only in .*:).*$">
+  <!ENTITY chunk "(\@\@|\d).*$">
+  <!ENTITY csep  "(\+\+\+|\-\-\-).*$">
+  <!ENTITY index  "Index:.*">
+]>
+<!--
+    2006-08-02: 1.10 Matthew Woehlke <mw_triad@sourceforge.net>
+      Added folding. Context diff changes are now identified as old/new (using
+      seperate attributes). Recognize 'Only in' from 'diff -r' output.
+      There is currently a bug (KATE limitation?) where regions may sometimes
+      pick up one line too many.
+    2008-02-13: 1.11 Eduardo Robles Elvira <edulix AT gmail DOT com>
+     Fixed folding.
+-->
+<language name="Diff" version="3" kateversion="5.0" section="Other" extensions="*.diff;*patch" mimetype="text/x-patch">
+
+  <highlighting>
+
+    <contexts>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr attribute="Header" context="Chunk" String="&chunk;" beginRegion="chunk" column="0"/>
+        <RegExpr attribute="Header" context="RChunk" String="\*+$" beginRegion="chunk" column="0"/>
+        <RegExpr attribute="File" context="#stay" String="Only in .*:.*$" column="0"/>
+        <RegExpr attribute="File" context="RFile" String="diff.*$" beginRegion="chunk" column="0"/>
+        <RegExpr attribute="File" context="#stay" String="====.*$" column="0"/>
+        <RegExpr attribute="File" context="File" String="(\*\*\*|\-\-\-).*$" beginRegion="chunk" column="0"/>
+        <IncludeRules context="FindDiff"/>
+        <DetectChar attribute="Changed line (old)" context="ChangedOld" char="!" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindDiff">
+        <RegExpr attribute="File" context="#stay" String="\-\-\-.*$" column="0"/>
+        <RegExpr attribute="Header" context="#stay" String="&csep;" column="0"/>
+        <AnyChar attribute="Added line" context="Added" String="+&gt;" column="0"/>
+        <AnyChar attribute="Removed line" context="Removed" String="-&lt;" column="0"/>
+      </context>
+
+      <!-- block contexts -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="File">
+        <IncludeRules context="FindDiff"/>
+        <RegExpr attribute="Header" context="ChunkInFile" String="&chunk;" beginRegion="chunk" column="0"/>
+        <RegExpr attribute="Header" context="RChunkInFile" String="\*+$" beginRegion="chunk" column="0"/>
+        <RegExpr attribute="File" context="#pop" String="&file;" endRegion="chunk" column="0"/>
+        <DetectChar attribute="Changed line (old)" context="ChangedOld" char="!" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Chunk">
+        <IncludeRules context="FindDiff"/>
+        <RegExpr attribute="Header" context="#pop" String="&chunk;" endRegion="chunk" lookAhead="true" column="0"/>
+        <DetectChar attribute="Changed line (old)" context="ChangedOld" char="!" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="ChunkInFile">
+        <IncludeRules context="FindDiff"/>
+        <RegExpr attribute="Header" context="#pop" String="&chunk;" endRegion="chunk" lookAhead="true" column="0"/>
+        <RegExpr attribute="Normal Text" context="#pop" String="&index;" endRegion="chunk" column="0"/>
+        <RegExpr attribute="File" context="#pop" String="&file;" endRegion="chunk" lookAhead="true" column="0"/>
+        <DetectChar attribute="Changed line (old)" context="ChangedOld" char="!" column="0"/>
+      </context>
+
+      <!-- block contexts (diff -r) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="RFile">
+        <RegExpr attribute="File" context="#pop" String="(diff|Only in .*:).*$" endRegion="chunk" lookAhead="true" column="0"/>
+        <RegExpr attribute="Header" context="#stay" String="&file;" column="0"/>
+        <RegExpr attribute="Header" context="RChunkInFile" String="\*+$" beginRegion="chunk" column="0"/>
+        <IncludeRules context="File"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="RChunk">
+        <RegExpr attribute="Header" context="#stay" String="\*\*\* .* \*\*\*\*$" column="0"/>
+        <RegExpr attribute="Header" context="RChunkNew" String="\-\-\- .* \-\-\-\-$" column="0"/>
+        <IncludeRules context="Chunk"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="RChunkInFile">
+        <RegExpr attribute="Header" context="#stay" String="\*\*\* .* \*\*\*\*$" column="0"/>
+        <RegExpr attribute="Header" context="RChunkInFileNew" String="\-\-\- .* \-\-\-\-$" column="0"/>
+        <IncludeRules context="ChunkInFile"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="RChunkNew">
+        <RegExpr attribute="Header" context="#pop#pop" String="&chunk;" lookAhead="true" column="0"/>
+        <DetectChar attribute="Changed line (new)" context="ChangedNew" char="!" column="0"/>
+        <IncludeRules context="FindDiff"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="RChunkInFileNew">
+        <RegExpr attribute="Header" context="#pop#pop" String="&chunk;" lookAhead="true" column="0"/>
+        <RegExpr attribute="File" context="#pop#pop" String="&file;" endRegion="chunk" lookAhead="true" column="0"/>
+        <DetectChar attribute="Changed line (new)" context="ChangedNew" char="!" column="0"/>
+        <IncludeRules context="FindDiff"/>
+      </context>
+
+      <!-- line contexts -->
+      <context attribute="File" lineEndContext="#pop" name="File"/>
+      <context attribute="Removed line" lineEndContext="#pop" name="Removed"/>
+      <context attribute="Added line" lineEndContext="#pop" name="Added"/>
+      <context attribute="Changed line (old)" lineEndContext="#pop" name="ChangedOld"/>
+      <context attribute="Changed line (new)" lineEndContext="#pop" name="ChangedNew"/>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="File"  defStyleNum="dsKeyword"/>
+      <itemData name="Header"  defStyleNum="dsDataType"/>
+      <itemData name="Removed line"  defStyleNum="dsString" />
+      <itemData name="Added line"  defStyleNum="dsVariable"/>
+      <itemData name="Changed line (old)"  defStyleNum="dsString"/>
+      <itemData name="Changed line (new)"  defStyleNum="dsVariable"/>
+    </itemDatas>
+
+  </highlighting>
+
+</language>
diff --git a/xml/djangotemplate.xml b/xml/djangotemplate.xml
new file mode 100644
--- /dev/null
+++ b/xml/djangotemplate.xml
@@ -0,0 +1,330 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
+	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
+]>
+<language name="Django HTML Template" version="3" kateversion="2.4" section="Markup" extensions="*.htm;*.html" mimetype="text/html"  author="Matthew Marshall (matthew@matthewmarshall.org)" license="LGPL" priority="9">
+
+<!--
+    Based off of the katepart html syntax highlighting by Wilbert Berendsen.
+
+    Email me with any bugs/suggestions/requests!
+-->
+
+<highlighting>
+
+<list name="blocktags">
+    <item>for</item>
+    <item>block</item>
+    <item>if</item>
+    <item>ifequal</item>
+    <item>ifnotequal</item>
+    <item>ifchanged</item>
+    <item>blocktrans</item>
+    <item>spaceless</item>
+    <item>autoescape</item>
+</list>
+
+<list name="endblocktags">
+    <item>endfor</item>
+    <item>endblock</item>
+    <item>endif</item>
+    <item>endifequal</item>
+    <item>endifnotequal</item>
+    <item>endifchanged</item>
+    <item>endblocktrans</item>
+    <item>endspaceless</item>
+    <item>endautoescape</item>
+</list>
+
+<contexts>
+  <context name="Start" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Mismatched Block Tag" context="#stay" String="\{%\s*end[a-z]+\s*%\}" />
+    <IncludeRules context="FindTemplate" />
+    <IncludeRules context="FindHTML" />
+  </context>
+
+  <context name="In Block" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr context="#pop" String="\{%\s*end[a-z]+\s*%\}" lookAhead="true" />
+    <IncludeRules context="FindTemplate" />
+    <IncludeRules context="FindHTML" />
+  </context>
+
+  <context name="FindTemplate" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Template Comment" context="Template Comment" String="\{%\s*comment\s*%\}" beginRegion="templatecomment" />
+    <Detect2Chars attribute="Template Var" context="Template Var" char="{" char1="{" />
+    <Detect2Chars attribute="Template Tag" context="Template Tag" char="{" char1="%" />
+  </context>
+
+  <context name="Template Comment" attribute="Template Comment" lineEndContext="#stay">
+    <RegExpr attribute="Template Comment" context="#pop" String="\{%\s*endcomment\s*%\}" endRegion="templatecomment" />
+  </context>
+
+  <context name="Template Var" attribute="Template Var" lineEndContext="#stay">
+    <Detect2Chars attribute="Template Var" context="#pop" char="}" char1="}" />
+    <DetectChar attribute="Template Filter" context="Template Filter" char='|' />
+    <Detect2Chars attribute="Error" context="#stay" char="{" char1="{" />
+    <Detect2Chars attribute="Error" context="#stay" char="{" char1="%" />
+    <Detect2Chars attribute="Error" context="#stay" char="%" char1="}" />
+  </context>
+
+  <context name="Template Filter" attribute="Template Filter" lineEndContext="#stay">
+    <Detect2Chars attribute="Template Var" context="#pop#pop" char="}" char1="}" />
+    <DetectChar attribute="Template String" char="'" context="Single A-string"/>
+    <DetectChar attribute="Template String" char="&quot;" context="Single Q-string"/>
+    <Detect2Chars attribute="Error" context="#stay" char="{" char1="{" />
+    <Detect2Chars attribute="Error" context="#stay" char="{" char1="%" />
+    <Detect2Chars attribute="Error" context="#stay" char="%" char1="}" />
+  </context>
+
+  <context name="Template Tag" attribute="Template Tag" lineEndContext="#stay">
+      <keyword String="blocktags" context="Found Block Tag" lookAhead="true" attribute="Template Tag" />
+      <DetectIdentifier attribute="Template Tag" context="In Template Tag" />
+  </context>
+
+  <context name="Found Block Tag" attribute="Template Tag" lineEndContext="#stay">
+    <!-- This context is entered when a matching block tag was found through lookAhead.  We need to capture it in an re, so that it can be matched with the end[blockname] tag later -->
+    <RegExpr attribute="Template Tag" String="(&name;)" context="In Block Tag"/>
+  </context>
+
+  <context name="In Block Tag" attribute="Template Tag Argument" dynamic="true" lineEndContext="#stay" >
+    <RegExpr context="#pop#pop#pop" String="\{%\s*end%1\s*%\}" dynamic="true" attribute="Template Tag"/>
+    <RegExpr context="Non Matching Tag" String="\{%\s*end[a-z]+\s*%\}" lookAhead="true" />
+    <Detect2Chars attribute="Template Tag" context="In Block" char="%" char1="}" />
+    <IncludeRules context="In Template Tag" />
+  </context>
+
+  <context name="Non Matching Tag" attribute="Template Tag" lineEndContext="#stay">
+    <keyword String="endblocktags" attribute="Mismatched Block Tag" context="#pop" />
+    <!-- If the mismatched tag is one we don't know about, ignore it. -->
+    <DetectIdentifier attribute="Template Tag" context="#pop" />
+  </context>
+
+  <context name="In Template Tag" attribute="Template Tag Argument" lineEndContext="#stay">
+    <Detect2Chars attribute="Template Tag" context="#pop#pop" char="%" char1="}" />
+    <DetectChar attribute="Template String" char="'" context="Single A-string"/>
+    <DetectChar attribute="Template String" char="&quot;" context="Single Q-string"/>
+    <Detect2Chars attribute="Error" context="#stay" char="{" char1="{" />
+    <Detect2Chars attribute="Error" context="#stay" char="{" char1="%" />
+    <Detect2Chars attribute="Error" context="#stay" char="}" char1="}" />
+  </context>
+
+  <context name="Single A-string" attribute="Template String" lineEndContext="#stay">
+    <HlCStringChar attribute="Template String" context="#stay"/>
+<!--       <RegExpr attribute="Operator" String="%[a-zA-Z]" context="#stay"/> -->
+    <DetectChar attribute="Template String" char="'" context="#pop"/>
+  </context>
+
+  <context name="Single Q-string" attribute="Template String" lineEndContext="#stay">
+    <HlCStringChar attribute="Template String" context="#stay"/>
+<!--       <RegExpr attribute="Operator" String="%[a-zA-Z]" context="#stay"/> -->
+    <DetectChar attribute="Template String" char="&quot;" context="#pop"/>
+  </context>
+
+
+
+  <context name="FindHTML" attribute="Normal Text" lineEndContext="#stay">
+    <DetectSpaces/>
+    <DetectIdentifier/>
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+    <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
+    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
+    <RegExpr attribute="Element" context="CSS" String="&lt;style\b" insensitive="true" beginRegion="style" />
+    <RegExpr attribute="Element" context="JS" String="&lt;script\b" insensitive="true" beginRegion="script" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;pre\b" insensitive="true" beginRegion="pre" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;div\b" insensitive="true" beginRegion="div" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;table\b" insensitive="true" beginRegion="table" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;&name;" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/pre\b" insensitive="true" endRegion="pre" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/div\b" insensitive="true" endRegion="div" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/table\b" insensitive="true" endRegion="table" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/&name;" />
+    <!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+  <context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
+  </context>
+
+  <context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;%" />
+  </context>
+
+  <context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Attribute" context="#stay" String="&name;" column="0"/>
+    <RegExpr attribute="Attribute" context="#stay" String="\s+&name;" />
+    <DetectChar attribute="Attribute" context="Value" char="=" />
+  </context>
+
+  <context name="FindDTDRules" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
+  </context>
+
+
+  <context name="Comment" attribute="Comment" lineEndContext="#stay">
+    <DetectSpaces/>
+    <IncludeRules context="##Alerts" />
+    <IncludeRules context="FindTemplate" />
+    <DetectIdentifier/>
+    <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+    <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
+  </context>
+
+  <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
+    <DetectSpaces/>
+    <DetectIdentifier/>
+    <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
+    <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
+  </context>
+
+  <context name="PI" attribute="Normal Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
+  </context>
+
+  <context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
+    <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
+  </context>
+
+  <context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
+    <IncludeRules context="FindDTDRules" />
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="&gt;" />
+    <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
+  </context>
+
+  <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop" char="&quot;" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop" char="&apos;" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="El Open" attribute="Normal Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
+    <DetectChar attribute="Element" context="#pop" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+    <IncludeRules context="FindTemplate" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="El Close" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Element" context="#pop" char="&gt;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="El Close 2" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="El Close 3" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Element" context="#pop#pop#pop#pop" char="&gt;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="CSS" attribute="Normal Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="style" />
+    <DetectChar attribute="Element" context="CSS content" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+    <IncludeRules context="FindTemplate" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="CSS content" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Element" context="El Close 2" String="&lt;/style\b" insensitive="true" endRegion="style" />
+    <IncludeRules context="FindTemplate" />
+    <IncludeRules context="##CSS" includeAttrib="true"/>
+  </context>
+
+  <context name="JS" attribute="Normal Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="script" />
+    <DetectChar attribute="Element" context="JS content" char="&gt;" />
+    <IncludeRules context="FindTemplate" />
+    <IncludeRules context="FindAttributes" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="JS content" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="true" />
+    <IncludeRules context="FindTemplate" />
+    <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
+  </context>
+
+  <context name="JS comment close" attribute="Comment" lineEndContext="#pop">
+    <RegExpr attribute="Element" context="El Close 3" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <IncludeRules context="FindTemplate" />
+    <IncludeRules context="##Alerts" />
+  </context>
+
+  <context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Value NQ">
+    <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
+    <DetectSpaces />
+  </context>
+
+  <context name="Value NQ" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+    <IncludeRules context="FindEntityRefs" />
+    <IncludeRules context="FindTemplate" />
+    <RegExpr attribute="Value" context="#stay" String="/(?!&gt;)" />
+    <RegExpr attribute="Value" context="#stay" String="[^/&gt;&lt;&quot;&apos;\s]" />
+  </context>
+
+  <context name="Value DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop" char="&quot;" />
+    <IncludeRules context="FindTemplate" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+  <context name="Value SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop" char="&apos;" />
+    <IncludeRules context="FindTemplate" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+</contexts>
+<itemDatas>
+  <itemData name="Normal Text" defStyleNum="dsNormal" />
+  <itemData name="Comment" defStyleNum="dsComment" />
+  <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
+  <itemData name="Processing Instruction" defStyleNum="dsKeyword" />
+  <itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
+  <itemData name="Element" defStyleNum="dsKeyword" />
+  <itemData name="Attribute" defStyleNum="dsOthers" />
+  <itemData name="Value" defStyleNum="dsString" />
+  <itemData name="EntityRef" defStyleNum="dsDecVal" />
+  <itemData name="PEntityRef" defStyleNum="dsDecVal" />
+  <itemData name="Error" defStyleNum="dsError" />
+  <itemData name="Template Var" defStyleNum="dsFunction" />
+  <itemData name="Template Tag" defStyleNum="dsFunction" />
+  <itemData name="Template Tag Argument" defStyleNum="dsFunction" />
+  <itemData name="Template String" defStyleNum="dsString" />
+  <itemData name="Template Comment" defStyleNum="dsComment" />
+  <itemData name="Template Filter" defStyleNum="dsOthers" />
+  <itemData name="Mismatched Block Tag" defStyleNum="dsError" />
+</itemDatas>
+
+</highlighting>
+<general>
+  <comments>
+      <comment name="multiLine" start="{% comment %}" end="{% endcomment %}" region="templatecomment" />
+  </comments>
+</general>
+</language>
diff --git a/xml/dockerfile.xml b/xml/dockerfile.xml
new file mode 100644
--- /dev/null
+++ b/xml/dockerfile.xml
@@ -0,0 +1,67 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Dockerfile syntaxfile v1.0 by James Turnbull <james@lovedthanlost.net> -->
+<language name="Dockerfile" section="Other" version="6" kateversion="3.4" extensions="Dockerfile" author="James Turnbull (james@lovedthanlost.net)" license="LGPLv2+">
+  <highlighting>
+    <list name="keywords">
+      <item>ADD</item>
+      <item>ARG</item>
+      <item>CMD</item>
+      <item>COPY</item>
+      <item>ENTRYPOINT</item>
+      <item>ENV</item>
+      <item>EXPOSE</item>
+      <item>FROM</item>
+      <item>HEALTHCHECK</item>
+      <item>LABEL</item>
+      <item>MAINTAINER</item>
+      <item>ONBUILD</item>
+      <item>RUN</item>
+      <item>SHELL</item>
+      <item>STOPSIGNAL</item>
+      <item>USER</item>
+      <item>VOLUME</item>
+      <item>WORKDIR</item>
+    </list>
+
+    <contexts>
+      <context name="normal" attribute="Normal" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <keyword attribute="Keyword"  context="#stay" String="keywords"/>
+        <DetectIdentifier/>
+        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
+        <DetectChar attribute="String" context="string'" char="'"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <LineContinue attribute="Comment" context="#stay" />
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <context name="string&quot;" attribute="String" lineEndContext="#pop">
+        <LineContinue attribute="Operator" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+
+      <context name="string'" attribute="String" lineEndContext="#pop">
+        <LineContinue attribute="String" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="'"/>
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal"  defStyleNum="dsNormal"  spellChecking="0"/>
+      <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="Operator" defStyleNum="dsOperator" />
+      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="0"/>
+      <itemData name="String"  defStyleNum="dsString"  spellChecking="0"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name = "singleLine" start = "#"/>
+    </comments>
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/dot.xml b/xml/dot.xml
new file mode 100644
--- /dev/null
+++ b/xml/dot.xml
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Adapted from the VIM highlighter, by Markus Mottl (markus@oefai.at) -->
+<language name="dot" version="2" kateversion="5.0" section="Scientific" extensions="*.dot" mimetype="text/x-dot" author="Postula Loïs (lois.postula@live.be)" priority="0">
+
+  <highlighting>
+
+    <list name="keywords">
+      <item>digraph</item>
+      <item>node</item>
+      <item>edge</item>
+      <item>subgraph</item>
+    </list>
+
+    <list name="attributes">
+      <!-- Graph attributes -->
+      <item>center</item>
+      <item>layers</item>
+      <item>margin</item>
+      <item>mclimit</item>
+      <item>name</item>
+      <item>nodesep</item>
+      <item>nslimit</item>
+      <item>ordering</item>
+      <item>page</item>
+      <item>pagedir</item>
+      <item>rank</item>
+      <item>rankdir</item>
+      <item>ranksep</item>
+      <item>ratio</item>
+      <item>rotate</item>
+      <item>size</item>
+      <!-- Node attributes -->
+      <item>distortion</item>
+      <item>fillcolor</item>
+      <item>fontcolor</item>
+      <item>fontname</item>
+      <item>fontsize</item>
+      <item>height</item>
+      <item>layer</item>
+      <item>orientation</item>
+      <item>peripheries</item>
+      <item>regular</item>
+      <item>shape</item>
+      <item>shapefile</item>
+      <item>sides</item>
+      <item>skew</item>
+      <item>width</item>
+      <!-- Edge attributes -->
+      <item>arrowhead</item>
+      <item>arrowsize</item>
+      <item>arrowtail</item>
+      <item>constraint</item>
+      <item>decorateP</item>
+      <item>dir</item>
+      <item>headclip</item>
+      <item>headlabel</item>
+      <item>labelangle</item>
+      <item>labeldistance</item>
+      <item>labelfontcolor</item>
+      <item>labelfontname</item>
+      <item>labelfontsize</item>
+      <item>minlen</item>
+      <item>port_label_distance</item>
+      <item>samehead</item>
+      <item>sametail</item>
+      <item>tailclip</item>
+      <item>taillabel</item>
+      <item>weight</item>
+      <!-- Shared attributes (graphs, nodes, edges) -->
+      <item>color</item>
+      <!-- Shared attributes (graphs and edges) -->
+      <item>bgcolor</item>
+      <item>label</item>
+      <item>URL</item>
+      <!-- Shared attributes (nodes and edges) -->
+      <item>fontcolor</item>
+      <item>fontname</item>
+      <item>fontsize</item>
+      <item>layer</item>
+      <item>style</item>
+    </list>
+
+    <contexts>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <IncludeRules context="DetectAll"/>
+      </context>
+
+      <!-- detector contexts -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="DetectAll">
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Attribute" context="#stay" String="attributes"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <AnyChar attribute="Symbol" context="#stay" String=";="/>
+        <Detect2Chars attribute="Symbol" context="#stay" char="-" char1="&gt;"/>
+        <Float attribute="Number" context="#stay"/>
+        <Int attribute="Number" context="#stay"/>
+        <RegExpr attribute="Identifier" context="#stay" String="\b\w+\b"/>
+        <IncludeRules context="DetectComments"/>
+        <DetectChar attribute="Symbol" context="RegionCurly" char="{" beginRegion="curly"/>
+        <DetectChar attribute="Symbol" context="RegionSquare" char="[" beginRegion="square"/>
+        <DetectChar attribute="Symbol" context="RegionParen" char="(" beginRegion="paren"/>
+        <AnyChar attribute="Error" context="#stay" String=")]}"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="DetectComments">
+        <Detect2Chars attribute="Comment" context="CommentSL" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="CommentML" char="/" char1="*" beginRegion="Comment"/>
+      </context>
+
+      <!-- region contexts -->
+      <context attribute="Comment" lineEndContext="#stay" name="RegionCurly">
+        <DetectChar attribute="Symbol" context="#pop" char="}" endRegion="curly"/>
+        <IncludeRules context="DetectAll"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="RegionSquare">
+        <DetectChar attribute="Symbol" context="#pop" char="]" endRegion="square"/>
+        <IncludeRules context="DetectAll"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="RegionParen">
+        <DetectChar attribute="Symbol" context="#pop" char=")" endRegion="paren"/>
+        <IncludeRules context="DetectAll"/>
+      </context>
+
+      <!-- other contexts -->
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <Detect2Chars attribute="String Char" context="#stay" char="\\" char1="\\"/>
+        <Detect2Chars attribute="String Char" context="#stay" char="\\" char1="&quot;"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="CommentSL">
+        <IncludeRules context="##Alerts"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="CommentML">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <IncludeRules context="##Alerts"/>
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword"/>
+      <itemData name="Attribute"    defStyleNum="dsAttribute"/>
+      <itemData name="Symbol"       defStyleNum="dsOthers"/>
+      <itemData name="Number"       defStyleNum="dsDecVal"/>
+      <itemData name="Identifier"   defStyleNum="dsVariable"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="String Char"  defStyleNum="dsSpecialChar"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Error"        defStyleNum="dsError"/>
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+
+    <comments>
+      <comment name="singleLine" start="//"/>
+      <comment name="multiLine" start="/*" end="*/"/>
+    </comments>
+
+    <keywords casesensitive="1"/>
+
+  </general>
+
+</language>
diff --git a/xml/doxygen.xml b/xml/doxygen.xml
new file mode 100644
--- /dev/null
+++ b/xml/doxygen.xml
@@ -0,0 +1,489 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+    <!ENTITY wordsep "([][,?;()]|\.$|\.?\s)">     <!-- things that end a TagWord -->
+]>
+<language name="Doxygen"
+          version="5"
+          kateversion="5.0"
+          section="Markup"
+          extensions="*.dox;*.doxygen"
+          mimetype="text/x-doxygen"
+          author="Dominik Haumann (dhaumann@kde.org)"
+          license="MIT"
+          priority="9">
+  <highlighting>
+    <!-- NOTE: all tags may begin with a \ or @ char
+         so if you add/change tags you have to do it twice -->
+    <!-- NOTE: Tags @code/@endcode, @dot/@enddot, @vermatim/@endverbatim, @msc/@endmsc, @f[/@f]
+         do not present in keywords due separate handle rules...
+    -->
+    <list name="TagOnly">
+      <item>\arg</item>              <item>@arg</item>
+      <item>\author</item>           <item>@author</item>
+      <item>\authors</item>          <item>@authors</item>
+      <item>\brief</item>            <item>@brief</item>
+      <item>\callgraph</item>        <item>@callgraph</item>
+      <item>\callergraph</item>      <item>@callergraph</item>
+      <item>\date</item>             <item>@date</item>
+      <item>\deprecated</item>       <item>@deprecated</item>
+      <item>\details</item>          <item>@details</item>
+      <item>\docbookonly</item>      <item>@docbookonly</item>
+      <item>\else</item>             <item>@else</item>
+      <item>\endcond</item>          <item>@endcond</item>
+      <item>\enddocbookonly</item>   <item>@enddocbookonly</item>
+      <item>\endhtmlonly</item>      <item>@endhtmlonly</item>
+      <item>\endif</item>            <item>@endif</item>
+      <item>\endinternal</item>      <item>@endinternal</item>
+      <item>\endlatexonly</item>     <item>@endlatexonly</item>
+      <item>\endlink</item>          <item>@endlink</item>
+      <item>\endmanonly</item>       <item>@endmanonly</item>
+      <item>\endparblock</item>      <item>@endparblock</item>
+      <item>\endrtfonly</item>       <item>@endrtfonly</item>
+      <item>\endsecreflist</item>    <item>@endsecreflist</item>
+      <item>\endxmlonly</item>       <item>@endxmlonly</item>
+      <item>\f[</item>               <item>@f[</item>
+      <item>\f]</item>               <item>@f]</item>
+      <item>\f$</item>               <item>@f$</item>
+      <!-- TODO Add @f{environment}{ and @f} -->
+      <item>\hideinitializer</item>  <item>@hideinitializer</item>
+      <item>\htmlonly</item>         <item>@htmlonly</item>
+      <!-- TODO @internal is a candidate to be handled separately, cuz may introduce folding region -->
+      <item>\internal</item>         <item>@internal</item>
+      <item>\invariant</item>        <item>@invariant</item>
+      <item>\latexonly</item>        <item>@latexonly</item>
+      <item>\li</item>               <item>@li</item>
+      <item>\manonly</item>          <item>@manonly</item>
+      <item>\n</item>                <item>@n</item>
+      <item>\nosubgrouping</item>    <item>@nosubgrouping</item>
+      <item>\only</item>             <item>@only</item>
+      <item>\parblock</item>         <item>@parblock</item>
+      <item>\post</item>             <item>@post</item>
+      <item>\pre</item>              <item>@pre</item>
+      <item>\private</item>          <item>@pivate</item>
+      <item>\privatesection</item>   <item>@pivatesection</item>
+      <item>\protected</item>        <item>@protected</item>
+      <item>\protectedsection</item> <item>@protectedsection</item>
+      <item>\public</item>           <item>@public</item>
+      <item>\publicsection</item>    <item>@publicsection</item>
+      <item>\pure</item>             <item>@pure</item>
+      <item>\remark</item>           <item>@remark</item>
+      <item>\remarks</item>          <item>@remarks</item>
+      <item>\return</item>           <item>@return</item>
+      <item>\returns</item>          <item>@returns</item>
+      <item>\result</item>           <item>@result</item>
+      <item>\rtfonly</item>          <item>@rtfonly</item>
+      <item>\sa</item>               <item>@sa</item>
+      <item>\secreflist</item>       <item>@secreflist</item>
+      <item>\see</item>              <item>@see</item>
+      <item>\short</item>            <item>@short</item>
+      <item>\showinitializer</item>  <item>@showinitializer</item>
+      <item>\since</item>            <item>@since</item>
+      <item>\static</item>           <item>@static</item>
+      <item>\tableofcontents</item>  <item>@tableofcontents</item>
+      <item>\test</item>             <item>@test</item>
+      <item>\version</item>          <item>@version</item>
+      <item>\xmlonly</item>          <item>@xmlonly</item>
+      <!-- TODO Introduce separate context for @~ ? -->
+      <item>\#</item>                <item>@#</item>
+      <item>\$</item>                <item>@$</item>
+      <item>\%</item>                <item>@%</item>
+      <item>\&amp;</item>            <item>@&amp;</item>
+      <item>\&gt;</item>             <item>@&gt;</item>
+      <item>\&lt;</item>             <item>@&lt;</item>
+      <item>\&quot;</item>           <item>@&quot;</item>
+      <item>\::</item>               <item>@::</item>
+      <item>\@</item>                <item>@@</item>
+      <item>\\</item>                <item>@\</item>
+      <item>\~</item>                <item>@~</item>
+      <item>\.</item>                <item>@.</item>
+      <item>\--</item>               <item>@--</item>
+      <item>\---</item>              <item>@---</item>
+    </list>
+
+    <list name="TagWord">
+      <item>\a</item>                <item>@a</item>
+      <item>\anchor</item>           <item>@anchor</item>
+      <item>\b</item>                <item>@b</item>
+      <item>\c</item>                <item>@c</item>
+      <item>\cite</item>             <item>@cite</item>
+      <item>\cond</item>             <item>@cond</item>
+      <item>\copybrief</item>        <item>@copybrief</item>
+      <item>\copydetails</item>      <item>@copydetails</item>
+      <item>\copydoc</item>          <item>@copydoc</item>
+      <item>\def</item>              <item>@def</item>
+      <item>\dir</item>              <item>@dir</item>
+      <item>\dontinclude</item>      <item>@dontinclude</item>
+      <item>\e</item>                <item>@e</item>
+      <item>\elseif</item>           <item>@elseif</item>
+      <item>\em</item>               <item>@em</item>
+      <item>\enum</item>             <item>@enum</item>
+      <item>\example</item>          <item>@example</item>
+      <item>\exception</item>        <item>@exception</item>
+      <item>\exceptions</item>       <item>@exceptions</item>
+      <item>\extends</item>          <item>@extends</item>
+      <item>\file</item>             <item>@file</item>
+      <item>\htmlinclude</item>      <item>@htmlinclude</item>
+      <item>\idlexcept</item>        <item>@idlexcept</item>
+      <item>\if</item>               <item>@if</item>
+      <item>\ifnot</item>            <item>@ifnot</item>
+      <item>\implements</item>       <item>@implements</item>
+      <item>\include</item>          <item>@include</item>
+      <item>\includelineno</item>    <item>@includelineno</item>
+      <item>\latexinclude</item>     <item>@latexinclude</item>
+      <item>\link</item>             <item>@link</item>
+      <item>\memberof</item>         <item>@memberof</item>
+      <item>\namespace</item>        <item>@namespace</item>
+      <item>\p</item>                <item>@p</item>
+      <item>\package</item>          <item>@package</item>
+      <item>\property</item>         <item>@property</item>
+      <item>\relatedalso</item>      <item>@relatedalso</item>
+      <item>\relatesalso</item>      <item>@relatesalso</item>
+      <item>\related</item>          <item>@related</item>
+      <item>\relates</item>          <item>@relates</item>
+      <item>\retval</item>           <item>@retval</item>
+      <item>\throw</item>            <item>@throw</item>
+      <item>\throws</item>           <item>@throws</item>
+      <item>\verbinclude</item>      <item>@verbinclude</item>
+      <item>\version</item>          <item>@version</item>
+      <!-- TODO Introduce separate context for @xrefitem? -->
+      <item>\xrefitem</item>         <item>@xrefitem</item>
+    </list>
+    <list name="TagParam">
+      <item>\param</item>            <item>@param</item>
+      <!-- TODO @tparam has no optional direction actually! -->
+      <item>\tparam</item>           <item>@tparam</item>
+    </list>
+    <!-- TODO Better (separate?) highlighting for @image required -->
+    <list name="TagWordWord">
+      <item>\image</item>            <item>@image</item>
+    </list>
+      <!-- TODO @union, @struct, @protocol, @interface, @class, @category
+           actually takes 3 params, 1 mandatory and 2 optional
+        -->
+      <!-- TODO @headerfile actually takes 2 params, where last one is optional -->
+    <list name="TagWordString">
+      <item>\addtogroup</item>       <item>@addtogroup</item>
+      <item>\category</item>         <item>@category</item>
+      <item>\class</item>            <item>@class</item>
+      <item>\diafile</item>          <item>@diafile</item>
+      <item>\dotfile</item>          <item>@dotfile</item>
+      <item>\defgroup</item>         <item>@defgroup</item>
+      <item>\interface</item>        <item>@interface</item>
+      <item>\headerfile</item>       <item>@headerfile</item>
+      <item>\mscfile</item>          <item>@mscfile</item>
+      <item>\page</item>             <item>@page</item>
+      <item>\paragraph</item>        <item>@paragraph</item>
+      <item>\protocol</item>         <item>@prtocol</item>
+      <item>\ref</item>              <item>@ref</item>
+      <item>\section</item>          <item>@section</item>
+      <item>\snippet</item>          <item>@snippet</item>
+      <item>\struct</item>           <item>@struct</item>
+      <item>\subpage</item>          <item>@subpage</item>
+      <item>\subsection</item>       <item>@subsection</item>
+      <item>\subsubsection</item>    <item>@subsubsection</item>
+      <item>\union</item>            <item>@union</item>
+      <item>\weakgroup</item>        <item>@weakgroup</item>
+    </list>
+    <list name="TagString">
+      <item>\addindex</item>         <item>@addindex</item>
+      <item>\copyright</item>        <item>@copyright</item>
+      <item>\fn</item>               <item>@fn</item>
+      <item>\ingroup</item>          <item>@ingroup</item>
+      <item>\line</item>             <item>@line</item>
+      <item>\mainpage</item>         <item>@mainpage</item>
+      <item>\name</item>             <item>@name</item>
+      <item>\overload</item>         <item>@overload</item>
+      <item>\par</item>              <item>@par</item>
+      <item>\skip</item>             <item>@skip</item>
+      <item>\skipline</item>         <item>@skipline</item>
+      <item>\typedef</item>          <item>@typedef</item>
+      <item>\until</item>            <item>@until</item>
+      <item>\var</item>              <item>@var</item>
+      <item>\vhdlflow</item>         <item>@vhdlflow</item>
+    </list>
+    <list name="Note">
+      <item>\note</item>             <item>@note</item>
+    </list>
+    <list name="Warning">
+      <item>\warning</item>          <item>@warning</item>
+    </list>
+    <list name="Attention">
+      <item>\attention</item>        <item>@attention</item>
+      <item>\bug</item>              <item>@bug</item>
+    </list>
+    <list name="Todo">
+      <item>\todo</item>             <item>@todo</item>
+    </list>
+
+    <contexts>
+    <!--
+      Different types of recognized command formats:
+      (w/ params specified according doxygen manual (http://www.stack.nl/~dimitri/doxygen/commands.html))
+
+      @tag                       : TagOnly
+      @tag <word>                : TagWord
+      @tag (rest_of_line)        : TagString
+      @tag {paragraph}           : TagOnly
+      @tag <word> <word>         : TagWordWord
+      @tag <word> (rest_of_line) : TagWordString
+
+      TODO Not all commands are handled properly nowadays :( Need few more contexts...
+    -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr attribute="Comment" context="LineComment" String="//(!|(/(?=[^/]|$)))&lt;?" />
+        <RegExpr attribute="Comment" context="BlockComment" String="/\*(\*[^*/]|!|[*!]&lt;|\*$)" beginRegion="BlockComment" />
+        <RegExpr attribute="Region" context="#stay" String="//\s*@\{\s*$" beginRegion="MemberGroup" />
+        <RegExpr attribute="Region" context="#stay" String="//\s*@\}\s*$"   endRegion="MemberGroup" />
+        <RegExpr attribute="Region" context="#stay" String="/\*\s*@\{\s*\*/" beginRegion="MemberGroup" />
+        <RegExpr attribute="Region" context="#stay" String="/\*\s*@\}\s*\*/"   endRegion="MemberGroup" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="LineComment">
+        <LineContinue attribute="Comment" context="#stay" />
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="SL_DetectEnv" />
+        <keyword attribute="Tags" context="#stay" String="TagOnly" />
+        <keyword attribute="Tags" context="SL_TagWord" String="TagWord" />
+        <keyword attribute="Tags" context="SL_TagParam" String="TagParam" />
+        <keyword attribute="Tags" context="SL_TagWordWord" String="TagWordWord" />
+        <keyword attribute="Tags" context="SL_TagString" String="TagString" />
+        <keyword attribute="Tags" context="SL_TagWordString" String="TagWordString" />
+        <RegExpr attribute="Custom Tags" context="#stay" String="[@\\][^@\\ \t]+" />
+        <DetectIdentifier />
+        <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
+        <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="BlockComment">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="BlockComment" />
+        <IncludeRules context="##Alerts" />
+        <Detect2Chars attribute="Region" context="#stay" char="@" char1="{" beginRegion="Group" />
+        <Detect2Chars attribute="Region" context="#stay" char="@" char1="}" endRegion="Group" />
+        <IncludeRules context="SL_DetectEnv" />
+        <keyword attribute="Tags" context="#stay" String="TagOnly" />
+        <keyword attribute="Tags" context="ML_TagWord" String="TagWord" />
+        <keyword attribute="Tags" context="ML_TagParam" String="TagParam" />
+        <keyword attribute="Tags" context="ML_TagWordWord" String="TagWordWord" />
+        <keyword attribute="Tags" context="ML_TagString" String="TagString" />
+        <keyword attribute="Tags" context="ML_TagWordString" String="TagWordString" />
+        <RegExpr attribute="Custom Tags" context="#stay" String="[@\\]([^@\\ \t\*]|\*(?!/))+" />
+        <DetectIdentifier />
+        <RegExpr attribute="Tags" context="#stay" String="\\(&lt;|&gt;)" />
+        <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
+        <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
+      </context>
+
+      <!-- NOTE: all contexts beginning with ML_ are for multiline comments
+                 The following contexts contain a Detect2Chars that looks for a */ sequence
+                 to end multiline comments. Singleline comments do not have this limitation -
+                 that's why all contexts are copy&pasted and the line <Detect2Chars ... */> is removed.
+                 <IncludeRules context="acontext"> could be used instead but it would make context switching
+                 much more complex and very hard to understand! (But use IncludeRules where the rules don't
+                 refer to another SL_*/ML_* context, to help maintainability.)
+      -->
+      <!-- tag contexts -->
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWord">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <IncludeRules context="SL_TagWord" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagParam">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <DetectSpaces />
+        <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in]" />
+        <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[out]" />
+        <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in,out]" />
+        <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordWord">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <DetectSpaces />
+        <RegExpr attribute="Word" context="ML_Tag2ndWord" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <!-- TODO for kate 2.x, convert references to "#pop!ML_TagWord" -->
+      <context attribute="Comment" lineEndContext="#pop#pop" name="ML_Tag2ndWord">
+        <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" lookAhead="true" />
+        <IncludeRules context="SL_Tag2ndWord" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagString">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
+        <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
+        <RegExpr attribute="Description" context="#stay" String="." />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordString">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <IncludeRules context="SL_TagWordString" />
+      </context>
+
+      <!-- html contexts -->
+      <context name="ML_htmltag" attribute="Identifier" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
+        <DetectChar attribute="HTML Tag" context="#pop" char="&gt;" />
+        <RegExpr attribute="Identifier" context="ML_identifiers" String="\s*=\s*" />
+      </context>
+      <context name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <IncludeRules context="##Alerts" />
+        <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
+      </context>
+      <context name="ML_identifiers" attribute="Identifier" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <RegExpr attribute="Identifier" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
+        <DetectChar attribute="Types" context="ML_types1" char="'" />
+        <DetectChar attribute="Types" context="ML_types2" char="&quot;" />
+      </context>
+      <context name="ML_types1" attribute="Types" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <DetectChar attribute="Types" context="#pop#pop" char="'" />
+      </context>
+      <context name="ML_types2" attribute="Types" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true" />
+        <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
+      </context>
+
+      <!-- NOTE: all contexts beginning with SL_ are for singleline comments -->
+      <!-- tag contexts -->
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagWord">
+        <DetectSpaces />
+        <keyword attribute="Tags" context="#pop" String="TagWord" lookAhead="true" />
+        <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagParam">
+        <DetectSpaces />
+        <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in]" />
+        <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[out]" />
+        <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in,out]" />
+        <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordWord">
+        <DetectSpaces />
+        <RegExpr attribute="Word" context="SL_Tag2ndWord" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <!-- TODO for kate 2.x, convert references to "#pop!SL_TagWord" -->
+      <context attribute="Comment" lineEndContext="#pop#pop" name="SL_Tag2ndWord">
+        <DetectSpaces />
+        <RegExpr attribute="Word" context="#pop#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagString">
+        <DetectSpaces />
+        <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
+        <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\/?[-\w0-9._:@]+" />
+        <RegExpr attribute="Description" context="#stay" String="." />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordString">
+        <DetectSpaces />
+        <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+
+      <!-- html contexts -->
+      <context name="SL_htmltag" attribute="Identifier" lineEndContext="#pop">
+        <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
+        <DetectChar attribute="HTML Tag" context="#pop" char="&gt;" />
+        <RegExpr attribute="Identifier" context="SL_identifiers" String="\s*=\s*" />
+      </context>
+      <context name="SL_htmlcomment" attribute="HTML Comment" lineEndContext="#pop">
+        <IncludeRules context="##Alerts" />
+        <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
+      </context>
+      <context name="SL_identifiers" attribute="Identifier" lineEndContext="#pop">
+        <RegExpr attribute="Identifier" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
+        <DetectChar attribute="Types" context="SL_types1" char="'" />
+        <DetectChar attribute="Types" context="SL_types2" char="&quot;" />
+      </context>
+      <context name="SL_types1" attribute="Types" lineEndContext="#pop">
+        <DetectChar attribute="Types" context="#pop#pop" char="'" />
+      </context>
+      <context name="SL_types2" attribute="Types" lineEndContext="#pop">
+        <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
+      </context>
+
+      <context attribute="Comment" name="SL_DetectEnv" lineEndContext="#pop">
+        <RegExpr attribute="Tags" context="Code" String="[@\\]code\b" beginRegion="Code" />
+        <RegExpr attribute="Tags" context="Verbatim" String="[@\\]verbatim\b" beginRegion="Verbatim" />
+        <RegExpr attribute="Tags" context="Formula" String="[@\\]f\[" beginRegion="Formula" />
+        <RegExpr attribute="Tags" context="Msc" String="[@\\]msc\b" beginRegion="Msc" />
+        <RegExpr attribute="Tags" context="Dot" String="[@\\]dot\b" beginRegion="Dot" />
+        <keyword attribute="Note" context="#stay" String="Note" />
+        <keyword attribute="Warning" context="#stay" String="Warning" />
+        <keyword attribute="Attention" context="#stay" String="Attention" />
+        <keyword attribute="Todo" context="#stay" String="Todo" />
+        <RegExpr attribute="Entities" context="#stay" String="&amp;[A-Za-z]+&#59;" />
+      </context>
+
+      <context attribute="Comment" name="SL_DetectComment" lineEndContext="#pop">
+        <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" endRegion="BlockComment" />
+        <DetectChar attribute="Comment" context="#stay" char="*" />
+        <StringDetect attribute="Comment" context="#stay" String="///" />
+      </context>
+
+      <context attribute="Code" lineEndContext="#stay" name="Code">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]endcode\b" endRegion="Code" />
+      </context>
+
+      <context attribute="Verbatim" lineEndContext="#stay" name="Verbatim">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]endverbatim\b" endRegion="Verbatim" />
+      </context>
+
+      <context attribute="Formulas" lineEndContext="#stay" name="Formula">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]f\]" endRegion="Formula" />
+        <!-- TODO: How to force LaTeX math context here?? -->
+        <!-- <IncludeRules context="##LaTeX" /> -->
+      </context>
+
+      <context attribute="Message Sequence Chart" lineEndContext="#stay" name="Msc">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]endmsc\b" endRegion="Msc" />
+      </context>
+
+      <context attribute="Dot Graph" lineEndContext="#stay" name="Dot">
+        <IncludeRules context="SL_DetectComment" />
+        <RegExpr attribute="Tags" context="#pop" String="[@\\]enddot\b" endRegion="Dot" />
+      </context>
+
+  </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal" />
+      <itemData name="Tags"         defStyleNum="dsAnnotation" bold="1" />
+      <itemData name="Custom Tags"  defStyleNum="dsAnnotation" />
+      <itemData name="Word"         defStyleNum="dsCommentVar" bold="1" italic="0" />
+      <itemData name="HTML Tag"     defStyleNum="dsKeyword" color="#000000" bold="1" italic="0" />
+      <itemData name="Entities"     defStyleNum="dsOthers" color="#4086C0" bold="1" italic="1" />
+      <itemData name="Description"  defStyleNum="dsDocumentation" />
+      <itemData name="Comment"      defStyleNum="dsComment" />
+      <itemData name="Region"       defStyleNum="dsRegionMarker" />
+      <itemData name="Identifier"   defStyleNum="dsOthers" />
+      <itemData name="HTML Comment" defStyleNum="dsComment" />
+      <itemData name="Types"        defStyleNum="dsDataType" />
+      <itemData name="Code"         defStyleNum="dsComment" />
+      <itemData name="Dot Graph"    defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
+      <itemData name="Formulas"     defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
+      <itemData name="Message Sequence Chart" defStyleNum="dsComment" color="#00A000" selColor="#ffffff" italic="1" />
+      <itemData name="Verbatim"     defStyleNum="dsComment" />
+      <itemData name="Note"         defStyleNum="dsInformation" bold="1" italic="0" />
+      <itemData name="Warning"      defStyleNum="dsWarning" bold="1" italic="0" />
+      <itemData name="Attention"    defStyleNum="dsAnnotation" bold="1" italic="0" />
+      <itemData name="Todo"         defStyleNum="dsAnnotation" bold="1" italic="0" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" weakDeliminator="\$~" />
+  </general>
+</language>
+<!-- kate: indent-width 2; -->
diff --git a/xml/doxygenlua.xml b/xml/doxygenlua.xml
new file mode 100644
--- /dev/null
+++ b/xml/doxygenlua.xml
@@ -0,0 +1,481 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+        <!ENTITY wordsep "([][,?;()]|\.$|\.?\s)">     <!-- things that end a TagWord -->
+]>
+<!--
+  Version 1.01 by Bruno Massa
+
+  Based on the original Doxygen Highlighter version 1.0 from
+  Copyright 2004 Dominik Haumann (dhdev@gmx.de)
+  Copyright 2007 Matthew Woehlke (mw_triad@users.sourceforge.net)
+
+ **********************************************************************
+ * This library is free software; you can redistribute it and/or      *
+ * modify it under the terms of the GNU Lesser General Public         *
+ * License as published by the Free Software Foundation; either       *
+ * version 2 of the License, or (at your option) any later version.   *
+ *                                                                    *
+ * This library is distributed in the hope that it will be useful,    *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  *
+ * Lesser General Public License for more details.                    *
+ *                                                                    *
+ * You should have received a copy of the GNU Lesser General Public   *
+ * License along with this library; if not, write to the              *
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,   *
+ * Boston, MA  02110-1301, USA.                                       *
+ **********************************************************************
+ -->
+<language name="DoxygenLua" version="4" kateversion="5.0" section="Markup" extensions="*.dox;*.doxygen" mimetype="text/x-doxygen" author="Bruno Massa (brmassa@gmail.com)" license="LGPLv2+">
+  <highlighting>
+    <!-- note: all tags may begin with a \ or @ char
+         so if you add/change tags you have to do it twice -->
+    <list name="TagOnly">
+      <item>\arg</item>
+      <item>\attention</item>
+      <item>\author</item>
+      <item>\callgraph</item>
+      <item>\code</item>
+      <item>\dot</item>
+      <item>\else</item>
+      <item>\endcode</item>
+      <item>\endcond</item>
+      <item>\enddot</item>
+      <item>\endhtmlonly</item>
+      <item>\endif</item>
+      <item>\endlatexonly</item>
+      <item>\endlink</item>
+      <item>\endmanonly</item>
+      <item>\endverbatim</item>
+      <item>\endxmlonly</item>
+      <item>\f[</item>
+      <item>\f]</item>
+      <item>\f$</item>
+      <item>\hideinitializer</item>
+      <item>\htmlonly</item>
+      <item>\interface</item>
+      <item>\internal</item>
+      <item>\invariant</item>
+      <item>\~</item>
+      <item>\@</item>
+      <item>\$</item>
+      <item>\\</item>
+      <item>\#</item>
+      <item>\latexonly</item>
+      <item>\li</item>
+      <item>\manonly</item>
+      <item>\n</item>
+      <item>\nosubgrouping</item>
+      <item>\note</item>
+      <item>\only</item>
+      <item>\post</item>
+      <item>\pre</item>
+      <item>\remarks</item>
+      <item>\return</item>
+      <item>\returns</item>
+      <item>\sa</item>
+      <item>\see</item>
+      <item>\showinitializer</item>
+      <item>\since</item>
+      <item>\test</item>
+      <item>\todo</item>
+      <item>\verbatim</item>
+      <item>\warning</item>
+      <item>\xmlonly</item>
+
+      <item>@arg</item>
+      <item>@attention</item>
+      <item>@author</item>
+      <item>@callgraph</item>
+      <item>@code</item>
+      <item>@dot</item>
+      <item>@else</item>
+      <item>@endcode</item>
+      <item>@endcond</item>
+      <item>@enddot</item>
+      <item>@endhtmlonly</item>
+      <item>@endif</item>
+      <item>@endlatexonly</item>
+      <item>@endlink</item>
+      <item>@endmanonly</item>
+      <item>@endverbatim</item>
+      <item>@endxmlonly</item>
+      <item>@f[</item>
+      <item>@f]</item>
+      <item>@f$</item>
+      <item>@hideinitializer</item>
+      <item>@htmlonly</item>
+      <item>@interface</item>
+      <item>@internal</item>
+      <item>@invariant</item>
+      <item>@~</item>
+      <item>@@</item>
+      <item>@$</item>
+      <item>@\</item>
+      <item>@#</item>
+      <item>@latexonly</item>
+      <item>@li</item>
+      <item>@manonly</item>
+      <item>@n</item>
+      <item>@nosubgrouping</item>
+      <item>@note</item>
+      <item>@only</item>
+      <item>@post</item>
+      <item>@pre</item>
+      <item>@remarks</item>
+      <item>@return</item>
+      <item>@returns</item>
+      <item>@sa</item>
+      <item>@see</item>
+      <item>@showinitializer</item>
+      <item>@since</item>
+      <item>@test</item>
+      <item>@todo</item>
+      <item>@verbatim</item>
+      <item>@warning</item>
+      <item>@xmlonly</item>
+    </list>
+
+    <list name="TagWord">
+      <item>\addtogroup</item>
+      <item>\a</item>
+      <item>\anchor</item>
+      <item>\b</item>
+      <item>\c</item>
+      <item>\class</item>
+      <item>\cond</item>
+      <item>\copydoc</item>
+      <item>\def</item>
+      <item>\dontinclude</item>
+      <item>\dotfile</item>
+      <item>\e</item>
+      <item>\elseif</item>
+      <item>\em</item>
+      <item>\enum</item>
+      <item>\example</item>
+      <item>\exception</item>
+      <item>\exceptions</item>
+      <item>\file</item>
+      <item>\htmlinclude</item>
+      <item>\if</item>
+      <item>\ifnot</item>
+      <item>\include</item>
+      <item>\link</item>
+      <item>\namespace</item>
+      <item>\p</item>
+      <item>\package</item>
+      <item>\ref</item>
+      <item>\relatesalso</item>
+      <item>\relates</item>
+      <item>\retval</item>
+      <item>\throw</item>
+      <item>\throws</item>
+      <item>\verbinclude</item>
+      <item>\version</item>
+      <item>\xrefitem</item>
+
+      <item>@addtogroup</item>
+      <item>@a</item>
+      <item>@anchor</item>
+      <item>@b</item>
+      <item>@c</item>
+      <item>@class</item>
+      <item>@cond</item>
+      <item>@copydoc</item>
+      <item>@def</item>
+      <item>@dontinclude</item>
+      <item>@dotfile</item>
+      <item>@e</item>
+      <item>@elseif</item>
+      <item>@em</item>
+      <item>@enum</item>
+      <item>@example</item>
+      <item>@exception</item>
+      <item>@exceptions</item>
+      <item>@file</item>
+      <item>@htmlinclude</item>
+      <item>@if</item>
+      <item>@ifnot</item>
+      <item>@include</item>
+      <item>@link</item>
+      <item>@namespace</item>
+      <item>@p</item>
+      <item>@package</item>
+      <item>@ref</item>
+      <item>@relatesalso</item>
+      <item>@relates</item>
+      <item>@retval</item>
+      <item>@throw</item>
+      <item>@throws</item>
+      <item>@verbinclude</item>
+      <item>@version</item>
+      <item>@xrefitem</item>
+    </list>
+    <list name="TagParam">
+      <item>\param</item>
+
+      <item>@param</item>
+    </list>
+    <list name="TagWordWord">
+      <item>\image</item>
+
+      <item>@image</item>
+    </list>
+    <list name="TagWordString">
+      <item>\defgroup</item>
+      <item>\page</item>
+      <item>\paragraph</item>
+      <item>\section</item>
+      <item>\struct</item>
+      <item>\subsection</item>
+      <item>\subsubsection</item>
+      <item>\union</item>
+      <item>\weakgroup</item>
+
+      <item>@defgroup</item>
+      <item>@page</item>
+      <item>@paragraph</item>
+      <item>@section</item>
+      <item>@struct</item>
+      <item>@subsection</item>
+      <item>@subsubsection</item>
+      <item>@union</item>
+      <item>@weakgroup</item>
+    </list>
+    <list name="TagString">
+      <item>\addindex</item>
+      <item>\brief</item>
+      <item>\bug</item>
+      <item>\date</item>
+      <item>\deprecated</item>
+      <item>\fn</item>
+      <item>\ingroup</item>
+      <item>\line</item>
+      <item>\mainpage</item>
+      <item>\name</item>
+      <item>\overload</item>
+      <item>\par</item>
+      <item>\short</item>
+      <item>\skip</item>
+      <item>\skipline</item>
+      <item>\typedef</item>
+      <item>\until</item>
+      <item>\var</item>
+
+      <item>@addindex</item>
+      <item>@brief</item>
+      <item>@bug</item>
+      <item>@date</item>
+      <item>@deprecated</item>
+      <item>@fn</item>
+      <item>@ingroup</item>
+      <item>@line</item>
+      <item>@mainpage</item>
+      <item>@name</item>
+      <item>@overload</item>
+      <item>@par</item>
+      <item>@short</item>
+      <item>@skip</item>
+      <item>@skipline</item>
+      <item>@typedef</item>
+      <item>@until</item>
+      <item>@var</item>
+    </list>
+    <contexts>
+    <!-- different formats:
+      @tag                     : TagOnly
+      @tag rest_of_line        : TagString
+      @tag <word>              : TagWord
+      @tag <word> <word>       : TagWordWord
+      @tag <word> rest_of_line : TagWordString
+    -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr      attribute="Comment" context="BlockComment" beginRegion="BlockComment"  String="--\[(=*)\[" dynamic="true" />
+        <StringDetect attribute="Comment" context="LineComment" String="--"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="LineComment">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <keyword attribute="Tags" context="#stay" String="TagOnly" />
+        <keyword attribute="Tags" context="SL_TagWord" String="TagWord" />
+        <keyword attribute="Tags" context="SL_TagParam" String="TagParam" />
+        <keyword attribute="Tags" context="SL_TagWordWord" String="TagWordWord" />
+        <keyword attribute="Tags" context="SL_TagString" String="TagString" />
+        <keyword attribute="Tags" context="SL_TagWordString" String="TagWordString" />
+        <DetectIdentifier />
+        <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
+        <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="BlockComment" dynamic="true" >
+        <DetectSpaces />
+        <RegExpr      attribute="Comment" context="#pop" endRegion="BlockComment" String="\]%1\]" dynamic="true" />
+        <IncludeRules context="##Alerts" />
+        <Detect2Chars attribute="Region" context="#stay" char="@" char1="{" />
+        <Detect2Chars attribute="Region" context="#stay" char="@" char1="}" />
+        <keyword attribute="Tags" context="#stay" String="TagOnly" />
+        <keyword attribute="Tags" context="ML_TagWord" String="TagWord" />
+        <keyword attribute="Tags" context="ML_TagParam" String="TagParam" />
+        <keyword attribute="Tags" context="ML_TagWordWord" String="TagWordWord" />
+        <keyword attribute="Tags" context="ML_TagString" String="TagString" />
+        <keyword attribute="Tags" context="ML_TagWordString" String="TagWordString" />
+        <DetectIdentifier />
+        <RegExpr attribute="Tags" context="#stay" String="\\(&lt;|&gt;)" />
+        <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+        <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
+      </context>
+
+<!-- NOTE: all contexts beginning with ML_ are for multiline comments
+     The following contexts contain a Detect2Chars that looks for a */ sequence to end multiline comments. Singleline comments do not have this limitation - that's why all contexts are copy&pasted and the line <Detect2Chars ... */> is removed. <IncludeRules context="acontext"> could be used instead but it would make context switching much more complex and very hard to understand! (But use IncludeRules where the rules don't refer to another SL_*/ML_* context, to help maintainability.)
+-->
+      <!-- tag contexts -->
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWord">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <IncludeRules context="SL_TagWord" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagParam">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <DetectSpaces />
+        <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in]" />
+        <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[out]" />
+        <StringDetect attribute="Tags" context="ML_Tag2ndWord" String="[in,out]" />
+        <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordWord">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <DetectSpaces />
+        <RegExpr attribute="Word" context="ML_Tag2ndWord" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <!-- TODO for kate 2.x, convert references to "#pop!ML_TagWord" -->
+      <context attribute="Comment" lineEndContext="#pop#pop" name="ML_Tag2ndWord">
+        <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/" lookAhead="true"/>
+        <IncludeRules context="SL_Tag2ndWord" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagString">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <StringDetect attribute="HTML Comment" context="ML_htmlcomment" String="&lt;!--" />
+        <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="HTML Tag" context="ML_htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+        <RegExpr attribute="Description" context="#stay" String="." />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="ML_TagWordString">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <IncludeRules context="SL_TagWordString" />
+      </context>
+
+      <!-- html contexts -->
+      <context name="ML_htmltag" attribute="Identifier" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
+        <DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
+        <RegExpr attribute="Identifier" context="ML_identifiers" String="\s*=\s*"/>
+      </context>
+      <context name="ML_htmlcomment" attribute="HTML Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <IncludeRules context="##Alerts" />
+        <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
+      </context>
+      <context name="ML_identifiers" attribute="Identifier" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <RegExpr attribute="Identifier" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
+        <DetectChar attribute="Types" context="ML_types1" char="'" />
+        <DetectChar attribute="Types" context="ML_types2" char="&quot;" />
+      </context>
+      <context name="ML_types1" attribute="Types" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <DetectChar attribute="Types" context="#pop#pop" char="'" />
+      </context>
+      <context name="ML_types2" attribute="Types" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" lookAhead="true"/>
+        <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
+      </context>
+
+<!-- NOTE: all contexts beginning with SL_ are for singleline comments -->
+      <!-- tag contexts -->
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagWord">
+        <DetectSpaces />
+        <keyword attribute="Tags" context="#pop" String="TagWord" lookAhead="true"/>
+        <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagParam">
+        <DetectSpaces />
+        <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in]" />
+        <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[out]" />
+        <StringDetect attribute="Tags" context="SL_Tag2ndWord" String="[in,out]" />
+        <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordWord">
+        <DetectSpaces />
+        <RegExpr attribute="Word" context="SL_Tag2ndWord" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <!-- TODO for kate 2.x, convert references to "#pop!SL_TagWord" -->
+      <context attribute="Comment" lineEndContext="#pop#pop" name="SL_Tag2ndWord">
+        <DetectSpaces />
+        <RegExpr attribute="Word" context="#pop#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagString">
+        <DetectSpaces />
+        <StringDetect attribute="HTML Comment" context="SL_htmlcomment" String="&lt;!--" />
+        <Detect2Chars attribute="Comment" context="#stay" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="HTML Tag" context="SL_htmltag" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+        <RegExpr attribute="Description" context="#stay" String="." />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SL_TagWordString">
+        <DetectSpaces />
+        <RegExpr attribute="Word" context="#pop" String="\S(?=&wordsep;)" />
+        <RegExpr attribute="Word" context="#stay" String="\S" />
+      </context>
+
+      <!-- html contexts -->
+      <context name="SL_htmltag" attribute="Identifier" lineEndContext="#pop">
+        <Detect2Chars attribute="HTML Tag" context="#pop" char="/" char1="&gt;" />
+        <DetectChar attribute="HTML Tag" context="#pop" char="&gt;"/>
+        <RegExpr attribute="Identifier" context="SL_identifiers" String="\s*=\s*"/>
+      </context>
+      <context name="SL_htmlcomment" attribute="HTML Comment" lineEndContext="#pop">
+        <IncludeRules context="##Alerts" />
+        <StringDetect attribute="HTML Comment" context="#pop" String="--&gt;" />
+      </context>
+      <context name="SL_identifiers" attribute="Identifier" lineEndContext="#pop">
+        <RegExpr attribute="Identifier" context="#pop" String="\s*#?[a-zA-Z0-9]*" />
+        <DetectChar attribute="Types" context="SL_types1" char="'" />
+        <DetectChar attribute="Types" context="SL_types2" char="&quot;" />
+      </context>
+      <context name="SL_types1" attribute="Types" lineEndContext="#pop">
+        <DetectChar attribute="Types" context="#pop#pop" char="'" />
+      </context>
+      <context name="SL_types2" attribute="Types" lineEndContext="#pop">
+        <DetectChar attribute="Types" context="#pop#pop" char="&quot;" />
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Tags"        defStyleNum="dsAnnotation" bold="1" italic="0" />
+      <itemData name="Word"        defStyleNum="dsCommentVar" bold="1" italic="0" />
+      <itemData name="HTML Tag"    defStyleNum="dsKeyword"/>
+      <itemData name="Description" defStyleNum="dsString" />
+      <itemData name="Comment"     defStyleNum="dsDocumentation"/>
+      <itemData name="Region"      defStyleNum="dsRegionMarker" />
+      <itemData name="Identifier"  defStyleNum="dsOthers" />
+      <itemData name="HTML Comment" defStyleNum="dsComment" />
+      <itemData name="Types"       defStyleNum="dsDataType" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="--" />
+      <comment name="multiLine" start="--[[" end="]]" />
+    </comments>
+    <keywords casesensitive="0" weakDeliminator="\$~" />
+  </general>
+</language>
diff --git a/xml/dtd.xml b/xml/dtd.xml
new file mode 100644
--- /dev/null
+++ b/xml/dtd.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"[
+  <!ENTITY nmtoken "[\-\w\d\.:_]+">
+  <!ENTITY entref  "(#[0-9]+|#[xX][0-9A-Fa-f]+|&nmtoken;);">
+]>
+<language name="DTD" version="2" kateversion="3.4" section="Markup" extensions="*.dtd" mimetype="application/xml-dtd" author="Andriy Lesyuk (s-andy@in.if.ua)" license="LGPL">
+  <highlighting>
+
+    <list name="Category">
+      <item>EMPTY</item>
+      <item>ANY</item>
+      <item>CDATA</item>
+      <item>ID</item>
+      <item>IDREF</item>
+      <item>IDREFS</item>
+      <item>NMTOKEN</item>
+      <item>NMTOKENS</item>
+      <item>ENTITY</item>
+      <item>ENTITIES</item>
+      <item>NOTATION</item>
+      <item>PUBLIC</item>
+      <item>SYSTEM</item>
+      <item>NDATA</item>
+    </list>
+
+    <list name="Keywords">
+      <item>#PCDATA</item>
+      <item>#REQUIRED</item>
+      <item>#IMPLIED</item>
+      <item>#FIXED</item>
+    </list>
+
+    <contexts>
+      <context name="Normal" attribute="Normal" lineEndContext="#stay">
+        <DetectSpaces />
+        <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+        <StringDetect attribute="Processing Instruction" context="PI" String="&lt;?xml" beginRegion="pi" />
+        <StringDetect attribute="Declaration" context="Declaration" String="&lt;!ELEMENT" beginRegion="declaration" />
+        <StringDetect attribute="Declaration" context="Declaration" String="&lt;!ATTLIST" beginRegion="declaration" />
+        <StringDetect attribute="Declaration" context="Declaration" String="&lt;!NOTATION" beginRegion="declaration" />
+        <StringDetect attribute="Declaration" context="Declaration" String="&lt;!ENTITY" beginRegion="declaration" />
+        <DetectIdentifier />
+      </context>
+
+      <context name="Comment" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces />
+        <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+
+      <context name="PI" attribute="Other" lineEndContext="#stay">
+        <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
+      </context>
+
+      <context name="Declaration" attribute="Other" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+        <Detect2Chars attribute="Comment" context="InlineComment" char="-" char1="-" />
+        <DetectChar attribute="Declaration" context="#pop" char="&gt;" endRegion="declaration" />
+        <DetectChar attribute="String" context="String" char="&quot;" />
+        <RegExpr attribute="Declaration" context="#stay" String="(-|O)\s(-|O)" />
+        <AnyChar attribute="Delimiter" context="#stay" String="(|)," />
+        <RegExpr attribute="Entity" context="#stay" String="(%|&amp;)&entref;" />
+        <AnyChar attribute="Symbol" context="#stay" String="?*+-&amp;" />
+        <RegExpr attribute="Local" context="#stay" String="%\s" />
+        <keyword attribute="Keyword" context="#stay" String="Category" />
+        <keyword attribute="Keyword" context="#stay" String="Keywords" />
+        <RegExpr attribute="Name" context="#stay" String="\b&nmtoken;\b" />
+      </context>
+
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+        <RegExpr attribute="Entity" context="#stay" String="%&nmtoken;;" />
+      </context>
+
+      <context name="InlineComment" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="-" char1="-" />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal" defStyleNum="dsNormal" />
+      <itemData name="Other" defStyleNum="dsNormal" />
+      <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false" />
+      <itemData name="Declaration" defStyleNum="dsDataType" bold="1" spellChecking="false" />
+      <itemData name="Name" defStyleNum="dsFunction" spellChecking="false" />
+      <itemData name="Delimiter" defStyleNum="dsDecVal" spellChecking="false" />
+      <itemData name="Symbol" defStyleNum="dsFloat" bold="1" spellChecking="false" />
+      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
+      <itemData name="String" defStyleNum="dsString" spellChecking="false" />
+      <itemData name="Entity" defStyleNum="dsDecVal" spellChecking="false" />
+      <itemData name="Local" defStyleNum="dsDecVal" bold="1" spellChecking="false" />
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="multiLine" start="&lt;!--" end="--&gt;" />
+    </comments>
+  </general>
+
+</language>
+<!-- kate: indent-width 2; indent-mode normal; tab-indents on; -->
+
diff --git a/xml/eiffel.xml b/xml/eiffel.xml
new file mode 100644
--- /dev/null
+++ b/xml/eiffel.xml
@@ -0,0 +1,125 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+Eiffel syntax highlighting for Kate and Kwrite editors
+
+Change log:
+2003-12-16 	Revised existing version by adding several missing keywords. Added predefined
+				entities as a separate word list. Moved from numeric to named contexts.
+				Changed version to 1.02.
+
+Author of version 1.02: Sebastian Vuorinen
+-->
+<language name="Eiffel" version="2" kateversion="5.0" section="Sources" extensions="*.e" mimetype="text/x-eiffel-src" author="Sebastian Vuorinen" license="">
+	<highlighting>
+		<list name="keywords">
+			<item>agent</item>
+			<item>alias</item>
+			<item>all</item>
+			<item>and</item>
+			<item>as</item>
+			<item>assign</item>
+			<item>class</item>
+			<item>convert</item>
+			<item>create</item>
+			<item>creation</item>
+			<item>debug</item>
+			<item>deferred</item>
+			<item>do</item>
+			<item>else</item>
+			<item>elseif</item>
+			<item>end</item>
+			<item>expanded</item>
+			<item>export</item>
+			<item>external</item>
+			<item>feature</item>
+			<item>from</item>
+			<item>frozen</item>
+			<item>if</item>
+			<item>implies</item>
+			<item>indexing</item>
+			<item>infix</item>
+			<item>inherit</item>
+			<item>inspect</item>
+			<item>is</item>
+			<item>like</item>
+			<item>local</item>
+			<item>loop</item>
+			<item>not</item>
+			<item>obsolete</item>
+			<item>old</item>
+			<item>once</item>
+			<item>or</item>
+			<item>prefix</item>
+			<item>pure</item>
+			<item>redefine</item>
+			<item>reference</item>
+			<item>rename</item>
+			<item>rescue</item>
+			<item>retry</item>
+			<item>separate</item>
+			<item>then</item>
+			<item>undefine</item>
+		</list>
+
+		<list name="predefined-entities">
+			<item>Current</item>
+			<item>False</item>
+			<item>Precursor</item>
+			<item>Result</item>
+			<item>True</item>
+			<item>TUPLE</item>
+		</list>
+
+		<list name="assertions">
+			<item>check</item>
+			<item>ensure</item>
+			<item>require</item>
+			<item>variant</item>
+			<item>invariant</item>
+		</list>
+
+		<contexts>
+			<context name = "Normal" attribute = "Normal Text" lineEndContext="#stay">
+				<keyword attribute = "Keyword" String = "keywords" context="#stay" />
+				<keyword attribute = "Predefined entities" String = "predefined-entities" context="#stay" />
+				<keyword attribute = "Assertions" String = "assertions" context="#stay" />
+
+				<Int attribute = "Decimal" context="#stay" />
+				<Float attribute = "Float" context="#stay" />
+				<HlCChar attribute = "Char" context="#stay" />
+				<DetectChar attribute = "String" char = "&quot;" context="Quoted String" />
+
+				<Detect2Chars attribute = "Comment" char = "-" char1 = "-" context="Documentation" />
+			</context>
+
+			<context name = "Quoted String" attribute = "String" lineEndContext="#pop">
+				<DetectChar attribute = "String" char = "&quot;" context="#pop" />
+			</context>
+
+			<context name = "Documentation" attribute="Comment" lineEndContext="#pop" />
+		</contexts>
+
+		<itemDatas>
+			<itemData name="Normal Text" defStyleNum="dsNormal" />
+
+			<itemData name="Keyword"     defStyleNum="dsKeyword" />
+			<itemData name="Predefined entities" defStyleNum="dsConstant" />
+			<itemData name="Assertions"  defStyleNum="dsOthers" />
+
+			<itemData name="Decimal"     defStyleNum="dsDecVal" />
+			<itemData name="Float"       defStyleNum="dsFloat" />
+			<itemData name="Char"        defStyleNum="dsChar" />
+			<itemData name="String"      defStyleNum="dsString" />
+
+			<itemData name="Comment"     defStyleNum="dsComment" />
+		</itemDatas>
+	</highlighting>
+
+	<general>
+		<comments>
+			<comment name="singleLine" start="--" />
+		</comments>
+		<keywords casesensitive="1" />
+	</general>
+</language>
diff --git a/xml/elixir.xml b/xml/elixir.xml
new file mode 100644
--- /dev/null
+++ b/xml/elixir.xml
@@ -0,0 +1,240 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language
+  SYSTEM 'language.dtd'>
+<!--
+  Elixir syntax highlighting definition for Kate.
+
+  Copyright (C) 2014  by Rubén Caro (ruben.caro.estevez@gmail.com)
+  Copyright (C) 2016  by Boris Egorov (egorov@linux.com)
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Library General Public
+  License as published by the Free Software Foundation; either
+  version 2 of the License, or (at your option) any later version.
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Library General Public License for more details.
+  You should have received a copy of the GNU Library General Public
+  License along with this library; if not, write to the
+  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  Boston, MA  02110-1301, USA.
+-->
+<!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
+<language author="Rubén Caro (ruben.caro.estevez@gmail.com), Boris Egorov (egorov@linux.com)"
+          extensions="*.ex;*.exs;*.eex;*.xml.eex;*.js.eex"
+          indenter="elixir"
+          kateversion="5.0"
+          license="LGPLv2+"
+          mimetype="text/x-elixir"
+          name="Elixir"
+          section="Sources"
+          style="elixir"
+          version="2">
+  <highlighting>
+    <list name="control-flow">
+      <item>catch</item>
+      <item>cond</item>
+      <item>else</item>
+      <item>if</item>
+      <item>raise</item>
+      <item>rescue</item>
+      <item>throw</item>
+      <item>try</item>
+      <item>unless</item>
+    </list>
+    <list name="keywords">
+      <item>do</item>
+      <item>end</item>
+      <item>case</item>
+      <item>bc</item>
+      <item>lc</item>
+      <item>for</item>
+      <item>receive</item>
+      <item>exit</item>
+      <item>after</item>
+      <item>quote</item>
+      <item>unquote</item>
+      <item>super</item>
+      <item>and</item>
+      <item>not</item>
+      <item>or</item>
+      <item>when</item>
+      <item>xor</item>
+      <item>in</item>
+      <item>inlist</item>
+      <item>inbits</item>
+    </list>
+    <list name="pseudo-variables">
+      <item>nil</item>
+      <item>true</item>
+      <item>false</item>
+    </list>
+    <list name="definitions">
+      <item>fn</item>
+      <item>defmodule</item>
+      <item>def</item>
+      <item>defp</item>
+      <item>defprotocol</item>
+      <item>defimpl</item>
+      <item>defrecord</item>
+      <item>defstruct</item>
+      <item>defmacro</item>
+      <item>defmacrop</item>
+      <item>defdelegate</item>
+      <item>defcallback</item>
+      <item>defmacrocallback</item>
+      <item>defexception</item>
+      <item>defoverridable</item>
+    </list>
+    <list name="mixin-macros">
+      <item>import</item>
+      <item>require</item>
+      <item>alias</item>
+      <item>use</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <!-- "shebang" line -->
+        <RegExpr String="#!\/.*" attribute="Keyword" column="0" context="#stay"/>
+
+        <!-- Defined words -->
+        <keyword String="keywords" attribute="Keyword" context="#stay"/>
+        <keyword String="control-flow" attribute="Control Flow" context="#stay"/>
+        <keyword String="definitions" attribute="Definition" context="#stay"/>
+        <keyword String="pseudo-variables" attribute="Pseudo variable" context="#stay"/>
+        <keyword String="mixin-macros" attribute="Mixin macros" context="#stay"/>
+
+        <!-- special-character globals -->
+        <RegExpr String="\b[_A-Z]+[A-Z_0-9]+\b" attribute="Global Constant" context="#stay"/>
+
+        <!-- Generally a module or class name like "File", "MyModule_1", .. -->
+        <RegExpr String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" attribute="Constant" context="#stay"/>
+
+        <!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->
+        <RegExpr String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" attribute="Hex" context="#stay"/>
+        <RegExpr String="\b\-?0[bB]([01]|_[01])+" attribute="Bin" context="#stay"/>
+        <RegExpr String="\b\-?0[1-7]([0-7]|_[0-7])*" attribute="Octal" context="#stay"/>
+        <RegExpr String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" attribute="Float" context="#stay"/>
+        <RegExpr String="\b\-?[1-9]([0-9]|_[0-9])*\b" attribute="Dec" context="#stay"/>
+        <Int attribute="Dec" context="#stay"/>
+        <HlCChar attribute="Char" context="#stay"/>
+        <DetectChar attribute="Operator" char="." context="#stay"/>
+        <Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>
+        <Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
+        <RegExpr String="\s[\?\:\%]\s" attribute="Operator" context="#stay"/>
+        <RegExpr String="[|&amp;&lt;&gt;\^\+*~\-=/]+" attribute="Operator" context="#stay"/>
+        <!-- regexp hack -->
+        <RegExpr String="\s!" attribute="Operator" context="#stay"/>
+        <RegExpr String="/=\s" attribute="Operator" context="#stay" insensitive="0"/>
+        <StringDetect String="%=" attribute="Operator" context="#stay" insensitive="0"/>
+        <RegExpr String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?" attribute="Symbol" context="#stay"/>
+        <RegExpr String="\b(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?:" attribute="Symbol" context="#stay"/>
+        <RegExpr String=":\[\]=?" attribute="Symbol" context="#stay"/>
+        <RegExpr String="@(module)?doc\s+&quot;&quot;&quot;" attribute="Attribute" context="Documentation"/>
+        <StringDetect String="&quot;&quot;&quot;" attribute="String" context="Triple Quoted String"/>
+        <DetectChar attribute="String" char="&quot;" context="Quoted String"/>
+        <DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
+        <StringDetect String="?#" attribute="Normal Text" context="#stay"/>
+        <DetectChar attribute="Comment" char="#" context="General Comment"/>
+        <DetectChar attribute="Delimiter" char="[" context="#stay"/>
+        <DetectChar attribute="Delimiter" char="]" context="#stay"/>
+        <RegExpr String="@[a-zA-Z_0-9]+" attribute="Attribute" context="#stay"/>
+        <!-- handle the different regular expression formats -->
+        <DetectChar attribute="Normal Text" char=")" context="#stay"/>
+        <DetectIdentifier attribute="Normal Text" context="#stay"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Find closing block brace">
+        <DetectChar attribute="Operator" char="}" context="#pop" endRegion="def bracketed block"/>
+        <IncludeRules context="Normal"/>
+      </context>
+      <context attribute="DocComment" lineEndContext="#stay" name="Documentation">
+        <StringDetect String="&quot;&quot;&quot;" attribute="Attribute" context="#pop"/>
+        <RegExpr attribute="MarkdownHead" String="^\s*#+\s.*[#]?$"/>
+        <RegExpr attribute="MarkdownBullet" String="^\s*[\*\+\-]\s"/>
+        <RegExpr attribute="MarkdownNumlist" String="^\s*[\d]+\.\s"/>
+        <RegExpr attribute="MarkdownCode" context="Markdown Code" String="^\s*\`\`\`\s*$"/>
+        <DetectSpaces />
+        <IncludeRules context="Normal Text##Markdown"/>
+      </context>
+      <context attribute="String" lineEndContext="#stay" name="Triple Quoted String">
+        <StringDetect String="&quot;&quot;&quot;" attribute="String" context="#pop"/>
+      </context>
+      <context attribute="String" lineEndContext="#stay" name="Quoted String">
+        <StringDetect String="\\" attribute="String" context="#stay"/>
+        <RegExpr String="\\\&quot;" attribute="String" context="#stay"/>
+        <RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/>
+        <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+        <DetectChar attribute="String" char="&quot;" context="#pop"/>
+      </context>
+      <context attribute="Raw String" lineEndContext="#stay" name="Apostrophed String">
+        <StringDetect String="\\" attribute="String" context="#stay"/>
+        <RegExpr String="\\\'" attribute="String" context="#stay"/>
+        <DetectChar attribute="Raw String" char="'" context="#pop"/>
+      </context>
+      <!-- Substitutions can be nested -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Subst">
+        <DetectChar attribute="Substitution" char="}" context="#pop"/>
+        <!-- Highlight substitution as code. -->
+        <IncludeRules context="Normal"/>
+      </context>
+      <context attribute="Substitution" lineEndContext="#pop" name="Short Subst">
+        <!-- Check for e.g.: "#@var#@@xy" -->
+        <RegExpr String="#@{1,2}" attribute="Substitution" context="#stay"/>
+        <RegExpr String="\w(?!\w)" attribute="Substitution" context="#pop"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment Line">
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="General Comment">
+      </context>
+      <!-- rules to be included in all regexpr contexts -->
+      <context attribute="Regular Expression" lineEndContext="#stay" name="regexpr_rules">
+        <Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>
+        <RegExpr String="#@{1,2}" attribute="Substitution" context="Short Subst"/>
+        <Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+      </context>
+      <context attribute="MarkdownCode" lineEndContext="#stay" name="Markdown Code">
+        <RegExpr String="^\s*\`\`\`\s*$" attribute="MarkdownCode" context="#pop"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Global Constant" defStyleNum="dsConstant"/>
+      <itemData name="Constant" defStyleNum="dsConstant"/>
+      <itemData defStyleNum="dsNormal" name="Normal Text"/>
+      <itemData defStyleNum="dsKeyword" name="Keyword"/>
+      <itemData defStyleNum="dsControlFlow" name="Control Flow"/>
+      <itemData defStyleNum="dsKeyword" name="Definition"/>
+      <itemData defStyleNum="dsImport" name="Mixin macros"/>
+      <itemData defStyleNum="dsConstant" name="Pseudo variable"/>
+      <itemData defStyleNum="dsDecVal" name="Dec"/>
+      <itemData defStyleNum="dsFloat" name="Float"/>
+      <itemData defStyleNum="dsChar" name="Char"/>
+      <itemData defStyleNum="dsBaseN" name="Octal"/>
+      <itemData defStyleNum="dsBaseN" name="Hex"/>
+      <itemData defStyleNum="dsBaseN" name="Bin"/>
+      <itemData defStyleNum="dsVariable" name="Symbol"/>
+      <itemData defStyleNum="dsString" name="String"/>
+      <itemData defStyleNum="dsVerbatimString" name="Raw String"/>
+      <itemData defStyleNum="dsSpecialString" name="Regular Expression"/>
+      <itemData defStyleNum="dsOthers" name="Substitution"/>
+      <itemData defStyleNum="dsNormal" name="Data"/>
+      <itemData defStyleNum="dsOthers" name="Attribute"/>
+      <itemData defStyleNum="dsComment" name="Comment"/>
+      <itemData defStyleNum="dsComment" name="DocComment"/>
+      <!-- use these to mark errors and alerts things -->
+      <itemData defStyleNum="dsError" name="Error"/>
+      <itemData color="#FF9FEC" defStyleNum="dsNormal" name="Delimiter"/>
+      <itemData defStyleNum="dsOperator" name="Operator"/>
+      <itemData name="MarkdownHead" defStyleNum="dsFunction" bold="true"/>
+      <itemData name="MarkdownBullet" defStyleNum="dsFunction"/>
+      <itemData name="MarkdownNumlist" defStyleNum="dsFunction"/>
+      <itemData name="MarkdownCode" defStyleNum="dsFunction"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#"/>
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="!?"/>
+  </general>
+</language>
diff --git a/xml/email.xml b/xml/email.xml
new file mode 100644
--- /dev/null
+++ b/xml/email.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Email" version="3" kateversion="5.0" extensions="*.eml;*.emlx;*.mbox;*.mbx" section="Other" mimetype="message/rfc822" casesensitive="0" author="Volker Krause (vkrause@kde.org)" license="MIT">
+    <highlighting>
+        <list name="header-names">
+            <item>Authentication-Results:</item>
+            <item>Bcc:</item>
+            <item>Cc:</item>
+            <item>Comments:</item>
+            <item>Content-Description:</item>
+            <item>Content-Disposition:</item>
+            <item>Content-Transfer-Encoding:</item>
+            <item>Content-Type:</item>
+            <item>Date:</item>
+            <item>Delivered-To:</item>
+            <item>DKIM-Signature:</item>
+            <item>Errors-To:</item>
+            <item>From:</item>
+            <item>In-Reply-To:</item>
+            <item>Keywords:</item>
+            <item>Lines:</item>
+            <item>Message-Id:</item>
+            <item>List-Archive:</item>
+            <item>List-Id:</item>
+            <item>List-Help:</item>
+            <item>List-Post:</item>
+            <item>List-Unsubscribe:</item>
+            <item>List-Subscribe:</item>
+            <item>MIME-Version:</item>
+            <item>Organization:</item>
+            <item>Precedence:</item>
+            <item>Received:</item>
+            <item>Received-SPF:</item>
+            <item>References:</item>
+            <item>Resent-Bcc:</item>
+            <item>Resent-Cc:</item>
+            <item>Resent-Date:</item>
+            <item>Resent-From:</item>
+            <item>Resent-Message-Id:</item>
+            <item>Return-Path:</item>
+            <item>Resent-Reply-To:</item>
+            <item>Resent-Sender:</item>
+            <item>Resent-To:</item>
+            <item>Reply-To:</item>
+            <item>Sender:</item>
+            <item>Subject:</item>
+            <item>Supersedes:</item>
+            <item>To:</item>
+            <item>User-Agent:</item>
+        </list>
+
+        <contexts>
+            <context name="header" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop!body-context">
+                <keyword attribute="Common Header" context="header-structured-content" String="header-names" column="0"/>
+                <RegExpr attribute="Other Header" context="header-content" String="[0-9a-zA-Z-]+:\s" column="0"/>
+            </context>
+
+            <context name="header-structured-content" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop#pop!body-context">
+                <RegExpr context="#pop" String="\S" column="0" lookAhead="true"/>
+                <DetectChar attribute="String" context="string-context" char="&quot;"/>
+                <DetectChar attribute="Comment" context="comment-context" char="("/>
+                <RegExpr attribute="Address" context="#stay" String="&lt;?[a-zA-Z0-9._-]+@[a-zA-Z0-9._-]+&gt;?"/>
+            </context>
+
+            <context name="header-content" attribute="Normal Text" lineEndContext="#stay" lineEmptyContext="#pop#pop!body-context">
+                <RegExpr context="#pop" String="\S" column="0" lookAhead="true"/>
+            </context>
+
+            <context name="string-context" attribute="String" lineEndContext="#stay">
+                <HlCStringChar/>
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+            </context>
+
+            <context name="comment-context" attribute="Comment" lineEndContext="#stay">
+                <DetectChar attribute="Comment" context="#pop" char=")"/>
+            </context>
+
+            <context name="body-context" attribute="Normal Text" lineEndContext="#stay">
+                <RegExpr attribute="Content Boundary" context="#pop!header" String="--[0-9a-zA-Z._=-]{10,}(--)?$" column="0"/>
+            </context>
+        </contexts>
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+            <itemData name="Common Header" defStyleNum="dsBuiltIn" spellChecking="false"/>
+            <itemData name="Other Header" defStyleNum="dsFunction" spellChecking="false"/>
+            <itemData name="String" defStyleNum="dsString" spellChecking="false"/>
+            <itemData name="Address" defStyleNum="dsVariable" spellChecking="false"/>
+            <itemData name="Comment" defStyleNum="dsComment" spellChecking="false"/>
+            <itemData name="Content Boundary" defStyleNum="dsRegionMarker" spellChecking="false"/>
+        </itemDatas>
+    </highlighting>
+    <general>
+        <keywords casesensitive="0" weakDeliminator=":-"/>
+    </general>
+</language>
diff --git a/xml/erlang.xml b/xml/erlang.xml
new file mode 100644
--- /dev/null
+++ b/xml/erlang.xml
@@ -0,0 +1,250 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+          <!ENTITY atomstr    "\b[a-z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)" >
+          <!ENTITY varstr    "\b[_A-Z][_a-z@-Z0-9]*(?:(?=[^_a-z@-Z0-9])|$)" >
+          <!-- pragmas defined here, because "keyword" can't handle the leading '-' -->
+          <!ENTITY pragmas 
+             "^(?:-module|-export|-define|-undef|-ifdef|-ifndef|-else|-endif|-include|-include_lib)" >
+          <!--  same with separators: (from s3.9 p 24 of erlang spec) -->
+          <!ENTITY separators "(?:\(|\)|\{|\}|\[|\]|\.|\:|\||\|\||;|\,|\?|-&gt;|\#)" >
+          <!--  and operators - although words are dealt with separately -->
+          <!ENTITY opsymbols 
+                   "(?:\+|-|\*|\/|==|\/=|=:=|=\/=|&lt;|=&lt;|&gt;|&gt;=|\+\+|--|=|!|&lt;-)" >
+]
+>
+<!--
+    Copyright (C) 2007 Bill Ross <bill@emailme.net.au>
+
+    
+    This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public
+   License version 2 as published by the Free Software Foundation.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public License
+   along with this library; see the file COPYING.LIB.  If not, write to
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.
+  
+   Changes 
+   v1-0-2 (2008-01-10) - fixed to '_" in atom and variable names (thanks to Vito De Tullio)
+                                   - fixed highlighting problem when '@' at end of atom/variable
+-->
+
+<language name="Erlang" version="3" kateversion="5.0" section="Scripts" extensions="*.erl" mimetype="" author="Bill Ross (bill@emailme.net.au)" license="LGPLv2">
+  <highlighting>
+    <list name="keywords">
+      <!-- ====== s3.8 p 24 of erlang spec ===== -->
+      <item>after</item>
+      <item>begin</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>cond</item>
+      <item>end</item>
+      <item>fun</item>
+      <item>if</item>
+      <item>let</item>
+      <item>of</item>
+      <item>query</item>
+      <item>receive</item>
+      <item>all_true</item>
+      <item>some_true</item>
+    </list>
+    <list name="operators">
+      <!-- operators: s3.9 p 24 of erlang spec -->
+      <!-- see also opsymbols for the symbols -->
+      <item>div</item>
+      <item>rem</item>
+      <item>or</item>
+      <item>xor</item>
+      <item>bor</item>
+      <item>bxor</item>
+      <item>bsl</item>
+      <item>bsr</item>
+      <item>and</item>
+      <item>band</item>
+      <item>not</item>
+      <item>bnot</item>
+    </list>
+    <list name="functions">
+      <!-- all standard (erlang) functions are here, -->
+      <!-- except those defined as erlang:function (those will show as functions anyway -->
+      <item>abs</item>
+      <item>accept</item>
+      <item>alarm</item>
+      <item>apply</item>
+      <item>atom_to_list</item>
+      <item>binary_to_list</item>
+      <item>binary_to_term</item>
+      <item>check_process_code</item>
+      <item>concat_binary</item>
+      <item>date</item>
+      <item>delete_module</item>
+      <item>disconnect_node</item>
+      <item>element</item>
+      <item>erase</item>
+      <item>exit</item>
+      <item>float</item>
+      <item>float_to_list</item>
+      <item>garbage_collect</item>
+      <item>get</item>
+      <item>get_keys</item>
+      <item>group_leader</item>
+      <item>halt</item>
+      <item>hd</item>
+      <item>integer_to_list</item>
+      <item>is_alive</item>
+      <item>is_atom</item>
+      <item>is_binary</item>
+      <item>is_boolean</item>
+      <item>is_float</item>
+      <item>is_function</item>
+      <item>is_integer</item>
+      <item>is_list</item>
+      <item>is_number</item>
+      <item>is_pid</item>
+      <item>is_port</item>
+      <item>is_process_alive</item>
+      <item>is_record</item>
+      <item>is_reference</item>
+      <item>is_tuple</item>
+      <item>length</item>
+      <item>link</item>
+      <item>list_to_atom</item>
+      <item>list_to_binary</item>
+      <item>list_to_float</item>
+      <item>list_to_integer</item>
+      <item>list_to_pid</item>
+      <item>list_to_tuple</item>
+      <item>load_module</item>
+      <item>loaded</item>
+      <item>localtime</item>
+      <item>make_ref</item>
+      <item>module_loaded</item>
+      <item>node</item>
+      <item>nodes</item>
+      <item>now</item>
+      <item>open_port</item>
+      <item>pid_to_list</item>
+      <item>port_close</item>
+      <item>port_command</item>
+      <item>port_connect</item>
+      <item>port_control</item>
+      <item>ports</item>
+      <item>pre_loaded</item>
+      <item>process_flag</item>
+      <item>process_info</item>
+      <item>processes</item>
+      <item>purge_module</item>
+      <item>put</item>
+      <item>register</item>
+      <item>registered</item>
+      <item>round</item>
+      <item>self</item>
+      <item>setelement</item>
+      <item>size</item>
+      <item>spawn</item>
+      <item>spawn_link</item>
+      <item>spawn_opt</item>
+      <item>split_binary</item>
+      <item>statistics</item>
+      <item>term_to_binary</item>
+      <item>throw</item>
+      <item>time</item>
+      <item>tl</item>
+      <item>trunc</item>
+      <item>tuple_to_list</item>
+      <item>unlink</item>
+      <item>unregister</item>
+      <item>whereis</item>
+   </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >
+        <RegExpr attribute="Pragma" context="#stay" column="0" String="&pragmas;" />
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Operator" context="#stay" String="operators" />
+        <RegExpr attribute="Operator" context="#stay" String="&opsymbols;" />
+        <keyword attribute="Function" context="#stay" String="functions" />
+        <RegExpr attribute="Separator" context="#stay" String="&separators;" />
+        <DetectSpaces />
+        <DetectChar attribute="Comment" context="comment" char="%" />
+
+        <!-- Functions (in addition to named functions dealt with above) -->
+        <!-- simple version - got to be in form module:function -->
+        <RegExpr attribute="Function" context="#stay" String="&atomstr;:&atomstr;" />
+        <RegExpr attribute="Function" context="isfunction" String="&atomstr;\(" lookAhead="true" />
+
+        <!-- Variables - begin with upper case, or between single quotes -->
+        <RegExpr attribute="Variable" context="#stay" String="&varstr;" />
+
+        <!-- atoms - begin with lower case (letters, numbers, @), 
+             or anything between single quotes -->
+        <DetectChar attribute="Atom" context="atomquote" char="'" /> 
+        <RegExpr attribute="Atom" context="#stay" String="&atomstr;" />
+        
+        <DetectChar attribute="String" context="stringquote" char="&quot;" />
+        
+        <!-- numbers - these work -->
+        <!-- integers have three forms 7, 3#22, $A -->
+        <!-- float must have a number after the decimal point, or it doesn't count -->
+        <RegExpr attribute="Float" context="#stay" String="[0-9]+\.[0-9]+(?:[eE][+-]?[0-9]+)?" />
+        <RegExpr attribute="Number" context="#stay" String="\d+#[a-zA-Z0-9]+" />
+        <RegExpr attribute="Integer" context="#stay" String="\$\S" />
+        <RegExpr attribute="Integer" context="#stay" String="[0-9]+" />
+
+      </context>
+
+      <!-- isfunction -->
+      <!-- confirm that this is a function and capture name for formatting -->
+      <!-- lookahead for '(' already performed by the time we are here -->
+      <context name="isfunction" attribute="Function" lineEndContext="#pop"  >
+        <RegExpr attribute="Function" context="#pop" String="&atomstr;" />
+      </context>
+
+      <!-- finish off the atom in quoted string (allow for escaped single quotes -->
+      <context name="atomquote" attribute="Atom" lineEndContext="#pop">
+        <RegExpr attribute="Atom" context="#pop" String="(?:(?:\\')?[^']*)*'" />
+      </context>
+
+      <!-- finish off the atom in quoted string (allow for escaped single quotes -->
+      <context name="stringquote" attribute="String" lineEndContext="#pop">
+        <RegExpr attribute="String" context="#pop" String="(?:(?:\\&quot;)?[^&quot;]*)*&quot;" />
+      </context>
+      
+      <!-- finish off the comment (allows for alerts) -->
+      <context name="comment" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"               defStyleNum="dsNormal" />
+      <itemData name="Keyword"                   defStyleNum="dsKeyword" />
+      <itemData name="Pragma"                    defStyleNum="dsKeyword" />
+      <itemData name="Function"                  defStyleNum="dsFunction" />
+      <itemData name="Separator"                 defStyleNum="dsFunction" />
+      <itemData name="Operator"                  defStyleNum="dsOperator"  />
+      <itemData name="Variable"                  defStyleNum="dsVariable" />
+      <itemData name="Integer"                   defStyleNum="dsDecVal" />
+      <itemData name="Number"                    defStyleNum="dsBaseN" />
+      <itemData name="Float"                     defStyleNum="dsFloat" />
+      <itemData name="Atom"                      defStyleNum="dsChar" />
+      <itemData name="String"                    defStyleNum="dsString" />
+      <itemData name="Comment"                   defStyleNum="dsComment" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="%" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/fasm.xml b/xml/fasm.xml
new file mode 100644
--- /dev/null
+++ b/xml/fasm.xml
@@ -0,0 +1,899 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+"Intel x86 (FASM)" is based on ver. 1.3 of "Intel x86 (NASM)" by Nicola Gigante and Bogdan Drozdowski
+
+Known issues:
+* Does not include all 64-bit registers and instructions
+* "near" and "far" as in "jmp near MyLabel" is unhandeled.
+* Confuses and,or,not,xor,shl instructions,with operators with same name, e.g. "2 shl 4"
+* May confuse ah,bh,ch,dh with hexadecimal numbers.
+
+Notes:
+* "used" and "defined" are treated opperators and are not highlighted.
+-->
+
+<language name="Intel x86 (FASM)" section="Assembler" version="1" kateversion="5.0" extensions="*.asm;*.inc;*.fasm" mimetype="" author="rCX (rCX12@yahoo.com)" license="GPL">
+  <highlighting>
+    <list name="registers">
+      <!-- General purpose registers -->
+      <item>rax</item>
+      <item>eax</item>
+      <item>ax</item>
+      <item>ah</item>
+      <item>al</item>
+      <item>rbx</item>
+      <item>ebx</item>
+      <item>bx</item>
+      <item>bh</item>
+      <item>bl</item>
+      <item>rcx</item>
+      <item>ecx</item>
+      <item>cx</item>
+      <item>ch</item>
+      <item>cl</item>
+      <item>rdx</item>
+      <item>edx</item>
+      <item>dx</item>
+      <item>dh</item>
+      <item>dl</item>
+      <item>rbp</item>
+      <item>ebp</item>
+      <item>bp</item>
+      <item>rsi</item>
+      <item>esi</item>
+      <item>si</item>
+      <item>rdi</item>
+      <item>edi</item>
+      <item>di</item>
+      <item>rsp</item>
+      <item>esp</item>
+      <item>sp</item>
+      <item>r8</item>
+      <item>r9</item>
+      <item>r10</item>
+      <item>r11</item>
+      <item>r12</item>
+      <item>r13</item>
+      <item>r14</item>
+      <item>r15</item>
+      <!-- Segmentation registers -->
+      <item>cs</item>
+      <item>ds</item>
+      <item>es</item>
+      <item>fs</item>
+      <item>gs</item>
+      <item>ss</item>
+      <!-- Control registers -->
+      <item>cr0</item>
+      <!--<item>cr1</item>-->
+      <item>cr2</item>
+      <item>cr3</item>
+      <item>cr4</item>
+      <!-- Debug registers -->
+      <item>dr0</item>
+      <item>dr1</item>
+      <item>dr2</item>
+      <item>dr3</item>
+      <item>dr6</item>
+      <item>dr7</item>
+      <!-- x87 FPU Registers -->
+      <item>st</item>
+      <!-- MMX registers -->
+      <item>mm0</item>
+      <item>mm1</item>
+      <item>mm2</item>
+      <item>mm3</item>
+      <item>mm4</item>
+      <item>mm5</item>
+      <item>mm6</item>
+      <item>mm7</item>
+      <!-- XMM registers -->
+      <item>xmm0</item>
+      <item>xmm1</item>
+      <item>xmm2</item>
+      <item>xmm3</item>
+      <item>xmm4</item>
+      <item>xmm5</item>
+      <item>xmm6</item>
+      <item>xmm7</item>
+    </list>
+    <list name="instructions">
+      <item>aaa</item>
+      <item>aad</item>
+      <item>aam</item>
+      <item>aas</item>
+      <item>adc</item>
+      <item>add</item>
+      <item>addpd</item>
+      <item>addps</item>
+      <item>addsd</item>
+      <item>addss</item>
+      <item>addsubpd</item>
+      <item>addsubps</item>
+      <item>and</item>
+      <item>andnpd</item>
+      <item>andnps</item>
+      <item>andpd</item>
+      <item>andps</item>
+      <item>arpl</item>
+      <item>bound</item>
+      <item>bsf</item>
+      <item>bsr</item>
+      <item>bswap</item>
+      <item>bt</item>
+      <item>btc</item>
+      <item>btr</item>
+      <item>bts</item>
+      <item>call</item>
+      <item>cbw</item>
+      <item>cwde</item>
+      <item>cwd</item>
+      <item>cdq</item>
+      <item>cdqe</item>
+      <item>cqo</item>
+      <item>clc</item>
+      <item>cld</item>
+      <item>clgi</item>
+      <item>cli</item>
+      <item>clts</item>
+      <item>clflush</item>
+      <item>cmc</item>
+      <item>cmova</item>
+      <item>cmovae</item>
+      <item>cmovb</item>
+      <item>cmovbe</item>
+      <item>cmovc</item>
+      <item>cmove</item>
+      <item>cmovg</item>
+      <item>cmovge</item>
+      <item>cmovl</item>
+      <item>cmovle</item>
+      <item>cmovna</item>
+      <item>cmovnae</item>
+      <item>cmovnb</item>
+      <item>cmovnbe</item>
+      <item>cmovnc</item>
+      <item>cmovne</item>
+      <item>cmovng</item>
+      <item>cmovnge</item>
+      <item>cmovnl</item>
+      <item>cmovnle</item>
+      <item>cmovno</item>
+      <item>cmovnp</item>
+      <item>cmovns</item>
+      <item>cmovnz</item>
+      <item>cmovo</item>
+      <item>cmovp</item>
+      <item>cmovpe</item>
+      <item>cmovpo</item>
+      <item>cmovs</item>
+      <item>cmovz</item>
+      <item>cmp</item>
+      <item>cmpeqpd</item>
+      <item>cmpeqps</item>
+      <item>cmpeqsd</item>
+      <item>cmpeqss</item>
+      <item>cmplepd</item>
+      <item>cmpleps</item>
+      <item>cmplesd</item>
+      <item>cmpless</item>
+      <item>cmpltpd</item>
+      <item>cmpltps</item>
+      <item>cmpltsd</item>
+      <item>cmpltss</item>
+      <item>cmpneqpd</item>
+      <item>cmpneqps</item>
+      <item>cmpneqsd</item>
+      <item>cmpneqss</item>
+      <item>cmpnlepd</item>
+      <item>cmpnleps</item>
+      <item>cmpnlesd</item>
+      <item>cmpnless</item>
+      <item>cmpnltpd</item>
+      <item>cmpnltps</item>
+      <item>cmpnltsd</item>
+      <item>cmpnltss</item>
+      <item>cmpordpd</item>
+      <item>cmpordps</item>
+      <item>cmpordsd</item>
+      <item>cmpordss</item>
+      <item>cmppd</item>
+      <item>cmpps</item>
+      <item>cmps</item>
+      <item>cmpsb</item>
+      <item>cmpsd</item>
+      <item>cmpss</item>
+      <item>cmpsw</item>
+      <item>cmpunordpd</item>
+      <item>cmpunordps</item>
+      <item>cmpunordsd</item>
+      <item>cmpunordss</item>
+      <item>cmpxchg</item>
+      <item>cmpxchg486</item>
+      <item>cmpxchg8b</item>
+      <item>cmpxchg16b</item>
+      <item>comisd</item>
+      <item>comiss</item>
+      <item>cpuid</item>
+      <item>cvtdq2pd</item>
+      <item>cvtdq2ps</item>
+      <item>cvtpd2dq</item>
+      <item>cvtpd2pi</item>
+      <item>cvtpd2ps</item>
+      <item>cvtpi2pd</item>
+      <item>cvtpi2ps</item>
+      <item>cvtps2dq</item>
+      <item>cvtps2pd</item>
+      <item>cvtps2pi</item>
+      <item>cvtsd2si</item>
+      <item>cvtsd2ss</item>
+      <item>cvtsi2sd</item>
+      <item>cvtsi2ss</item>
+      <item>cvtss2sd</item>
+      <item>cvtss2si</item>
+      <item>cvttpd2dq</item>
+      <item>cvttpd2pi</item>
+      <item>cvttps2dq</item>
+      <item>cvttps2pi</item>
+      <item>cvttsd2si</item>
+      <item>cvttss2si</item>
+      <item>daa</item>
+      <item>das</item>
+      <item>dec</item>
+      <item>div</item>
+      <item>divpd</item>
+      <item>divps</item>
+      <item>divsd</item>
+      <item>divss</item>
+      <item>emms</item>
+      <item>enter</item>
+      <item>f2xm1</item>
+      <item>fabs</item>
+      <item>fadd</item>
+      <item>faddp</item>
+      <item>fbld</item>
+      <item>fbstp</item>
+      <item>fchs</item>
+      <item>fclex</item>
+      <item>fnclex</item>
+      <item>fcmovb</item>
+      <item>fcmovbe</item>
+      <item>fcmove</item>
+      <item>fcmovnb</item>
+      <item>fcmovnbe</item>
+      <item>fcmovne</item>
+      <item>fcmovnu</item>
+      <item>fcmovu</item>
+      <item>fcom</item>
+      <item>fcomp</item>
+      <item>fcompp</item>
+      <item>fcomi</item>
+      <item>fcomip</item>
+      <item>fcos</item>
+      <item>fdecstp</item>
+      <item>fdisi</item>
+      <item>feni</item>
+      <item>fdiv</item>
+      <item>fdivr</item>
+      <item>fdivp</item>
+      <item>fdivrp</item>
+      <item>femms</item>
+      <item>ffree</item>
+      <item>ffreep</item>
+      <item>fiadd</item>
+      <item>ficom</item>
+      <item>ficomp</item>
+      <item>fidiv</item>
+      <item>fidivr</item>
+      <item>fild</item>
+      <item>fimul</item>
+      <item>fincstp</item>
+      <item>finit</item>
+      <item>fist</item>
+      <item>fistp</item>
+      <item>fisttp</item>
+      <item>fisub</item>
+      <item>fisubr</item>
+      <item>fld</item>
+      <item>fld1</item>
+      <item>fldl2e</item>
+      <item>fldl2t</item>
+      <item>fldlg2</item>
+      <item>fldln2</item>
+      <item>fldcw</item>
+      <item>fldenv</item>
+      <item>fldpi</item>
+      <item>fldz</item>
+      <item>fmul</item>
+      <item>fmulp</item>
+      <item>fndisi</item>
+      <item>fneni</item>
+      <item>fninit</item>
+      <item>fnop</item>
+      <item>fnsave</item>
+      <item>fnstcw</item>
+      <item>fnstenv</item>
+      <item>fnstsw</item>
+      <item>fnwait</item>
+      <item>fpatan</item>
+      <item>fptan</item>
+      <item>fprem</item>
+      <item>fprem1</item>
+      <item>frndint</item>
+      <item>frstor</item>
+      <item>fsave</item>
+      <item>fscale</item>
+      <item>fsetpm</item>
+      <item>fsin</item>
+      <item>fsincos</item>
+      <item>fsqrt</item>
+      <item>fst</item>
+      <item>fstp</item>
+      <item>fstcw</item>
+      <item>fstenv</item>
+      <item>fstsw</item>
+      <item>fsub</item>
+      <item>fsubr</item>
+      <item>fsubp</item>
+      <item>fsubrp</item>
+      <item>ftst</item>
+      <item>fucom</item>
+      <item>fucomp</item>
+      <item>fucompp</item>
+      <item>fucomi</item>
+      <item>fucomip</item>
+      <item>fwait</item>
+      <item>fxam</item>
+      <item>fxch</item>
+      <item>fxrstor</item>
+      <item>fxsave</item>
+      <item>fxtract</item>
+      <item>fyl2x</item>
+      <item>fyl2xp1</item>
+      <item>haddpd</item>
+      <item>haddps</item>
+      <item>hlt</item>
+      <item>hsubpd</item>
+      <item>hsubps</item>
+      <item>ibts</item>
+      <item>idiv</item>
+      <item>imul</item>
+      <item>in</item>
+      <item>inc</item>
+      <item>ins</item>
+      <item>insb</item>
+      <item>insd</item>
+      <item>insw</item>
+      <item>int</item>
+      <item>int1</item>
+      <item>int3</item>
+      <item>into</item>
+      <item>invd</item>
+      <item>invlpg</item>
+      <item>invlpga</item>
+      <item>iret</item>
+      <item>iretd</item>
+      <item>iretq</item>
+      <item>iretw</item>
+      <item>ja</item>
+      <item>jae</item>
+      <item>jb</item>
+      <item>jbe</item>
+      <item>jc</item>
+      <item>je</item>
+      <item>jg</item>
+      <item>jge</item>
+      <item>jl</item>
+      <item>jle</item>
+      <item>jna</item>
+      <item>jnae</item>
+      <item>jnb</item>
+      <item>jnbe</item>
+      <item>jnc</item>
+      <item>jne</item>
+      <item>jng</item>
+      <item>jnge</item>
+      <item>jnl</item>
+      <item>jnle</item>
+      <item>jno</item>
+      <item>jnp</item>
+      <item>jns</item>
+      <item>jnz</item>
+      <item>jo</item>
+      <item>jp</item>
+      <item>jpe</item>
+      <item>jpo</item>
+      <item>js</item>
+      <item>jz</item>
+      <item>jcxz</item>
+      <item>jecxz</item>
+      <item>jrcxz</item>
+      <item>jmp</item>
+      <item>lahf</item>
+      <item>lar</item>
+      <item>lddqu</item>
+      <item>ldmxcsr</item>
+      <item>lds</item>
+      <item>les</item>
+      <item>lea</item>
+      <item>leave</item>
+      <item>lfence</item>
+      <item>lfs</item>
+      <item>lgdt</item>
+      <item>lgs</item>
+      <item>lidt</item>
+      <item>lldt</item>
+      <item>lmsw</item>
+      <item>loadall</item>
+      <item>loadall286</item>
+      <item>lods</item>
+      <item>lodsb</item>
+      <item>lodsd</item>
+      <item>lodsq</item>
+      <item>lodsw</item>
+      <item>loop</item>
+      <item>loope</item>
+      <item>loopne</item>
+      <item>loopnz</item>
+      <item>loopz</item>
+      <item>lsl</item>
+      <item>lss</item>
+      <item>ltr</item>
+      <item>maskmovdqu</item>
+      <item>maskmovq</item>
+      <item>maxpd</item>
+      <item>maxps</item>
+      <item>maxsd</item>
+      <item>maxss</item>
+      <item>mfence</item>
+      <item>minpd</item>
+      <item>minps</item>
+      <item>minsd</item>
+      <item>minss</item>
+      <item>monitor</item>
+      <item>mov</item>
+      <item>movapd</item>
+      <item>movaps</item>
+      <item>movd</item>
+      <item>movddup</item>
+      <item>movdq2q</item>
+      <item>movdqa</item>
+      <item>movdqu</item>
+      <item>movhlps</item>
+      <item>movhpd</item>
+      <item>movhps</item>
+      <item>movlhps</item>
+      <item>movlpd</item>
+      <item>movlps</item>
+      <item>movmskpd</item>
+      <item>movmskps</item>
+      <item>movntdq</item>
+      <item>movnti</item>
+      <item>movntpd</item>
+      <item>movntps</item>
+      <item>movntq</item>
+      <item>movq</item>
+      <item>movq2dq</item>
+      <item>movs</item>
+      <item>movsb</item>
+      <item>movsd</item>
+      <item>movshdup</item>
+      <item>movsldup</item>
+      <item>movsq</item>
+      <item>movss</item>
+      <item>movsx</item>
+      <item>movsxd</item>
+      <item>movsw</item>
+      <item>movupd</item>
+      <item>movups</item>
+      <item>movzx</item>
+      <item>mul</item>
+      <item>mulpd</item>
+      <item>mulps</item>
+      <item>mulsd</item>
+      <item>mulss</item>
+      <item>mwait</item>
+      <item>neg</item>
+      <item>nop</item>
+      <item>not</item>
+      <item>or</item>
+      <item>orpd</item>
+      <item>orps</item>
+      <item>out</item>
+      <item>outs</item>
+      <item>outsb</item>
+      <item>outsw</item>
+      <item>outsd</item>
+      <item>packssdw</item>
+      <item>packsswb</item>
+      <item>packuswb</item>
+      <item>paddb</item>
+      <item>paddd</item>
+      <item>paddq</item>
+      <item>paddsb</item>
+      <item>paddsw</item>
+      <item>paddusb</item>
+      <item>paddusw</item>
+      <item>paddw</item>
+      <item>pand</item>
+      <item>pandn</item>
+      <item>pause</item>
+      <item>pavgb</item>
+      <item>pavgusb</item>
+      <item>pavgw</item>
+      <item>pcmpeqb</item>
+      <item>pcmpeqw</item>
+      <item>pcmpeqd</item>
+      <item>pcmpgtb</item>
+      <item>pcmpgtw</item>
+      <item>pcmpgtd</item>
+      <item>pdistib</item>
+      <item>pextrw</item>
+      <item>pf2id</item>
+      <item>pf2iw</item>
+      <item>pfacc</item>
+      <item>pfadd</item>
+      <item>pfcmpeq</item>
+      <item>pfcmpge</item>
+      <item>pfcmpgt</item>
+      <item>pfmax</item>
+      <item>pfmin</item>
+      <item>pfmul</item>
+      <item>pfnacc</item>
+      <item>pfpnacc</item>
+      <item>pfrcp</item>
+      <item>pfrcpit1</item>
+      <item>pfrcpit2</item>
+      <item>pfrsqit1</item>
+      <item>pfrsqrt</item>
+      <item>pfsub</item>
+      <item>pfsubr</item>
+      <item>pi2fd</item>
+      <item>pi2fw</item>
+      <item>pinsrw</item>
+      <item>pmachriw</item>
+      <item>pmaddwd</item>
+      <item>pmagw</item>
+      <item>pmaxsw</item>
+      <item>pmaxub</item>
+      <item>pminsw</item>
+      <item>pminub</item>
+      <item>pmovmskb</item>
+      <item>pmulhrw</item>
+      <item>pmulhuw</item>
+      <item>pmulhw</item>
+      <item>pmullw</item>
+      <item>pmuludq</item>
+      <item>pmvgezb</item>
+      <item>pmvlzb</item>
+      <item>pmvnzb</item>
+      <item>pmvzb</item>
+      <item>pop</item>
+      <item>popa</item>
+      <item>popaw</item>
+      <item>popad</item>
+      <item>popf</item>
+      <item>popfw</item>
+      <item>popfd</item>
+      <item>popfq</item>
+      <item>por</item>
+      <item>prefetch</item>
+      <item>prefetchnta</item>
+      <item>prefetcht0</item>
+      <item>prefetcht1</item>
+      <item>prefetcht2</item>
+      <item>prefetchw</item>
+      <item>psadbw</item>
+      <item>pshufd</item>
+      <item>pshufhw</item>
+      <item>pshuflw</item>
+      <item>pshufw</item>
+      <item>pslld</item>
+      <item>pslldq</item>
+      <item>psllq</item>
+      <item>psllw</item>
+      <item>psrad</item>
+      <item>psraw</item>
+      <item>psrld</item>
+      <item>psrldq</item>
+      <item>psrlq</item>
+      <item>psrlw</item>
+      <item>psubb</item>
+      <item>psubd</item>
+      <item>psubq</item>
+      <item>psubsb</item>
+      <item>psubsiw</item>
+      <item>psubsw</item>
+      <item>psubusb</item>
+      <item>psubusw</item>
+      <item>psubw</item>
+      <item>pswapd</item>
+      <item>punpckhbw</item>
+      <item>punpckhdq</item>
+      <item>punpckhqdq</item>
+      <item>punpckhwd</item>
+      <item>punpcklbw</item>
+      <item>punpckldq</item>
+      <item>punpcklqdq</item>
+      <item>punpcklwd</item>
+      <item>push</item>
+      <item>pusha</item>
+      <item>pushad</item>
+      <item>pushaw</item>
+      <item>pushf</item>
+      <item>pushfd</item>
+      <item>pushfq</item>
+      <item>pushfw</item>
+      <item>pxor</item>
+      <item>rcl</item>
+      <item>rcr</item>
+      <item>rcpps</item>
+      <item>rcpss</item>
+      <item>rdmsr</item>
+      <item>rdpmc</item>
+      <item>rdshr</item>
+      <item>rdtsc</item>
+      <item>rdtscp</item>
+      <item>ret</item>
+      <item>retf</item>
+      <item>retn</item>
+      <item>rol</item>
+      <item>ror</item>
+      <item>rsdc</item>
+      <item>rsldt</item>
+      <item>rsm</item>
+      <item>rsqrtps</item>
+      <item>rsqrtss</item>
+      <item>rsts</item>
+      <item>sahf</item>
+      <item>sal</item>
+      <item>sar</item>
+      <item>salc</item>
+      <item>sbb</item>
+      <item>scas</item>
+      <item>scasb</item>
+      <item>scasd</item>
+      <item>scasq</item>
+      <item>scasw</item>
+      <item>seta</item>
+      <item>setae</item>
+      <item>setb</item>
+      <item>setbe</item>
+      <item>setc</item>
+      <item>sete</item>
+      <item>setg</item>
+      <item>setge</item>
+      <item>setl</item>
+      <item>setle</item>
+      <item>setna</item>
+      <item>setnae</item>
+      <item>setnb</item>
+      <item>setnbe</item>
+      <item>setnc</item>
+      <item>setne</item>
+      <item>setng</item>
+      <item>setnge</item>
+      <item>setnl</item>
+      <item>setnle</item>
+      <item>setno</item>
+      <item>setnp</item>
+      <item>setns</item>
+      <item>setnz</item>
+      <item>seto</item>
+      <item>setp</item>
+      <item>setpe</item>
+      <item>setpo</item>
+      <item>sets</item>
+      <item>setz</item>
+      <item>sfence</item>
+      <item>sgdt</item>
+      <item>shl</item>
+      <item>shld</item>
+      <item>shr</item>
+      <item>shrd</item>
+      <item>shufpd</item>
+      <item>shufps</item>
+      <item>sidt</item>
+      <item>skinit</item>
+      <item>sldt</item>
+      <item>smi</item>
+      <item>smint</item>
+      <item>smintold</item>
+      <item>smsw</item>
+      <item>sqrtpd</item>
+      <item>sqrtps</item>
+      <item>sqrtsd</item>
+      <item>sqrtss</item>
+      <item>stc</item>
+      <item>std</item>
+      <item>stgi</item>
+      <item>sti</item>
+      <item>stmxcsr</item>
+      <item>stos</item>
+      <item>stosb</item>
+      <item>stosd</item>
+      <item>stosq</item>
+      <item>stosw</item>
+      <item>str</item>
+      <item>sub</item>
+      <item>subpd</item>
+      <item>subps</item>
+      <item>subsd</item>
+      <item>subss</item>
+      <item>svdc</item>
+      <item>svldt</item>
+      <item>svts</item>
+      <item>swapgs</item>
+      <item>syscall</item>
+      <item>sysenter</item>
+      <item>sysexit</item>
+      <item>sysret</item>
+      <item>test</item>
+      <item>ucomisd</item>
+      <item>ucomiss</item>
+      <item>ud0</item>
+      <item>ud1</item>
+      <item>ud2</item>
+      <item>umov</item>
+      <item>unpckhpd</item>
+      <item>unpckhps</item>
+      <item>unpcklpd</item>
+      <item>unpcklps</item>
+      <item>verr</item>
+      <item>verw</item>
+      <item>vmload</item>
+      <item>vmmcall</item>
+      <item>vmrun</item>
+      <item>vmsave</item>
+      <item>wait</item>
+      <item>wbinvd</item>
+      <item>wrmsr</item>
+      <item>wrshr</item>
+      <item>xadd</item>
+      <item>xbts</item>
+      <item>xchg</item>
+      <item>xlat</item>
+      <item>xlatb</item>
+      <item>xor</item>
+      <item>xorpd</item>
+      <item>xorps</item>
+    </list>
+
+    <list name="Data">
+      <!-- Initialized data (1.2.2)-->
+      <item>db</item>
+      <item>dw</item>
+      <item>du</item>
+      <item>dd</item>
+      <item>dp</item>
+      <item>df</item>
+      <item>dq</item>
+      <item>dt</item>
+      <!-- Uninitialized data (1.2.2)-->
+      <item>rb</item>
+      <item>rw</item>
+      <item>rd</item>
+      <item>rp</item>
+      <item>rf</item>
+      <item>rq</item>
+      <item>rt</item>
+      <!-- binary file include (1.2.2)-->
+      <item>file</item>
+      <!-- operand size from (1.2.1)-->
+      <item>byte</item>
+      <item>word</item>
+      <item>dword</item>
+      <item>pword</item>
+      <item>qword</item>
+      <item>tbyte</item>
+      <item>tword</item>
+      <item>dqword</item>
+      <item>ptr</item>
+    </list>
+
+    <list name="Preprocessor Keywords"> <!-- Contains keywords for macros, structures, etc... -->
+      <item>append</item>
+      <item>at</item>   <!-- As in "virtual at"-->
+      <item>break</item>
+      <item>common</item>
+      <item>display</item>
+      <item>else</item>
+      <item>end</item> <!-- As in "end if"-->
+      <item>equ</item>
+      <item>fix</item>
+      <item>foward</item>
+      <item>if</item>
+      <item>irp</item>
+      <item>irps</item>
+      <item>label</item>
+      <item>local</item>
+      <item>match</item>
+      <item>macro</item>
+      <item>purge</item>
+      <item>repeat</item>
+      <item>rept</item>
+      <item>reverse</item>
+      <item>restore</item>
+      <item>struc</item>
+      <item>times</item>
+      <item>while</item>
+      <item>virtual</item>
+    </list>
+
+    <list name="Instruction-like Keywords"> <!-- Contains instruction-like keywords -->
+      <item>align</item>
+      <item>entry</item>
+      <item>extrn</item>
+      <item>format</item>
+      <item>include</item>
+      <item>invoke</item>
+      <item>data</item>
+      <item>load</item>
+      <item>from</item>
+      <item>heap</item>
+      <item>org</item>
+      <item>proc</item>
+      <item>public</item>
+      <item>section</item>
+      <item>segment</item>
+      <item>stack</item>
+      <item>store</item>
+      <item>use16</item>
+      <item>use32</item>
+      <item>use64</item>
+    </list>
+
+    <contexts>
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Registers" context="#stay" String="registers"/>
+        <keyword attribute="Data" context="#stay" String="Data"/>
+        <keyword attribute="Instructions" context="#stay" String="instructions"/>
+        <keyword attribute="Instructions" context="#stay" String="Instruction-like Keywords"/>
+        <keyword attribute="Preprocessor" context="#stay" String="Preprocessor Keywords"/>
+        <DetectChar attribute="Comment" context="Comment" char=";"/>
+        <AnyChar attribute="String" context="String" String="&quot;'"/>
+        <RegExpr attribute="Label" context="#stay" String="^\s*[A-Za-z0-9@_.$?]+:"/>
+        <!-- Conditional instructions -->
+        <RegExpr attribute="Instructions" context="#stay" String="(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)"/>
+        <!-- hexadecimal numbers -->
+        <RegExpr attribute="BaseN" context="#stay" insensitive="true" String="(^|[ \t,]+)((\$|0x){1}[0-9]+[a-f0-9]*|[a-f0-9]+h)([ \t,]+|$)"/>
+        <!-- octal and binary numbers -->
+        <RegExpr attribute="BaseN" context="#stay" insensitive="true" String="(^|[ \t,]+)([0-7]+(q|o)|[01]+b)([ \t,]+|$)"/>
+        <DetectChar attribute="Number" context="#stay" char="$"/>
+        <HlCOct attribute="BaseN" context="#stay"/>
+        <HlCHex attribute="BaseN" context="#stay"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Number" context="#stay"/>
+        <HlCChar attribute="Char" context="#stay"/>
+      </context>
+      <context name="Comment" attribute="Comment" lineEndContext="#pop"/>
+      <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>
+      <context name="String" attribute="String" lineEndContext="#pop">
+        <AnyChar attribute="String" context="#pop" String="&quot;'"/>
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Registers" defStyleNum="dsKeyword"/>
+      <itemData name="Instructions" defStyleNum="dsBuiltIn"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Label" defStyleNum="dsFunction"/>
+      <itemData name="Data" defStyleNum="dsDataType"/>
+      <itemData name="BaseN" defStyleNum="dsBaseN"/>
+      <itemData name="Float" defStyleNum="dsFloat"/>
+      <itemData name="Number" defStyleNum="dsDecVal"/>
+      <itemData name="Char" defStyleNum="dsChar"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="Preprocessor" defStyleNum="dsPreprocessor"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="0"/>
+    <comments>
+      <comment name="singleLine" start=";"/>
+    </comments>
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/fortran.xml b/xml/fortran.xml
new file mode 100644
--- /dev/null
+++ b/xml/fortran.xml
@@ -0,0 +1,580 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Fortran" version="2" kateversion="5.0" section="Sources" extensions="*.f;*.F;*.for;*.FOR;*.f90;*.F90;*.fpp;*.FPP;*.f95;*.F95;" mimetype="text/x-fortran-src" casesensitive="0" author="Franchin Matteo (fnch@libero.it)" license="LGPL" priority="9">
+<!-- by Franchin Matteo, fnch@libero.it -->
+  <highlighting>
+
+<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  -->
+<!-- *                              L I S T S                            *  -->
+<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  -->
+    <list name="keywords">
+      <item>allocate</item>
+      <item>break</item>
+      <item>call</item>
+      <item>case</item>
+      <item>common</item>
+      <!--item> contains </item-->
+      <item>continue</item>
+      <item>cycle</item>
+      <item>deallocate</item>
+      <item>default</item>
+      <!--item> do </item-->
+      <item>forall</item>
+      <item>where</item>
+      <item>elsewhere</item>
+      <!--item> elseif </item-->
+      <!--item> else </item-->
+      <item>equivalence</item>
+      <item>exit</item>
+      <item>external</item>
+      <item>for</item>
+      <item>go</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>implicit</item>
+      <item>include</item>
+      <item>interface</item>
+      <item>intrinsic</item>
+      <item>namelist</item>
+      <item>none</item>
+      <item>nullify</item>
+      <item>operator</item>
+      <item>assignment</item>
+      <item>pause</item>
+      <item>procedure</item>
+      <item>pure</item>
+      <item>elemental</item>
+      <item>record</item>
+      <item>recursive</item>
+      <item>result</item>
+      <item>return</item>
+      <item>select</item>
+      <item>selectcase</item>
+      <item>stop</item>
+      <!--item> then </item-->
+      <item>to</item>
+      <item>use</item>
+      <item>only</item>
+      <item>entry</item>
+      <item>while</item>
+    </list>
+    <list name="io_functions">
+      <item>access</item>
+      <item>backspace</item>
+      <item>close</item>
+      <item>inquire</item>
+      <item>open</item>
+      <item>print</item>
+      <item>read</item>
+      <item>rewind</item>
+      <item>write</item>
+      <item>format</item>
+    </list>
+    <!-- Keywords inside read(...), write(...), backspace(...),
+          rewind(...), endfile(...), close(...) -->
+    <list name="io_keywords">
+      <item>unit</item>
+      <item>end</item>
+      <item>err</item>
+      <item>fmt</item>
+      <item>iostat</item>
+      <item>status</item>
+      <item>advance</item>
+      <item>size</item>
+      <item>eor</item>
+    </list>
+    <!-- Keywords inside open(...) -->
+    <list name="open_keywords">
+      <item>unit</item>
+      <item>iostat</item>
+      <item>err</item>
+      <item>file</item>
+      <item>status</item>
+      <item>access</item>
+      <item>form</item>
+      <item>recl</item>
+      <item>blank</item>
+      <item>position</item>
+      <item>action</item>
+      <item>delim</item>
+      <item>pad</item>
+    </list>
+    <!-- Keywords inside inquire(...) -->
+    <list name="inquire_keywords">
+      <item>unit</item>
+      <item>iostat</item>
+      <item>err</item>
+      <item>file</item>
+      <item>exist</item>
+      <item>opened</item>
+      <item>number</item>
+      <item>named</item>
+      <item>name</item>
+      <item>access</item>
+      <item>sequential</item>
+      <item>direct</item>
+      <item>form</item>
+      <item>formatted</item>
+      <item>unformatted</item>
+      <item>recl</item>
+      <item>nextrec</item>
+      <item>blank</item>
+      <item>position</item>
+      <item>action</item>
+      <item>read</item>
+      <item>write</item>
+      <item>readwrite</item>
+      <item>delim</item>
+      <item>pad</item>
+    </list>
+    <list name="types">
+      <item>double</item>
+      <item>precision</item>
+      <item>parameter</item>
+      <item>save</item>
+      <item>pointer</item>
+      <item>public</item>
+      <item>private</item>
+      <item>target</item>
+      <item>allocatable</item>
+      <item>optional</item>
+      <item>sequence</item>
+    </list>
+
+<!-- There are 4 types of intrinsic procedures in Fortran 90:
+   1) Elemental procedures (elemental_procs);
+   2) Inquiry functions (inquiry_fn);
+   3) Transformational functions (transform_fn);
+   4) Non elemental subroutines (non_elem_subr);
+  Often mathematical functions have one generic form and many specific names!
+  If you use the generic form, the compiler will select the right function
+  to use depending on the type of the arguments.
+  But you can use also the specific names!
+  -->
+
+<!-- E L E M E N T A L    P R O C E D U R E S -->
+    <list name="elemental_procs">
+    <!-- Elemental functions that may convert -->
+      <item>abs</item>   <!-- Generic form: abs -->
+      <item>cabs</item>  <!-- Specific names for abs -->
+      <item>dabs</item>
+      <item>iabs</item>
+      <item>aimag</item>
+      <item>aint</item>  <!-- Generic form: aint -->
+      <item>dint</item>  <!-- Specific name for aint -->
+      <item>anint</item> <!-- Generic form: anint -->
+      <item>dnint</item> <!-- Specific name for anint -->
+      <item>ceiling</item>
+      <item>cmplx</item>
+      <item>dcmplx</item> <!-- (non standard) -->
+      <item>dimag</item>  <!-- (non standard) -->
+      <item>floor</item>
+      <item>nint</item>  <!-- Generic form: nint -->
+      <item>idnint</item><!-- Specific name for nint -->
+      <item>int</item>   <!-- Generic form: int -->
+      <item>idint</item> <!-- Specific names for int -->
+      <item>ifix</item>
+      <item>real</item>  <!-- Generic form: real -->
+      <item>float</item> <!-- Specific names for real -->
+      <item>sngl</item>
+      <item>dble</item>
+      <item>dreal</item> <!-- (non standard) -->
+      <item>aprime</item> <!-- 5 functions from fortran.xml -->
+      <item>dconjg</item> <!-- I don't know if they really belong to -->
+      <item>dfloat</item> <!-- the fortran 90/95 standard! -->
+      <item>ddmim</item>
+      <item>rand</item>
+    <!-- Elemental functions that do not convert -->
+      <item>modulo</item>
+      <item>conjg</item>
+      <item>dprod</item>  <!-- dprod(x, y) is the specific name for x*y -->
+      <item>dim</item>    <!-- Generic form: dim -->
+      <item>ddim</item>   <!-- Specific names for dim -->
+      <item>idim</item>
+      <item>max</item>    <!-- Generic form: max -->
+      <item>amax0</item>  <!-- Specific names for max -->
+      <item>amax1</item>
+      <item>max0</item>
+      <item>max1</item>
+      <item>dmax1</item>
+      <item>min</item>    <!-- Generic form: min -->
+      <item>amin0</item>  <!-- Specific names for min -->
+      <item>amin1</item>
+      <item>min0</item>
+      <item>min1</item>
+      <item>dmin1</item>
+      <item>mod</item>    <!-- Generic form: mod -->
+      <item>amod</item>   <!-- Specific names for mod -->
+      <item>dmod</item>
+      <item>sign</item>   <!-- Generic form: sign -->
+      <item>dsign</item>  <!-- Specific names for sign -->
+      <item>isign</item>
+    <!-- Elemental mathematical functions -->
+      <item>acos</item>    <!-- Generic form: acos -->
+      <item>dacos</item>   <!-- Specific names for acos -->
+      <item>asin</item>    <!-- Generic form: asin -->
+      <item>dasin</item>   <!-- Specific names for asin -->
+      <item>atan</item>    <!-- Generic form: atan -->
+      <item>datan</item>   <!-- Specific names for atan -->
+      <item>atan2</item>   <!-- Generic form: atan2 -->
+      <item>datan2</item>  <!-- Specific names for atan2 -->
+      <item>cos</item>     <!-- Generic form: cos -->
+      <item>ccos</item>    <!-- Specific names for cos -->
+      <item>dcos</item>
+      <item>cosh</item>    <!-- Generic form: cosh -->
+      <item>dcosh</item>   <!-- Specific names for cosh -->
+      <item>exp</item>     <!-- Generic form: exp -->
+      <item>cexp</item>    <!-- Specific names for exp -->
+      <item>dexp</item>
+      <item>log</item>     <!-- Generic form: log -->
+      <item>alog</item>    <!-- Specific names for log -->
+      <item>dlog</item>
+      <item>clog</item>
+      <item>log10</item>   <!-- Generic form: log10 -->
+      <item>alog10</item>  <!-- Specific names for log10 -->
+      <item>dlog10</item>
+      <item>sin</item>     <!-- Generic form: sin -->
+      <item>csin</item>    <!-- Specific names for sin -->
+      <item>dsin</item>
+      <item>sinh</item>    <!-- Generic form: sinh -->
+      <item>dsinh</item>   <!-- Specific name for sinh -->
+      <item>sqrt</item>    <!-- Generic form: sqrt -->
+      <item>csqrt</item>   <!-- Specific names for sqrt -->
+      <item>dsqrt</item>
+      <item>tan</item>     <!-- Generic form: tan -->
+      <item>dtan</item>    <!-- Generic form: dtan -->
+      <item>tanh</item>    <!-- Generic form: tanh -->
+      <item>dtanh</item>   <!-- Specific names for tanh -->
+    <!-- Elemental character and logical functions -->
+    <!-- Character-integer conversions -->
+      <item>achar</item>
+      <item>char</item>
+      <item>iachar</item>
+      <item>ichar</item>
+    <!-- Lexical comparison functions -->
+      <item>lge</item>
+      <item>lgt</item>
+      <item>lle</item>
+      <item>llt</item>
+    <!-- String-handling elemental functions -->
+      <item>adjustl</item>
+      <item>adjustr</item>
+      <item>index</item>
+      <item>len_trim</item>
+      <item>scan</item>
+      <item>verify</item>
+    <!-- Logical conversion -->
+      <item>logical</item>
+    <!-- Elemental functions to manipulate reals -->
+      <item>exponent</item>
+      <item>fraction</item>
+      <item>nearest</item>
+      <item>rrspacing</item>
+      <item>scale</item>
+      <item>set_exponent</item>
+      <item>spacing</item>
+    <!-- Bit manipulation elemental functions -->
+      <item>btest</item>
+      <item>iand</item>
+      <item>ibclr</item>
+      <item>ibits</item>
+      <item>ibset</item>
+      <item>ieor</item>
+      <item>ior</item>
+      <item>ishft</item>
+      <item>ishftc</item>
+      <item>not</item>
+    <!-- Bit manipulation elemental subroutine -->
+      <item>mvbits</item>
+    <!-- Merge elemental function -->
+      <item>merge</item>
+    </list>
+
+<!-- I N Q U I R Y    F U N C T I O N S -->
+    <list name="inquiry_fn">
+    <!-- Inquiry functions for any type -->
+      <item>associated</item>
+      <item>present</item>
+      <item>kind</item>
+    <!-- String-handling inquiry function -->
+      <item>len</item>
+    <!-- Numeric inquiry functions -->
+      <item>digits</item>
+      <item>epsilon</item>
+      <item>huge</item>
+      <item>maxexponent</item>
+      <item>minexponent</item>
+      <item>precision</item>
+      <item>radix</item>
+      <item>range</item>
+      <item>tiny</item>
+    <!-- Bit inquiry function -->
+      <item>bit_size</item>
+    <!-- Array inquiry functions -->
+      <item>allocated</item>
+      <item>lbound</item>
+      <item>ubound</item>
+      <item>shape</item>
+      <item>size</item>
+    </list>
+
+<!-- T R A N S F O R M A T I O N A L    F U N C T I O N S -->
+    <list name="transform_fn">
+    <!-- String-handling transformational functions -->
+      <item>repeat</item>
+      <item>trim</item>
+    <!-- Transformational functions for kind values -->
+      <item>selected_int_kind</item>
+      <item>selected_real_kind</item>
+    <!-- Transfer function -->
+      <item>transfer</item>
+    <!-- Vector and matrix multiplication functions -->
+      <item>dot_product</item>
+      <item>matmul</item>
+    <!-- Transformational functions that reduce arrays -->
+      <item>all</item>
+      <item>any</item>
+      <item>count</item>
+      <item>maxval</item>
+      <item>minval</item>
+      <item>product</item>
+      <item>sum</item>
+    <!-- Packing and unpacking arrays -->
+      <item>pack</item>
+      <item>unpack</item>
+    <!-- Transformational function for reshaping an array -->
+      <item>reshape</item>
+    <!-- Transformational function for replication -->
+      <item>spread</item>
+    <!-- Array shifting functions -->
+      <item>cshift</item>
+      <item>eoshift</item>
+    <!-- Matrix transpose -->
+      <item>transpose</item>
+    <!-- Transformational functions for geometric location -->
+      <item>maxloc</item>
+      <item>minloc</item>
+    </list>
+
+<!-- N O N    E L E M E N T A L    S U B R O U T I N E S -->
+    <list name="non_elem_subr">
+    <!-- Real time clock -->
+      <item>date_and_time</item>
+      <item>system_clock</item>
+    <!-- Random numbers -->
+      <item>random_number</item>
+      <item>random_seed</item>
+    </list>
+
+<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  -->
+<!-- *                           C O N T E X T S                         *  -->
+<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  -->
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="default" >
+        <IncludeRules context="find_strings" />
+        <IncludeRules context="find_decls" />
+        <IncludeRules context="find_intrinsics" />
+        <IncludeRules context="find_io_stmnts" />
+        <IncludeRules context="find_op_and_log" />
+        <IncludeRules context="find_numbers" />
+        <IncludeRules context="find_preprocessor" />
+        <IncludeRules context="find_comments" />
+        <IncludeRules context="find_symbols" />
+        <IncludeRules context="find_begin_stmnts" />
+        <IncludeRules context="find_end_stmnts" />
+        <IncludeRules context="find_mid_stmnts" />
+      </context>
+<!--************************END OF THE MAIN CONTEXT*************************-->
+
+
+
+<!-- This context highlights preprocessor lines -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_preprocessor">
+        <RegExpr attribute="Preprocessor" context="#stay" String="(#|cDEC\$|CDEC\$).*$" column="0"/>
+      </context>
+
+<!-- This context highlights operators and the logical values .true. .false. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_op_and_log">
+        <RegExpr attribute="Logical" context="#stay" String="\.(true|false)\." insensitive="true"/>
+        <RegExpr attribute="Operator" context="#stay" String="\.[A-Za-z]+\."/>
+        <RegExpr attribute="Operator" context="#stay" String="(==|/=|&lt;|&lt;=|&gt;|&gt;=)"/>
+      </context>
+
+<!-- This context highlights comments -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_comments">
+        <RegExpr attribute="Comment" context="#stay" String="[cC\*].*$" column="0"/>
+        <RegExpr attribute="Comment" context="#stay" String="!.*$"/>
+      </context>
+
+<!-- This context highlights symbols -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_symbols">
+        <Detect2Chars attribute="Keyword" context="#stay" char="*" char1="*"/>
+        <Detect2Chars attribute="Keyword" context="#stay" char="(" char1="/"/>
+        <Detect2Chars attribute="Keyword" context="#stay" char="/" char1=")"/>
+        <AnyChar attribute="Keyword" context="#stay" String="&amp;+-*/=?[]^{|}~"/>
+        <AnyChar attribute="Symbol" context="#stay" String="(),"/>
+      </context>
+
+<!-- This context highlights items inside the parentesis of a function -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="inside_func_paren">
+        <DetectChar attribute="Normal Text" context="inside_func_paren" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")"/>
+        <IncludeRules context="find_strings" />
+        <IncludeRules context="find_intrinsics" />
+        <IncludeRules context="find_numbers" />
+      </context>
+
+<!-- The following two contexts match input/output statements -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_io_stmnts">
+        <RegExpr attribute="IO Function" context="find_io_paren" String="\b(read|write|backspace|rewind|end\s*file|close)\s*[(]" insensitive="true"/>
+        <RegExpr attribute="IO Function" context="find_io_paren" String="\bopen\s*[(]" insensitive="true"/>
+        <RegExpr attribute="IO Function" context="find_io_paren" String="\binquire\s*[(]" insensitive="true"/>
+        <RegExpr attribute="IO Function" context="format_stmnt" String="\bformat\s*[(]" insensitive="true"/>
+        <RegExpr attribute="IO Function" context="#stay" String="\bend\s*file\b" insensitive="true"/>
+        <keyword attribute="IO Function" context="#stay" String="io_functions"/>
+      </context>
+<!-- This context matches parenthesis for the read, write, ... statements -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_io_paren">
+        <DetectChar attribute="IO Function" context="#stay" char="*"/>
+        <DetectChar attribute="Normal Text" context="inside_func_paren" char="("/>
+        <DetectChar attribute="IO Function" context="#pop" char=")"/>
+        <keyword attribute="IO Function"  context="#stay" String="io_keywords"/>
+        <keyword attribute="IO Function"  context="#stay" String="inquire_keywords"/>
+        <keyword attribute="IO Function"  context="#stay" String="open_keywords"/>
+        <IncludeRules context="find_strings" />
+        <IncludeRules context="find_intrinsics" />
+        <IncludeRules context="find_numbers" />
+        <IncludeRules context="find_symbols" />
+      </context>
+<!-- This context highlights the text inside the parenthesis of fortran statement -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="format_stmnt">
+        <DetectChar attribute="IO Function" context="format_stmnt" char="("/>
+        <DetectChar attribute="IO Function" context="#pop" char=")"/>
+        <RegExpr attribute="IO Function" context="#stay" String="[0-9]*/" insensitive="true"/>
+        <AnyChar attribute="IO Function" context="#stay" String=":"/>
+        <IncludeRules context="find_strings" />
+        <IncludeRules context="find_symbols" />
+      </context>
+
+<!-- The following context matches the begin of program units -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_begin_stmnts">
+        <RegExpr attribute="Keyword" context="#stay" String="\bmodule\s+procedure\b" insensitive="true"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(subroutine|function|block\s*data)\b" insensitive="true" beginRegion="Routine"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(program|module|block\s*data)\b" insensitive="true" beginRegion="Routine"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(then|do)\b" insensitive="true" beginRegion="Block"/>
+      </context>
+<!-- The following context matches the end of program units -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_end_stmnts">
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s*(subroutine|function|block\s*data)\b" insensitive="true" endRegion="Routine"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s*(program|module)\b" insensitive="true" endRegion="Routine"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s*(do|if)\b" insensitive="true" endRegion="Block"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\s*(select|where|forall|interface)\b" insensitive="true"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\belse\s*if\b" insensitive="true" endRegion="Block"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bend\b" insensitive="true" endRegion="Routine"/>
+      </context>
+<!-- The following context matches the mid of program units -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_mid_stmnts">
+        <RegExpr attribute="Keyword" context="#stay" String="\belse\b" insensitive="true" endRegion="Block" beginRegion="Block"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\bcontains\b" insensitive="true" endRegion="Routine" beginRegion="Routine"/>
+      </context>
+
+<!-- The following two contexts match declarations -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_decls">
+        <RegExpr attribute="Data Type" context="#stay" String="\binteger[\*]\d{1,2}" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="\breal[\*]\d{1,2}" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="\bcomplex[\*]\d{1,2}" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="\bend\s*type\b" insensitive="true"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <RegExpr attribute="Data Type" context="#stay" String="^\s*data\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="find_paren" String="^\s*real\s*[(]" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="^\s*real(?![\w\*])" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="\bcharacter[*][0-9]+\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="find_paren" String="\b(type|integer|complex|character|logical|intent|dimension)\b\s*[(]" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="\b(type|integer|complex|character|logical|intent|dimension)\b" insensitive="true"/>
+        <Detect2Chars attribute="Data Type" context="#stay" char=":" char1=":"/>
+      </context>
+<!-- This context matches parenthesis in data type declarations, such as in 'real(...)'-->
+      <context attribute="Data Type" lineEndContext="#pop" name="find_paren">
+        <DetectChar attribute="Data Type" context="find_paren" char="("/>
+        <DetectChar attribute="Data Type" context="#pop" char=")"/>
+      </context>
+
+<!-- The following context matches intrinsic procedures -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_intrinsics">
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+      <!-- INTRINSIC PROCEDURES -->
+        <keyword attribute="Elemental Procedure"       context="#stay" String="elemental_procs"/>
+        <keyword attribute="Inquiry Function"          context="#stay" String="inquiry_fn"/>
+        <keyword attribute="Transformational Function" context="#stay" String="transform_fn"/>
+        <keyword attribute="Non elemental subroutine"  context="#stay" String="non_elem_subr"/>
+      </context>
+
+<!-- The following context matches integer and real numbers -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="find_numbers">
+        <!-- Floating-point numbers with optional kind -->
+        <RegExpr attribute="Float" context="#stay" String="[0-9]*\.[0-9]+([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\w_]*))?" insensitive="true"/>
+        <RegExpr attribute="Float" context="#stay" String="\b[0-9]+\.[0-9]*([de][+-]?[0-9]+)?([_]([0-9]+|[a-z][\w_]*))?(?![a-z])" insensitive="true"/>
+        <RegExpr attribute="Float" context="#stay" String="\b[0-9]+[de][+-]?[0-9]+([_]([0-9]+|[a-z][\w_]*))?" insensitive="true"/>
+        <!-- Integers with optional kind specifier -->
+        <RegExpr attribute="Decimal" context="#stay" String="\b[0-9]+([_]([0-9]+|[a-zA-Z][\w_]*))?"/>
+        <!-- Integers in binary, octal and hexadecimal notations -->
+        <RegExpr attribute="Decimal" context="#stay" String="\b[bozx]([&apos;][0-9a-f]+[&apos;]|[&quot;][0-9a-f]+[&quot;])" insensitive="true"/>
+      </context>
+
+<!-- The following four contexts implement the complex string multi-line declarations -->
+      <!-- Matches STRINGS (there are 2 types of strings: '...' and "...") -->
+      <context attribute="String" lineEndContext="#stay" name="find_strings">
+        <DetectChar attribute="String" context="string_1" char="&apos;"/>
+        <DetectChar attribute="String" context="string_2" char="&quot;"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="string_1" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="String" context="#pop" String="[^&apos;]*&apos;"/>
+        <RegExpr attribute="Keyword" context="end_of_string" String="&amp;\s*$"/>
+        <RegExpr attribute="String" context="end_of_string" String=".*(?=&amp;\s*$)"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="string_2" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="String" context="#pop" String="[^&quot;]*&quot;"/>
+        <RegExpr attribute="Keyword" context="end_of_string" String="&amp;\s*$"/>
+        <RegExpr attribute="String" context="end_of_string" String=".*(?=&amp;\s*$)"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="end_of_string" fallthrough="true" fallthroughContext="#pop#pop">
+        <DetectSpaces />
+        <RegExpr attribute="Keyword" context="#stay" String="&amp;\s*$"/>
+        <DetectChar attribute="Keyword" context="#pop" char="&amp;" firstNonSpace="true"/>
+        <RegExpr attribute="Comment" context="#stay" String="(!.*)?$" firstNonSpace="true"/>
+      </context>
+    </contexts>
+
+<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  -->
+<!-- *             S T Y L E   I T E M   D E F I N I T I O N S           *  -->
+<!-- * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  -->
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Data Type" defStyleNum="dsDataType"/>
+      <itemData name="Decimal" defStyleNum="dsDecVal"/>
+      <itemData name="Float" defStyleNum="dsFloat"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Symbol" defStyleNum="dsNormal"/>
+      <itemData name="Preprocessor" defStyleNum="dsOthers"/>
+      <itemData name="Operator" defStyleNum="dsOperator" bold="1" italic="0"/>
+      <itemData name="Logical" defStyleNum="dsConstant" bold="1" italic="0"/>
+      <itemData name="IO Function" defStyleNum="dsFunction" bold="0" italic="0"/>
+      <itemData name="Elemental Procedure" defStyleNum="dsBuiltIn" bold="1" italic="0"/>
+      <itemData name="Inquiry Function" defStyleNum="dsFunction" bold="1" italic="1"/>
+      <itemData name="Transformational Function" defStyleNum="dsFunction" bold="1" italic="0"/>
+      <itemData name="Non elemental subroutine" defStyleNum="dsFunction" bold="1" italic="0"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="c"/>
+      <comment name="singleLine" start="!"/>
+    </comments>
+    <keywords casesensitive="0"/>
+  </general>
+</language>
diff --git a/xml/fsharp.xml b/xml/fsharp.xml
new file mode 100644
--- /dev/null
+++ b/xml/fsharp.xml
@@ -0,0 +1,287 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Kate syntax highlighting for F# based on the OCAML syntax by Glyn Webster (glyn@wave.co.nz). -->
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+<!-- Regular expresion constants: -->
+<!ENTITY LETTER "A-Za-z\300-\326\330-\366\370-\377">                <!-- Latin-1 letters. -->
+<!ENTITY IDENT  "[&LETTER;_][&LETTER;0-9_']*">                      <!-- OCaml identifiers. -->
+<!ENTITY MIDENT "[A-Z][&LETTER;0-9_']*">                            <!-- OCaml uppercase identifiers. -->
+<!ENTITY ESC    "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. -->
+<!ENTITY DEC    "[0-9][0-9_]*">                                     <!-- Decimal digits with underscores. -->
+]>
+<language name="FSharp" version="3" kateversion="5.0" section="Sources" extensions="*.fs;*.fsi;*.fsx" mimetype="" priority="10" author="Bas Bossink (bas.bossink@gmail.com)" license="LGPL">
+
+  <highlighting>
+    <list name="keywords">
+      <item>abstract</item>
+      <item>and</item>
+      <item>as</item>
+      <item>assert</item>
+      <item>base</item>
+<!--       <item>begin</item> -->
+      <item>class</item>
+      <item>delegate</item>
+<!--       <item>do</item> -->
+<!--       <item>done</item> -->
+      <item>dowcast</item>
+      <item>downto</item>
+      <item>elif</item>
+      <item>else</item>
+<!--       <item>end</item> -->
+      <item>exception</item>
+      <item>extern</item>
+      <item>false</item>
+      <item>for</item>
+      <item>fun</item>
+      <item>function</item>
+      <item>functor</item>
+      <item>global</item>
+      <item>if</item>
+      <item>in</item>
+<!--       <item>include</item> -->
+      <item>inherit</item>
+      <item>inline</item>
+      <item>interfaece</item>
+      <item>internal</item>
+      <item>lazy</item>
+      <item>let</item>
+      <item>match</item>
+      <item>member</item>
+<!--       <item>module</item> -->
+      <item>mutable</item>
+      <item>namespace</item>
+      <item>new</item>
+      <item>not</item>
+      <item>null</item>
+<!--       <item>object</item> -->
+      <item>of</item>
+<!--       <item>open</item> -->
+      <item>or</item>
+      <item>override</item>
+      <item>private</item>
+      <item>public</item>
+      <item>rec</item>
+      <item>ref</item>
+      <item>return</item>
+<!--       <item>sig</item> -->
+      <item>static</item>
+<!--       <item>struct</item> -->
+      <item>then</item>
+      <item>to</item>
+      <item>true</item>
+      <item>try</item>
+      <item>type</item>
+      <item>upcast</item>
+      <item>use</item>
+      <item>val</item>
+      <item>void</item>
+      <item>when</item>
+      <item>while</item>
+      <item>with</item>
+      <item>yield</item>
+    </list>
+    <list name="core types">
+      <item>bool</item>
+      <item>byte</item>
+      <item>sbyte</item>
+      <item>int16</item>
+      <item>uint16</item>
+      <item>int</item>
+      <item>uint32</item>
+      <item>int64</item>
+      <item>uint64</item>
+      <item>nativeint</item>
+      <item>unativeint</item>
+      <item>char</item>
+      <item>string</item>
+      <item>decimal</item>
+      <item>unit</item>
+      <item>void</item>
+      <item>float32</item>
+      <item>single</item>
+      <item>float</item>
+      <item>double</item>
+      <item>bigint</item>
+      <item>option</item>
+      <item>seq</item>
+    </list>
+    <list name="symbols">
+      <item>?</item>
+    </list>
+    <list name="end">
+      <item>end</item>
+    </list>
+    <list name="sig">
+      <item>sig</item>
+    </list>
+    <list name="struct">
+      <item>struct</item>
+    </list>
+    <list name="object">
+      <item>object</item>
+    </list>
+    <list name="begin">
+      <item>begin</item>
+    </list>
+    <list name="do">
+      <item>do</item>
+    </list>
+    <list name="done">
+      <item>done</item>
+    </list>
+    <list name="module_environment">
+      <item>module</item>
+      <item>open</item>
+    </list>
+    <contexts>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+
+        <Detect2Chars attribute="Comment" context="Multiline Comment" char="(" char1="*" beginRegion="comment" />
+        <Detect2Chars context="Singleline Comment" char="/" char1="/" />
+
+        <DetectChar attribute="Symbol" context="#stay" char="(" beginRegion="paren"/>
+        <DetectChar attribute="Symbol" context="#stay" char=")" endRegion="paren"/>
+
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="record"/>
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="record"/>
+        <Detect2Chars attribute="Symbol" context="#stay" char="[" char1="&lt;" beginRegion="attribute"/>
+        <Detect2Chars attribute="Symbol" context="#stay" char="&gt;" char1="]" endRegion="attribute"/>
+
+        <Detect2Chars attribute="Symbol" context="#stay" char="[" char1="|" beginRegion="array"/>
+        <Detect2Chars attribute="Symbol" context="#stay" char="|" char1="]" endRegion="array"/>
+        <DetectChar attribute="Symbol" context="#stay" char="[" beginRegion="list"/>
+        <DetectChar attribute="Symbol" context="#stay" char="]" endRegion="list"/>
+
+        <keyword attribute="Keyword" context="#stay" String="do" beginRegion="loop"/>
+        <keyword attribute="Keyword" context="#stay" String="done" endRegion="loop"/>
+        <keyword attribute="Directive" context="ModuleEnv" String="module_environment"/>
+        <keyword attribute="Region Marker" context="Block" String="begin" beginRegion="block"/>
+        <keyword attribute="Region Marker" context="Object" String="object" beginRegion="object"/>
+        <keyword attribute="Region Marker" context="Sig" String="sig" beginRegion="sig"/>
+        <keyword attribute="Region Marker" context="Struct" String="struct" beginRegion="struct"/>
+
+        <RegExpr attribute="Constructor" context="#stay" String="`\s*&IDENT;"/>
+        <RegExpr attribute="Module" lookAhead="true" context="ModuleEnv2" String="&MIDENT;\s*\."/>
+        <RegExpr attribute="Constructor" context="#stay" String="&MIDENT;"/>
+
+        <!-- Interpreter directives. -->
+        <!-- (These are lines where the first symbol is a '#' followed by an identifier. -->
+        <!-- Such lines could also be part of a method call split over two lines but     -->
+        <!-- it's unlikey anyone would code like that.)                                  -->
+        <RegExpr attribute="Directive" context="#stay" String="#&IDENT;.*$" firstNonSpace="true"/>
+
+        <!-- String, character and Camlp4 "quotation" constants.              -->
+        <!-- Note: If you must modify the pattern for characters be precise:  -->
+        <!-- single quotes have several meanings in Ocaml.                    -->
+        <DetectChar attribute="String" context="String Constant" char="&quot;" />
+        <RegExpr attribute="Character" context="#stay" String="'(&ESC;|[^'])'" />
+        <Detect2Chars attribute="Camlp4 Quotation" context="Camlp4 Quotation Constant" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="Camlp4 Quotation" context="Camlp4 Quotation Constant" String="&lt;:&IDENT;&lt;" />
+
+        <!-- Identifiers and keywords. -->
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Core Data Type" context="#stay" String="core types" />
+        <RegExpr attribute="Identifier" context="#stay" String="&IDENT;" />
+
+        <!-- Numeric constants. -->
+        <!-- Note that they may contain underscores. -->
+        <RegExpr attribute="Hexadecimal" context="#stay" String="-?0[xX][0-9A-Fa-f_]+" />
+        <RegExpr attribute="Octal" context="#stay" String="-?0[oO][0-7_]+" />
+        <RegExpr attribute="Binary" context="#stay" String="-?0[bB][01_]+" />
+        <RegExpr attribute="Float" context="#stay" String="-?&DEC;((\.(&DEC;)?([eE][-+]?&DEC;)?)|([eE][-+]?&DEC;))" />
+        <RegExpr attribute="Decimal" context="#stay" String="-?&DEC;" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Singleline Comment"/>
+      <context attribute="Comment" lineEndContext="#stay" name="Multiline Comment">
+        <!-- Support for nested comments -->
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1=")" endRegion="comment" />
+        <Detect2Chars attribute="Comment" context="Multiline Comment" char="(" char1="*" beginRegion="comment" />
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="String Constant">
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+        <RegExpr attribute="Escaped characters" context="#stay" String="&ESC;" />
+        <!-- An underscore at the end of a line in a string indicates  -->
+        <!-- that the string will continue on the next line.           -->
+        <RegExpr attribute="Escaped characters" context="#stay" String="\\$" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Block">
+        <keyword attribute="Region Marker" context="#pop" String="end" endRegion="block"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Sig">
+        <keyword attribute="Region Marker" context="#pop" String="end" endRegion="sig"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Struct">
+        <keyword attribute="Region Marker" context="#pop" String="end" endRegion="struct"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Object">
+        <keyword attribute="Region Marker" context="#pop" String="end" endRegion="object"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="ModuleEnv" fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <RegExpr attribute="Module" lookAhead="true" context="ModuleEnv2" String="&MIDENT;\s*\."/>
+        <RegExpr attribute="Module" context="#pop" String="&MIDENT;"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="ModuleEnv2">
+        <RegExpr attribute="Module" context="#stay" String="&MIDENT;"/>
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+        <StringDetect attribute="Keyword" context="#pop" String="."/>
+      </context>
+
+      <!-- Camlp4 Quotations. These are source code literals used by the Campl4 preprocessor.           -->
+      <!-- The only escapes allowed in a Camlp4 quotation are for the quotation start and stop symbols. -->
+      <context attribute="Camlp4 Quotation" lineEndContext="#stay" name="Camlp4 Quotation Constant">
+        <Detect2Chars attribute="Camlp4 Quotation" context="#pop" char="&gt;" char1="&gt;" />
+        <Detect2Chars attribute="Camlp4 Quotation" context="Camlp4 Quotation Constant" char="&lt;" char1="&lt;" />
+        <RegExpr attribute="Camlp4 Quotation" context="Camlp4 Quotation Constant" String="&lt;:&IDENT;&lt;" />
+        <RegExpr attribute="Escaped characters" context="#stay" String="\\(\\|&gt;&gt;|&lt;&lt;)" />
+        <RegExpr attribute="Escaped characters" context="#stay" String="\\&lt;:&IDENT;&lt;" />
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Identifier" defStyleNum="dsNormal"/>
+      <itemData name="Symbol" defStyleNum="dsNormal"/>
+      <itemData name="Keyword"  defStyleNum="dsKeyword"/>
+      <itemData name="Revised Syntax Keyword"  defStyleNum="dsNormal"/>
+      <itemData name="Core Data Type"  defStyleNum="dsDataType"/>
+      <itemData name="Decimal"  defStyleNum="dsDecVal"/>
+      <itemData name="Hexadecimal"  defStyleNum="dsBaseN"/>
+      <itemData name="Octal"  defStyleNum="dsBaseN"/>
+      <itemData name="Binary"  defStyleNum="dsBaseN"/>
+      <itemData name="Float"  defStyleNum="dsFloat"/>
+      <itemData name="Character"  defStyleNum="dsChar"/>
+      <itemData name="String"  defStyleNum="dsString"/>
+      <itemData name="Escaped characters"  defStyleNum="dsSpecialChar"/>
+      <itemData name="Comment"  defStyleNum="dsComment"/>
+      <itemData name="Camlp4 Quotation"  defStyleNum="dsString"/>
+      <itemData name="Directive"  defStyleNum="dsOthers"/>
+      <itemData name="Constructor" defStyleNum="dsNormal"/>
+      <itemData name="Module" defStyleNum="dsNormal"/>
+      <itemData name="Region Marker" defStyleNum="dsKeyword"/>
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <keywords casesensitive="1" />
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="singleLine" start="///" />
+      <comment name="multiLine" start="(*" end="*)" />
+    </comments>
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/gcc.xml b/xml/gcc.xml
new file mode 100644
--- /dev/null
+++ b/xml/gcc.xml
@@ -0,0 +1,581 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+    <!ENTITY space " ">
+    <!ENTITY separators ",&#59;">
+    <!ENTITY ns_punctuators "!&#37;&space;&amp;()+-/.*&lt;=&gt;?[]{|}~^&separators;">
+    <!ENTITY punctuators ":&ns_punctuators;">
+]>
+<!--
+  Copyright (c) 2012-2014 by Alex Turbov (i.zaufi@gmail.com)
+
+  Homepage: http://kde-files.org/content/show.php?content=90660
+  -->
+<language
+    name="GCCExtensions"
+    version="1"
+    kateversion="5.0"
+    section="Sources"
+    extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;"
+    mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr;text/x-csrc"
+    author="Alex Turbov (i.zaufi@gmail.com)"
+    license="LGPL"
+    hidden="true"
+    priority="5"
+  >
+<!--
+  The main purpose of this file is to hold GNU gcc extensions syntax in a single place,
+  so later it can be included to other (C++ based) syntaxes.
+
+  NOTE Default colors are set to 'Normal Text', so if u don't want to highight it,
+  just leave colors as is...
+
+  Based on GCC documentation
+-->
+<highlighting>
+  <list name="GNUTypes">
+    <!-- NOTE From gcc's info: 6.10 Additional Floating Types -->
+    <item>__float80</item>
+    <item>__float128</item>
+    <!-- NOTE From gcc's 4.7.1 info: 6.13 Decimal Floating Types -->
+    <item>_Decimal32</item>
+    <item>_Decimal64</item>
+    <item>_Decimal128</item>
+    <!-- NOTE From gcc's info: 6.8 128-bits integers -->
+    <item>__int128</item>
+    <!-- NOTE From gcc's 4.7.1 info: 6.12 Half-Precision Floating Point -->
+    <item>__fp16</item>
+    <!-- NOTE From gcc's 4.7.1 info: 6.15 Fixed-Point Types -->
+    <item>_Fract</item>
+    <item>_Sat</item>
+    <item>_Accum</item>
+  </list>
+  <list name="GNUKeywords">
+    <!-- NOTE that __attribute__ handled separately -->
+    <item>__asm__</item>
+    <item>__const__</item>
+    <item>__extension__</item>
+    <item>__inline__</item>
+    <item>__label__</item>
+    <item>__complex__</item>
+    <item>__real__</item>
+    <item>__restrict__</item>
+    <item>__restrict</item>
+    <item>__imag__</item>
+    <!-- NOTE From gcc's info: 6.6 Referring to a Type with `typeof' -->
+    <item>__typeof__</item>
+    <item>typeof</item>
+    <!-- NOTE From gcc's 4.7.1 info: 6.38 -->
+    <item>__alignof__</item>
+    <!-- NOTE From gcc's info: 6.59 Thread-Local storage -->
+    <item>__thread</item>
+  </list>
+  <!-- NOTE Everything started from `__builtin_' handled separately -->
+  <list name="GNUFunctions">
+    <!-- NOTE From gcc's info: 7.9 Type Traits -->
+    <item>__has_nothrow_assign</item>
+    <item>__has_nothrow_copy</item>
+    <item>__has_nothrow_constructor</item>
+    <item>__has_trivial_assign</item>
+    <item>__has_trivial_copy</item>
+    <item>__has_trivial_constructor</item>
+    <item>__has_trivial_destructor</item>
+    <item>__has_virtual_destructor</item>
+    <item>__is_abstract</item>
+    <item>__is_base_of</item>
+    <item>__is_class</item>
+    <item>__is_empty</item>
+    <item>__is_enum</item>
+    <item>__is_pod</item>
+    <item>__is_polymorphic</item>
+    <item>__is_union</item>
+    <!-- NOTE From gcc's info: 6.49 -->
+    <item>__sync_fetch_and_add</item>
+    <item>__sync_fetch_and_sub</item>
+    <item>__sync_fetch_and_or</item>
+    <item>__sync_fetch_and_and</item>
+    <item>__sync_fetch_and_xor</item>
+    <item>__sync_fetch_and_nand</item>
+    <item>__sync_add_and_fetch</item>
+    <item>__sync_sub_and_fetch</item>
+    <item>__sync_or_and_fetch</item>
+    <item>__sync_and_and_fetch</item>
+    <item>__sync_xor_and_fetch</item>
+    <item>__sync_nand_and_fetch</item>
+    <item>__sync_bool_compare_and_swap</item>
+    <item>__sync_val_compare_and_swap</item>
+    <item>__sync_synchronize</item>
+    <item>__sync_lock_test_and_set</item>
+    <item>__sync_lock_release</item>
+    <!-- NOTE From gcc 4.7.x info: 6.52 -->
+    <item>__atomic_load_n</item>
+    <item>__atomic_load</item>
+    <item>__atomic_store_n</item>
+    <item>__atomic_store</item>
+    <item>__atomic_exchange_n</item>
+    <item>__atomic_exchange</item>
+    <item>__atomic_compare_exchange_n</item>
+    <item>__atomic_compare_exchange</item>
+    <item>__atomic_add_fetch</item>
+    <item>__atomic_sub_fetch</item>
+    <item>__atomic_and_fetch</item>
+    <item>__atomic_or_fetch</item>
+    <item>__atomic_xor_fetch</item>
+    <item>__atomic_nand_fetch</item>
+    <item>__atomic_fetch_add</item>
+    <item>__atomic_fetch_sub</item>
+    <item>__atomic_fetch_and</item>
+    <item>__atomic_fetch_or</item>
+    <item>__atomic_fetch_xor</item>
+    <item>__atomic_fetch_nand</item>
+    <item>__atomic_test_and_set</item>
+    <item>__atomic_clear</item>
+    <item>__atomic_signal_fence</item>
+    <item>__atomic_thread_fence</item>
+    <item>__atomic_always_lock_free</item>
+    <item>__atomic_is_lock_free</item>
+  </list>
+  <!-- From http://gcc.gnu.org/onlinedocs/cpp/Common-Predefined-Macros.html
+        plus a lot of platform specific predefines found by my script
+        git@github.com:zaufi/kate-stuff.git/support/genpredefmacrolist.sh
+    -->
+  <list name="GNUMacros">
+    <item>_FORTIFY_SOURCE</item>
+    <item>_GNU_SOURCE</item>
+    <item>_ILP32</item>
+    <item>_LP64</item>
+    <item>_REENTRANT</item>
+    <item>_STDC_PREDEF_H</item>
+    <item>__3dNOW_A__</item>
+    <item>__3dNOW__</item>
+    <item>__ABM__</item>
+    <item>__ADX__</item>
+    <item>__AES__</item>
+    <item>__ATOMIC_ACQUIRE</item>
+    <item>__ATOMIC_ACQ_REL</item>
+    <item>__ATOMIC_CONSUME</item>
+    <item>__ATOMIC_HLE_ACQUIRE</item>
+    <item>__ATOMIC_HLE_RELEASE</item>
+    <item>__ATOMIC_RELAXED</item>
+    <item>__ATOMIC_RELEASE</item>
+    <item>__ATOMIC_SEQ_CST</item>
+    <item>__AVX2__</item>
+    <item>__AVX__</item>
+    <item>__BASE_FILE__</item>
+    <item>__BIGGEST_ALIGNMENT__</item>
+    <item>__BMI2__</item>
+    <item>__BMI__</item>
+    <item>__BYTE_ORDER__</item>
+    <item>__CHAR16_TYPE__</item>
+    <item>__CHAR32_TYPE__</item>
+    <item>__CHAR_BIT__</item>
+    <item>__CHAR_UNSIGNED__</item>
+    <item>__COUNTER__</item>
+    <item>__DBL_DECIMAL_DIG__</item>
+    <item>__DBL_DENORM_MIN__</item>
+    <item>__DBL_DIG__</item>
+    <item>__DBL_EPSILON__</item>
+    <item>__DBL_HAS_DENORM__</item>
+    <item>__DBL_HAS_INFINITY__</item>
+    <item>__DBL_HAS_QUIET_NAN__</item>
+    <item>__DBL_MANT_DIG__</item>
+    <item>__DBL_MAX_10_EXP__</item>
+    <item>__DBL_MAX_EXP__</item>
+    <item>__DBL_MAX__</item>
+    <item>__DBL_MIN_10_EXP__</item>
+    <item>__DBL_MIN_EXP__</item>
+    <item>__DBL_MIN__</item>
+    <item>__DEC128_EPSILON__</item>
+    <item>__DEC128_MANT_DIG__</item>
+    <item>__DEC128_MAX_EXP__</item>
+    <item>__DEC128_MAX__</item>
+    <item>__DEC128_MIN_EXP__</item>
+    <item>__DEC128_MIN__</item>
+    <item>__DEC128_SUBNORMAL_MIN__</item>
+    <item>__DEC32_EPSILON__</item>
+    <item>__DEC32_MANT_DIG__</item>
+    <item>__DEC32_MAX_EXP__</item>
+    <item>__DEC32_MAX__</item>
+    <item>__DEC32_MIN_EXP__</item>
+    <item>__DEC32_MIN__</item>
+    <item>__DEC32_SUBNORMAL_MIN__</item>
+    <item>__DEC64_EPSILON__</item>
+    <item>__DEC64_MANT_DIG__</item>
+    <item>__DEC64_MAX_EXP__</item>
+    <item>__DEC64_MAX__</item>
+    <item>__DEC64_MIN_EXP__</item>
+    <item>__DEC64_MIN__</item>
+    <item>__DEC64_SUBNORMAL_MIN__</item>
+    <item>__DECIMAL_BID_FORMAT__</item>
+    <item>__DECIMAL_DIG__</item>
+    <item>__DEC_EVAL_METHOD__</item>
+    <item>__DEPRECATED</item>
+    <item>__ELF__</item>
+    <item>__EXCEPTIONS</item>
+    <item>__F16C__</item>
+    <item>__FAST_MATH__</item>
+    <item>__FINITE_MATH_ONLY__</item>
+    <item>__FLOAT_WORD_ORDER__</item>
+    <item>__FLT_DECIMAL_DIG__</item>
+    <item>__FLT_DENORM_MIN__</item>
+    <item>__FLT_DIG__</item>
+    <item>__FLT_EPSILON__</item>
+    <item>__FLT_EVAL_METHOD__</item>
+    <item>__FLT_HAS_DENORM__</item>
+    <item>__FLT_HAS_INFINITY__</item>
+    <item>__FLT_HAS_QUIET_NAN__</item>
+    <item>__FLT_MANT_DIG__</item>
+    <item>__FLT_MAX_10_EXP__</item>
+    <item>__FLT_MAX_EXP__</item>
+    <item>__FLT_MAX__</item>
+    <item>__FLT_MIN_10_EXP__</item>
+    <item>__FLT_MIN_EXP__</item>
+    <item>__FLT_MIN__</item>
+    <item>__FLT_RADIX__</item>
+    <item>__FMA4__</item>
+    <item>__FMA__</item>
+    <item>__FP_FAST_FMA</item>
+    <item>__FP_FAST_FMAF</item>
+    <item>__FSGSBASE__</item>
+    <item>__FUNCTION__</item>
+    <item>__FXSR__</item>
+    <item>__GCC_ATOMIC_BOOL_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_CHAR16_T_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_CHAR32_T_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_CHAR_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_INT_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_LLONG_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_LONG_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_POINTER_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_SHORT_LOCK_FREE</item>
+    <item>__GCC_ATOMIC_TEST_AND_SET_TRUEVAL</item>
+    <item>__GCC_ATOMIC_WCHAR_T_LOCK_FREE</item>
+    <item>__GCC_HAVE_DWARF2_CFI_ASM</item>
+    <item>__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1</item>
+    <item>__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16</item>
+    <item>__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2</item>
+    <item>__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4</item>
+    <item>__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8</item>
+    <item>__GFORTRAN__</item>
+    <item>__GNUC_GNU_INLINE__</item>
+    <item>__GNUC_MINOR__</item>
+    <item>__GNUC_PATCHLEVEL__</item>
+    <item>__GNUC_STDC_INLINE__</item>
+    <item>__GNUC__</item>
+    <item>__GNUG__</item>
+    <item>__GXX_ABI_VERSION</item>
+    <item>__GXX_EXPERIMENTAL_CXX0X__</item>
+    <item>__GXX_RTTI</item>
+    <item>__GXX_WEAK__</item>
+    <item>__ILP32__</item>
+    <item>__INCLUDE_LEVEL__</item>
+    <item>__INT16_C</item>
+    <item>__INT16_MAX__</item>
+    <item>__INT16_TYPE__</item>
+    <item>__INT32_C</item>
+    <item>__INT32_MAX__</item>
+    <item>__INT32_TYPE__</item>
+    <item>__INT64_C</item>
+    <item>__INT64_MAX__</item>
+    <item>__INT64_TYPE__</item>
+    <item>__INT8_C</item>
+    <item>__INT8_MAX__</item>
+    <item>__INT8_TYPE__</item>
+    <item>__INTMAX_C</item>
+    <item>__INTMAX_MAX__</item>
+    <item>__INTMAX_TYPE__</item>
+    <item>__INTPTR_MAX__</item>
+    <item>__INTPTR_TYPE__</item>
+    <item>__INT_FAST16_MAX__</item>
+    <item>__INT_FAST16_TYPE__</item>
+    <item>__INT_FAST32_MAX__</item>
+    <item>__INT_FAST32_TYPE__</item>
+    <item>__INT_FAST64_MAX__</item>
+    <item>__INT_FAST64_TYPE__</item>
+    <item>__INT_FAST8_MAX__</item>
+    <item>__INT_FAST8_TYPE__</item>
+    <item>__INT_LEAST16_MAX__</item>
+    <item>__INT_LEAST16_TYPE__</item>
+    <item>__INT_LEAST32_MAX__</item>
+    <item>__INT_LEAST32_TYPE__</item>
+    <item>__INT_LEAST64_MAX__</item>
+    <item>__INT_LEAST64_TYPE__</item>
+    <item>__INT_LEAST8_MAX__</item>
+    <item>__INT_LEAST8_TYPE__</item>
+    <item>__INT_MAX__</item>
+    <item>__LDBL_DENORM_MIN__</item>
+    <item>__LDBL_DIG__</item>
+    <item>__LDBL_EPSILON__</item>
+    <item>__LDBL_HAS_DENORM__</item>
+    <item>__LDBL_HAS_INFINITY__</item>
+    <item>__LDBL_HAS_QUIET_NAN__</item>
+    <item>__LDBL_MANT_DIG__</item>
+    <item>__LDBL_MAX_10_EXP__</item>
+    <item>__LDBL_MAX_EXP__</item>
+    <item>__LDBL_MAX__</item>
+    <item>__LDBL_MIN_10_EXP__</item>
+    <item>__LDBL_MIN_EXP__</item>
+    <item>__LDBL_MIN__</item>
+    <item>__LONG_LONG_MAX__</item>
+    <item>__LONG_MAX__</item>
+    <item>__LP64__</item>
+    <item>__LWP__</item>
+    <item>__LZCNT__</item>
+    <item>__MMX__</item>
+    <item>__NEXT_RUNTIME__</item>
+    <item>__NO_INLINE__</item>
+    <item>__OPTIMIZE_SIZE__</item>
+    <item>__OPTIMIZE__</item>
+    <item>__ORDER_BIG_ENDIAN__</item>
+    <item>__ORDER_LITTLE_ENDIAN__</item>
+    <item>__ORDER_PDP_ENDIAN__</item>
+    <item>__PCLMUL__</item>
+    <item>__PIC__</item>
+    <item>__PIE__</item>
+    <item>__POPCNT__</item>
+    <item>__PRAGMA_REDEFINE_EXTNAME</item>
+    <item>__PRETTY_FUNCTION__</item>
+    <item>__PRFCHW__</item>
+    <item>__PTRDIFF_MAX__</item>
+    <item>__PTRDIFF_TYPE__</item>
+    <item>__RDRND__</item>
+    <item>__RDSEED__</item>
+    <item>__REGISTER_PREFIX__</item>
+    <item>__RTM__</item>
+    <item>__SANITIZE_ADDRESS__</item>
+    <item>__SCHAR_MAX__</item>
+    <item>__SHRT_MAX__</item>
+    <item>__SIG_ATOMIC_MAX__</item>
+    <item>__SIG_ATOMIC_MIN__</item>
+    <item>__SIG_ATOMIC_TYPE__</item>
+    <item>__SIZEOF_DOUBLE__</item>
+    <item>__SIZEOF_FLOAT__</item>
+    <item>__SIZEOF_INT128__</item>
+    <item>__SIZEOF_INT__</item>
+    <item>__SIZEOF_LONG_DOUBLE__</item>
+    <item>__SIZEOF_LONG_LONG__</item>
+    <item>__SIZEOF_LONG__</item>
+    <item>__SIZEOF_POINTER__</item>
+    <item>__SIZEOF_PTRDIFF_T__</item>
+    <item>__SIZEOF_SHORT__</item>
+    <item>__SIZEOF_SIZE_T__</item>
+    <item>__SIZEOF_WCHAR_T__</item>
+    <item>__SIZEOF_WINT_T__</item>
+    <item>__SIZE_MAX__</item>
+    <item>__SIZE_TYPE__</item>
+    <item>__SSE2_MATH__</item>
+    <item>__SSE2__</item>
+    <item>__SSE3__</item>
+    <item>__SSE4A__</item>
+    <item>__SSE4_1__</item>
+    <item>__SSE4_2__</item>
+    <item>__SSE_MATH__</item>
+    <item>__SSE__</item>
+    <item>__SSP_ALL__</item>
+    <item>__SSP__</item>
+    <item>__SSSE3__</item>
+    <item>__STDC_HOSTED__</item>
+    <item>__STDC_IEC_559_COMPLEX__</item>
+    <item>__STDC_IEC_559__</item>
+    <item>__STDC_ISO_10646__</item>
+    <item>__STDC_NO_THREADS__</item>
+    <item>__STDC_UTF_16__</item>
+    <item>__STDC_UTF_32__</item>
+    <item>__STDC_VERSION__</item>
+    <item>__STDC__</item>
+    <item>__STRICT_ANSI__</item>
+    <item>__TBM__</item>
+    <item>__TIMESTAMP__</item>
+    <item>__UINT16_C</item>
+    <item>__UINT16_MAX__</item>
+    <item>__UINT16_TYPE__</item>
+    <item>__UINT32_C</item>
+    <item>__UINT32_MAX__</item>
+    <item>__UINT32_TYPE__</item>
+    <item>__UINT64_C</item>
+    <item>__UINT64_MAX__</item>
+    <item>__UINT64_TYPE__</item>
+    <item>__UINT8_C</item>
+    <item>__UINT8_MAX__</item>
+    <item>__UINT8_TYPE__</item>
+    <item>__UINTMAX_C</item>
+    <item>__UINTMAX_MAX__</item>
+    <item>__UINTMAX_TYPE__</item>
+    <item>__UINTPTR_MAX__</item>
+    <item>__UINTPTR_TYPE__</item>
+    <item>__UINT_FAST16_MAX__</item>
+    <item>__UINT_FAST16_TYPE__</item>
+    <item>__UINT_FAST32_MAX__</item>
+    <item>__UINT_FAST32_TYPE__</item>
+    <item>__UINT_FAST64_MAX__</item>
+    <item>__UINT_FAST64_TYPE__</item>
+    <item>__UINT_FAST8_MAX__</item>
+    <item>__UINT_FAST8_TYPE__</item>
+    <item>__UINT_LEAST16_MAX__</item>
+    <item>__UINT_LEAST16_TYPE__</item>
+    <item>__UINT_LEAST32_MAX__</item>
+    <item>__UINT_LEAST32_TYPE__</item>
+    <item>__UINT_LEAST64_MAX__</item>
+    <item>__UINT_LEAST64_TYPE__</item>
+    <item>__UINT_LEAST8_MAX__</item>
+    <item>__UINT_LEAST8_TYPE__</item>
+    <item>__USER_LABEL_PREFIX__</item>
+    <item>__USING_SJLJ_EXCEPTIONS__</item>
+    <item>__VA_ARGS__</item>
+    <item>__VERSION__</item>
+    <item>__WCHAR_MAX__</item>
+    <item>__WCHAR_MIN__</item>
+    <item>__WCHAR_TYPE__</item>
+    <item>__WCHAR_UNSIGNED__</item>
+    <item>__WINT_MAX__</item>
+    <item>__WINT_MIN__</item>
+    <item>__WINT_TYPE__</item>
+    <item>__XOP__</item>
+    <item>__XSAVEOPT__</item>
+    <item>__XSAVE__</item>
+    <item>__amd64</item>
+    <item>__amd64__</item>
+    <item>__amdfam10</item>
+    <item>__amdfam10__</item>
+    <item>__athlon</item>
+    <item>__athlon__</item>
+    <item>__athlon_sse__</item>
+    <item>__atom</item>
+    <item>__atom__</item>
+    <item>__bdver1</item>
+    <item>__bdver1__</item>
+    <item>__bdver2</item>
+    <item>__bdver2__</item>
+    <item>__bdver3</item>
+    <item>__bdver3__</item>
+    <item>__btver1</item>
+    <item>__btver1__</item>
+    <item>__btver2</item>
+    <item>__btver2__</item>
+    <item>__code_model_32__</item>
+    <item>__code_model_small__</item>
+    <item>__core2</item>
+    <item>__core2__</item>
+    <item>__core_avx2</item>
+    <item>__core_avx2__</item>
+    <item>__corei7</item>
+    <item>__corei7__</item>
+    <item>__cplusplus</item>
+    <item>__geode</item>
+    <item>__geode__</item>
+    <item>__gnu_linux__</item>
+    <item>__i386</item>
+    <item>__i386__</item>
+    <item>__i486</item>
+    <item>__i486__</item>
+    <item>__i586</item>
+    <item>__i586__</item>
+    <item>__i686</item>
+    <item>__i686__</item>
+    <item>__k6</item>
+    <item>__k6_2__</item>
+    <item>__k6_3__</item>
+    <item>__k6__</item>
+    <item>__k8</item>
+    <item>__k8__</item>
+    <item>__linux</item>
+    <item>__linux__</item>
+    <item>__nocona</item>
+    <item>__nocona__</item>
+    <item>__pentium</item>
+    <item>__pentium4</item>
+    <item>__pentium4__</item>
+    <item>__pentium__</item>
+    <item>__pentium_mmx__</item>
+    <item>__pentiumpro</item>
+    <item>__pentiumpro__</item>
+    <item>__pic__</item>
+    <item>__pie__</item>
+    <item>__tune_amdfam10__</item>
+    <item>__tune_athlon__</item>
+    <item>__tune_athlon_sse__</item>
+    <item>__tune_atom__</item>
+    <item>__tune_bdver1__</item>
+    <item>__tune_bdver2__</item>
+    <item>__tune_bdver3__</item>
+    <item>__tune_btver1__</item>
+    <item>__tune_btver2__</item>
+    <item>__tune_core2__</item>
+    <item>__tune_core_avx2__</item>
+    <item>__tune_corei7__</item>
+    <item>__tune_geode__</item>
+    <item>__tune_i386__</item>
+    <item>__tune_i486__</item>
+    <item>__tune_i586__</item>
+    <item>__tune_i686__</item>
+    <item>__tune_k6_2__</item>
+    <item>__tune_k6_3__</item>
+    <item>__tune_k6__</item>
+    <item>__tune_k8__</item>
+    <item>__tune_nocona__</item>
+    <item>__tune_pentium2__</item>
+    <item>__tune_pentium3__</item>
+    <item>__tune_pentium4__</item>
+    <item>__tune_pentium__</item>
+    <item>__tune_pentium_mmx__</item>
+    <item>__tune_pentiumpro__</item>
+    <item>__unix</item>
+    <item>__unix__</item>
+    <item>__x86_64</item>
+    <item>__x86_64__</item>
+    <item>i386</item>
+    <item>linux</item>
+    <item>unix</item>
+  </list>
+  <contexts>
+    <context name="DetectGccExtensions" attribute="Normal Text" lineEndContext="#stay">
+      <keyword attribute="GNU Macros" context="#stay" String="GNUMacros" />
+      <keyword attribute="GNU Functions" context="#stay" String="GNUFunctions" />
+      <keyword attribute="GNU Types" context="#stay" String="GNUTypes" />
+      <StringDetect attribute="GNU Extensions" context="AttrArgs" String="__attribute__" />
+      <StringDetect attribute="GNU Extensions" context="AttrArgs" String="__declspec" />
+      <keyword attribute="GNU Extensions" context="#stay" String="GNUKeywords" />
+      <RegExpr attribute="GNU Functions" context="#stay" String="__builtin_[a-zA-Z0-9_]+" />
+      <!-- (gcc info 6.57) Binary constants using the `0b' prefix -->
+      <RegExpr attribute="GNU Extensions" context="#stay" String="0[Bb][01]+([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />
+    </context>
+
+    <context name="GNUMacros" attribute="Normal Text" lineEndContext="#stay">
+      <keyword attribute="GNU Macros" context="#stay" String="GNUMacros" />
+    </context>
+
+    <context name="AttrArgs" attribute="GNU Extensions" lineEndContext="#pop">
+      <Detect2Chars attribute="GNU Extensions" context="#stay" char="(" char1="(" />
+      <Detect2Chars attribute="GNU Extensions" context="#pop" char=")" char1=")" />
+      <DetectChar attribute="GNU Extensions" context="Close" char="(" />
+    </context>
+
+    <context name="Close" attribute="GNU Extensions" lineEndContext="#stay">
+      <DetectChar attribute="GNU Extensions" context="#pop" char=")" />
+      <DetectChar attribute="String" context="AttrStringArg" char="&quot;" />
+    </context>
+
+    <context name="AttrStringArg" attribute="String" lineEndContext="#stay">
+      <DetectChar attribute="String" context="#pop" char="&quot;" />
+    </context>
+
+  </contexts>
+
+  <itemDatas>
+    <itemData name="Normal Text"    defStyleNum="dsNormal" spellChecking="false" />
+    <itemData name="GNU Extensions" defStyleNum="dsExtension" spellChecking="false" italic="1" />
+    <itemData name="GNU Functions"  defStyleNum="dsFunction" spellChecking="false" />
+    <itemData name="GNU Macros"     defStyleNum="dsOthers" spellChecking="false" />
+    <itemData name="GNU Types"      defStyleNum="dsDataType" spellChecking="false" />
+    <itemData name="String"         defStyleNum="dsString" spellChecking="false" />
+  </itemDatas>
+</highlighting>
+
+<general>
+  <comments>
+    <comment name="singleLine" start="//"/>
+  </comments>
+  <keywords casesensitive="1"/>
+</general>
+</language>
+<!-- kate: indent-width 2; tab-width 2; -->
diff --git a/xml/glsl.xml b/xml/glsl.xml
new file mode 100644
--- /dev/null
+++ b/xml/glsl.xml
@@ -0,0 +1,1217 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.frag;*.geom;*.tcs;*.tes" mimetype="text/x-glslsrc" version="3" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL">
+	<highlighting>
+		<list name="keywords">
+			<item>break</item>
+			<item>continue</item>
+			<item>do</item>
+			<item>for</item>
+			<item>while</item>
+			
+			<item>if</item>
+			<item>else</item>
+			
+			<item>true</item>
+			<item>false</item>
+			
+			<item>discard</item>
+			<item>return</item>
+			
+			<item>struct</item>
+			<item>subroutine</item>
+			<item>layout</item>
+			<item>uniform</item>
+			<item>buffer</item>
+			<item>invariant</item>
+		</list>
+		<list name="types">
+			<item>float</item>
+			<item>int</item>
+			<item>void</item>
+			<item>bool</item>
+
+			<item>mat2</item>
+			<item>mat3</item>
+			<item>mat4</item>
+			
+			<item>vec2</item>
+			<item>vec3</item>
+			<item>vec4</item>
+			<item>ivec2</item>
+			<item>ivec3</item>
+			<item>ivec4</item>
+			<item>bvec2</item>
+			<item>bvec3</item>
+			<item>bvec4</item>
+			
+			<item>sampler1D</item>
+			<item>sampler2D</item>
+			<item>sampler3D</item>
+			<item>samplerCube</item>
+			<item>sampler2DRect</item>
+			<item>sampler1DArray</item>
+			<item>sampler2DArray</item>
+			<item>samplerCubeArray</item>
+			<item>samplerBuffer</item>
+			<item>sampler2DMS</item>
+			<item>sampler2DMSArray</item>
+
+			<item>sampler1DShadow</item>
+			<item>sampler2DShadow</item>
+			<item>samplerCubeShadow</item>
+			<item>sampler2DRectShadow</item>
+			<item>sampler1DArrayShadow</item>
+			<item>sampler2DArrayShadow</item>
+			<item>samplerCubeArrayShadow</item>
+
+			<item>isampler1D</item>
+			<item>isampler2D</item>
+			<item>isampler3D</item>
+			<item>isamplerCube</item>
+			<item>isampler2DRect</item>
+			<item>isampler1DArray</item>
+			<item>isampler2DArray</item>
+			<item>isamplerCubeArray</item>
+			<item>isamplerBuffer</item>
+			<item>isampler2DMS</item>
+			<item>isampler2DMSArray</item>
+
+			<item>isampler1DShadow</item>
+			<item>isampler2DShadow</item>
+			<item>isamplerCubeShadow</item>
+			<item>isampler2DRectShadow</item>
+			<item>isampler1DArrayShadow</item>
+			<item>isampler2DArrayShadow</item>
+			<item>isamplerCubeArrayShadow</item>
+
+			<item>usampler1D</item>
+			<item>usampler2D</item>
+			<item>usampler3D</item>
+			<item>usamplerCube</item>
+			<item>usampler2DRect</item>
+			<item>usampler1DArray</item>
+			<item>usampler2DArray</item>
+			<item>usamplerCubeArray</item>
+			<item>usamplerBuffer</item>
+			<item>usampler2DMS</item>
+			<item>usampler2DMSArray</item>
+
+			<item>usampler1DShadow</item>
+			<item>usampler2DShadow</item>
+			<item>usamplerCubeShadow</item>
+			<item>usampler2DRectShadow</item>
+			<item>usampler1DArrayShadow</item>
+			<item>usampler2DArrayShadow</item>
+			<item>usamplerCubeArrayShadow</item>
+
+			<item>atomic_uint</item>
+		</list>
+		<list name="typequal">
+			<item>attribute</item>
+			<item>const</item>
+			<item>varying</item>
+			
+			<item>in</item>
+			<item>out</item>
+			<item>inout</item>
+
+			<!-- interpolation qualifiers -->
+			<item>flat</item>
+			<item>noperspective</item>
+			<item>smooth</item>
+
+			<!-- layout qualifiers -->
+			<item>location</item>
+			<item>component</item>
+			<item>binding</item>
+			<item>index</item>
+			<item>offset</item>
+
+			<!-- interface block -->
+			<item>row_major</item>
+			<item>packed</item>
+			<item>shared</item>
+			<item>std140</item>
+			<item>std430</item>
+
+			<!-- force feedback -->
+			<item>xfb_buffer</item>
+			<item>xfb_offset</item>
+			<item>xfb_stride</item>
+
+			<!-- fragment shader -->
+			<item>origin_upper_left</item>
+			<item>pixel_center_integer</item>
+			<item>early_fragment_tests</item>
+
+			<!-- geometry shader-->
+			<item>points</item>
+			<item>lines</item>
+			<item>lines_adjacency</item>
+			<item>triangles</item>
+			<item>triangles_adjacency</item>
+			<item>line_strip</item>
+			<item>triangle_strip</item>
+			<item>max_vertices</item>
+			<item>invocations</item>
+			<item>stream</item>
+
+			<!-- tesselation -->
+			<item>isolines</item>
+			<item>triangles</item>
+			<item>quads</item>
+			<item>point_mode</item>
+			<item>equal_spacing</item>
+			<item>fractional_even_spacing</item>
+			<item>fractional_odd_spacing</item>
+			<item>cw</item>
+			<item>ccw</item>
+			<item>vertices</item>
+
+			<!-- memory qualifiers -->
+			<item>coherent</item>
+			<item>volatile</item>
+			<item>restrict</item>
+			<item>readonly</item>
+			<item>writeonly</item>
+		</list>
+		<list name="attention">
+			<item>FIXME</item>
+			<item>TODO</item>
+			<item>BUG</item>
+		</list>
+		<list name="stdlib">
+			<!-- see also: https://www.opengl.org/sdk/docs/man4/ -->
+			<item>abs</item>
+			<item>acos</item>
+			<item>acosh</item>
+			<item>glActiveShaderProgram</item>
+			<item>glActiveTexture</item>
+			<item>all</item>
+			<item>any</item>
+			<item>asin</item>
+			<item>asinh</item>
+			<item>atan</item>
+			<item>atanh</item>
+			<item>atomicAdd</item>
+			<item>atomicAnd</item>
+			<item>atomicCompSwap</item>
+			<item>atomicCounter</item>
+			<item>atomicCounterDecrement</item>
+			<item>atomicCounterIncrement</item>
+			<item>atomicExchange</item>
+			<item>atomicMax</item>
+			<item>atomicMin</item>
+			<item>atomicOr</item>
+			<item>atomicXor</item>
+			<item>glAttachShader</item>
+			<item>barrier</item>
+			<item>glBeginConditionalRender</item>
+			<item>glBeginQuery</item>
+			<item>glBeginQueryIndexed</item>
+			<item>glBeginTransformFeedback</item>
+			<item>glBindAttribLocation</item>
+			<item>glBindBuffer</item>
+			<item>glBindBufferBase</item>
+			<item>glBindBufferRange</item>
+			<item>glBindBuffersBase</item>
+			<item>glBindBuffersRange</item>
+			<item>glBindFragDataLocation</item>
+			<item>glBindFragDataLocationIndexed</item>
+			<item>glBindFramebuffer</item>
+			<item>glBindImageTexture</item>
+			<item>glBindImageTextures</item>
+			<item>glBindProgramPipeline</item>
+			<item>glBindRenderbuffer</item>
+			<item>glBindSampler</item>
+			<item>glBindSamplers</item>
+			<item>glBindTexture</item>
+			<item>glBindTextures</item>
+			<item>glBindTextureUnit</item>
+			<item>glBindTransformFeedback</item>
+			<item>glBindVertexArray</item>
+			<item>glBindVertexBuffer</item>
+			<item>glBindVertexBuffers</item>
+			<item>bitCount</item>
+			<item>bitfieldExtract</item>
+			<item>bitfieldInsert</item>
+			<item>bitfieldReverse</item>
+			<item>glBlendColor</item>
+			<item>glBlendEquation</item>
+			<item>glBlendEquationi</item>
+			<item>glBlendEquationSeparate</item>
+			<item>glBlendEquationSeparatei</item>
+			<item>glBlendFunc</item>
+			<item>glBlendFunci</item>
+			<item>glBlendFuncSeparate</item>
+			<item>glBlendFuncSeparatei</item>
+			<item>glBlitFramebuffer</item>
+			<item>glBlitNamedFramebuffer</item>
+			<item>glBufferData</item>
+			<item>glBufferStorage</item>
+			<item>glBufferSubData</item>
+			<item>ceil</item>
+			<item>glCheckFramebufferStatus</item>
+			<item>glCheckNamedFramebufferStatus</item>
+			<item>clamp</item>
+			<item>glClampColor</item>
+			<item>glClear</item>
+			<item>glClearBuffer</item>
+			<item>glClearBufferData</item>
+			<item>glClearBufferfi</item>
+			<item>glClearBufferfv</item>
+			<item>glClearBufferiv</item>
+			<item>glClearBufferSubData</item>
+			<item>glClearBufferuiv</item>
+			<item>glClearColor</item>
+			<item>glClearDepth</item>
+			<item>glClearDepthf</item>
+			<item>glClearNamedBufferData</item>
+			<item>glClearNamedBufferSubData</item>
+			<item>glClearNamedFramebufferfi</item>
+			<item>glClearNamedFramebufferfv</item>
+			<item>glClearNamedFramebufferiv</item>
+			<item>glClearNamedFramebufferuiv</item>
+			<item>glClearStencil</item>
+			<item>glClearTexImage</item>
+			<item>glClearTexSubImage</item>
+			<item>glClientWaitSync</item>
+			<item>glClipControl</item>
+			<item>glColorMask</item>
+			<item>glColorMaski</item>
+			<item>glCompileShader</item>
+			<item>glCompressedTexImage1D</item>
+			<item>glCompressedTexImage2D</item>
+			<item>glCompressedTexImage3D</item>
+			<item>glCompressedTexSubImage1D</item>
+			<item>glCompressedTexSubImage2D</item>
+			<item>glCompressedTexSubImage3D</item>
+			<item>glCompressedTextureSubImage1D</item>
+			<item>glCompressedTextureSubImage2D</item>
+			<item>glCompressedTextureSubImage3D</item>
+			<item>glCopyBufferSubData</item>
+			<item>glCopyImageSubData</item>
+			<item>glCopyNamedBufferSubData</item>
+			<item>glCopyTexImage1D</item>
+			<item>glCopyTexImage2D</item>
+			<item>glCopyTexSubImage1D</item>
+			<item>glCopyTexSubImage2D</item>
+			<item>glCopyTexSubImage3D</item>
+			<item>glCopyTextureSubImage1D</item>
+			<item>glCopyTextureSubImage2D</item>
+			<item>glCopyTextureSubImage3D</item>
+			<item>cos</item>
+			<item>cosh</item>
+			<item>glCreateBuffers</item>
+			<item>glCreateFramebuffers</item>
+			<item>glCreateProgram</item>
+			<item>glCreateProgramPipelines</item>
+			<item>glCreateQueries</item>
+			<item>glCreateRenderbuffers</item>
+			<item>glCreateSamplers</item>
+			<item>glCreateShader</item>
+			<item>glCreateShaderProgram</item>
+			<item>glCreateShaderProgramv</item>
+			<item>glCreateTextures</item>
+			<item>glCreateTransformFeedbacks</item>
+			<item>glCreateVertexArrays</item>
+			<item>cross</item>
+			<item>glCullFace</item>
+			<item>glDebugMessageCallback</item>
+			<item>glDebugMessageControl</item>
+			<item>glDebugMessageInsert</item>
+			<item>degrees</item>
+			<item>glDeleteBuffers</item>
+			<item>glDeleteFramebuffers</item>
+			<item>glDeleteProgram</item>
+			<item>glDeleteProgramPipelines</item>
+			<item>glDeleteQueries</item>
+			<item>glDeleteRenderbuffers</item>
+			<item>glDeleteSamplers</item>
+			<item>glDeleteShader</item>
+			<item>glDeleteSync</item>
+			<item>glDeleteTextures</item>
+			<item>glDeleteTransformFeedbacks</item>
+			<item>glDeleteVertexArrays</item>
+			<item>glDepthFunc</item>
+			<item>glDepthMask</item>
+			<item>glDepthRange</item>
+			<item>glDepthRangeArray</item>
+			<item>glDepthRangeArrayv</item>
+			<item>glDepthRangef</item>
+			<item>glDepthRangeIndexed</item>
+			<item>glDetachShader</item>
+			<item>determinant</item>
+			<item>dFdx</item>
+			<item>dFdxCoarse</item>
+			<item>dFdxFine</item>
+			<item>dFdy</item>
+			<item>dFdyCoarse</item>
+			<item>dFdyFine</item>
+			<item>glDisable</item>
+			<item>glDisablei</item>
+			<item>glDisableVertexArrayAttrib</item>
+			<item>glDisableVertexAttribArray</item>
+			<item>glDispatchCompute</item>
+			<item>glDispatchComputeIndirect</item>
+			<item>distance</item>
+			<item>dot</item>
+			<item>glDrawArrays</item>
+			<item>glDrawArraysIndirect</item>
+			<item>glDrawArraysInstanced</item>
+			<item>glDrawArraysInstancedBaseInstance</item>
+			<item>glDrawBuffer</item>
+			<item>glDrawBuffers</item>
+			<item>glDrawElements</item>
+			<item>glDrawElementsBaseVertex</item>
+			<item>glDrawElementsIndirect</item>
+			<item>glDrawElementsInstanced</item>
+			<item>glDrawElementsInstancedBaseInstance</item>
+			<item>glDrawElementsInstancedBaseVertex</item>
+			<item>glDrawElementsInstancedBaseVertexBaseInstance</item>
+			<item>glDrawRangeElements</item>
+			<item>glDrawRangeElementsBaseVertex</item>
+			<item>glDrawTransformFeedback</item>
+			<item>glDrawTransformFeedbackInstanced</item>
+			<item>glDrawTransformFeedbackStream</item>
+			<item>glDrawTransformFeedbackStreamInstanced</item>
+			<item>EmitStreamVertex</item>
+			<item>EmitVertex</item>
+			<item>glEnable</item>
+			<item>glEnablei</item>
+			<item>glEnableVertexArrayAttrib</item>
+			<item>glEnableVertexAttribArray</item>
+			<item>glEndConditionalRender</item>
+			<item>EndPrimitive</item>
+			<item>glEndQuery</item>
+			<item>glEndQueryIndexed</item>
+			<item>EndStreamPrimitive</item>
+			<item>glEndTransformFeedback</item>
+			<item>equal</item>
+			<item>exp</item>
+			<item>exp2</item>
+			<item>faceforward</item>
+			<item>glFenceSync</item>
+			<item>findLSB</item>
+			<item>findMSB</item>
+			<item>glFinish</item>
+			<item>floatBitsToInt</item>
+			<item>floatBitsToUint</item>
+			<item>floor</item>
+			<item>glFlush</item>
+			<item>glFlushMappedBufferRange</item>
+			<item>glFlushMappedNamedBufferRange</item>
+			<item>fma</item>
+			<item>fract</item>
+			<item>glFramebufferParameteri</item>
+			<item>glFramebufferRenderbuffer</item>
+			<item>glFramebufferTexture</item>
+			<item>glFramebufferTexture1D</item>
+			<item>glFramebufferTexture2D</item>
+			<item>glFramebufferTexture3D</item>
+			<item>glFramebufferTextureLayer</item>
+			<item>frexp</item>
+			<item>glFrontFace</item>
+			<item>fwidth</item>
+			<item>fwidthCoarse</item>
+			<item>fwidthFine</item>
+			<item>glGenBuffers</item>
+			<item>glGenerateMipmap</item>
+			<item>glGenerateTextureMipmap</item>
+			<item>glGenFramebuffers</item>
+			<item>glGenProgramPipelines</item>
+			<item>glGenQueries</item>
+			<item>glGenRenderbuffers</item>
+			<item>glGenSamplers</item>
+			<item>glGenTextures</item>
+			<item>glGenTransformFeedbacks</item>
+			<item>glGenVertexArrays</item>
+			<item>glGet</item>
+			<item>glGetActiveAtomicCounterBufferiv</item>
+			<item>glGetActiveAttrib</item>
+			<item>glGetActiveSubroutineName</item>
+			<item>glGetActiveSubroutineUniform</item>
+			<item>glGetActiveSubroutineUniformiv</item>
+			<item>glGetActiveSubroutineUniformName</item>
+			<item>glGetActiveUniform</item>
+			<item>glGetActiveUniformBlock</item>
+			<item>glGetActiveUniformBlockiv</item>
+			<item>glGetActiveUniformBlockName</item>
+			<item>glGetActiveUniformName</item>
+			<item>glGetActiveUniformsiv</item>
+			<item>glGetAttachedShaders</item>
+			<item>glGetAttribLocation</item>
+			<item>glGetBooleani_v</item>
+			<item>glGetBooleanv</item>
+			<item>glGetBufferParameter</item>
+			<item>glGetBufferParameteri64v</item>
+			<item>glGetBufferParameteriv</item>
+			<item>glGetBufferPointerv</item>
+			<item>glGetBufferSubData</item>
+			<item>glGetCompressedTexImage</item>
+			<item>glGetCompressedTextureImage</item>
+			<item>glGetCompressedTextureSubImage</item>
+			<item>glGetDebugMessageLog</item>
+			<item>glGetDoublei_v</item>
+			<item>glGetDoublev</item>
+			<item>glGetError</item>
+			<item>glGetFloati_v</item>
+			<item>glGetFloatv</item>
+			<item>glGetFragDataIndex</item>
+			<item>glGetFragDataLocation</item>
+			<item>glGetFramebufferAttachmentParameter</item>
+			<item>glGetFramebufferAttachmentParameteriv</item>
+			<item>glGetFramebufferParameter</item>
+			<item>glGetFramebufferParameteriv</item>
+			<item>glGetGraphicsResetStatus</item>
+			<item>glGetInteger64i_v</item>
+			<item>glGetInteger64v</item>
+			<item>glGetIntegeri_v</item>
+			<item>glGetIntegerv</item>
+			<item>glGetInternalformat</item>
+			<item>glGetInternalformati64v</item>
+			<item>glGetInternalformativ</item>
+			<item>glGetMultisample</item>
+			<item>glGetMultisamplefv</item>
+			<item>glGetNamedBufferParameteri64v</item>
+			<item>glGetNamedBufferParameteriv</item>
+			<item>glGetNamedBufferPointerv</item>
+			<item>glGetNamedBufferSubData</item>
+			<item>glGetNamedFramebufferAttachmentParameteriv</item>
+			<item>glGetNamedFramebufferParameteriv</item>
+			<item>glGetNamedRenderbufferParameteriv</item>
+			<item>glGetnCompressedTexImage</item>
+			<item>glGetnTexImage</item>
+			<item>glGetnUniformdv</item>
+			<item>glGetnUniformfv</item>
+			<item>glGetnUniformiv</item>
+			<item>glGetnUniformuiv</item>
+			<item>glGetObjectLabel</item>
+			<item>glGetObjectPtrLabel</item>
+			<item>glGetPointerv</item>
+			<item>glGetProgram</item>
+			<item>glGetProgramBinary</item>
+			<item>glGetProgramInfoLog</item>
+			<item>glGetProgramInterface</item>
+			<item>glGetProgramInterfaceiv</item>
+			<item>glGetProgramiv</item>
+			<item>glGetProgramPipeline</item>
+			<item>glGetProgramPipelineInfoLog</item>
+			<item>glGetProgramPipelineiv</item>
+			<item>glGetProgramResource</item>
+			<item>glGetProgramResourceIndex</item>
+			<item>glGetProgramResourceiv</item>
+			<item>glGetProgramResourceLocation</item>
+			<item>glGetProgramResourceLocationIndex</item>
+			<item>glGetProgramResourceName</item>
+			<item>glGetProgramStage</item>
+			<item>glGetProgramStageiv</item>
+			<item>glGetQueryIndexed</item>
+			<item>glGetQueryIndexediv</item>
+			<item>glGetQueryiv</item>
+			<item>glGetQueryObject</item>
+			<item>glGetQueryObjecti64v</item>
+			<item>glGetQueryObjectiv</item>
+			<item>glGetQueryObjectui64v</item>
+			<item>glGetQueryObjectuiv</item>
+			<item>glGetRenderbufferParameter</item>
+			<item>glGetRenderbufferParameteriv</item>
+			<item>glGetSamplerParameter</item>
+			<item>glGetSamplerParameterfv</item>
+			<item>glGetSamplerParameterIiv</item>
+			<item>glGetSamplerParameterIuiv</item>
+			<item>glGetSamplerParameteriv</item>
+			<item>glGetShader</item>
+			<item>glGetShaderInfoLog</item>
+			<item>glGetShaderiv</item>
+			<item>glGetShaderPrecisionFormat</item>
+			<item>glGetShaderSource</item>
+			<item>glGetString</item>
+			<item>glGetStringi</item>
+			<item>glGetSubroutineIndex</item>
+			<item>glGetSubroutineUniformLocation</item>
+			<item>glGetSync</item>
+			<item>glGetSynciv</item>
+			<item>glGetTexImage</item>
+			<item>glGetTexLevelParameter</item>
+			<item>glGetTexLevelParameterfv</item>
+			<item>glGetTexLevelParameteriv</item>
+			<item>glGetTexParameter</item>
+			<item>glGetTexParameterfv</item>
+			<item>glGetTexParameterIiv</item>
+			<item>glGetTexParameterIuiv</item>
+			<item>glGetTexParameteriv</item>
+			<item>glGetTextureImage</item>
+			<item>glGetTextureLevelParameterfv</item>
+			<item>glGetTextureLevelParameteriv</item>
+			<item>glGetTextureParameterfv</item>
+			<item>glGetTextureParameterIiv</item>
+			<item>glGetTextureParameterIuiv</item>
+			<item>glGetTextureParameteriv</item>
+			<item>glGetTextureSubImage</item>
+			<item>glGetTransformFeedback</item>
+			<item>glGetTransformFeedbacki64_v</item>
+			<item>glGetTransformFeedbacki_v</item>
+			<item>glGetTransformFeedbackiv</item>
+			<item>glGetTransformFeedbackVarying</item>
+			<item>glGetUniform</item>
+			<item>glGetUniformBlockIndex</item>
+			<item>glGetUniformdv</item>
+			<item>glGetUniformfv</item>
+			<item>glGetUniformIndices</item>
+			<item>glGetUniformiv</item>
+			<item>glGetUniformLocation</item>
+			<item>glGetUniformSubroutine</item>
+			<item>glGetUniformSubroutineuiv</item>
+			<item>glGetUniformuiv</item>
+			<item>glGetVertexArrayIndexed</item>
+			<item>glGetVertexArrayIndexed64iv</item>
+			<item>glGetVertexArrayIndexediv</item>
+			<item>glGetVertexArrayiv</item>
+			<item>glGetVertexAttrib</item>
+			<item>glGetVertexAttribdv</item>
+			<item>glGetVertexAttribfv</item>
+			<item>glGetVertexAttribIiv</item>
+			<item>glGetVertexAttribIuiv</item>
+			<item>glGetVertexAttribiv</item>
+			<item>glGetVertexAttribLdv</item>
+			<item>glGetVertexAttribPointerv</item>
+			<item>gl_ClipDistance</item>
+			<item>gl_CullDistance</item>
+			<item>gl_FragCoord</item>
+			<item>gl_FragDepth</item>
+			<item>gl_FrontFacing</item>
+			<item>gl_GlobalInvocationID</item>
+			<item>gl_HelperInvocation</item>
+			<item>gl_InstanceID</item>
+			<item>gl_InvocationID</item>
+			<item>gl_Layer</item>
+			<item>gl_LocalInvocationID</item>
+			<item>gl_LocalInvocationIndex</item>
+			<item>gl_NumSamples</item>
+			<item>gl_NumWorkGroups</item>
+			<item>gl_PatchVerticesIn</item>
+			<item>gl_PointCoord</item>
+			<item>gl_PointSize</item>
+			<item>gl_Position</item>
+			<item>gl_PrimitiveID</item>
+			<item>gl_PrimitiveIDIn</item>
+			<item>gl_SampleID</item>
+			<item>gl_SampleMask</item>
+			<item>gl_SampleMaskIn</item>
+			<item>gl_SamplePosition</item>
+			<item>gl_TessCoord</item>
+			<item>gl_TessLevelInner</item>
+			<item>gl_TessLevelOuter</item>
+			<item>gl_VertexID</item>
+			<item>gl_ViewportIndex</item>
+			<item>gl_WorkGroupID</item>
+			<item>gl_WorkGroupSize</item>
+			<item>greaterThan</item>
+			<item>greaterThanEqual</item>
+			<item>groupMemoryBarrier</item>
+			<item>glHint</item>
+			<item>imageAtomicAdd</item>
+			<item>imageAtomicAnd</item>
+			<item>imageAtomicCompSwap</item>
+			<item>imageAtomicExchange</item>
+			<item>imageAtomicMax</item>
+			<item>imageAtomicMin</item>
+			<item>imageAtomicOr</item>
+			<item>imageAtomicXor</item>
+			<item>imageLoad</item>
+			<item>imageSamples</item>
+			<item>imageSize</item>
+			<item>imageStore</item>
+			<item>imulExtended</item>
+			<item>intBitsToFloat</item>
+			<item>interpolateAtCentroid</item>
+			<item>interpolateAtOffset</item>
+			<item>interpolateAtSample</item>
+			<item>glInvalidateBufferData</item>
+			<item>glInvalidateBufferSubData</item>
+			<item>glInvalidateFramebuffer</item>
+			<item>glInvalidateNamedFramebufferData</item>
+			<item>glInvalidateNamedFramebufferSubData</item>
+			<item>glInvalidateSubFramebuffer</item>
+			<item>glInvalidateTexImage</item>
+			<item>glInvalidateTexSubImage</item>
+			<item>inverse</item>
+			<item>inversesqrt</item>
+			<item>glIsBuffer</item>
+			<item>glIsEnabled</item>
+			<item>glIsEnabledi</item>
+			<item>glIsFramebuffer</item>
+			<item>isinf</item>
+			<item>isnan</item>
+			<item>glIsProgram</item>
+			<item>glIsProgramPipeline</item>
+			<item>glIsQuery</item>
+			<item>glIsRenderbuffer</item>
+			<item>glIsSampler</item>
+			<item>glIsShader</item>
+			<item>glIsSync</item>
+			<item>glIsTexture</item>
+			<item>glIsTransformFeedback</item>
+			<item>glIsVertexArray</item>
+			<item>ldexp</item>
+			<item>length</item>
+			<item>lessThan</item>
+			<item>lessThanEqual</item>
+			<item>glLineWidth</item>
+			<item>glLinkProgram</item>
+			<item>log</item>
+			<item>log2</item>
+			<item>glLogicOp</item>
+			<item>glMapBuffer</item>
+			<item>glMapBufferRange</item>
+			<item>glMapNamedBuffer</item>
+			<item>glMapNamedBufferRange</item>
+			<item>matrixCompMult</item>
+			<item>max</item>
+			<item>memoryBarrier</item>
+			<item>glMemoryBarrier</item>
+			<item>memoryBarrierAtomicCounter</item>
+			<item>memoryBarrierBuffer</item>
+			<item>glMemoryBarrierByRegion</item>
+			<item>memoryBarrierImage</item>
+			<item>memoryBarrierShared</item>
+			<item>min</item>
+			<item>glMinSampleShading</item>
+			<item>mix</item>
+			<item>mod</item>
+			<item>modf</item>
+			<item>glMultiDrawArrays</item>
+			<item>glMultiDrawArraysIndirect</item>
+			<item>glMultiDrawElements</item>
+			<item>glMultiDrawElementsBaseVertex</item>
+			<item>glMultiDrawElementsIndirect</item>
+			<item>glNamedBufferData</item>
+			<item>glNamedBufferStorage</item>
+			<item>glNamedBufferSubData</item>
+			<item>glNamedFramebufferDrawBuffer</item>
+			<item>glNamedFramebufferDrawBuffers</item>
+			<item>glNamedFramebufferParameteri</item>
+			<item>glNamedFramebufferReadBuffer</item>
+			<item>glNamedFramebufferRenderbuffer</item>
+			<item>glNamedFramebufferTexture</item>
+			<item>glNamedFramebufferTextureLayer</item>
+			<item>glNamedRenderbufferStorage</item>
+			<item>glNamedRenderbufferStorageMultisample</item>
+			<item>noise</item>
+			<item>noise1</item>
+			<item>noise2</item>
+			<item>noise3</item>
+			<item>noise4</item>
+			<item>normalize</item>
+			<item>not</item>
+			<item>notEqual</item>
+			<item>glObjectLabel</item>
+			<item>glObjectPtrLabel</item>
+			<item>outerProduct</item>
+			<item>packDouble2x32</item>
+			<item>packHalf2x16</item>
+			<item>packSnorm2x16</item>
+			<item>packSnorm4x8</item>
+			<item>packUnorm</item>
+			<item>packUnorm2x16</item>
+			<item>packUnorm4x8</item>
+			<item>glPatchParameter</item>
+			<item>glPatchParameterfv</item>
+			<item>glPatchParameteri</item>
+			<item>glPauseTransformFeedback</item>
+			<item>glPixelStore</item>
+			<item>glPixelStoref</item>
+			<item>glPixelStorei</item>
+			<item>glPointParameter</item>
+			<item>glPointParameterf</item>
+			<item>glPointParameterfv</item>
+			<item>glPointParameteri</item>
+			<item>glPointParameteriv</item>
+			<item>glPointSize</item>
+			<item>glPolygonMode</item>
+			<item>glPolygonOffset</item>
+			<item>glPopDebugGroup</item>
+			<item>pow</item>
+			<item>glPrimitiveRestartIndex</item>
+			<item>glProgramBinary</item>
+			<item>glProgramParameter</item>
+			<item>glProgramParameteri</item>
+			<item>glProgramUniform</item>
+			<item>glProgramUniform1f</item>
+			<item>glProgramUniform1fv</item>
+			<item>glProgramUniform1i</item>
+			<item>glProgramUniform1iv</item>
+			<item>glProgramUniform1ui</item>
+			<item>glProgramUniform1uiv</item>
+			<item>glProgramUniform2f</item>
+			<item>glProgramUniform2fv</item>
+			<item>glProgramUniform2i</item>
+			<item>glProgramUniform2iv</item>
+			<item>glProgramUniform2ui</item>
+			<item>glProgramUniform2uiv</item>
+			<item>glProgramUniform3f</item>
+			<item>glProgramUniform3fv</item>
+			<item>glProgramUniform3i</item>
+			<item>glProgramUniform3iv</item>
+			<item>glProgramUniform3ui</item>
+			<item>glProgramUniform3uiv</item>
+			<item>glProgramUniform4f</item>
+			<item>glProgramUniform4fv</item>
+			<item>glProgramUniform4i</item>
+			<item>glProgramUniform4iv</item>
+			<item>glProgramUniform4ui</item>
+			<item>glProgramUniform4uiv</item>
+			<item>glProgramUniformMatrix2fv</item>
+			<item>glProgramUniformMatrix2x3fv</item>
+			<item>glProgramUniformMatrix2x4fv</item>
+			<item>glProgramUniformMatrix3fv</item>
+			<item>glProgramUniformMatrix3x2fv</item>
+			<item>glProgramUniformMatrix3x4fv</item>
+			<item>glProgramUniformMatrix4fv</item>
+			<item>glProgramUniformMatrix4x2fv</item>
+			<item>glProgramUniformMatrix4x3fv</item>
+			<item>glProvokingVertex</item>
+			<item>glPushDebugGroup</item>
+			<item>glQueryCounter</item>
+			<item>radians</item>
+			<item>glReadBuffer</item>
+			<item>glReadnPixels</item>
+			<item>glReadPixels</item>
+			<item>reflect</item>
+			<item>refract</item>
+			<item>glReleaseShaderCompiler</item>
+			<item>removedTypes</item>
+			<item>glRenderbufferStorage</item>
+			<item>glRenderbufferStorageMultisample</item>
+			<item>glResumeTransformFeedback</item>
+			<item>round</item>
+			<item>roundEven</item>
+			<item>glSampleCoverage</item>
+			<item>glSampleMaski</item>
+			<item>glSamplerParameter</item>
+			<item>glSamplerParameterf</item>
+			<item>glSamplerParameterfv</item>
+			<item>glSamplerParameteri</item>
+			<item>glSamplerParameterIiv</item>
+			<item>glSamplerParameterIuiv</item>
+			<item>glSamplerParameteriv</item>
+			<item>glScissor</item>
+			<item>glScissorArray</item>
+			<item>glScissorArrayv</item>
+			<item>glScissorIndexed</item>
+			<item>glScissorIndexedv</item>
+			<item>glShaderBinary</item>
+			<item>glShaderSource</item>
+			<item>glShaderStorageBlockBinding</item>
+			<item>sign</item>
+			<item>sin</item>
+			<item>sinh</item>
+			<item>smoothstep</item>
+			<item>sqrt</item>
+			<item>glStencilFunc</item>
+			<item>glStencilFuncSeparate</item>
+			<item>glStencilMask</item>
+			<item>glStencilMaskSeparate</item>
+			<item>glStencilOp</item>
+			<item>glStencilOpSeparate</item>
+			<item>step</item>
+			<item>tan</item>
+			<item>tanh</item>
+			<item>glTexBuffer</item>
+			<item>glTexBufferRange</item>
+			<item>texelFetch</item>
+			<item>texelFetchOffset</item>
+			<item>glTexImage1D</item>
+			<item>glTexImage2D</item>
+			<item>glTexImage2DMultisample</item>
+			<item>glTexImage3D</item>
+			<item>glTexImage3DMultisample</item>
+			<item>glTexParameter</item>
+			<item>glTexParameterf</item>
+			<item>glTexParameterfv</item>
+			<item>glTexParameteri</item>
+			<item>glTexParameterIiv</item>
+			<item>glTexParameterIuiv</item>
+			<item>glTexParameteriv</item>
+			<item>glTexStorage1D</item>
+			<item>glTexStorage2D</item>
+			<item>glTexStorage2DMultisample</item>
+			<item>glTexStorage3D</item>
+			<item>glTexStorage3DMultisample</item>
+			<item>glTexSubImage1D</item>
+			<item>glTexSubImage2D</item>
+			<item>glTexSubImage3D</item>
+			<item>texture</item>
+			<item>glTextureBarrier</item>
+			<item>glTextureBuffer</item>
+			<item>glTextureBufferRange</item>
+			<item>textureGather</item>
+			<item>textureGatherOffset</item>
+			<item>textureGatherOffsets</item>
+			<item>textureGrad</item>
+			<item>textureGradOffset</item>
+			<item>textureLod</item>
+			<item>textureLodOffset</item>
+			<item>textureOffset</item>
+			<item>glTextureParameterf</item>
+			<item>glTextureParameterfv</item>
+			<item>glTextureParameteri</item>
+			<item>glTextureParameterIiv</item>
+			<item>glTextureParameterIuiv</item>
+			<item>glTextureParameteriv</item>
+			<item>textureProj</item>
+			<item>textureProjGrad</item>
+			<item>textureProjGradOffset</item>
+			<item>textureProjLod</item>
+			<item>textureProjLodOffset</item>
+			<item>textureProjOffset</item>
+			<item>textureQueryLevels</item>
+			<item>textureQueryLod</item>
+			<item>textureSamples</item>
+			<item>textureSize</item>
+			<item>glTextureStorage1D</item>
+			<item>glTextureStorage2D</item>
+			<item>glTextureStorage2DMultisample</item>
+			<item>glTextureStorage3D</item>
+			<item>glTextureStorage3DMultisample</item>
+			<item>glTextureSubImage1D</item>
+			<item>glTextureSubImage2D</item>
+			<item>glTextureSubImage3D</item>
+			<item>glTextureView</item>
+			<item>glTransformFeedbackBufferBase</item>
+			<item>glTransformFeedbackBufferRange</item>
+			<item>glTransformFeedbackVaryings</item>
+			<item>transpose</item>
+			<item>trunc</item>
+			<item>uaddCarry</item>
+			<item>uintBitsToFloat</item>
+			<item>umulExtended</item>
+			<item>glUniform</item>
+			<item>glUniform1f</item>
+			<item>glUniform1fv</item>
+			<item>glUniform1i</item>
+			<item>glUniform1iv</item>
+			<item>glUniform1ui</item>
+			<item>glUniform1uiv</item>
+			<item>glUniform2f</item>
+			<item>glUniform2fv</item>
+			<item>glUniform2i</item>
+			<item>glUniform2iv</item>
+			<item>glUniform2ui</item>
+			<item>glUniform2uiv</item>
+			<item>glUniform3f</item>
+			<item>glUniform3fv</item>
+			<item>glUniform3i</item>
+			<item>glUniform3iv</item>
+			<item>glUniform3ui</item>
+			<item>glUniform3uiv</item>
+			<item>glUniform4f</item>
+			<item>glUniform4fv</item>
+			<item>glUniform4i</item>
+			<item>glUniform4iv</item>
+			<item>glUniform4ui</item>
+			<item>glUniform4uiv</item>
+			<item>glUniformBlockBinding</item>
+			<item>glUniformMatrix2fv</item>
+			<item>glUniformMatrix2x3fv</item>
+			<item>glUniformMatrix2x4fv</item>
+			<item>glUniformMatrix3fv</item>
+			<item>glUniformMatrix3x2fv</item>
+			<item>glUniformMatrix3x4fv</item>
+			<item>glUniformMatrix4fv</item>
+			<item>glUniformMatrix4x2fv</item>
+			<item>glUniformMatrix4x3fv</item>
+			<item>glUniformSubroutines</item>
+			<item>glUniformSubroutinesuiv</item>
+			<item>glUnmapBuffer</item>
+			<item>glUnmapNamedBuffer</item>
+			<item>unpackDouble2x32</item>
+			<item>unpackHalf2x16</item>
+			<item>unpackSnorm2x16</item>
+			<item>unpackSnorm4x8</item>
+			<item>unpackUnorm</item>
+			<item>unpackUnorm2x16</item>
+			<item>unpackUnorm4x8</item>
+			<item>glUseProgram</item>
+			<item>glUseProgramStages</item>
+			<item>usubBorrow</item>
+			<item>glValidateProgram</item>
+			<item>glValidateProgramPipeline</item>
+			<item>glVertexArrayAttribBinding</item>
+			<item>glVertexArrayAttribFormat</item>
+			<item>glVertexArrayAttribIFormat</item>
+			<item>glVertexArrayAttribLFormat</item>
+			<item>glVertexArrayBindingDivisor</item>
+			<item>glVertexArrayElementBuffer</item>
+			<item>glVertexArrayVertexBuffer</item>
+			<item>glVertexArrayVertexBuffers</item>
+			<item>glVertexAttrib</item>
+			<item>glVertexAttrib1d</item>
+			<item>glVertexAttrib1dv</item>
+			<item>glVertexAttrib1f</item>
+			<item>glVertexAttrib1fv</item>
+			<item>glVertexAttrib1s</item>
+			<item>glVertexAttrib1sv</item>
+			<item>glVertexAttrib2d</item>
+			<item>glVertexAttrib2dv</item>
+			<item>glVertexAttrib2f</item>
+			<item>glVertexAttrib2fv</item>
+			<item>glVertexAttrib2s</item>
+			<item>glVertexAttrib2sv</item>
+			<item>glVertexAttrib3d</item>
+			<item>glVertexAttrib3dv</item>
+			<item>glVertexAttrib3f</item>
+			<item>glVertexAttrib3fv</item>
+			<item>glVertexAttrib3s</item>
+			<item>glVertexAttrib3sv</item>
+			<item>glVertexAttrib4bv</item>
+			<item>glVertexAttrib4d</item>
+			<item>glVertexAttrib4dv</item>
+			<item>glVertexAttrib4f</item>
+			<item>glVertexAttrib4fv</item>
+			<item>glVertexAttrib4iv</item>
+			<item>glVertexAttrib4Nbv</item>
+			<item>glVertexAttrib4Niv</item>
+			<item>glVertexAttrib4Nsv</item>
+			<item>glVertexAttrib4Nub</item>
+			<item>glVertexAttrib4Nubv</item>
+			<item>glVertexAttrib4Nuiv</item>
+			<item>glVertexAttrib4Nusv</item>
+			<item>glVertexAttrib4s</item>
+			<item>glVertexAttrib4sv</item>
+			<item>glVertexAttrib4ubv</item>
+			<item>glVertexAttrib4uiv</item>
+			<item>glVertexAttrib4usv</item>
+			<item>glVertexAttribBinding</item>
+			<item>glVertexAttribDivisor</item>
+			<item>glVertexAttribFormat</item>
+			<item>glVertexAttribI1i</item>
+			<item>glVertexAttribI1iv</item>
+			<item>glVertexAttribI1ui</item>
+			<item>glVertexAttribI1uiv</item>
+			<item>glVertexAttribI2i</item>
+			<item>glVertexAttribI2iv</item>
+			<item>glVertexAttribI2ui</item>
+			<item>glVertexAttribI2uiv</item>
+			<item>glVertexAttribI3i</item>
+			<item>glVertexAttribI3iv</item>
+			<item>glVertexAttribI3ui</item>
+			<item>glVertexAttribI3uiv</item>
+			<item>glVertexAttribI4bv</item>
+			<item>glVertexAttribI4i</item>
+			<item>glVertexAttribI4iv</item>
+			<item>glVertexAttribI4sv</item>
+			<item>glVertexAttribI4ubv</item>
+			<item>glVertexAttribI4ui</item>
+			<item>glVertexAttribI4uiv</item>
+			<item>glVertexAttribI4usv</item>
+			<item>glVertexAttribIFormat</item>
+			<item>glVertexAttribIPointer</item>
+			<item>glVertexAttribL1d</item>
+			<item>glVertexAttribL1dv</item>
+			<item>glVertexAttribL2d</item>
+			<item>glVertexAttribL2dv</item>
+			<item>glVertexAttribL3d</item>
+			<item>glVertexAttribL3dv</item>
+			<item>glVertexAttribL4d</item>
+			<item>glVertexAttribL4dv</item>
+			<item>glVertexAttribLFormat</item>
+			<item>glVertexAttribLPointer</item>
+			<item>glVertexAttribP1ui</item>
+			<item>glVertexAttribP2ui</item>
+			<item>glVertexAttribP3ui</item>
+			<item>glVertexAttribP4ui</item>
+			<item>glVertexAttribPointer</item>
+			<item>glVertexBindingDivisor</item>
+			<item>glViewport</item>
+			<item>glViewportArray</item>
+			<item>glViewportArrayv</item>
+			<item>glViewportIndexed</item>
+			<item>glViewportIndexedf</item>
+			<item>glViewportIndexedfv</item>
+			<item>glWaitSync</item>
+		</list>
+		<list name="stdvar">
+			<!-- Vertex Shader Special Variables -->
+			<item>gl_Position</item>
+			<item>gl_PointSize</item>
+			<item>gl_ClipVertex</item>
+
+			<!-- Fragment Shader Special Variables -->
+			<item>gl_FragCoord</item>
+			<item>gl_FragFacing</item>
+			<item>gl_FragColor</item>
+			<item>gl_FragData</item>
+			<item>gl_FragDepth</item>
+
+			<!-- Vertex Shader Built-in Attributes -->
+			<item>gl_Color</item>
+			<item>gl_SecondaryColor</item>
+			<item>gl_Normal</item>
+			<item>gl_Vertex</item>
+			<item>gl_MultiTexCoord0</item>
+			<item>gl_MultiTexCoord1</item>
+			<item>gl_MultiTexCoord2</item>
+			<item>gl_MultiTexCoord2</item>
+			<item>gl_MultiTexCoord3</item>
+			<item>gl_MultiTexCoord4</item>
+			<item>gl_MultiTexCoord5</item>
+			<item>gl_MultiTexCoord6</item>
+			<item>gl_MultiTexCoord7</item>
+			<item>gl_FogColor</item>
+
+			<!-- Geometry Shader Built-in Attributes -->
+			<item>gl_ClipDistance</item>
+			<item>gl_PrimitiveIDIn</item>
+			<item>gl_InvocationID</item>
+			<item>gl_PrimitiveID</item>
+			<item>gl_Layer</item>
+			<item>gl_ViewportIndex</item>
+
+			<!-- Tesselation Shader Built-In Attributes -->
+			<item>gl_TessCoord</item>
+			<item>gl_PatchVerticesIn</item>
+			<item>gl_TessLevelOuter</item>
+			<item>gl_TessLevelInner</item>
+			<item>gl_MaxPatchVertices</item>
+			<item>gl_in</item>
+			<item>gl_out</item>
+
+			<!-- Built-in Constants -->
+			<item>gl_MaxLights</item>
+			<item>gl_MaxClipPlanes</item>
+			<item>gl_MaxTextureUnits</item>
+			<item>gl_MaxTextureCoords</item>
+			<item>gl_MaxVertexAttributes</item>
+			<item>gl_MaxVertexUniformComponents</item>
+			<item>gl_MaxVaryingFloats</item>
+			<item>gl_MaxVertexTextureImageUnits</item>
+			<item>gl_MaxCombinedTextureImageUnits</item>
+			<item>gl_MaxTextureImageUnits</item>
+			<item>gl_MaxFragmentUniformComponents</item>
+			<item>gl_MaxDrawBuffers</item>
+
+			<!-- Built-in Uniform State -->
+			<item>gl_ModelViewMatrix</item>
+			<item>gl_ProjectionMatrix</item>
+			<item>gl_ModelViewProjectionMatrix</item>
+			<item>gl_TextureMatrix</item>
+			<item>gl_NormalMatrix</item>
+			<item>gl_ModelViewMatrixInverse</item>
+			<item>gl_ProjectionMatrixInverse</item>
+			<item>gl_ModelViewProjectionMatrixInverse</item>
+			<item>gl_TextureMatrixInverse</item>
+			<item>gl_ModelViewMatrixTranspose</item>
+			<item>gl_ProjectionMatrixTranspose</item>
+			<item>gl_ModelViewProjectionMatrixTranspose</item>
+			<item>gl_TextureMatrixTranspose</item>
+			<item>gl_ModelViewMatrixInverseTranspose</item>
+			<item>gl_ProjectionMatrixInverseTranspose</item>
+			<item>gl_ModelViewProjectionMatrixInverseTranspose</item>
+			<item>gl_TextureMatrixInverseTranspose</item>
+			<item>gl_NormScale</item>
+			<item>gl_DepthRangeParameters</item>
+			<item>gl_DepthRange</item>
+			<item>gl_ClipPlane</item>
+			<item>gl_PointParameters</item>
+			<item>gl_Point</item>
+			<item>gl_MaterialParameters</item>
+			<item>gl_FrontMaterial</item>
+			<item>gl_BackMaterial</item>
+			<item>gl_LightSourceParameters</item>
+			<item>gl_LightSource</item>
+			<item>gl_LightModelParameters</item>
+			<item>gl_LightModel</item>
+			<item>gl_LightModelProducts</item>
+			<item>gl_FrontLightModelProduct</item>
+			<item>gl_BackLightModelProduct</item>
+			<item>gl_LightProducts</item>
+			<item>gl_FrontLightProduct</item>
+			<item>gl_BackLightProduct</item>
+			<item>gl_TextureEnvColor</item>
+			<item>gl_EyePlaneS</item>
+			<item>gl_EyePlaneT</item>
+			<item>gl_EyePlaneR</item>
+			<item>gl_EyePlaneQ</item>
+			<item>gl_ObjectPlaneS</item>
+			<item>gl_ObjectPlaneT</item>
+			<item>gl_ObjectPlaneR</item>
+			<item>gl_ObjectPlaneQ</item>
+			<item>gl_FogParameters</item>
+			<item>gl_Fog</item>
+
+			<!-- Varying Variables -->
+			<item>gl_FrontColor</item>
+			<item>gl_BackColor</item>
+			<item>gl_FrontSecondaryColor</item>
+			<item>gl_BackSecondaryColor</item>
+			<item>gl_TexCoord</item>
+			<item>gl_FogFragCoord</item>
+			<item>gl_Color</item>
+			<item>gl_SecondaryColor</item>
+		</list>
+		<contexts>
+			<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+				<keyword attribute="Keyword" String="keywords" context="#stay" />
+				<keyword attribute="Data Type" String="types" context="#stay" />
+				<keyword attribute="Type Qualifier" String="typequal" context="#stay" />
+				<keyword attribute="StdFunction" String="stdlib" context="#stay" />
+				<keyword attribute="StdVariable" String="stdvar" context="#stay" />
+				
+				<Float attribute="Float" context="#stay" />
+				<HlCOct attribute="Octal" context="#stay"/>
+				<HlCHex attribute="Hex" context="#stay"/>
+				<Int attribute="Decimal" context="#stay" />
+				
+				<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+				<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+				<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+				<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+				
+				<DetectChar attribute="Preprocessor" context="Preprocessor" char="#" firstNonSpace="true"/>
+				<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*[(])" />
+				
+				<RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
+				<AnyChar attribute="Symbol" context="#stay" String=".+-/*%&lt;&gt;[]()^|&amp;~=!:;,?&#59;" />
+			</context>
+			<context name="Member" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+				<RegExpr attribute="Function" context="#pop" String="\b[_\w][_\w\d]*(?=[\s]*)" />
+			</context>
+			<context name="Commentar 1" attribute="Comment" lineEndContext="#pop">
+				<keyword attribute="Alert" context="#stay" String="attention" />
+			</context>
+			<context name="Commentar 2" attribute="Comment" lineEndContext="#stay">
+				<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+				<keyword attribute="Alert" context="#stay" String="attention" />
+			</context>
+			<context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop">
+			</context>
+	        </contexts>
+		<itemDatas>
+			<itemData name="Normal Text"    defStyleNum="dsNormal"/>
+			<itemData name="Keyword"        defStyleNum="dsKeyword"/>
+			<itemData name="Function"       defStyleNum="dsFunction" bold="0"/>
+			<itemData name="StdFunction"    defStyleNum="dsBuiltIn" bold="1"/>
+			<itemData name="StdVariable"    defStyleNum="dsVariable" bold="0"/>
+			<itemData name="Data Type"      defStyleNum="dsDataType"/>
+			<itemData name="Type Qualifier" defStyleNum="dsDataType"/>
+			<itemData name="Decimal"        defStyleNum="dsDecVal"/>
+			<itemData name="Octal"          defStyleNum="dsBaseN"/>
+			<itemData name="Hex"            defStyleNum="dsBaseN"/>
+			<itemData name="Float"          defStyleNum="dsFloat"/>
+			<itemData name="Symbol"         defStyleNum="dsNormal"/>
+			<itemData name="Preprocessor"   defStyleNum="dsPreprocessor"/>
+			<itemData name="Comment"        defStyleNum="dsComment"/>
+			<itemData name="Alert"          defStyleNum="dsAlert" />
+		</itemDatas>
+	</highlighting>
+	<general>
+		<comments>
+			<comment name="singleLine" start="//" />
+			<comment name="multiLine" start="/*" end="*/" />
+		</comments>
+		<keywords casesensitive="1" />
+	</general>
+</language>
diff --git a/xml/gnuassembler.xml b/xml/gnuassembler.xml
new file mode 100644
--- /dev/null
+++ b/xml/gnuassembler.xml
@@ -0,0 +1,303 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+
+*************************************************************************
+*                                                                       *
+*               Syntax highlighting for the GNU Assembler               *
+*                   Copyright (C) 2002, John Zaitseff                   *
+*                                                                       *
+*************************************************************************
+
+Updated:  Miquel Sabaté <mikisabate@gmail.com>
+Date:     14th September, 2010
+Version:  1.02
+
+Updated:  Roland Pabel <roland@pabel.name>
+Date:     15th August, 2002
+Version:  1.01
+
+Author:   John Zaitseff <J.Zaitseff@zap.org.au>
+Date:     15th April, 2002
+Version:  1.0
+
+This file contains the XML syntax highlighting description for the GNU
+Assembler, for KATE, the KDE Advanced Editor.  Keywords have been taken
+directly from the GNU Assembler source code (read.c).
+
+Known problems: Floating point highlighting does not work correctly.
+
+This program, including associated files, is free software.  You may
+distribute it and/or modify it under the terms of the GNU General Public
+License as published by the Free Software Foundation; either Version 2 of
+the license, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+
+-->
+
+<language name="GNU Assembler" version="3" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">
+  <highlighting>
+    <list name="keywords">
+      <item>.abort</item>
+      <item>.align</item>
+      <item>.app-file</item>
+      <item>.appline</item>
+      <item>.ascii</item>
+      <item>.asciz</item>
+      <item>.att_syntax</item>
+      <item>.balign</item>
+      <item>.balignl</item>
+      <item>.balignw</item>
+      <item>.byte</item>
+      <item>.code16</item>
+      <item>.code32</item>
+      <item>.comm</item>
+      <item>.common.s</item>
+      <item>.common</item>
+      <item>.data</item>
+      <item>.dc.b</item>
+      <item>.dc.d</item>
+      <item>.dc.l</item>
+      <item>.dc.s</item>
+      <item>.dc.w</item>
+      <item>.dc.x</item>
+      <item>.dc</item>
+      <item>.dcb.b</item>
+      <item>.dcb.d</item>
+      <item>.dcb.l</item>
+      <item>.dcb.s</item>
+      <item>.dcb.w</item>
+      <item>.dcb.x</item>
+      <item>.dcb</item>
+      <item>.debug</item>
+      <item>.def</item>
+      <item>.desc</item>
+      <item>.dim</item>
+      <item>.double</item>
+      <item>.ds.b</item>
+      <item>.ds.d</item>
+      <item>.ds.l</item>
+      <item>.ds.p</item>
+      <item>.ds.s</item>
+      <item>.ds.w</item>
+      <item>.ds.x</item>
+      <item>.ds</item>
+      <item>.dsect</item>
+      <item>.eject</item>
+      <item>.else</item>
+      <item>.elsec</item>
+      <item>.elseif</item>
+      <item>.end</item>
+      <item>.endc</item>
+      <item>.endef</item>
+      <item>.endfunc</item>
+      <item>.endif</item>
+      <item>.endm</item>
+      <item>.endr</item>
+      <item>.equ</item>
+      <item>.equiv</item>
+      <item>.err</item>
+      <item>.exitm</item>
+      <item>.extend</item>
+      <item>.extern</item>
+      <item>.fail</item>
+      <item>.file</item>
+      <item>.fill</item>
+      <item>.float</item>
+      <item>.format</item>
+      <item>.func</item>
+      <item>.global</item>
+      <item>.globl</item>
+      <item>.hidden</item>
+      <item>.hword</item>
+      <item>.ident</item>
+      <item>.if</item>
+      <item>.ifc</item>
+      <item>.ifdef</item>
+      <item>.ifeq</item>
+      <item>.ifeqs</item>
+      <item>.ifge</item>
+      <item>.ifgt</item>
+      <item>.ifle</item>
+      <item>.iflt</item>
+      <item>.ifnc</item>
+      <item>.ifndef</item>
+      <item>.ifne</item>
+      <item>.ifnes</item>
+      <item>.ifnotdef</item>
+      <item>.include</item>
+      <item>.int</item>
+      <item>.intel_syntax</item>
+      <item>.internal</item>
+      <item>.irep</item>
+      <item>.irepc</item>
+      <item>.irp</item>
+      <item>.irpc</item>
+      <item>.lcomm</item>
+      <item>.lflags</item>
+      <item>.line</item>
+      <item>.linkonce</item>
+      <item>.list</item>
+      <item>.llen</item>
+      <item>.ln</item>
+      <item>.long</item>
+      <item>.lsym</item>
+      <item>.macro</item>
+      <item>.mexit</item>
+      <item>.name</item>
+      <item>.noformat</item>
+      <item>.nolist</item>
+      <item>.nopage</item>
+      <item>noprefix</item>
+      <item>.octa</item>
+      <item>.offset</item>
+      <item>.org</item>
+      <item>.p2align</item>
+      <item>.p2alignl</item>
+      <item>.p2alignw</item>
+      <item>.page</item>
+      <item>.plen</item>
+      <item>.popsection</item>
+      <item>.previous</item>
+      <item>.print</item>
+      <item>.protected</item>
+      <item>.psize</item>
+      <item>.purgem</item>
+      <item>.pushsection</item>
+      <item>.quad</item>
+      <item>.rodata</item>
+      <item>.rep</item>
+      <item>.rept</item>
+      <item>.rva</item>
+      <item>.sbttl</item>
+      <item>.scl</item>
+      <item>.sect.s</item>
+      <item>.sect</item>
+      <item>.section.s</item>
+      <item>.section</item>
+      <item>.set</item>
+      <item>.short</item>
+      <item>.single</item>
+      <item>.size</item>
+      <item>.skip</item>
+      <item>.sleb128</item>
+      <item>.space</item>
+      <item>.spc</item>
+      <item>.stabd</item>
+      <item>.stabn</item>
+      <item>.stabs</item>
+      <item>.string</item>
+      <item>.struct</item>
+      <item>.subsection</item>
+      <item>.symver</item>
+      <item>.tag</item>
+      <item>.text</item>
+      <item>.title</item>
+      <item>.ttl</item>
+      <item>.type</item>
+      <item>.uleb128</item>
+      <item>.use</item>
+      <item>.val</item>
+      <item>.version</item>
+      <item>.vtable_entry</item>
+      <item>.vtable_inherit</item>
+      <item>.weak</item>
+      <item>.word</item>
+      <item>.xcom</item>
+      <item>.xdef</item>
+      <item>.xref</item>
+      <item>.xstabs</item>
+      <item>.zero</item>
+      <!-- Directives specific to ARM -->
+      <item>.arm</item>
+      <item>.bss</item>
+      <item>.code</item>
+      <item>.even</item>
+      <item>.force_thumb</item>
+      <item>.ldouble</item>
+      <item>.loc</item>
+      <item>.ltorg</item>
+      <item>.packed</item>
+      <item>.pool</item>
+      <item>.req</item>
+      <item>.thumb</item>
+      <item>.thumb_func</item>
+      <item>.thumb_set</item>
+    </list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr      attribute="Label" context="#stay" String="[_\w\d-]*\s*:" />
+        <keyword      attribute="Keyword" context="#stay" String="keywords"/>
+        <HlCOct       attribute="Octal" context="#stay" />
+        <HlCHex       attribute="Hex" context="#stay" />
+        <RegExpr      attribute="Binary" context="#stay" String="0[bB][01]+" />
+        <Int          attribute="Decimal" context="#stay" />
+        <RegExpr      attribute="Float" context="#stay" String="0[fFeEdD][-+]?[0-9]*\.?[0-9]*[eE]?[-+]?[0-9]+" />
+        <RegExpr      attribute="Normal Text" context="#stay" String="[A-Za-z_.$][A-Za-z0-9_.$]*" />
+        <HlCChar      attribute="Char" context="#stay" />
+        <RegExpr      attribute="Char" context="#stay" String="'(\\x[0-9a-fA-F][0-9a-fA-F]?|\\[0-7]?[0-7]?[0-7]?|\\.|.)" />
+        <DetectChar   attribute="String" context="String" char="&quot;" />
+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
+        <RegExpr      attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
+        <RegExpr      attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" firstNonSpace="true" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="*" />
+        <AnyChar      attribute="Comment" context="Commentar 2" String="@;#" />
+        <AnyChar      attribute="Symbol" context="#stay" String="!#%&amp;*()+,-&lt;=&gt;?/:[]^{|}~" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 1">
+        <IncludeRules context="##Alerts" />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 2" >
+        <IncludeRules context="##Alerts" />
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue  attribute="String" context="Some Context" />
+        <HlCStringChar attribute="String Char" context="#stay" />
+        <DetectChar    attribute="String" context="#pop" char="&quot;" />
+      </context>
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor" />
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Some Context" />
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"   />
+      <itemData name="Label"        defStyleNum="dsKeyword"  />
+      <itemData name="Keyword"      defStyleNum="dsKeyword"  />
+      <itemData name="Decimal"      defStyleNum="dsDecVal"   />
+      <itemData name="Octal"        defStyleNum="dsBaseN"    />
+      <itemData name="Hex"          defStyleNum="dsBaseN"    />
+      <itemData name="Binary"       defStyleNum="dsBaseN"    />
+      <itemData name="Float"        defStyleNum="dsFloat"    />
+      <itemData name="Char"         defStyleNum="dsChar"     />
+      <itemData name="String"       defStyleNum="dsString"   />
+      <itemData name="String Char"  defStyleNum="dsSpecialChar" />
+      <itemData name="Symbol"       defStyleNum="dsNormal"   />
+      <itemData name="Comment"      defStyleNum="dsComment"  />
+      <itemData name="Preprocessor" defStyleNum="dsPreprocessor" />
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <comments>
+      <!--<comment name="singleLine" start=";" />
+      <comment name="singleLine" start="@" />
+      <comment name="singleLine" start="#" />-->
+      <comment name="multiLine"  start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="_.$" />
+  </general>
+</language>
diff --git a/xml/go.xml b/xml/go.xml
new file mode 100644
--- /dev/null
+++ b/xml/go.xml
@@ -0,0 +1,176 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<!--
+This file is part of KDE's Kate project
+
+GO.XML supports syntax highlighting for the Go programming language
+under Kate. Go is a compiled, garbage-collected, concurrent programming
+language developed by Google Inc.
+
+Copyright (C) 2010, Miquel Sabaté <mikisabate@gmail.com>
+
+This program, including associated files, is free software.  You may
+distribute it and/or modify it under the terms of the GNU General Public
+License as published by the Free Software Foundation; either Version 2 of
+the license, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-->
+
+
+<language name="Go" version="3" kateversion="5.0" section="Sources" indenter="cstyle" extensions="*.go" author="Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">
+    <highlighting>
+    <list name="keywords">
+<!-- Keywords have been taken from The Go Programming Language Specification -> Keywords section -->
+      <item>break</item>
+      <item>case</item>
+      <item>chan</item>
+      <item>const</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>defer</item>
+      <item>else</item>
+      <item>fallthrough</item>
+      <item>for</item>
+      <item>func</item>
+      <item>go</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>import</item>
+      <item>interface</item>
+      <item>map</item>
+      <item>package</item>
+      <item>range</item>
+      <item>return</item>
+      <item>select</item>
+      <item>struct</item>
+      <item>switch</item>
+      <item>type</item>
+      <item>var</item>
+    </list>
+    <list name="types">
+      <item>bool</item>
+      <item>byte</item>
+      <item>complex64</item>
+      <item>complex128</item>
+      <item>error</item>
+      <item>float32</item>
+      <item>float64</item>
+      <item>int</item>
+      <item>int8</item>
+      <item>int16</item>
+      <item>int32</item>
+      <item>int64</item>
+      <item>rune</item>
+      <item>string</item>
+      <item>uint</item>
+      <item>uintptr</item>
+      <item>uint8</item>
+      <item>uint16</item>
+      <item>uint32</item>
+      <item>uint64</item>
+    </list>
+    <list name="builtin">
+      <item>append</item>
+      <item>cap</item>
+      <item>close</item>
+      <item>complex</item>
+      <item>copy</item>
+      <item>delete</item>
+      <item>imag</item>
+      <item>len</item>
+      <item>make</item>
+      <item>new</item>
+      <item>panic</item>
+      <item>print</item>
+      <item>println</item>
+      <item>real</item>
+      <item>recover</item>
+    </list>
+    <list name="predeclared">
+      <item>false</item>
+      <item>nil</item>
+      <item>true</item>
+      <item>iota</item>
+    </list>
+    <contexts>
+      <context name="normal" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Predeclared Identifier" context="#stay" String="predeclared"  />
+        <keyword attribute="Data Type" context="#stay" String="types"       />
+        <keyword attribute="Builtin Function" context="#stay" String="builtin"  />
+        <DetectIdentifier />
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"   />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"   />
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*"   />
+        <Int attribute="Decimal" context="#stay" />
+        <Float attribute="Float" context="#stay" />
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <HlCChar attribute="Char" context="#stay" />
+        <DetectChar attribute="String" context="String" char="&quot;" />
+        <DetectChar attribute="String" context="Multiline String" char="`"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
+        <LineContinue attribute="Comment" context="#stay"/>
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue  attribute="String" context="#stay" />
+        <HlCStringChar attribute="String Char" context="#stay" />
+        <DetectChar    attribute="String" context="#pop" char="&quot;" />
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="Multiline String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="`"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"   spellChecking="false"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword"  spellChecking="false"/>
+      <itemData name="Predeclared Identifier" defStyleNum="dsOthers"   spellChecking="false" />
+      <itemData name="Builtin Function"       defStyleNum="dsBuiltIn" spellChecking="false" />
+      <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="String Char"  defStyleNum="dsChar"    />
+      <itemData name="String"       defStyleNum="dsString"  />
+      <itemData name="Comment"      defStyleNum="dsComment" />
+      <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Char"         defStyleNum="dsChar"   spellChecking="false"/>
+      <itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>
+    </itemDatas>
+    </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" region="Comment"/>
+    </comments>
+    <keywords casesensitive="1" additionalDeliminator="'&quot;" />
+  </general>
+</language>
diff --git a/xml/hamlet.xml b/xml/hamlet.xml
new file mode 100644
--- /dev/null
+++ b/xml/hamlet.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+  <!-- names must start with a letter, ideogram or underscore. \w matches any
+  word character *or* a number, hence the lookahead -->
+  <!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*">
+]>
+<language name="Hamlet" version="3" kateversion="2.4" section="Markup" extensions="*.hamlet" author="Bastian Holst (bastianholst@gmx.de)" license="LGPL" indenter="haskell">
+<highlighting>
+<contexts>
+  <context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
+    <RegExpr attribute="Element" context="element" String="&lt;&name;\b" />
+    <!-- A widget -->
+    <StringDetect attribute="Code" context="Code" String="^{"/>
+    <!-- Something implementing ToHtml -->
+    <StringDetect attribute="Code" context="Code" String="#{"/>
+    <!-- An URL -->
+    <StringDetect attribute="Code" context="Code" String="@{"/>
+    <!-- A Message -->
+    <StringDetect attribute="Code" context="Code" String="_{"/>
+    <DetectChar attribute="Logic" context="Logic" firstNonSpace="true" char="$"/>
+  </context>
+
+  <context attribute="Element" lineEndContext="#stay" name="element" >
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
+    <DetectChar attribute="Element" context="#pop" char="&gt;" />
+    <RegExpr attribute="Attribute" context="Attribute" String="&name;" column="0"/>
+    <RegExpr attribute="Attribute" context="Attribute" String="\s+&name;" />
+    <RegExpr attribute="Class" context="#stay" String="\.&name;"/>
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Logic" lineEndContext="#pop" attribute="Normal Text">
+    <WordDetect attribute="Logic" context="Codeline" String="if"/>
+    <WordDetect attribute="Logic" context="Codeline" String="elseif"/>
+    <WordDetect attribute="Logic" context="Assignment" String="forall"/>
+    <WordDetect attribute="Logic" context="Assignment" String="maybe"/>
+    <WordDetect attribute="Logic" context="#stay" String="else"/>
+    <WordDetect attribute="Logic" context="#stay" String="nothing"/>
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Code" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Code" context="#pop" char="}"/>
+    <IncludeRules context="##Haskell" />
+  </context>
+
+  <context name="Codeline" attribute="Normal Text" lineEndContext="#pop">
+    <IncludeRules context="##Haskell" />
+  </context>
+
+  <context name="Assignment" attribute="Normal Text" lineEndContext="#pop">
+    <StringDetect attribute="Assignment" context="Codeline" String="&lt;-"/>
+    <IncludeRules context="##Haskell" />
+  </context>
+
+  <context name="Attribute" attribute="Attribute" lineEndContext="#stay">
+    <DetectChar attribute="Attribute" context="Value" char="=" />
+    <DetectChar attribute="Element" context="#pop#pop" char="&gt;"/>
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context attribute="Value" lineEndContext="#stay" name="Value">
+    <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
+    <StringDetect attribute="Code" context="Value Code" String="@{"/>
+    <StringDetect attribute="Code" context="Value Code" String="#{"/>
+    <RegExpr attribute="Value" context="#pop#pop" String="[^&quot;&apos;&gt;\s]+"/>
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Value DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop#pop" char="&quot;" />
+  </context>
+
+  <context name="Value SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop#pop" char="&apos;" />
+  </context>
+  
+  <context name="Value Code" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Code" context="#pop#pop#pop" char="}"/>
+    <IncludeRules context="##Haskell" />
+  </context>
+
+</contexts>
+<itemDatas>
+  <itemData name="Normal Text" defStyleNum="dsNormal" />
+  <itemData name="Element" defStyleNum="dsKeyword" />
+  <itemData name="Attribute" defStyleNum="dsOthers" spellChecking="false" />
+  <itemData name="Class" defStyleNum="dsString" spellChecking="false" />
+  <itemData name="Value" defStyleNum="dsString" spellChecking="false" />
+  <itemData name="Logic" defStyleNum="dsKeyword" spellChecking="false" />
+  <itemData name="Code"  defStyleNum="dsKeyword" spellChecking="false" />
+  <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
+  <itemData name="Assignment" defStyleNum="dsOthers"  spellChecking="false" />
+</itemDatas>
+</highlighting> 
+<general>
+  <comments>
+    <comment name="singleLine" start="#"/>
+  </comments>
+  <keywords casesensitive="1"/>
+</general> 
+</language>
diff --git a/xml/haskell.xml b/xml/haskell.xml
new file mode 100644
--- /dev/null
+++ b/xml/haskell.xml
@@ -0,0 +1,647 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Haskell" version="9" kateversion="3.4" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">
+  <highlighting>
+  <list name="keywords">
+    <item>case</item>
+    <item>class</item>
+    <item>data</item>
+    <item>deriving</item>
+    <item>do</item>
+    <item>else</item>
+    <item>if</item>
+    <item>in</item>
+    <item>infixl</item>
+    <item>infixr</item>
+    <item>instance</item>
+    <item>let</item>
+    <item>module</item>
+    <item>newtype</item>
+    <item>of</item>
+    <item>primitive</item>
+    <item>then</item>
+    <item>type</item>
+    <item>where</item>
+  </list>
+  <list name="prelude function">
+    <item>FilePath</item>
+    <item>IOError</item>
+    <item>abs</item>
+    <item>acos</item>
+    <item>acosh</item>
+    <item>all</item>
+    <item>and</item>
+    <item>any</item>
+    <item>appendFile</item>
+    <item>approxRational</item>
+    <item>asTypeOf</item>
+    <item>asin</item>
+    <item>asinh</item>
+    <item>atan</item>
+    <item>atan2</item>
+    <item>atanh</item>
+    <item>basicIORun</item>
+    <item>break</item>
+    <item>catch</item>
+    <item>ceiling</item>
+    <item>chr</item>
+    <item>compare</item>
+    <item>concat</item>
+    <item>concatMap</item>
+    <item>const</item>
+    <item>cos</item>
+    <item>cosh</item>
+    <item>curry</item>
+    <item>cycle</item>
+    <item>decodeFloat</item>
+    <item>denominator</item>
+    <item>digitToInt</item>
+    <item>div</item>
+    <item>divMod</item>
+    <item>drop</item>
+    <item>dropWhile</item>
+    <item>either</item>
+    <item>elem</item>
+    <item>encodeFloat</item>
+    <item>enumFrom</item>
+    <item>enumFromThen</item>
+    <item>enumFromThenTo</item>
+    <item>enumFromTo</item>
+    <item>error</item>
+    <item>even</item>
+    <item>exp</item>
+    <item>exponent</item>
+    <item>fail</item>
+    <item>filter</item>
+    <item>flip</item>
+    <item>floatDigits</item>
+    <item>floatRadix</item>
+    <item>floatRange</item>
+    <item>floor</item>
+    <item>fmap</item>
+    <item>foldl</item>
+    <item>foldl1</item>
+    <item>foldMap</item>
+    <item>foldr</item>
+    <item>foldr1</item>
+    <item>fromDouble</item>
+    <item>fromEnum</item>
+    <item>fromInt</item>
+    <item>fromInteger</item>
+    <item>fromIntegral</item>
+    <item>fromRational</item>
+    <item>fst</item>
+    <item>gcd</item>
+    <item>getChar</item>
+    <item>getContents</item>
+    <item>getLine</item>
+    <item>group</item>
+    <item>head</item>
+    <item>id</item>
+    <item>inRange</item>
+    <item>index</item>
+    <item>init</item>
+    <item>intToDigit</item>
+    <item>interact</item>
+    <item>ioError</item>
+    <item>isAlpha</item>
+    <item>isAlphaNum</item>
+    <item>isAscii</item>
+    <item>isControl</item>
+    <item>isDenormalized</item>
+    <item>isDigit</item>
+    <item>isHexDigit</item>
+    <item>isIEEE</item>
+    <item>isInfinite</item>
+    <item>isLower</item>
+    <item>isNaN</item>
+    <item>isNegativeZero</item>
+    <item>isOctDigit</item>
+    <item>isPrint</item>
+    <item>isSpace</item>
+    <item>isUpper</item>
+    <item>iterate</item>
+    <item>last</item>
+    <item>lcm</item>
+    <item>length</item>
+    <item>lex</item>
+    <item>lexDigits</item>
+    <item>lexLitChar</item>
+    <item>lines</item>
+    <item>log</item>
+    <item>logBase</item>
+    <item>lookup</item>
+    <item>map</item>
+    <item>mappend</item>
+    <item>mapM</item>
+    <item>mapM_</item>
+    <item>max</item>
+    <item>maxBound</item>
+    <item>maximum</item>
+    <item>maybe</item>
+    <item>mconcat</item>
+    <item>mempty</item>
+    <item>min</item>
+    <item>minBound</item>
+    <item>minimum</item>
+    <item>mod</item>
+    <item>negate</item>
+    <item>not</item>
+    <item>notElem</item>
+    <item>null</item>
+    <item>numerator</item>
+    <item>odd</item>
+    <item>or</item>
+    <item>ord</item>
+    <item>otherwise</item>
+    <item>pack</item>
+    <item>pi</item>
+    <item>pred</item>
+    <item>primExitWith</item>
+    <item>print</item>
+    <item>product</item>
+    <item>properFraction</item>
+    <item>pure</item>
+    <item>putChar</item>
+    <item>putStr</item>
+    <item>putStrLn</item>
+    <item>quot</item>
+    <item>quotRem</item>
+    <item>range</item>
+    <item>rangeSize</item>
+    <item>read</item>
+    <item>readDec</item>
+    <item>readFile</item>
+    <item>readFloat</item>
+    <item>readHex</item>
+    <item>readIO</item>
+    <item>readInt</item>
+    <item>readList</item>
+    <item>readLitChar</item>
+    <item>readLn</item>
+    <item>readOct</item>
+    <item>readParen</item>
+    <item>readSigned</item>
+    <item>reads</item>
+    <item>readsPrec</item>
+    <item>realToFrac</item>
+    <item>recip</item>
+    <item>rem</item>
+    <item>repeat</item>
+    <item>replicate</item>
+    <item>return</item>
+    <item>reverse</item>
+    <item>round</item>
+    <item>scaleFloat</item>
+    <item>scanl</item>
+    <item>scanl1</item>
+    <item>scanr</item>
+    <item>scanr1</item>
+    <item>seq</item>
+    <item>sequence</item>
+    <item>sequenceA</item>
+    <item>sequence_</item>
+    <item>show</item>
+    <item>showChar</item>
+    <item>showInt</item>
+    <item>showList</item>
+    <item>showLitChar</item>
+    <item>showParen</item>
+    <item>showSigned</item>
+    <item>showString</item>
+    <item>shows</item>
+    <item>showsPrec</item>
+    <item>significand</item>
+    <item>signum</item>
+    <item>sin</item>
+    <item>sinh</item>
+    <item>snd</item>
+    <item>sort</item>
+    <item>span</item>
+    <item>splitAt</item>
+    <item>sqrt</item>
+    <item>subtract</item>
+    <item>succ</item>
+    <item>sum</item>
+    <item>tail</item>
+    <item>take</item>
+    <item>takeWhile</item>
+    <item>tan</item>
+    <item>tanh</item>
+    <item>threadToIOResult</item>
+    <item>toEnum</item>
+    <item>toInt</item>
+    <item>toInteger</item>
+    <item>toLower</item>
+    <item>toRational</item>
+    <item>toUpper</item>
+    <item>traverse</item>
+    <item>truncate</item>
+    <item>uncurry</item>
+    <item>undefined</item>
+    <item>unlines</item>
+    <item>until</item>
+    <item>unwords</item>
+    <item>unzip</item>
+    <item>unzip3</item>
+    <item>userError</item>
+    <item>words</item>
+    <item>writeFile</item>
+    <item>zip</item>
+    <item>zip3</item>
+    <item>zipWith</item>
+    <item>zipWith3</item>
+  </list>
+  <list name="prelude class">
+    <item>Applicative</item>
+    <item>Bounded</item>
+    <item>Enum</item>
+    <item>Eq</item>
+    <item>Floating</item>
+    <item>Foldable</item>
+    <item>Fractional</item>
+    <item>Functor</item>
+    <item>Integral</item>
+    <item>Ix</item>
+    <item>Monad</item>
+    <item>Monoid</item>
+    <item>Num</item>
+    <item>Ord</item>
+    <item>Read</item>
+    <item>Real</item>
+    <item>RealFloat</item>
+    <item>RealFrac</item>
+    <item>Show</item>
+    <item>Traversable</item>
+  </list>
+  <list name="prelude type">
+    <item>Bool</item>
+    <item>ByteString</item>
+    <item>Char</item>
+    <item>Double</item>
+    <item>Either</item>
+    <item>FilePath</item>
+    <item>Float</item>
+    <item>Int</item>
+    <item>Integer</item>
+    <item>IO</item>
+    <item>IOError</item>
+    <item>Maybe</item>
+    <item>Ordering</item>
+    <item>Ratio</item>
+    <item>Rational</item>
+    <item>ReadS</item>
+    <item>ShowS</item>
+    <item>String</item>
+    <item>Word</item>
+  </list>
+  <list name="prelude data">
+    <item>False</item>
+    <item>True</item>
+    <item>Left</item>
+    <item>Right</item>
+    <item>Just</item>
+    <item>Nothing</item>
+    <item>EQ</item>
+    <item>LT</item>
+    <item>GT</item>
+  </list>
+  <list name="cpp_keywords">
+    <item>defined</item>
+    <item>if</item>
+    <item>ifdef</item>
+    <item>ifndef</item>
+    <item>include</item>
+    <item>undef</item>
+  </list>
+  <list name="c2hs_keywords">
+    <item>qualified</item>
+    <item>lib</item>
+    <item>prefix</item>
+    <item>as</item>
+    <item>with</item>
+    <item>call</item>
+    <item>pure</item>
+    <item>unsafe</item>
+    <item>get</item>
+    <item>set</item>
+    <item>foreign</item>
+    <item>stable</item>
+    <item>nocode</item>
+  </list>
+  <list name="import_keywords">
+    <item>as</item>
+    <item>qualified</item>
+    <item>hiding</item>
+  </list>
+  <list name="language_pragmas">
+    <item>AllowAmbiguousTypes</item>
+    <item>ApplicativeDo</item>
+    <item>Arrows</item>
+    <item>AutoDeriveTypeable</item>
+    <item>BangPatterns</item>
+    <item>BinaryLiterals</item>
+    <item>CApiFFI</item>
+    <item>CPP</item>
+    <item>ConstrainedClassMethods</item>
+    <item>ConstraintKinds</item>
+    <item>DataKinds</item>
+    <item>DatatypeContexts</item>
+    <item>DefaultSignatures</item>
+    <item>DeriveAnyClass</item>
+    <item>DeriveDataTypeable</item>
+    <item>DeriveFoldable</item>
+    <item>DeriveFunctor</item>
+    <item>DeriveGeneric</item>
+    <item>DeriveLift</item>
+    <item>DeriveTraversable</item>
+    <item>DisambiguateRecordFields</item>
+    <item>DoAndIfThenElse</item>
+    <item>DoRec</item>
+    <item>DuplicateRecordFields</item>
+    <item>EmptyCase</item>
+    <item>EmptyDataDecls</item>
+    <item>ExistentialQuantification</item>
+    <item>ExplicitForAll</item>
+    <item>ExplicitNamespaces</item>
+    <item>ExtendedDefaultRules</item>
+    <item>ExtensibleRecords</item>
+    <item>FlexibleContexts</item>
+    <item>FlexibleInstances</item>
+    <item>ForeignFunctionInterface</item>
+    <item>FunctionalDependencies</item>
+    <item>GADTSyntax</item>
+    <item>GADTs</item>
+    <item>GHCForeignImportPrim</item>
+    <item>GeneralizedNewtypeDeriving</item>
+    <item>Generics</item>
+    <item>HereDocuments</item>
+    <item>ImplicitParams</item>
+    <item>ImplicitPrelude</item>
+    <item>ImpredicativeTypes</item>
+    <item>IncoherentInstances</item>
+    <item>InstanceSigs</item>
+    <item>InterruptibleFFI</item>
+    <item>JavaScriptFFI</item>
+    <item>KindSignatures</item>
+    <item>LambdaCase</item>
+    <item>LiberalTypeSynonyms</item>
+    <item>MagicHash</item>
+    <item>MonadComprehensions</item>
+    <item>MonadFailDesugaring</item>
+    <item>MonoLocalBinds</item>
+    <item>MonoPatBinds</item>
+    <item>MonomorphismRestriction</item>
+    <item>MultiParamTypeClasses</item>
+    <item>MultiWayIf</item>
+    <item>NPlusKPatterns</item>
+    <item>NamedFieldPuns</item>
+    <item>NamedWildCards</item>
+    <item>NegativeLiterals</item>
+    <item>NewQualifiedOperators</item>
+    <item>NondecreasingIndentation</item>
+    <item>NullaryTypeClasses</item>
+    <item>NumDecimals</item>
+    <item>OverlappingInstances</item>
+    <item>OverloadedLabels</item>
+    <item>OverloadedLists</item>
+    <item>OverloadedStrings</item>
+    <item>PackageImports</item>
+    <item>ParallelArrays</item>
+    <item>ParallelListComp</item>
+    <item>PartialTypeSignatures</item>
+    <item>PatternGuards</item>
+    <item>PatternSignatures</item>
+    <item>PatternSynonyms</item>
+    <item>PolyKinds</item>
+    <item>PolymorphicComponents</item>
+    <item>PostfixOperators</item>
+    <item>QuasiQuotes</item>
+    <item>Rank2Types</item>
+    <item>RankNTypes</item>
+    <item>RebindableSyntax</item>
+    <item>RecordPuns</item>
+    <item>RecordWildCards</item>
+    <item>RecursiveDo</item>
+    <item>RegularPatterns</item>
+    <item>RelaxedPolyRec</item>
+    <item>RestrictedTypeSynonyms</item>
+    <item>RoleAnnotations</item>
+    <item>Safe</item>
+    <item>SafeImports</item>
+    <item>ScopedTypeVariables</item>
+    <item>StandaloneDeriving</item>
+    <item>StaticPointers</item>
+    <item>Strict</item>
+    <item>StrictData</item>
+    <item>TemplateHaskell</item>
+    <item>TemplateHaskellQuotes</item>
+    <item>TraditionalRecordSyntax</item>
+    <item>TransformListComp</item>
+    <item>Trustworthy</item>
+    <item>TupleSections</item>
+    <item>TypeApplications</item>
+    <item>TypeFamilies</item>
+    <item>TypeInType</item>
+    <item>TypeOperators</item>
+    <item>TypeSynonymInstances</item>
+    <item>UnboxedTuples</item>
+    <item>UndecidableInstances</item>
+    <item>UndecidableSuperClasses</item>
+    <item>UnicodeSyntax</item>
+    <item>UnliftedFFITypes</item>
+    <item>Unsafe</item>
+    <item>ViewPatterns</item>
+    <item>XmlSyntax</item>
+  </list>
+  <contexts>
+    <context attribute="Normal" lineEndContext="#stay" name="code">
+      <StringDetect attribute="Pragma"  context="pragma" String="{-#"/>
+      <StringDetect attribute="Comment" context="#stay" String="{--}"/>
+      <RegExpr attribute="Comment" context="comments" String="\{-[^#]?" />
+      <RegExpr attribute="Comment" context="comment"  String="--[\-]*([^!#\$%&amp;\*\+\./&lt;=&gt;\?@&#92;\^\|\-~:]|$)" />
+      <WordDetect attribute="Keyword" context="import"   String="import" />
+      <Detect2Chars attribute="C2HS Directive" context="c2hs directive" char="{" char1="#"/>
+      <DetectChar attribute="C Preprocessor" context="C Preprocessor" char="#" column="0"/>
+
+      <keyword attribute="Keyword"          context="#stay" String="keywords" />
+      <keyword attribute="Function Prelude" context="#stay" String="prelude function" />
+      <keyword attribute="Type Prelude"     context="#stay" String="prelude type" />
+      <keyword attribute="Data Prelude"     context="#stay" String="prelude data" />
+      <keyword attribute="Class Prelude"    context="#stay" String="prelude class" />
+
+      <RegExpr attribute="Special"          context="#stay" String="(::|=&gt;|\-&gt;|&lt;\-)" />
+      <AnyChar attribute="Special"          context="#stay" String="∷⇒→←∀∃" />
+      <RegExpr attribute="Signature"        context="#stay" String="\s*[a-z_][a-zA-Z0-9_']*\s*(?=::([^\-!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:]|$))" />
+      <RegExpr attribute="Signature"        context="#stay" String="\s*(\([\-!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:]*\))*\s*(?=::[^\-!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:])" />
+      <RegExpr attribute="Function"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[a-z_][a-zA-Z0-9_']*" />
+      <RegExpr attribute="Operator"         context="#stay" String="([A-Z][a-zA-Z0-0_']*\.)*[\-!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:]+" />
+      <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
+
+      <RegExpr    attribute="Float"   context="#stay" String ="\d+\.\d+([Ee][+-]?\d+)?|\d+[Ee][+-]?\d+"/>
+      <RegExpr    attribute="Octal"   context="#stay" String="0[Oo][0-7]+"/>
+      <RegExpr    attribute="Hex"     context="#stay" String="0[Xx][0-9A-Fa-f]+"/>
+      <Int        attribute="Decimal" context="#stay" />
+      <DetectChar attribute="Char"    context="char" char="'" />
+      <DetectChar attribute="String"  context="string" char="&quot;" />
+
+      <DetectChar attribute="Function Infix" context="infix" char="`"/>
+      <Detect2Chars attribute="EnumFromTo" context="#stay" char ="." char1="." />
+      <AnyChar      attribute="EnumFromTo" context="#stay" String="‥" />
+
+      <RegExpr attribute="Normal" context="Hamlet" String="\[[wxs]?hamlet\|" />
+      <RegExpr attribute="Normal" context="Julius" String="\[julius\|" />
+      <RegExpr attribute="Normal" context="QuasiQuote" String="\[[a-zA-Z_'](\w|[_'])*\|" />
+    </context>
+    <context attribute="Normal" lineEndContext="#stay" name="QuasiQuote">
+      <Detect2Chars attribute="Normal" context="#pop" char="|" char1="]"/>
+    </context>
+    <context attribute="Normal" lineEndContext="#stay" name="Julius">
+      <IncludeRules context="QuasiQuote"/>
+      <IncludeRules context="Normal##JavaScript" />
+    </context>
+    <context attribute="Normal" lineEndContext="#stay" name="Hamlet">
+      <IncludeRules context="QuasiQuote"/>
+      <IncludeRules context="##Hamlet" />
+    </context>
+    <context attribute="Pragma" lineEndContext="#stay" name="pragma">
+      <keyword attribute="Pragma" context="#stay" String="language_pragmas" />
+      <StringDetect attribute="Pragma"  context="#pop" String="#-}"/>
+    </context>
+    <context attribute="Comment" lineEndContext="#pop" name="comment">
+      <IncludeRules context="Haddock" />
+    </context>
+    <context attribute="Comment" lineEndContext="#stay" name="comments">
+      <Detect2Chars attribute="Comment" context="comment" char="{" char1="-" />
+      <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" />
+      <IncludeRules context="Haddock" />
+    </context>
+    <context attribute="Char" lineEndContext="#pop" name="char">
+      <RegExpr attribute="Char" context="#stay" String="\\." />
+      <DetectChar attribute="Char" context="#pop" char="'" />
+    </context>
+    <context attribute="String" lineEndContext="#stay" name="string">
+      <RegExpr attribute="String" context="#stay" String="\\." />
+      <DetectChar attribute="String" context="#pop" char="&quot;" />
+    </context>
+    <context attribute="Function Infix" lineEndContext="#stay" name="infix">
+      <DetectChar attribute="Function Infix" context="#pop" char="`"/>
+    </context>
+    <context attribute="Normal" lineEndContext="#pop" name="import">
+      <keyword attribute="Keyword"          context="#stay" String="import_keywords" />
+      <RegExpr attribute="Function"         context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[a-z][a-zA-Z0-9_']*" />
+      <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
+
+      <RegExpr attribute="Pragma"  context="#stay" String="\{-#.*#-\}"/>
+      <RegExpr attribute="Comment" context="comments" String="\{-[^#]?" />
+      <RegExpr attribute="Comment" context="comment"  String="--[^\-!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:].*$" />
+    </context>
+
+    <!-- Haddock -->
+    <context attribute="Comment" lineEndContext="#stay" name="Haddock">
+      <RegExpr attribute="Haddock Hyperlink" context="#stay" String="'([A-Z][a-zA-Z0-9_']*\.)*[a-z_][a-zA-Z0-9_']*'" />
+      <RegExpr attribute="Haddock Module" context="#stay" String="&quot;([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*&quot;" />
+      <RegExpr attribute="Haddock Emphasis" context="Start Haddock Emphasis" lookAhead="true" String="/.*/" />
+      <RegExpr attribute="Haddock Bold" context="Start Haddock Bold" lookAhead="true" String="__.*__" />
+    </context>
+    <context attribute="Haddock Emphasis" lineEndContext="#pop" name="Start Haddock Emphasis">
+      <DetectChar attribute="Haddock Emphasis" context="Haddock Emphasis" char="/" />
+    </context>
+    <context attribute="Haddock Emphasis" lineEndContext="#pop" name="Haddock Emphasis">
+      <DetectChar attribute="Haddock Emphasis" context="#pop#pop" char="/" />
+      <IncludeRules context="Haddock"/>
+    </context>
+    <context attribute="Haddock Bold" lineEndContext="#pop" name="Start Haddock Bold">
+      <Detect2Chars attribute="Haddock Bold" context="Haddock Bold" char="_" char1="_" />
+    </context>
+    <context attribute="Haddock Bold" lineEndContext="#pop" name="Haddock Bold">
+      <Detect2Chars attribute="Haddock Bold" context="#pop#pop" char="_" char1="_" />
+      <IncludeRules context="Haddock"/>
+    </context>
+
+    <!-- C Preprocessor -->
+    <context attribute="C Preprocessor" lineEndContext="#pop" name="C Preprocessor">
+      <keyword attribute="C Preprocessor Keyword" context="#stay" String="cpp_keywords" />
+      <RegExpr                          context="#stay" String=".*>$" />
+    </context>
+
+    <!-- C2Hs -->
+    <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs directive">
+      <Detect2Chars attribute="C2HS Directive" context="#pop" char="#" char1="}" />
+      <keyword attribute="Keyword" context="#stay"          String="c2hs_keywords" />
+      <RegExpr attribute="Keyword" context="#stay"          String="context" />
+      <RegExpr attribute="Keyword" context="#stay"          String="call" />
+      <RegExpr attribute="Keyword" context="#stay"          String="sizeof" />
+      <RegExpr attribute="Keyword" context="#stay"          String="alignof" />
+      <RegExpr attribute="Keyword" context="c2hs fun"       String="fun" />
+      <RegExpr attribute="Keyword" context="c2hs pointer"   String="pointer" />
+      <RegExpr attribute="Keyword" context="c2hs enum"      String="enum" />
+      <RegExpr attribute="Keyword" context="c2hs import"    String="import" />
+    </context>
+    <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs import">
+      <RegExpr attribute="Type"    context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
+      <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />
+    </context>
+    <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs pointer">
+      <keyword attribute="Keyword" context="#stay" String="c2hs_keywords" />
+      <RegExpr attribute="Keyword" context="#stay" String="newtype" />
+      <RegExpr attribute="Type"    context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
+      <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />
+    </context>
+    <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs fun">
+      <keyword attribute="Keyword" context="#stay" String="c2hs_keywords" />
+      <RegExpr attribute="Type" context="#stay" String="`[^']*'" />
+      <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />
+    </context>
+    <context attribute="C2HS Directive" lineEndContext="#stay" name="c2hs enum">
+      <RegExpr attribute="Type"             context="#stay" String="([A-Z][a-zA-Z0-9_']*\.)*[A-Z][a-zA-Z0-9_']*" />
+      <Detect2Chars attribute="C2HS Directive" context="#pop#pop" char="#" char1="}" />
+    </context>
+  </contexts>
+  <itemDatas>
+    <itemData name="Normal"           defStyleNum="dsNormal"   spellChecking="false" />
+    <itemData name="Comment"          defStyleNum="dsComment" />
+    <itemData name="Pragma"           defStyleNum="dsOthers"   spellChecking="false" />
+
+    <itemData name="Keyword"          defStyleNum="dsKeyword"  spellChecking="false" />
+    <itemData name="Type Prelude"     defStyleNum="dsDataType" spellChecking="false" />
+    <itemData name="Function Prelude" defStyleNum="dsNormal"   spellChecking="false" />
+    <itemData name="Data Prelude"     defStyleNum="dsDataType" spellChecking="false" />
+    <itemData name="Class Prelude"    defStyleNum="dsDataType" spellChecking="false" />
+
+    <itemData name="Signature"        defStyleNum="dsOthers"  spellChecking="false" />
+    <itemData name="Function"         defStyleNum="dsNormal"   spellChecking="false" />
+    <itemData name="Operator"         defStyleNum="dsFunction" spellChecking="false" />
+    <itemData name="Type"             defStyleNum="dsDataType" spellChecking="false" />
+    <itemData name="Special"          defStyleNum="dsOthers"  spellChecking="false" />
+
+    <itemData name="Octal"            defStyleNum="dsBaseN"    spellChecking="false" />
+    <itemData name="Hex"              defStyleNum="dsBaseN"    spellChecking="false" />
+    <itemData name="Decimal"          defStyleNum="dsDecVal"   spellChecking="false" />
+    <itemData name="Float"            defStyleNum="dsFloat"    spellChecking="false" />
+    <itemData name="Char"             defStyleNum="dsChar"     spellChecking="false" />
+    <itemData name="String"           defStyleNum="dsString" />
+
+    <itemData name="Function Infix"   defStyleNum="dsOthers"   spellChecking="false" />
+    <itemData name="EnumFromTo"       defStyleNum="dsOthers"   spellChecking="false" />
+
+    <itemData name="C Preprocessor"   defStyleNum="dsOthers"   spellChecking="false" />
+    <itemData name="C Preprocessor Keyword" defStyleNum="dsOthers"   spellChecking="false" />
+
+    <itemData name="Haddock Hyperlink" defStyleNum="dsComment" spellChecking="false" underline="true" />
+    <itemData name="Haddock Module" defStyleNum="dsComment" spellChecking="false" underline="true" />
+    <itemData name="Haddock Emphasis" defStyleNum="dsComment" italic="true"/>
+    <itemData name="Haddock Bold" defStyleNum="dsComment" bold="true"/>
+
+    <itemData name="C2HS Directive"   defStyleNum="dsString"   spellChecking="false" />
+  </itemDatas>
+  </highlighting>
+  <general>
+    <folding indentationsensitive="1"/>
+    <comments>
+      <comment name="singleLine" start="--" />
+      <comment name="multiLine" start="{-" end="-}" />
+    </comments>
+    <keywords casesensitive="1" />
+</general>
+</language>
diff --git a/xml/haxe.xml b/xml/haxe.xml
new file mode 100644
--- /dev/null
+++ b/xml/haxe.xml
@@ -0,0 +1,181 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+  ========================================================================
+
+  Haxe Language highlighting.
+
+  ========================================================================
+  
+  Author: Chad Joan
+  
+  ========================================================================
+-->
+
+<language name="Haxe" section="Sources" extensions="*.hx;*.Hx;*.hX;*.HX;" mimetype="text/x-hxsrc" version="2" kateversion="2.4" casesensitive="true" author="Chad Joan" license="MIT">
+  <highlighting>
+    <list name="keywords">
+    
+      <item>break</item>
+      
+      <item>case</item>
+      <item>cast</item>
+      <item>catch</item>
+      <item>class</item>
+      <item>continue</item>
+      
+      <item>default</item>
+
+      <item>else</item>
+      <item>enum</item>
+      <item>extends</item>
+      
+      <item>false</item>
+      <item>for</item>
+      <item>function</item>
+      
+      <item>if</item>
+      <item>implements</item>
+      <item>in</item>
+      <item>inline</item>
+      <item>interface</item>
+      
+      <item>new</item>
+      <item>null</item>
+      
+      <item>override</item>
+      
+      <item>private</item>
+      <item>public</item>
+      
+      <item>return</item>
+      
+      <item>static</item>
+      <item>super</item>
+      <item>switch</item>
+      
+      <item>this</item>
+      <item>throw</item>
+      <item>trace</item>
+      <item>true</item>
+      <item>try</item>
+      <item>typedef</item>
+      
+      <item>untyped</item>
+      
+      <item>var</item>
+      
+      <item>while</item>
+
+    </list>
+
+    <list name="modules">
+      <item>package</item>
+      <item>import</item>
+    </list>
+
+    <list name="types">
+      <item>Array</item>
+      <item>Void</item>
+      <item>Bool</item>
+      <item>Int</item>
+      <item>UInt</item>
+      <item>Float</item>
+      <item>Dynamic</item>
+      <item>String</item>
+      <item>List</item>
+      <item>Error</item>
+      <item>Unknown</item>
+      <item>Type</item>
+    </list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="normal">
+        <RegExpr attribute="Preprocessor" context="#pop" String="#if(\s+\w+)?" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="#(else|elseif|end|error)" />
+
+        <keyword attribute="Keyword"        context="#stay"      String="keywords"/>
+        <keyword attribute="Module"         context="ModuleName" String="modules"/>
+        <keyword attribute="Type"           context="#stay"      String="types"/>
+      
+        <DetectIdentifier attribute="Normal Text"/>
+
+        <HlCStringChar attribute="EscapeSequence" context="#pop"/>
+
+        <DetectChar attribute="RawString" context="RawString"   char="'"/>
+        <DetectChar attribute="String"    context="String"      char="&quot;"/>
+
+        <Detect2Chars attribute="Comment" context="CommentLine"   char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="CommentBlock" char="/" char1="*" beginRegion="CommentBlock"/>
+
+        <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="BraceA" />
+        <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="BraceA" />
+
+        <!-- Match ... and .. before numbers are matched. -->
+        <StringDetect attribute="Normal Text" context="#pop" String="..."/>
+        <Detect2Chars attribute="Normal Text"   char="." char1="."/>
+
+        <!-- Float -->
+        <!-- Floats must be matched before Binary|Octal|Hex|Integer -->
+        <!-- All floats except integers -->
+        <RegExpr attribute="Float" context="#pop" String="[\d][\d]*(\.(?!\.)[\d]*([eE][-+]?[\d]+)?)"/>
+        <RegExpr attribute="Float" context="#pop" String="\.[\d][\d]*([eE][-+]?[\d]+)?"/>
+
+        <!-- Hex|Integer -->
+        <RegExpr attribute="Hex"     context="#pop" String="0[xX][\da-fA-F]+"/>
+        <RegExpr attribute="Integer" context="#pop" String="\d+"/>
+      </context>
+
+      <context attribute="Module Name" lineEndContext="#stay" name="ModuleName">
+        <Detect2Chars attribute="Comment"     context="CommentLine"   char="/" char1="/"/>
+        <Detect2Chars attribute="Comment"     context="CommentBlock" char="/" char1="*" beginRegion="CommentBlock"/>
+        <RegExpr context="#pop" String="[^\s\w.:,]"/>
+      </context>
+
+      <!-- Strings -->
+      <!-- '...' -->
+      <context attribute="RawString" lineEndContext="#stay" name="RawString">
+        <DetectChar attribute="RawString" context="#pop" char="'"/>
+      </context>
+      <!-- "..." -->
+      <context attribute="String" lineEndContext="#stay" name="String">
+        <Detect2Chars attribute="String" context="#stay" char="\" char1="&quot;"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+        <HlCStringChar attribute="EscapeSequence"/>
+        <RegExpr attribute="EscapeSequence" context="#stay" String="\\(u[\da-fA-F]{4}|U[\da-fA-F]{8}|&amp;[a-zA-Z]\w+;)" />
+      </context>
+
+      <!-- Comments -->
+      <context attribute="Comment" lineEndContext="#pop" name="CommentLine"/>
+      <context attribute="Comment" lineEndContext="#stay" name="CommentBlock">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="CommentBlock"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"    defStyleNum="dsNormal"/>
+      <itemData name="Keyword"        defStyleNum="dsKeyword"/>
+      <itemData name="Type"           defStyleNum="dsDataType"/>
+      <itemData name="Integer"        defStyleNum="dsDecVal"/>
+      <itemData name="Hex"            defStyleNum="dsBaseN"/>
+      <itemData name="Float"          defStyleNum="dsFloat"/>
+
+      <itemData name="Module"         defStyleNum="dsKeyword"  color="#0000ff" selColor="#ffffff"/>
+      <itemData name="Module Name"    defStyleNum="dsNormal"  color="#0000ff" selColor="#ffffff"/>
+
+      <itemData name="EscapeSequence" defStyleNum="dsString" color="#00aa88" selColor="#ff0000"/>
+      <itemData name="String"         defStyleNum="dsString"/>
+      <itemData name="RawString"      defStyleNum="dsString"/>
+
+      <itemData name="Comment"        defStyleNum="dsComment"/>
+      
+      <itemData name="Preprocessor"   defStyleNum="dsOthers"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//"/>
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="true"/>
+  </general>
+</language>
diff --git a/xml/html.xml b/xml/html.xml
new file mode 100644
--- /dev/null
+++ b/xml/html.xml
@@ -0,0 +1,227 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!ENTITY name          "[A-Za-z_:][\w.:_-]*">
+	<!ENTITY attributeName "[A-Za-z_:*#\(\[][\)\]\w.:_-]*">
+	<!ENTITY entref        "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
+]>
+<language name="HTML" version="5" kateversion="3.4" section="Markup" extensions="*.htm;*.html;*.shtml;*.shtm" mimetype="text/html"  author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL" priority="10">
+
+<highlighting>
+<contexts>
+  <context name="Start" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="FindHTML" />
+  </context>
+
+  <context name="FindHTML" attribute="Normal Text" lineEndContext="#stay">
+    <DetectSpaces/>
+    <DetectIdentifier/>
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+    <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" insensitive="true" beginRegion="doctype"  />
+    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
+    <RegExpr attribute="Element" context="CSS" String="&lt;style\b" insensitive="true" beginRegion="style" />
+    <RegExpr attribute="Element" context="JS" String="&lt;script\b" insensitive="true" beginRegion="script" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;pre\b" insensitive="true" beginRegion="pre" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;div\b" insensitive="true" beginRegion="div" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;table\b" insensitive="true" beginRegion="table" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;ul\b" insensitive="true" beginRegion="ul" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;ol\b" insensitive="true" beginRegion="ol" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;dl\b" insensitive="true" beginRegion="dl" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;article\b" insensitive="true" beginRegion="article" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;aside\b" insensitive="true" beginRegion="aside" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;details\b" insensitive="true" beginRegion="details" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;figure\b" insensitive="true" beginRegion="figure" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;footer\b" insensitive="true" beginRegion="footer" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;header\b" insensitive="true" beginRegion="header" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;main\b" insensitive="true" beginRegion="main" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;nav\b" insensitive="true" beginRegion="nav" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;section\b" insensitive="true" beginRegion="section" />
+    <RegExpr attribute="Element" context="El Open" String="&lt;&name;" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/pre\b" insensitive="true" endRegion="pre" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/div\b" insensitive="true" endRegion="div" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/table\b" insensitive="true" endRegion="table" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/ul\b" insensitive="true" endRegion="ul" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/ol\b" insensitive="true" endRegion="ol" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/dl\b" insensitive="true" endRegion="dl" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/article\b" insensitive="true" endRegion="article" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/aside\b" insensitive="true" endRegion="aside" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/details\b" insensitive="true" endRegion="details" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/figure\b" insensitive="true" endRegion="figure" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/footer\b" insensitive="true" endRegion="footer" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/header\b" insensitive="true" endRegion="header" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/main\b" insensitive="true" endRegion="main" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/nav\b" insensitive="true" endRegion="nav" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/section\b" insensitive="true" endRegion="section" />
+    <RegExpr attribute="Element" context="El Close" String="&lt;/&name;" />
+    <!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+  <context name="FindEntityRefs" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
+  </context>
+
+  <context name="FindPEntityRefs" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;%" />
+  </context>
+
+  <context name="FindAttributes" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="Attribute" context="#stay" String="&attributeName;" column="0"/>
+    <RegExpr attribute="Attribute" context="#stay" String="\s+&attributeName;" />
+    <DetectChar attribute="Attribute" context="Value" char="=" />
+  </context>
+
+  <context name="FindDTDRules" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
+  </context>
+
+
+  <context name="Comment" attribute="Comment" lineEndContext="#stay">
+    <DetectSpaces/>
+    <IncludeRules context="##Alerts" />
+    <DetectIdentifier/>
+    <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+    <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
+  </context>
+
+  <context name="CDATA" attribute="Other Text" lineEndContext="#stay">
+    <DetectSpaces/>
+    <DetectIdentifier/>
+    <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
+    <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
+  </context>
+
+  <context name="PI" attribute="Other Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
+  </context>
+
+  <context name="Doctype" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
+    <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
+  </context>
+
+  <context name="Doctype Internal Subset" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
+    <IncludeRules context="FindDTDRules" />
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Doctype Markupdecl" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="&gt;" />
+    <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
+  </context>
+
+  <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop" char="&quot;" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop" char="&apos;" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="El Open" attribute="Other Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
+    <DetectChar attribute="Element" context="#pop" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="El Close" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Element" context="#pop" char="&gt;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="El Close 2" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="El Close 3" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Element" context="#pop#pop#pop#pop" char="&gt;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="CSS" attribute="Other Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="style" />
+    <DetectChar attribute="Element" context="CSS content" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="CSS content" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="Element" context="El Close 2" String="&lt;/style\b" insensitive="true" endRegion="style" />
+    <IncludeRules context="##CSS" includeAttrib="true"/>
+  </context>
+
+  <context name="JS" attribute="Other Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="script" />
+    <DetectChar attribute="Element" context="JS content" char="&gt;" />
+    <IncludeRules context="FindAttributes" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="JS content" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="true" />
+    <IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
+  </context>
+
+  <context name="JS comment close" attribute="Comment" lineEndContext="#pop">
+    <RegExpr attribute="Element" context="El Close 3" String="&lt;/script\b" insensitive="true" endRegion="script" />
+    <IncludeRules context="##Alerts" />
+  </context>
+
+  <context name="Value" attribute="Other Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Value NQ">
+    <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
+    <DetectSpaces />
+  </context>
+
+  <context name="Value NQ" attribute="Other Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+    <IncludeRules context="FindEntityRefs" />
+    <RegExpr attribute="Value" context="#stay" String="/(?!&gt;)" />
+    <RegExpr attribute="Value" context="#stay" String="[^/&gt;&lt;&quot;&apos;\s]" />
+  </context>
+
+  <context name="Value DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop" char="&quot;" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+  <context name="Value SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop" char="&apos;" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+</contexts>
+<itemDatas>
+  <itemData name="Normal Text" defStyleNum="dsNormal" />
+  <itemData name="Other Text" defStyleNum="dsNormal" spellChecking="false" />
+  <itemData name="Comment" defStyleNum="dsComment" />
+  <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" spellChecking="false" />
+  <itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false" />
+  <itemData name="Doctype" defStyleNum="dsDataType" bold="1" spellChecking="false" />
+  <itemData name="Element" defStyleNum="dsKeyword" spellChecking="false" />
+  <itemData name="Attribute" defStyleNum="dsOthers" spellChecking="false" />
+  <itemData name="Value" defStyleNum="dsString" spellChecking="false" />
+  <itemData name="EntityRef" defStyleNum="dsDecVal" spellChecking="false" />
+  <itemData name="PEntityRef" defStyleNum="dsDecVal" spellChecking="false" />
+  <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
+</itemDatas>
+
+</highlighting>
+<general>
+  <comments>
+    <comment name="multiLine" start="&lt;!--" end="--&gt;" />
+  </comments>
+</general>
+</language>
diff --git a/xml/idris.xml b/xml/idris.xml
new file mode 100644
--- /dev/null
+++ b/xml/idris.xml
@@ -0,0 +1,170 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Based on haskell.xml and idris.vim (https://github.com/idris-hackers/idris-vim/blob/6bdb44b85406b75e3b3a4fa265deab1dbe8c6ff1/syntax/idris.vim) -->
+<language name="Idris" version="1.0" kateversion="3.4" section="Sources" extensions="*.idr" author="Alexander Shabalin" license="LGPL">
+  <highlighting>
+  <list name="keywords">
+    <item> abstract </item>
+    <item> auto </item>
+    <item> case </item>
+    <item> class </item>
+    <item> codata </item>
+    <item> covering </item>
+    <item> data </item>
+    <item> default </item>
+    <item> do </item>
+    <item> dsl </item>
+    <item> else </item>
+    <item> if </item>
+    <item> implicit </item>
+    <item> import </item>
+    <item> impossible </item>
+    <item> in </item>
+    <item> index_first </item>
+    <item> index_next </item>
+    <item> infix </item>
+    <item> infixl </item>
+    <item> infixr </item>
+    <item> instance </item>
+    <item> lambda </item>
+    <item> let </item>
+    <item> module </item>
+    <item> mututal </item>
+    <item> namespace </item>
+    <item> of </item>
+    <item> parameters </item>
+    <item> partial </item>
+    <item> pattern </item>
+    <item> postulate </item>
+    <item> prefix </item>
+    <item> private </item>
+    <item> proof </item>
+    <item> public </item>
+    <item> record </item>
+    <item> rewrite </item>
+    <item> static </item>
+    <item> syntax </item>
+    <item> tactics </item>
+    <item> term </item>
+    <item> then </item>
+    <item> total </item>
+    <item> using </item>
+    <item> variable </item>
+    <item> where </item>
+    <item> with </item>
+  </list>
+  <list name="directives">
+     <item> access </item>
+     <item> assert_total </item>
+     <item> default </item>
+     <item> dynamic </item>
+     <item> elim </item>
+     <item> error_handlers </item>
+     <item> error_reverse </item>
+     <item> flag </item>
+     <item> hide </item>
+     <item> include </item>
+     <item> language </item>
+     <item> lib </item>
+     <item> link </item>
+     <item> name </item>
+     <item> provide </item>
+     <item> reflection </item>
+  </list>
+  <list name="tactics">
+    <item> applyTactic </item>
+    <item> attack </item>
+    <item> compute </item>
+    <item> exact </item>
+    <item> fill </item>
+    <item> focus </item>
+    <item> induction </item>
+    <item> intro </item>
+    <item> intros </item>
+    <item> let </item>
+    <item> refine </item>
+    <item> reflect </item>
+    <item> rewrite </item>
+    <item> solve </item>
+    <item> trivial </item>
+    <item> try </item>
+  </list>
+  <contexts>
+     <context attribute="Normal" lineEndContext="#stay" name="code">
+        <RegExpr attribute="Comment" context="line comment"
+           String="---*[^!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:]?" />
+        <RegExpr attribute="Comment" context="line comment"
+           String="\|\|\|[^\-!#\$%&amp;\*\+/&lt;=&gt;\?&#92;@\^\|~\.:]?" />
+        <Detect2Chars attribute="Comment" context="block comment" char="{" char1="-" />
+        <RegExpr attribute="Normal" context="declaration" lookAhead="true"
+           String="^\s*([a-z]+\s+)*([A-Za-z][A-Za-z0-9_]*'*|\([\-!#\$%&amp;\*\+\./&lt;=&gt;\?@&#92;\^\|~:]+\))\s*:" />
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <DetectChar attribute="Keyword" context="directive" char="%" />
+        <keyword attribute="Tactic" context="#stay" String="tactics" />
+        <DetectChar attribute="Char" context="char" char="'" />
+        <DetectChar attribute="String" context="string" char="&quot;" />
+        <Int attribute="Decimal" context="#stay" />
+        <RegExpr attribute="Hex" context="#stay" String="0[Xx][0-9A-Fa-f]+"/>
+        <RegExpr attribute="Octal" context="#stay" String="0[Xx][0-9A-Fa-f]+"/>
+        <RegExpr attribute="Float" context="#stay" String="\d+\.\d+([eE][-+]?\d+)?" />
+        <RegExpr attribute="Type" context="#stay" String="([A-Z][a-zA-Z0-9_]*'*|_\|_)" />
+        <RegExpr attribute="Normal" context="#stay" String="[a-z][a-zA-Z0-9_]*'*" />
+        <RegExpr attribute="MetaVar" context="#stay" String="\?[a-z][A-Za-z0-9_]+'*" />
+        <RegExpr attribute="Special" context="#stay" String="(:|=&gt;|\-&gt;|&lt;\-)" />
+        <RegExpr attribute="Operator" context="#stay"
+           String="([\-!#\$%&amp;\*\+\./&lt;=&gt;\?@&#92;\^\|~:]+|\b_\b)" />
+        <RegExpr attribute="Operator" context="#stay" String="`[A-Za-z][A-Za-z0-9_]*'*`" />
+     </context>
+     <context attribute="Normal" lineEndContext="#pop" name="declaration">
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <RegExpr attribute="Type" context="#stay" String="([A-Z][a-zA-Z0-9_]*'*|_\|_)" />
+        <RegExpr attribute="Declaration" context="#stay" String="[a-z][A-Za-z0-9_]*'*"/>
+        <RegExpr attribute="Operator" context="#stay"
+           String="\([\-!#\$%&amp;\*\+\./&lt;=&gt;\?@&#92;\^\|~:]+\)" />
+        <DetectChar attribute="Special" context="#pop" char=":" />
+     </context>
+     <context attribute="Normal" lineEndContext="#pop" name="directive">
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Keyword" context="#stay" String="directives" />
+     </context>
+     <context attribute="Char" lineEndContext="#pop" name="char">
+        <RegExpr attribute="Char" context="#stay" String="\\." />
+        <DetectChar attribute="Char" context="#pop" char="'" />
+     </context>
+     <context attribute="String" lineEndContext="#stay" name="string">
+        <RegExpr attribute="String" context="#stay" String="\\." />
+        <RegExpr attribute="String" context="#pop" String="&quot;" />
+     </context>
+     <context attribute="Comment" lineEndContext="#pop" name="line comment" />
+     <context attribute="Comment" lineEndContext="#stay" name="block comment">
+        <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" />
+        <Detect2Chars attribute="Comment" context="block comment" char="{" char1="-" />
+     </context>
+  </contexts>
+  <itemDatas>
+    <itemData name="Normal" defStyleNum="dsNormal" spellChecking="false" />
+    <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
+    <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
+    <itemData name="Tactic" defStyleNum="dsKeyword" spellChecking="false" />
+    <itemData name="Char" defStyleNum="dsChar" spellChecking="false" />
+    <itemData name="String" defStyleNum="dsString" spellChecking="true" />
+    <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
+    <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
+    <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
+    <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
+    <itemData name="Type" defStyleNum="dsDataType" spellChecking="false" />
+    <itemData name="MetaVar" defStyleNum="dsOthers" spellChecking="false" />
+    <itemData name="Operator" defStyleNum="dsFunction" spellChecking="false" />
+    <itemData name="Special" defStyleNum="dsOthers" spellChecking="false" />
+    <itemData name="Declaration" defStyleNum="dsFunction" spellChecking="false" />
+  </itemDatas>
+  </highlighting>
+  <general>
+    <folding indentationsensitive="1"/>
+    <comments>
+      <comment name="singleLine" start="--" />
+      <comment name="multiLine" start="{-" end="-}" />
+    </comments>
+    <keywords casesensitive="1" />
+</general>
+</language>
diff --git a/xml/ini.xml b/xml/ini.xml
new file mode 100644
--- /dev/null
+++ b/xml/ini.xml
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="INI Files" section="Configuration" extensions="*.ini;*.pls;*.kcfgc" mimetype="" version="2" kateversion="2.4" author="Jan Janssen (medhefgo@web.de)" license="LGPL">
+
+<highlighting>
+<list name="keywords">
+<item>On</item>
+<item>Off</item>
+<item>Default</item>
+<item>Defaults</item>
+<item>Localhost</item>
+<item>Null</item>
+<item>True</item>
+<item>False</item>
+<item>Yes</item>
+<item>No</item>
+<item>Normal</item>
+
+<!-- PHP Keywords -->
+<item>E_ALL</item>
+<item>E_ERROR</item>
+<item>E_WARNING</item>
+<item>E_PARSE</item>
+<item>E_NOTICE</item>
+<item>E_STRICT</item>
+<item>E_CORE_ERROR</item>
+<item>E_CORE_WARNING</item>
+<item>E_COMPILE_ERROR</item>
+<item>E_COMPILE_WARNING</item>
+<item>E_USER_ERROR</item>
+<item>E_USER_WARNING</item>
+<item>E_USER_NOTICE</item>
+</list>
+
+<contexts>
+ <context name="ini" attribute="Normal Text" lineEndContext="#stay">
+  <RangeDetect attribute="Section" context="#stay" char="["  char1="]" beginRegion="Section" endRegion="Section" />
+  <DetectChar attribute="Assignment" context="Value" char="=" />
+  <DetectChar char=";" attribute="Comment" context="Comment" firstNonSpace="true" />
+  <DetectChar char="#" attribute="Comment" context="Comment" firstNonSpace="true" />
+ </context>
+
+ <context name="Value" attribute="Value" lineEndContext="#pop" >
+  <Float attribute="Float" />
+  <Int attribute="Int" />
+  <keyword attribute="Keyword" String="keywords" />
+  <RegExpr attribute="Comment" context="#pop" String=";.*$" />
+  <RegExpr attribute="Comment" context="#pop" String="#.*$" />
+ </context>
+
+ <context name="Comment" attribute="Comment" lineEndContext="#pop">
+  <DetectSpaces />
+  <IncludeRules context="##Alerts" />
+  <DetectIdentifier />
+ </context>
+</contexts>
+
+
+<itemDatas>
+ <itemData name="Normal Text" defStyleNum="dsDataType" />
+ <itemData name="Section" defStyleNum="dsKeyword" />
+ <itemData name="Comment" defStyleNum="dsComment" />
+ <itemData name="Assignment" defStyleNum="dsOthers" />
+ <itemData name="Value" defStyleNum="dsString" />
+ <itemData name="Float" defStyleNum="dsFloat" />
+ <itemData name="Int" defStyleNum="dsDecVal" />
+ <itemData name="Keyword" defStyleNum="dsKeyword" />
+</itemDatas>
+</highlighting>
+
+
+<general>
+ <comments>
+  <comment name="singleLine" start="#" />
+  <comment name="singleLine" start=";" />
+ </comments>
+ <keywords casesensitive="0" />
+</general>
+
+</language>
diff --git a/xml/isocpp.xml b/xml/isocpp.xml
new file mode 100644
--- /dev/null
+++ b/xml/isocpp.xml
@@ -0,0 +1,519 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+    <!ENTITY space " ">
+    <!ENTITY separators ",&#59;">
+    <!ENTITY ns_punctuators "!&#37;&space;&amp;()+-/.*&lt;=&gt;?[]{|}~^&separators;">
+    <!ENTITY punctuators ":&ns_punctuators;">
+    <!-- printf-like format strings conversion specifiers -->
+    <!ENTITY convspec "diouxXeEfFgGaAcspn&#37;">
+]>
+<language
+    name="ISO C++"
+    section="Sources"
+    version="10"
+    kateversion="5.0"
+    indenter="cstyle"
+    style="C++"
+    mimetype="text/x-c++src;text/x-c++hdr;text/x-chdr"
+    extensions="*.c++;*.cxx;*.cpp;*.cc;*.C;*.h;*.hh;*.H;*.h++;*.hxx;*.hpp;*.hcc;*.moc"
+    author="Alex Turbov (i.zaufi@gmail.com)"
+    license="LGPL"
+    priority="6"
+  >
+  <!--
+    Complete list of changes by Alex Turbov (I.zaufi@gmail.com)
+    can be found at:
+    http://kde-files.org/content/show.php?content=90660
+  -->
+  <highlighting>
+    <list name="controlflow">
+      <item>break</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>do</item>
+      <item>else</item>
+      <item>for</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>return</item>
+      <item>switch</item>
+      <item>throw</item>
+      <item>try</item>
+      <item>while</item>
+    </list>
+    <list name="keywords">
+      <item>alignof</item>
+      <item>alignas</item>
+      <item>asm</item>
+      <item>auto</item>
+      <item>class</item>
+      <item>constexpr</item>
+      <item>const_cast</item>
+      <item>decltype</item>
+      <item>delete</item>
+      <item>dynamic_cast</item>
+      <item>enum</item>
+      <item>explicit</item>
+      <item>export</item> <!-- Unused but reserved for future use -->
+      <item>false</item>
+      <item>final</item> <!-- According N3272 -->
+      <item>friend</item>
+      <item>inline</item>
+      <item>namespace</item>
+      <item>new</item>
+      <item>noexcept</item>
+      <item>nullptr</item>
+      <item>operator</item>
+      <item>override</item> <!-- According N3272 -->
+      <item>private</item>
+      <item>protected</item>
+      <item>public</item>
+      <item>reinterpret_cast</item>
+      <item>sizeof</item>
+      <item>static_assert</item>
+      <item>static_cast</item>
+      <item>struct</item>
+      <item>template</item>
+      <item>this</item>
+      <item>true</item>
+      <item>typedef</item>
+      <item>typeid</item>
+      <item>typename</item>
+      <item>union</item>
+      <item>using</item>
+      <item>virtual</item>
+      <!-- Alternative operators (see 2.12) -->
+      <item>and</item>
+      <item>and_eq</item>
+      <item>bitand</item>
+      <item>bitor</item>
+      <item>compl</item>
+      <item>not</item>
+      <item>not_eq</item>
+      <item>or</item>
+      <item>or_eq</item>
+      <item>xor</item>
+      <item>xor_eq</item>
+    </list>
+    <!-- This keyword may appear in InternalsNS context. For example in code:
+      details::some_class::template some_templated_static();
+      and it should be displayed as keyword, not like part of details namespace...
+      -->
+    <list name="template">
+      <item>template</item>
+    </list>
+
+    <!-- 7.6 Attributes -->
+    <list name="attributes">
+      <!-- C++11 -->
+      <item>noreturn</item>
+      <item>carries_dependency</item>
+      <!-- C++1y -->
+      <item>deprecated</item>
+    </list>
+
+    <list name="types">
+      <item>bool</item>
+      <item>char</item>
+      <item>char16_t</item>
+      <item>char32_t</item>
+      <item>double</item>
+      <item>float</item>
+      <item>int</item>
+      <item>long</item>
+      <item>short</item>
+      <item>signed</item>
+      <item>unsigned</item>
+      <item>void</item>
+      <item>int8_t</item>
+      <item>int16_t</item>
+      <item>int32_t</item>
+      <item>int64_t</item>
+      <item>uint8_t</item>
+      <item>uint16_t</item>
+      <item>uint32_t</item>
+      <item>uint64_t</item>
+      <item>int_least8_t</item>
+      <item>int_least16_t</item>
+      <item>int_least32_t</item>
+      <item>int_least64_t</item>
+      <item>uint_least8_t</item>
+      <item>uint_least16_t</item>
+      <item>uint_least32_t</item>
+      <item>uint_least64_t</item>
+      <item>int_fast8_t</item>
+      <item>int_fast16_t</item>
+      <item>int_fast32_t</item>
+      <item>int_fast64_t</item>
+      <item>uint_fast8_t</item>
+      <item>uint_fast16_t</item>
+      <item>uint_fast32_t</item>
+      <item>uint_fast64_t</item>
+      <item>size_t</item>
+      <item>ssize_t</item>
+      <item>wchar_t</item>
+      <item>intptr_t</item>
+      <item>uintptr_t</item>
+      <item>intmax_t</item>
+      <item>uintmax_t</item>
+      <item>ptrdiff_t</item>
+      <item>sig_atomic_t</item>
+      <item>wint_t</item>
+      <item>va_list</item>
+      <item>FILE</item>
+      <item>fpos_t</item>
+      <item>time_t</item>
+    </list>
+    <list name="modifiers">
+      <item>const</item>
+      <item>extern</item>
+      <item>mutable</item>
+      <item>register</item>
+      <item>static</item>
+      <item>thread_local</item>
+      <item>volatile</item>
+    </list>
+    <list name="StdMacros">
+      <item>__FILE__</item>
+      <item>__LINE__</item>
+      <item>__DATE__</item>
+      <item>__TIME__</item>
+      <item>__STDC__</item>
+      <item>__STDC_VERSION__</item>
+      <item>__STDC_HOSTED__</item>
+      <item>__STDC_ISO_10646__</item>
+      <item>__STDC_MB_MIGHT_NEQ_WC__</item>
+      <item>__cplusplus</item>
+      <item>__func__</item>
+    </list>
+
+    <contexts>
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <RegExpr attribute="Preprocessor" context="Outscoped" String="(#|%\:|\?\?=)\s*if\s+(0|false)\s*" beginRegion="PP" firstNonSpace="true" insensitive="false" />
+        <RegExpr attribute="Preprocessor" context="Inscoped" String="(#|%\:|\?\?=)\s*if\s+(1|true)\s*" beginRegion="PP" firstNonSpace="true" insensitive="false" />
+        <IncludeRules context="Main" />
+      </context>
+
+      <context name="Main" attribute="Normal Text" lineEndContext="#stay">
+        <!-- Match preprocessor directives -->
+        <DetectChar context="AfterHash" char="#" firstNonSpace="true" lookAhead="true" />
+        <Detect2Chars context="AfterHash" char="%" char1=":" firstNonSpace="true" lookAhead="true" />
+        <StringDetect context="AfterHash" String="??=" firstNonSpace="true" lookAhead="true" />
+        <Detect2Chars attribute="Error" context="#stay" char="%" char1=":" />
+        <StringDetect attribute="Error" String="??=" context="#stay" />
+        <!-- Match special comments for region markers -->
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
+        <!-- ATTENTION Special case `operator""` cuz Kate doesn't recognize
+                       `operator` joined w/ quotes as a keyword here. BUG??
+          -->
+        <RegExpr attribute="Normal Text" context="UDLOperator" String="operator\s*&quot;&quot; _[_0-9A-Za-z]*\b" lookAhead="true" />
+        <RegExpr attribute="Error" context="#stay" String="operator\s*&quot;&quot; [_0-9A-Za-z]*\b" />
+        <!-- Match keywords -->
+        <keyword attribute="Control Flow" context="#stay" String="controlflow" />
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <!-- Detect attributes -->
+        <Detect2Chars attribute="Symbol" context="Attribute" char="[" char1="[" />
+        <!-- Match numbers -->
+        <!-- ATTENTION Builtin number detectors have strange behaviour and definitely lack of required features -->
+        <!-- NOTE Order is important! -->
+        <RegExpr attribute="Hex" context="#stay" String="[\+\-]?0x[0-9A-Fa-f]('?[0-9A-Fa-f]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />
+        <RegExpr attribute="Binary" context="#stay" String="0[Bb][01]('?[01]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="FfLl" attribute="Float" context="#stay"/>
+        </Float>
+        <RegExpr attribute="Octal" context="#stay" String="[\+\-]?0'?[0-7]('?[0-7]+)*([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />
+        <RegExpr attribute="Decimal" context="#stay" String="[\+\-]?(0|[1-9]('?[0-9]+)*)([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?|_[_0-9A-Za-z]*)?\b" />
+        <RegExpr attribute="Error" context="#stay" String="[\+\-]?(0x?|[1-9][0-9]*)[0-9A-Za-z][_0-9A-Za-z]*\b" />
+        <!-- Match string literals -->
+        <DetectChar attribute="String" context="String" char="&quot;" />
+        <Detect2Chars attribute="String" context="String" char="U" char1="&quot;" />
+        <Detect2Chars attribute="String" context="String" char="u" char1="&quot;" />
+        <Detect2Chars attribute="String" context="String" char="L" char1="&quot;" />
+        <StringDetect attribute="String" context="String" String="u8&quot;" />
+        <RegExpr attribute="String" context="RawString" String="(u|u8|U|L)?R&quot;([^\(]{0,16})\(" lookAhead="true" />
+        <RegExpr attribute="Error" context="#stay" String="(u|u8|U|L)?R&quot;([^\(]{16,})\(" />
+        <DetectChar attribute="Char" context="Char Literal" char="'" />
+        <Detect2Chars attribute="Char" context="Char Literal" char="L" char1="'" />
+        <Detect2Chars attribute="Char" context="U-Char Literal" char="u" char1="'" />
+        <Detect2Chars attribute="Char" context="U-Char Literal" char="U" char1="'" />
+        <!-- Match GCC extensions -->
+        <IncludeRules context="DetectGccExtensions##GCCExtensions" />
+        <!-- Match most used namespaces and styles -->
+        <StringDetect attribute="Standard Classes" context="Standard Classes" String="std::" />
+        <StringDetect attribute="Boost Stuff" context="Boost Stuff" String="boost::" />
+        <StringDetect attribute="Boost Stuff" context="Boost Stuff" String="BOOST_" />
+        <StringDetect attribute="Internals" context="InternalsNS" String="detail::" />
+        <StringDetect attribute="Internals" context="InternalsNS" String="details::" />
+        <StringDetect attribute="Internals" context="InternalsNS" String="aux::" />
+        <StringDetect attribute="Internals" context="InternalsNS" String="internals::" />
+        <keyword attribute="Data Type" context="#stay" String="types" />
+        <keyword attribute="Type Modifiers" context="#stay" String="modifiers" />
+        <keyword attribute="Standard Macros" context="#stay" String="StdMacros" />
+        <RegExpr attribute="Internals" context="#stay" String="_[a-zA-Z0-9_]+" />
+        <RegExpr attribute="Internals" context="#stay" String="[a-zA-Z][a-zA-Z0-9_]*__\b" />
+        <RegExpr attribute="Data Members (m_*)" context="#stay" String="[a-z][a-zA-Z0-9_]*_\b" />
+        <RegExpr attribute="Data Members (m_*)" context="#stay" String="m_[a-zA-Z0-9_]+" />
+        <RegExpr attribute="Globals (g_*)" context="#stay" String="g_[a-zA-Z0-9_]+" />
+        <RegExpr attribute="Statics (s_*)" context="#stay" String="s_[a-zA-Z0-9_]+" />
+        <RegExpr attribute="CONSTS/MACROS" context="#stay" String="[A-Z][A-Z0-9_]{2,}\b" />
+        <RegExpr attribute="Types (*_t/*_type)" context="#stay" String="[a-zA-Z][a-zA-Z0-9_]*_t(ype)?\b" />
+        <DetectIdentifier />
+        <!-- Match comments -->
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Comment 1" char="/" char1="/" />
+        <Detect2Chars attribute="Comment" context="Comment 2" char="/" char1="*" beginRegion="Comment" />
+        <!-- Match scope regions -->
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+        <!-- Match punctuators -->
+        <AnyChar attribute="Separator Symbol" context="#stay" String="&separators;" />
+        <AnyChar attribute="Symbol" context="#stay" String="&punctuators;" />
+        <!-- Match invalid symbols -->
+        <DetectChar attribute="Error" context="#stay" char="#" />
+        <DetectChar attribute="Error" context="#stay" char="$" />
+        <DetectChar attribute="Error" context="#stay" char="@" />
+        <DetectChar attribute="Error" context="#stay" char="`" />
+      </context>
+
+      <context name="UDLOperator" attribute="Normal Text" lineEndContext="#pop">
+        <StringDetect attribute="Keyword" context="#stay" String="operator" />
+        <StringDetect attribute="String" context="#stay" String="&quot;&quot;" />
+        <DetectIdentifier context="#pop" />
+      </context>
+
+      <context name="Char Literal" attribute="Char" lineEndContext="#pop">
+        <IncludeRules context="Universal Char" />
+        <DetectChar attribute="String Char" context="Simple Esc" char="\" />
+        <DetectChar attribute="Char" context="#pop" char="'" />
+      </context>
+
+      <context name="U-Char Literal" attribute="Char" lineEndContext="#pop">
+        <IncludeRules context="Universal Char" />
+        <DetectChar attribute="String Char" context="Simple Esc" char="\" />
+        <DetectChar attribute="Char" context="#pop" char="'" />
+        <RegExpr attribute="Error" context="#stay" String="[^']{2,}" />
+        <RegExpr attribute="Char" context="#stay" String=".{1}" />
+      </context>
+
+      <context  name="Simple Esc" attribute="String Char" lineEndContext="#pop">
+        <AnyChar attribute="String Char" context="#pop" String="tnvbrfa'&quot;\" />
+        <RegExpr attribute="String Char" context="#pop" String="[0-7]{1,3}" />
+        <RegExpr attribute="String Char" context="#pop" String="x[0-9A-Fa-f]{1,}" />
+        <RegExpr attribute="String" context="#pop" String="." />
+      </context>
+
+      <context name="Universal Char" attribute="String Char" lineEndContext="#pop">
+        <RegExpr attribute="String Char" context="#stay" String="\\u[0-9A-Fa-f]{4}" />
+        <RegExpr attribute="Error" context="#stay" String="\\u.{0,3}" />
+        <RegExpr attribute="String Char" context="#stay" String="\\U[0-9A-Fa-f]{8}" />
+        <RegExpr attribute="Error" context="#stay" String="\\U.{0,7}" />
+      </context>
+
+      <context name="String" attribute="String" lineEndContext="#pop">
+        <LineContinue attribute="String" context="#stay" />
+        <HlCStringChar attribute="String Char" context="#stay" />
+        <IncludeRules context="Universal Char" />
+        <RegExpr attribute="String Char" context="#stay" String="%[^&quot;&convspec;\s]*[&convspec;]" />
+        <DetectChar attribute="String" context="UDLStringSuffix" char="&quot;" />
+      </context>
+
+      <context name="UDLStringSuffix" attribute="String" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+        <!-- Standard UDL is not matched. BUG?? -->
+        <RegExpr attribute="String" context="#pop#pop" String="_[_0-9A-Za-z]*\b" />
+      </context>
+
+      <context name="Attribute" attribute="Attribute" lineEndContext="#stay">
+        <keyword attribute="Standard Attribute" context="#stay" String="attributes" />
+        <Detect2Chars attribute="Symbol" context="#pop" char="]" char1="]" />
+        <AnyChar context="#stay" String="&ns_punctuators;" attribute="Symbol" />
+        <!-- Attributes may contain some text: [[deprecated("Reason text")]] -->
+        <DetectChar attribute="String" context="String" char="&quot;" />
+      </context>
+
+      <context name="RawString" attribute="String" lineEndContext="#stay" dynamic="true">
+        <LineContinue attribute="String" context="#stay" />
+        <RegExpr attribute="String Char" context="#stay" String="%[^&quot;&convspec;\s]*[&convspec;]" />
+        <RegExpr attribute="String" context="#pop" String="\)%2&quot;" dynamic="true"/>
+      </context>
+
+      <context name="DetectIdentifierEnd" attribute="Normal Text" lineEndContext="#pop">
+        <AnyChar context="#pop" String="&punctuators;" attribute="Symbol" />
+      </context>
+
+      <context name="Region Marker" attribute="Region Marker" lineEndContext="#pop" />
+
+      <context name="DetectNSEnd" attribute="Normal Text" lineEndContext="#pop">
+        <keyword attribute="Keyword" context="#stay" String="template" />
+        <DetectIdentifier context="#stay" />
+        <AnyChar context="#pop" String="&separators;" attribute="Separator Symbol" />
+        <AnyChar context="#pop" String="&ns_punctuators;" attribute="Symbol" />
+        <AnyChar context="#stay" String="&space;" attribute="Normal Text" />
+      </context>
+
+      <context name="Standard Classes" attribute="Standard Classes" lineEndContext="#pop">
+        <IncludeRules context="DetectNSEnd" />
+      </context>
+
+      <context name="Boost Stuff" attribute="Boost Stuff" lineEndContext="#pop">
+        <IncludeRules context="DetectNSEnd" />
+      </context>
+
+      <context name="InternalsNS" attribute="Internals" lineEndContext="#pop">
+        <IncludeRules context="DetectNSEnd" />
+      </context>
+
+      <context name="Comment 1" attribute="Comment" lineEndContext="#pop">
+        <LineContinue attribute="Comment" context="#stay" />
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+        <DetectIdentifier />
+      </context>
+
+      <context name="Comment 2" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces />
+        <LineContinue attribute="Comment" context="#stay" />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+        <DetectIdentifier />
+      </context>
+
+      <context name="AfterHash" attribute="Error" lineEndContext="#pop">
+        <RegExpr attribute="Preprocessor" context="Include" String="#\s*(?:include|include_next)" insensitive="true" firstNonSpace="true" />
+
+        <!-- define, elif, else, endif, error, if, ifdef, ifndef, line, pragma, undef, warning -->
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="(#|%\:|\?\?=)\s*if(?:def|ndef)?(?=(?:\(|\s+)\S)" beginRegion="PP" firstNonSpace="true" insensitive="false" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />
+        <!-- Switch to seperate context for multiline #defines -->
+        <RegExpr attribute="Preprocessor" context="Define" String="(#|%\:|\?\?=)\s*(cmake)?define.*((?=\\))" firstNonSpace="true" lookAhead="true" insensitive="false" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="(#|%\:|\?\?=)\s*(?:el(?:se|if)|(cmake)?define|undef|line|error|warning|pragma)" insensitive="false" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="(#|%\:|\?\?=)\s+[0-9]+" firstNonSpace="true" insensitive="false" />
+      </context>
+
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Include">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
+        <IncludeRules context="Preprocessor" />
+      </context>
+
+      <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop">
+        <LineContinue attribute="Preprocessor" context="#stay" />
+        <keyword attribute="Standard Macros" context="#stay" String="StdMacros" />
+        <IncludeRules context="GNUMacros##GCCExtensions" />
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Comment/Preprocessor" char="/" char1="*" beginRegion="Comment2" />
+        <Detect2Chars attribute="Comment" context="Comment 1" char="/" char1="/" />
+      </context>
+
+      <context name="Define" attribute="Preprocessor" lineEndContext="#pop">
+        <LineContinue attribute="Separator Symbol" context="#stay" />
+        <DetectChar attribute="Error" context="#stay" char="\\" />
+        <keyword attribute="Standard Macros" context="#stay" String="StdMacros" />
+        <IncludeRules context="GNUMacros##GCCExtensions" />
+      </context>
+
+      <context name="Comment/Preprocessor" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />
+        <DetectIdentifier />
+      </context>
+
+      <context name="Outscoped Common" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+        <DetectIdentifier />
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Comment 1" char="/" char1="/" />
+        <!-- Do not try to detect "C" style comments inside outscoped text
+             to prevent incorrect highlighting in case of overlapped (or not closed properly)
+             comment block...
+
+             <Detect2Chars attribute="Comment" context="Comment 2" char="/" char1="*" beginRegion="Comment" />
+        -->
+        <RegExpr attribute="Comment" context="Outscoped intern" String="(#|%\:|\?\?=)\s*if" beginRegion="PP" firstNonSpace="true" insensitive="false" />
+        <LineContinue context="#stay" />
+      </context>
+
+      <context name="Outscoped" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="Outscoped Common" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="(#|%\:|\?\?=)\s*el(?:se|if)" firstNonSpace="true" insensitive="false" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />
+      </context>
+
+      <context name="Outscoped 2" attribute="Comment" lineEndContext="#stay">
+        <IncludeRules context="Outscoped Common" />
+        <RegExpr attribute="Preprocessor" context="#pop#pop" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />
+      </context>
+
+      <context name="Inscoped" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <RegExpr attribute="Preprocessor" context="Outscoped" String="(#|%\:|\?\?=)\s*if\s+(0|false)\s*" beginRegion="PP" firstNonSpace="true" insensitive="false" />
+        <RegExpr attribute="Preprocessor" context="Outscoped 2" String="(#|%\:|\?\?=)\s*el(?:se|if)" firstNonSpace="true" insensitive="false" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />
+        <IncludeRules context="Main" />
+      </context>
+
+      <context name="Outscoped intern" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+        <DetectIdentifier />
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Comment 1" char="/" char1="/" />
+        <Detect2Chars attribute="Comment" context="Comment 2" char="/" char1="*" beginRegion="Comment" />
+        <RegExpr attribute="Comment" context="Outscoped intern" String="(#|%\:|\?\?=)\s*if" beginRegion="PP" firstNonSpace="true" insensitive="false" />
+        <RegExpr attribute="Comment" context="#pop" String="(#|%\:|\?\?=)\s*endif" endRegion="PP" firstNonSpace="true" insensitive="false" />
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"        defStyleNum="dsNormal"   spellChecking="false" />
+      <itemData name="Control Flow"       defStyleNum="dsControlFlow" spellChecking="false" />
+      <itemData name="Keyword"            defStyleNum="dsKeyword"  spellChecking="false" />
+      <itemData name="Data Type"          defStyleNum="dsDataType" spellChecking="false" />
+      <itemData name="Type Modifiers"     defStyleNum="dsAttribute" spellChecking="false" />
+      <itemData name="Attribute"          defStyleNum="dsAttribute" spellChecking="false" bold="false" italic="true" />
+      <itemData name="Standard Attribute" defStyleNum="dsAttribute" spellChecking="false" bold="false" italic="true" />
+      <itemData name="Decimal"            defStyleNum="dsDecVal"   spellChecking="false" />
+      <itemData name="Octal"              defStyleNum="dsBaseN"    spellChecking="false" />
+      <itemData name="Hex"                defStyleNum="dsBaseN"    spellChecking="false" />
+      <itemData name="Binary"             defStyleNum="dsBaseN"    spellChecking="false" />
+      <itemData name="Float"              defStyleNum="dsFloat"    spellChecking="false" />
+      <itemData name="Char"               defStyleNum="dsChar"     spellChecking="false" />
+      <itemData name="String"             defStyleNum="dsString"   spellChecking="true"  />
+      <itemData name="String Char"        defStyleNum="dsSpecialChar" spellChecking="false" />
+      <itemData name="Comment"            defStyleNum="dsComment"  spellChecking="true"  />
+      <itemData name="Symbol"             defStyleNum="dsNormal"   spellChecking="false" />
+      <itemData name="Separator Symbol"   defStyleNum="dsNormal"   spellChecking="false" />
+      <itemData name="Data Members (m_*)" defStyleNum="dsVariable" spellChecking="false" />
+      <itemData name="Globals (g_*)"      defStyleNum="dsVariable" spellChecking="false" />
+      <itemData name="Statics (s_*)"      defStyleNum="dsVariable" spellChecking="false" />
+      <itemData name="Types (*_t/*_type)" defStyleNum="dsDataType" spellChecking="false" />
+      <itemData name="CONSTS/MACROS"      defStyleNum="dsNormal"   spellChecking="false" />
+      <itemData name="Preprocessor"       defStyleNum="dsPreprocessor" spellChecking="false" />
+      <itemData name="Prep. Lib"          defStyleNum="dsImport"   spellChecking="false" />
+      <itemData name="Standard Macros"    defStyleNum="dsOthers"   spellChecking="false" />
+      <itemData name="Standard Classes"   defStyleNum="dsBuiltIn"  spellChecking="false" />
+      <itemData name="Boost Stuff"        defStyleNum="dsExtension" spellChecking="false" />
+      <itemData name="Internals"          defStyleNum="dsNormal"   spellChecking="false" color="#808080" selColor="#808080" />
+      <itemData name="Region Marker"      defStyleNum="dsRegionMarker" spellChecking="false" />
+      <itemData name="Error"              defStyleNum="dsError"    spellChecking="false" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" region="Comment" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
+<!-- kate: indent-width 2; tab-width 2; -->
diff --git a/xml/java.xml b/xml/java.xml
new file mode 100644
--- /dev/null
+++ b/xml/java.xml
@@ -0,0 +1,3858 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Java" version="3" kateversion="5.0" section="Sources" extensions="*.java" mimetype="text/x-java" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
+	<highlighting>
+		<list name="java15">
+			<item>ACTIVE</item>
+			<item>ACTIVITY_COMPLETED</item>
+			<item>ACTIVITY_REQUIRED</item>
+			<item>ARG_IN</item>
+			<item>ARG_INOUT</item>
+			<item>ARG_OUT</item>
+			<item>AWTError</item>
+			<item>AWTEvent</item>
+			<item>AWTEventListener</item>
+			<item>AWTEventListenerProxy</item>
+			<item>AWTEventMulticaster</item>
+			<item>AWTException</item>
+			<item>AWTKeyStroke</item>
+			<item>AWTPermission</item>
+			<item>AbstractAction</item>
+			<item>AbstractBorder</item>
+			<item>AbstractButton</item>
+			<item>AbstractCellEditor</item>
+			<item>AbstractCollection</item>
+			<item>AbstractColorChooserPanel</item>
+			<item>AbstractDocument</item>
+			<item>AbstractDocument.AttributeContext</item>
+			<item>AbstractDocument.Content</item>
+			<item>AbstractDocument.ElementEdit</item>
+			<item>AbstractExecutorService</item>
+			<item>AbstractInterruptibleChannel</item>
+			<item>AbstractLayoutCache</item>
+			<item>AbstractLayoutCache.NodeDimensions</item>
+			<item>AbstractList</item>
+			<item>AbstractListModel</item>
+			<item>AbstractMap</item>
+			<item>AbstractMethodError</item>
+			<item>AbstractPreferences</item>
+			<item>AbstractQueue</item>
+			<item>AbstractQueuedSynchronizer</item>
+			<item>AbstractSelectableChannel</item>
+			<item>AbstractSelectionKey</item>
+			<item>AbstractSelector</item>
+			<item>AbstractSequentialList</item>
+			<item>AbstractSet</item>
+			<item>AbstractSpinnerModel</item>
+			<item>AbstractTableModel</item>
+			<item>AbstractUndoableEdit</item>
+			<item>AbstractWriter</item>
+			<item>AccessControlContext</item>
+			<item>AccessControlException</item>
+			<item>AccessController</item>
+			<item>AccessException</item>
+			<item>Accessible</item>
+			<item>AccessibleAction</item>
+			<item>AccessibleAttributeSequence</item>
+			<item>AccessibleBundle</item>
+			<item>AccessibleComponent</item>
+			<item>AccessibleContext</item>
+			<item>AccessibleEditableText</item>
+			<item>AccessibleExtendedComponent</item>
+			<item>AccessibleExtendedTable</item>
+			<item>AccessibleExtendedText</item>
+			<item>AccessibleHyperlink</item>
+			<item>AccessibleHypertext</item>
+			<item>AccessibleIcon</item>
+			<item>AccessibleKeyBinding</item>
+			<item>AccessibleObject</item>
+			<item>AccessibleRelation</item>
+			<item>AccessibleRelationSet</item>
+			<item>AccessibleResourceBundle</item>
+			<item>AccessibleRole</item>
+			<item>AccessibleSelection</item>
+			<item>AccessibleState</item>
+			<item>AccessibleStateSet</item>
+			<item>AccessibleStreamable</item>
+			<item>AccessibleTable</item>
+			<item>AccessibleTableModelChange</item>
+			<item>AccessibleText</item>
+			<item>AccessibleTextSequence</item>
+			<item>AccessibleValue</item>
+			<item>AccountException</item>
+			<item>AccountExpiredException</item>
+			<item>AccountLockedException</item>
+			<item>AccountNotFoundException</item>
+			<item>Acl</item>
+			<item>AclEntry</item>
+			<item>AclNotFoundException</item>
+			<item>Action</item>
+			<item>ActionEvent</item>
+			<item>ActionListener</item>
+			<item>ActionMap</item>
+			<item>ActionMapUIResource</item>
+			<item>Activatable</item>
+			<item>ActivateFailedException</item>
+			<item>ActivationDesc</item>
+			<item>ActivationException</item>
+			<item>ActivationGroup</item>
+			<item>ActivationGroupDesc</item>
+			<item>ActivationGroupDesc.CommandEnvironment</item>
+			<item>ActivationGroupID</item>
+			<item>ActivationGroup_Stub</item>
+			<item>ActivationID</item>
+			<item>ActivationInstantiator</item>
+			<item>ActivationMonitor</item>
+			<item>ActivationSystem</item>
+			<item>Activator</item>
+			<item>ActiveEvent</item>
+			<item>ActivityCompletedException</item>
+			<item>ActivityRequiredException</item>
+			<item>AdapterActivator</item>
+			<item>AdapterActivatorOperations</item>
+			<item>AdapterAlreadyExists</item>
+			<item>AdapterAlreadyExistsHelper</item>
+			<item>AdapterInactive</item>
+			<item>AdapterInactiveHelper</item>
+			<item>AdapterManagerIdHelper</item>
+			<item>AdapterNameHelper</item>
+			<item>AdapterNonExistent</item>
+			<item>AdapterNonExistentHelper</item>
+			<item>AdapterStateHelper</item>
+			<item>AddressHelper</item>
+			<item>Adjustable</item>
+			<item>AdjustmentEvent</item>
+			<item>AdjustmentListener</item>
+			<item>Adler32</item>
+			<item>AffineTransform</item>
+			<item>AffineTransformOp</item>
+			<item>AlgorithmParameterGenerator</item>
+			<item>AlgorithmParameterGeneratorSpi</item>
+			<item>AlgorithmParameterSpec</item>
+			<item>AlgorithmParameters</item>
+			<item>AlgorithmParametersSpi</item>
+			<item>AllPermission</item>
+			<item>AlphaComposite</item>
+			<item>AlreadyBound</item>
+			<item>AlreadyBoundException</item>
+			<item>AlreadyBoundHelper</item>
+			<item>AlreadyBoundHolder</item>
+			<item>AlreadyConnectedException</item>
+			<item>AncestorEvent</item>
+			<item>AncestorListener</item>
+			<item>AnnotatedElement</item>
+			<item>Annotation</item>
+			<item>AnnotationFormatError</item>
+			<item>AnnotationTypeMismatchException</item>
+			<item>Any</item>
+			<item>AnyHolder</item>
+			<item>AnySeqHelper</item>
+			<item>AnySeqHelper</item>
+			<item>AnySeqHolder</item>
+			<item>AppConfigurationEntry</item>
+			<item>AppConfigurationEntry.LoginModuleControlFlag</item>
+			<item>Appendable</item>
+			<item>Applet</item>
+			<item>AppletContext</item>
+			<item>AppletInitializer</item>
+			<item>AppletStub</item>
+			<item>ApplicationException</item>
+			<item>Arc2D</item>
+			<item>Arc2D.Double</item>
+			<item>Arc2D.Float</item>
+			<item>Area</item>
+			<item>AreaAveragingScaleFilter</item>
+			<item>ArithmeticException</item>
+			<item>Array</item>
+			<item>Array</item>
+			<item>ArrayBlockingQueue</item>
+			<item>ArrayIndexOutOfBoundsException</item>
+			<item>ArrayList</item>
+			<item>ArrayStoreException</item>
+			<item>ArrayType</item>
+			<item>Arrays</item>
+			<item>AssertionError</item>
+			<item>AsyncBoxView</item>
+			<item>AsynchronousCloseException</item>
+			<item>AtomicBoolean</item>
+			<item>AtomicInteger</item>
+			<item>AtomicIntegerArray</item>
+			<item>AtomicIntegerFieldUpdater</item>
+			<item>AtomicLong</item>
+			<item>AtomicLongArray</item>
+			<item>AtomicLongFieldUpdater</item>
+			<item>AtomicMarkableReference</item>
+			<item>AtomicReference</item>
+			<item>AtomicReferenceArray</item>
+			<item>AtomicReferenceFieldUpdater</item>
+			<item>AtomicStampedReference</item>
+			<item>Attr</item>
+			<item>Attribute</item>
+			<item>Attribute</item>
+			<item>Attribute</item>
+			<item>AttributeChangeNotification</item>
+			<item>AttributeChangeNotificationFilter</item>
+			<item>AttributeException</item>
+			<item>AttributeInUseException</item>
+			<item>AttributeList</item>
+			<item>AttributeList</item>
+			<item>AttributeList</item>
+			<item>AttributeListImpl</item>
+			<item>AttributeModificationException</item>
+			<item>AttributeNotFoundException</item>
+			<item>AttributeSet</item>
+			<item>AttributeSet</item>
+			<item>AttributeSet.CharacterAttribute</item>
+			<item>AttributeSet.ColorAttribute</item>
+			<item>AttributeSet.FontAttribute</item>
+			<item>AttributeSet.ParagraphAttribute</item>
+			<item>AttributeSetUtilities</item>
+			<item>AttributeValueExp</item>
+			<item>AttributedCharacterIterator</item>
+			<item>AttributedCharacterIterator.Attribute</item>
+			<item>AttributedString</item>
+			<item>Attributes</item>
+			<item>Attributes</item>
+			<item>Attributes</item>
+			<item>Attributes.Name</item>
+			<item>Attributes2</item>
+			<item>Attributes2Impl</item>
+			<item>AttributesImpl</item>
+			<item>AudioClip</item>
+			<item>AudioFileFormat</item>
+			<item>AudioFileFormat.Type</item>
+			<item>AudioFileReader</item>
+			<item>AudioFileWriter</item>
+			<item>AudioFormat</item>
+			<item>AudioFormat.Encoding</item>
+			<item>AudioInputStream</item>
+			<item>AudioPermission</item>
+			<item>AudioSystem</item>
+			<item>AuthPermission</item>
+			<item>AuthProvider</item>
+			<item>AuthenticationException</item>
+			<item>AuthenticationException</item>
+			<item>AuthenticationNotSupportedException</item>
+			<item>Authenticator</item>
+			<item>Authenticator.RequestorType</item>
+			<item>AuthorizeCallback</item>
+			<item>Autoscroll</item>
+			<item>BAD_CONTEXT</item>
+			<item>BAD_INV_ORDER</item>
+			<item>BAD_OPERATION</item>
+			<item>BAD_PARAM</item>
+			<item>BAD_POLICY</item>
+			<item>BAD_POLICY_TYPE</item>
+			<item>BAD_POLICY_VALUE</item>
+			<item>BAD_QOS</item>
+			<item>BAD_TYPECODE</item>
+			<item>BMPImageWriteParam</item>
+			<item>BackingStoreException</item>
+			<item>BadAttributeValueExpException</item>
+			<item>BadBinaryOpValueExpException</item>
+			<item>BadKind</item>
+			<item>BadLocationException</item>
+			<item>BadPaddingException</item>
+			<item>BadStringOperationException</item>
+			<item>BandCombineOp</item>
+			<item>BandedSampleModel</item>
+			<item>BaseRowSet</item>
+			<item>BasicArrowButton</item>
+			<item>BasicAttribute</item>
+			<item>BasicAttributes</item>
+			<item>BasicBorders</item>
+			<item>BasicBorders.ButtonBorder</item>
+			<item>BasicBorders.FieldBorder</item>
+			<item>BasicBorders.MarginBorder</item>
+			<item>BasicBorders.MenuBarBorder</item>
+			<item>BasicBorders.RadioButtonBorder</item>
+			<item>BasicBorders.RolloverButtonBorder</item>
+			<item>BasicBorders.SplitPaneBorder</item>
+			<item>BasicBorders.ToggleButtonBorder</item>
+			<item>BasicButtonListener</item>
+			<item>BasicButtonUI</item>
+			<item>BasicCheckBoxMenuItemUI</item>
+			<item>BasicCheckBoxUI</item>
+			<item>BasicColorChooserUI</item>
+			<item>BasicComboBoxEditor</item>
+			<item>BasicComboBoxEditor.UIResource</item>
+			<item>BasicComboBoxRenderer</item>
+			<item>BasicComboBoxRenderer.UIResource</item>
+			<item>BasicComboBoxUI</item>
+			<item>BasicComboPopup</item>
+			<item>BasicControl</item>
+			<item>BasicDesktopIconUI</item>
+			<item>BasicDesktopPaneUI</item>
+			<item>BasicDirectoryModel</item>
+			<item>BasicEditorPaneUI</item>
+			<item>BasicFileChooserUI</item>
+			<item>BasicFormattedTextFieldUI</item>
+			<item>BasicGraphicsUtils</item>
+			<item>BasicHTML</item>
+			<item>BasicIconFactory</item>
+			<item>BasicInternalFrameTitlePane</item>
+			<item>BasicInternalFrameUI</item>
+			<item>BasicLabelUI</item>
+			<item>BasicListUI</item>
+			<item>BasicLookAndFeel</item>
+			<item>BasicMenuBarUI</item>
+			<item>BasicMenuItemUI</item>
+			<item>BasicMenuUI</item>
+			<item>BasicOptionPaneUI</item>
+			<item>BasicOptionPaneUI.ButtonAreaLayout</item>
+			<item>BasicPanelUI</item>
+			<item>BasicPasswordFieldUI</item>
+			<item>BasicPermission</item>
+			<item>BasicPopupMenuSeparatorUI</item>
+			<item>BasicPopupMenuUI</item>
+			<item>BasicProgressBarUI</item>
+			<item>BasicRadioButtonMenuItemUI</item>
+			<item>BasicRadioButtonUI</item>
+			<item>BasicRootPaneUI</item>
+			<item>BasicScrollBarUI</item>
+			<item>BasicScrollPaneUI</item>
+			<item>BasicSeparatorUI</item>
+			<item>BasicSliderUI</item>
+			<item>BasicSpinnerUI</item>
+			<item>BasicSplitPaneDivider</item>
+			<item>BasicSplitPaneUI</item>
+			<item>BasicStroke</item>
+			<item>BasicTabbedPaneUI</item>
+			<item>BasicTableHeaderUI</item>
+			<item>BasicTableUI</item>
+			<item>BasicTextAreaUI</item>
+			<item>BasicTextFieldUI</item>
+			<item>BasicTextPaneUI</item>
+			<item>BasicTextUI</item>
+			<item>BasicTextUI.BasicCaret</item>
+			<item>BasicTextUI.BasicHighlighter</item>
+			<item>BasicToggleButtonUI</item>
+			<item>BasicToolBarSeparatorUI</item>
+			<item>BasicToolBarUI</item>
+			<item>BasicToolTipUI</item>
+			<item>BasicTreeUI</item>
+			<item>BasicViewportUI</item>
+			<item>BatchUpdateException</item>
+			<item>BeanContext</item>
+			<item>BeanContextChild</item>
+			<item>BeanContextChildComponentProxy</item>
+			<item>BeanContextChildSupport</item>
+			<item>BeanContextContainerProxy</item>
+			<item>BeanContextEvent</item>
+			<item>BeanContextMembershipEvent</item>
+			<item>BeanContextMembershipListener</item>
+			<item>BeanContextProxy</item>
+			<item>BeanContextServiceAvailableEvent</item>
+			<item>BeanContextServiceProvider</item>
+			<item>BeanContextServiceProviderBeanInfo</item>
+			<item>BeanContextServiceRevokedEvent</item>
+			<item>BeanContextServiceRevokedListener</item>
+			<item>BeanContextServices</item>
+			<item>BeanContextServicesListener</item>
+			<item>BeanContextServicesSupport</item>
+			<item>BeanContextServicesSupport.BCSSServiceProvider</item>
+			<item>BeanContextSupport</item>
+			<item>BeanContextSupport.BCSIterator</item>
+			<item>BeanDescriptor</item>
+			<item>BeanInfo</item>
+			<item>Beans</item>
+			<item>BevelBorder</item>
+			<item>Bidi</item>
+			<item>BigDecimal</item>
+			<item>BigInteger</item>
+			<item>BinaryRefAddr</item>
+			<item>BindException</item>
+			<item>Binding</item>
+			<item>Binding</item>
+			<item>BindingHelper</item>
+			<item>BindingHolder</item>
+			<item>BindingIterator</item>
+			<item>BindingIteratorHelper</item>
+			<item>BindingIteratorHolder</item>
+			<item>BindingIteratorOperations</item>
+			<item>BindingIteratorPOA</item>
+			<item>BindingListHelper</item>
+			<item>BindingListHolder</item>
+			<item>BindingType</item>
+			<item>BindingTypeHelper</item>
+			<item>BindingTypeHolder</item>
+			<item>BitSet</item>
+			<item>Blob</item>
+			<item>BlockView</item>
+			<item>BlockingQueue</item>
+			<item>Book</item>
+			<item>Boolean</item>
+			<item>BooleanControl</item>
+			<item>BooleanControl.Type</item>
+			<item>BooleanHolder</item>
+			<item>BooleanSeqHelper</item>
+			<item>BooleanSeqHolder</item>
+			<item>Border</item>
+			<item>BorderFactory</item>
+			<item>BorderLayout</item>
+			<item>BorderUIResource</item>
+			<item>BorderUIResource.BevelBorderUIResource</item>
+			<item>BorderUIResource.CompoundBorderUIResource</item>
+			<item>BorderUIResource.EmptyBorderUIResource</item>
+			<item>BorderUIResource.EtchedBorderUIResource</item>
+			<item>BorderUIResource.LineBorderUIResource</item>
+			<item>BorderUIResource.MatteBorderUIResource</item>
+			<item>BorderUIResource.TitledBorderUIResource</item>
+			<item>BoundedRangeModel</item>
+			<item>Bounds</item>
+			<item>Bounds</item>
+			<item>Box</item>
+			<item>Box.Filler</item>
+			<item>BoxLayout</item>
+			<item>BoxView</item>
+			<item>BoxedValueHelper</item>
+			<item>BreakIterator</item>
+			<item>BrokenBarrierException</item>
+			<item>Buffer</item>
+			<item>BufferCapabilities</item>
+			<item>BufferCapabilities.FlipContents</item>
+			<item>BufferOverflowException</item>
+			<item>BufferStrategy</item>
+			<item>BufferUnderflowException</item>
+			<item>BufferedImage</item>
+			<item>BufferedImageFilter</item>
+			<item>BufferedImageOp</item>
+			<item>BufferedInputStream</item>
+			<item>BufferedOutputStream</item>
+			<item>BufferedReader</item>
+			<item>BufferedWriter</item>
+			<item>Button</item>
+			<item>ButtonGroup</item>
+			<item>ButtonModel</item>
+			<item>ButtonUI</item>
+			<item>Byte</item>
+			<item>ByteArrayInputStream</item>
+			<item>ByteArrayOutputStream</item>
+			<item>ByteBuffer</item>
+			<item>ByteChannel</item>
+			<item>ByteHolder</item>
+			<item>ByteLookupTable</item>
+			<item>ByteOrder</item>
+			<item>CDATASection</item>
+			<item>CMMException</item>
+			<item>CODESET_INCOMPATIBLE</item>
+			<item>COMM_FAILURE</item>
+			<item>CRC32</item>
+			<item>CRL</item>
+			<item>CRLException</item>
+			<item>CRLSelector</item>
+			<item>CSS</item>
+			<item>CSS.Attribute</item>
+			<item>CTX_RESTRICT_SCOPE</item>
+			<item>CacheRequest</item>
+			<item>CacheResponse</item>
+			<item>CachedRowSet</item>
+			<item>Calendar</item>
+			<item>Callable</item>
+			<item>CallableStatement</item>
+			<item>Callback</item>
+			<item>CallbackHandler</item>
+			<item>CancelablePrintJob</item>
+			<item>CancellationException</item>
+			<item>CancelledKeyException</item>
+			<item>CannotProceed</item>
+			<item>CannotProceedException</item>
+			<item>CannotProceedHelper</item>
+			<item>CannotProceedHolder</item>
+			<item>CannotRedoException</item>
+			<item>CannotUndoException</item>
+			<item>Canvas</item>
+			<item>CardLayout</item>
+			<item>Caret</item>
+			<item>CaretEvent</item>
+			<item>CaretListener</item>
+			<item>CellEditor</item>
+			<item>CellEditorListener</item>
+			<item>CellRendererPane</item>
+			<item>CertPath</item>
+			<item>CertPath.CertPathRep</item>
+			<item>CertPathBuilder</item>
+			<item>CertPathBuilderException</item>
+			<item>CertPathBuilderResult</item>
+			<item>CertPathBuilderSpi</item>
+			<item>CertPathParameters</item>
+			<item>CertPathTrustManagerParameters</item>
+			<item>CertPathValidator</item>
+			<item>CertPathValidatorException</item>
+			<item>CertPathValidatorResult</item>
+			<item>CertPathValidatorSpi</item>
+			<item>CertSelector</item>
+			<item>CertStore</item>
+			<item>CertStoreException</item>
+			<item>CertStoreParameters</item>
+			<item>CertStoreSpi</item>
+			<item>Certificate</item>
+			<item>Certificate</item>
+			<item>Certificate</item>
+			<item>Certificate.CertificateRep</item>
+			<item>CertificateEncodingException</item>
+			<item>CertificateEncodingException</item>
+			<item>CertificateException</item>
+			<item>CertificateException</item>
+			<item>CertificateExpiredException</item>
+			<item>CertificateExpiredException</item>
+			<item>CertificateFactory</item>
+			<item>CertificateFactorySpi</item>
+			<item>CertificateNotYetValidException</item>
+			<item>CertificateNotYetValidException</item>
+			<item>CertificateParsingException</item>
+			<item>CertificateParsingException</item>
+			<item>ChangeEvent</item>
+			<item>ChangeListener</item>
+			<item>ChangedCharSetException</item>
+			<item>Channel</item>
+			<item>ChannelBinding</item>
+			<item>Channels</item>
+			<item>CharArrayReader</item>
+			<item>CharArrayWriter</item>
+			<item>CharBuffer</item>
+			<item>CharConversionException</item>
+			<item>CharHolder</item>
+			<item>CharSeqHelper</item>
+			<item>CharSeqHolder</item>
+			<item>CharSequence</item>
+			<item>Character</item>
+			<item>Character.Subset</item>
+			<item>Character.UnicodeBlock</item>
+			<item>CharacterCodingException</item>
+			<item>CharacterData</item>
+			<item>CharacterIterator</item>
+			<item>Charset</item>
+			<item>CharsetDecoder</item>
+			<item>CharsetEncoder</item>
+			<item>CharsetProvider</item>
+			<item>Checkbox</item>
+			<item>CheckboxGroup</item>
+			<item>CheckboxMenuItem</item>
+			<item>CheckedInputStream</item>
+			<item>CheckedOutputStream</item>
+			<item>Checksum</item>
+			<item>Choice</item>
+			<item>ChoiceCallback</item>
+			<item>ChoiceFormat</item>
+			<item>Chromaticity</item>
+			<item>Cipher</item>
+			<item>CipherInputStream</item>
+			<item>CipherOutputStream</item>
+			<item>CipherSpi</item>
+			<item>Class</item>
+			<item>ClassCastException</item>
+			<item>ClassCircularityError</item>
+			<item>ClassDefinition</item>
+			<item>ClassDesc</item>
+			<item>ClassFileTransformer</item>
+			<item>ClassFormatError</item>
+			<item>ClassLoader</item>
+			<item>ClassLoaderRepository</item>
+			<item>ClassLoadingMXBean</item>
+			<item>ClassNotFoundException</item>
+			<item>ClientRequestInfo</item>
+			<item>ClientRequestInfoOperations</item>
+			<item>ClientRequestInterceptor</item>
+			<item>ClientRequestInterceptorOperations</item>
+			<item>Clip</item>
+			<item>Clipboard</item>
+			<item>ClipboardOwner</item>
+			<item>Clob</item>
+			<item>CloneNotSupportedException</item>
+			<item>Cloneable</item>
+			<item>Closeable</item>
+			<item>ClosedByInterruptException</item>
+			<item>ClosedChannelException</item>
+			<item>ClosedSelectorException</item>
+			<item>CodeSets</item>
+			<item>CodeSigner</item>
+			<item>CodeSource</item>
+			<item>Codec</item>
+			<item>CodecFactory</item>
+			<item>CodecFactoryHelper</item>
+			<item>CodecFactoryOperations</item>
+			<item>CodecOperations</item>
+			<item>CoderMalfunctionError</item>
+			<item>CoderResult</item>
+			<item>CodingErrorAction</item>
+			<item>CollationElementIterator</item>
+			<item>CollationKey</item>
+			<item>Collator</item>
+			<item>Collection</item>
+			<item>CollectionCertStoreParameters</item>
+			<item>Collections</item>
+			<item>Color</item>
+			<item>ColorChooserComponentFactory</item>
+			<item>ColorChooserUI</item>
+			<item>ColorConvertOp</item>
+			<item>ColorModel</item>
+			<item>ColorSelectionModel</item>
+			<item>ColorSpace</item>
+			<item>ColorSupported</item>
+			<item>ColorType</item>
+			<item>ColorUIResource</item>
+			<item>ComboBoxEditor</item>
+			<item>ComboBoxModel</item>
+			<item>ComboBoxUI</item>
+			<item>ComboPopup</item>
+			<item>Comment</item>
+			<item>CommunicationException</item>
+			<item>Comparable</item>
+			<item>Comparator</item>
+			<item>CompilationMXBean</item>
+			<item>Compiler</item>
+			<item>CompletionService</item>
+			<item>CompletionStatus</item>
+			<item>CompletionStatusHelper</item>
+			<item>Component</item>
+			<item>ComponentAdapter</item>
+			<item>ComponentColorModel</item>
+			<item>ComponentEvent</item>
+			<item>ComponentIdHelper</item>
+			<item>ComponentInputMap</item>
+			<item>ComponentInputMapUIResource</item>
+			<item>ComponentListener</item>
+			<item>ComponentOrientation</item>
+			<item>ComponentSampleModel</item>
+			<item>ComponentUI</item>
+			<item>ComponentView</item>
+			<item>Composite</item>
+			<item>CompositeContext</item>
+			<item>CompositeData</item>
+			<item>CompositeDataSupport</item>
+			<item>CompositeName</item>
+			<item>CompositeType</item>
+			<item>CompositeView</item>
+			<item>CompoundBorder</item>
+			<item>CompoundControl</item>
+			<item>CompoundControl.Type</item>
+			<item>CompoundEdit</item>
+			<item>CompoundName</item>
+			<item>Compression</item>
+			<item>ConcurrentHashMap</item>
+			<item>ConcurrentLinkedQueue</item>
+			<item>ConcurrentMap</item>
+			<item>ConcurrentModificationException</item>
+			<item>Condition</item>
+			<item>Configuration</item>
+			<item>ConfigurationException</item>
+			<item>ConfirmationCallback</item>
+			<item>ConnectException</item>
+			<item>ConnectException</item>
+			<item>ConnectIOException</item>
+			<item>Connection</item>
+			<item>ConnectionEvent</item>
+			<item>ConnectionEventListener</item>
+			<item>ConnectionPendingException</item>
+			<item>ConnectionPoolDataSource</item>
+			<item>ConsoleHandler</item>
+			<item>Constructor</item>
+			<item>Container</item>
+			<item>ContainerAdapter</item>
+			<item>ContainerEvent</item>
+			<item>ContainerListener</item>
+			<item>ContainerOrderFocusTraversalPolicy</item>
+			<item>ContentHandler</item>
+			<item>ContentHandler</item>
+			<item>ContentHandlerFactory</item>
+			<item>ContentModel</item>
+			<item>Context</item>
+			<item>Context</item>
+			<item>ContextList</item>
+			<item>ContextNotEmptyException</item>
+			<item>ContextualRenderedImageFactory</item>
+			<item>Control</item>
+			<item>Control</item>
+			<item>Control.Type</item>
+			<item>ControlFactory</item>
+			<item>ControllerEventListener</item>
+			<item>ConvolveOp</item>
+			<item>CookieHandler</item>
+			<item>CookieHolder</item>
+			<item>Copies</item>
+			<item>CopiesSupported</item>
+			<item>CopyOnWriteArrayList</item>
+			<item>CopyOnWriteArraySet</item>
+			<item>CountDownLatch</item>
+			<item>CounterMonitor</item>
+			<item>CounterMonitorMBean</item>
+			<item>CredentialException</item>
+			<item>CredentialExpiredException</item>
+			<item>CredentialNotFoundException</item>
+			<item>CropImageFilter</item>
+			<item>CubicCurve2D</item>
+			<item>CubicCurve2D.Double</item>
+			<item>CubicCurve2D.Float</item>
+			<item>Currency</item>
+			<item>Current</item>
+			<item>Current</item>
+			<item>Current</item>
+			<item>CurrentHelper</item>
+			<item>CurrentHelper</item>
+			<item>CurrentHelper</item>
+			<item>CurrentHolder</item>
+			<item>CurrentOperations</item>
+			<item>CurrentOperations</item>
+			<item>CurrentOperations</item>
+			<item>Cursor</item>
+			<item>CustomMarshal</item>
+			<item>CustomValue</item>
+			<item>Customizer</item>
+			<item>CyclicBarrier</item>
+			<item>DATA_CONVERSION</item>
+			<item>DESKeySpec</item>
+			<item>DESedeKeySpec</item>
+			<item>DGC</item>
+			<item>DHGenParameterSpec</item>
+			<item>DHKey</item>
+			<item>DHParameterSpec</item>
+			<item>DHPrivateKey</item>
+			<item>DHPrivateKeySpec</item>
+			<item>DHPublicKey</item>
+			<item>DHPublicKeySpec</item>
+			<item>DISCARDING</item>
+			<item>DOMConfiguration</item>
+			<item>DOMError</item>
+			<item>DOMErrorHandler</item>
+			<item>DOMException</item>
+			<item>DOMImplementation</item>
+			<item>DOMImplementationLS</item>
+			<item>DOMImplementationList</item>
+			<item>DOMImplementationRegistry</item>
+			<item>DOMImplementationSource</item>
+			<item>DOMLocator</item>
+			<item>DOMLocator</item>
+			<item>DOMResult</item>
+			<item>DOMSource</item>
+			<item>DOMStringList</item>
+			<item>DSAKey</item>
+			<item>DSAKeyPairGenerator</item>
+			<item>DSAParameterSpec</item>
+			<item>DSAParams</item>
+			<item>DSAPrivateKey</item>
+			<item>DSAPrivateKeySpec</item>
+			<item>DSAPublicKey</item>
+			<item>DSAPublicKeySpec</item>
+			<item>DTD</item>
+			<item>DTDConstants</item>
+			<item>DTDHandler</item>
+			<item>DataBuffer</item>
+			<item>DataBufferByte</item>
+			<item>DataBufferDouble</item>
+			<item>DataBufferFloat</item>
+			<item>DataBufferInt</item>
+			<item>DataBufferShort</item>
+			<item>DataBufferUShort</item>
+			<item>DataFlavor</item>
+			<item>DataFormatException</item>
+			<item>DataInput</item>
+			<item>DataInputStream</item>
+			<item>DataInputStream</item>
+			<item>DataLine</item>
+			<item>DataLine.Info</item>
+			<item>DataOutput</item>
+			<item>DataOutputStream</item>
+			<item>DataOutputStream</item>
+			<item>DataSource</item>
+			<item>DataTruncation</item>
+			<item>DatabaseMetaData</item>
+			<item>DatagramChannel</item>
+			<item>DatagramPacket</item>
+			<item>DatagramSocket</item>
+			<item>DatagramSocketImpl</item>
+			<item>DatagramSocketImplFactory</item>
+			<item>DatatypeConfigurationException</item>
+			<item>DatatypeConstants</item>
+			<item>DatatypeConstants.Field</item>
+			<item>DatatypeFactory</item>
+			<item>Date</item>
+			<item>Date</item>
+			<item>DateFormat</item>
+			<item>DateFormat.Field</item>
+			<item>DateFormatSymbols</item>
+			<item>DateFormatter</item>
+			<item>DateTimeAtCompleted</item>
+			<item>DateTimeAtCreation</item>
+			<item>DateTimeAtProcessing</item>
+			<item>DateTimeSyntax</item>
+			<item>DebugGraphics</item>
+			<item>DecimalFormat</item>
+			<item>DecimalFormatSymbols</item>
+			<item>DeclHandler</item>
+			<item>DefaultBoundedRangeModel</item>
+			<item>DefaultButtonModel</item>
+			<item>DefaultCaret</item>
+			<item>DefaultCellEditor</item>
+			<item>DefaultColorSelectionModel</item>
+			<item>DefaultComboBoxModel</item>
+			<item>DefaultDesktopManager</item>
+			<item>DefaultEditorKit</item>
+			<item>DefaultEditorKit.BeepAction</item>
+			<item>DefaultEditorKit.CopyAction</item>
+			<item>DefaultEditorKit.CutAction</item>
+			<item>DefaultEditorKit.DefaultKeyTypedAction</item>
+			<item>DefaultEditorKit.InsertBreakAction</item>
+			<item>DefaultEditorKit.InsertContentAction</item>
+			<item>DefaultEditorKit.InsertTabAction</item>
+			<item>DefaultEditorKit.PasteAction</item>
+			<item>DefaultFocusManager</item>
+			<item>DefaultFocusTraversalPolicy</item>
+			<item>DefaultFormatter</item>
+			<item>DefaultFormatterFactory</item>
+			<item>DefaultHandler</item>
+			<item>DefaultHandler2</item>
+			<item>DefaultHighlighter</item>
+			<item>DefaultHighlighter.DefaultHighlightPainter</item>
+			<item>DefaultKeyboardFocusManager</item>
+			<item>DefaultListCellRenderer</item>
+			<item>DefaultListCellRenderer.UIResource</item>
+			<item>DefaultListModel</item>
+			<item>DefaultListSelectionModel</item>
+			<item>DefaultLoaderRepository</item>
+			<item>DefaultLoaderRepository</item>
+			<item>DefaultMenuLayout</item>
+			<item>DefaultMetalTheme</item>
+			<item>DefaultMutableTreeNode</item>
+			<item>DefaultPersistenceDelegate</item>
+			<item>DefaultSingleSelectionModel</item>
+			<item>DefaultStyledDocument</item>
+			<item>DefaultStyledDocument.AttributeUndoableEdit</item>
+			<item>DefaultStyledDocument.ElementSpec</item>
+			<item>DefaultTableCellRenderer</item>
+			<item>DefaultTableCellRenderer.UIResource</item>
+			<item>DefaultTableColumnModel</item>
+			<item>DefaultTableModel</item>
+			<item>DefaultTextUI</item>
+			<item>DefaultTreeCellEditor</item>
+			<item>DefaultTreeCellRenderer</item>
+			<item>DefaultTreeModel</item>
+			<item>DefaultTreeSelectionModel</item>
+			<item>DefinitionKind</item>
+			<item>DefinitionKindHelper</item>
+			<item>Deflater</item>
+			<item>DeflaterOutputStream</item>
+			<item>DelayQueue</item>
+			<item>Delayed</item>
+			<item>Delegate</item>
+			<item>Delegate</item>
+			<item>Delegate</item>
+			<item>DelegationPermission</item>
+			<item>Deprecated</item>
+			<item>Descriptor</item>
+			<item>DescriptorAccess</item>
+			<item>DescriptorSupport</item>
+			<item>DesignMode</item>
+			<item>DesktopIconUI</item>
+			<item>DesktopManager</item>
+			<item>DesktopPaneUI</item>
+			<item>Destination</item>
+			<item>DestroyFailedException</item>
+			<item>Destroyable</item>
+			<item>Dialog</item>
+			<item>Dictionary</item>
+			<item>DigestException</item>
+			<item>DigestInputStream</item>
+			<item>DigestOutputStream</item>
+			<item>Dimension</item>
+			<item>Dimension2D</item>
+			<item>DimensionUIResource</item>
+			<item>DirContext</item>
+			<item>DirObjectFactory</item>
+			<item>DirStateFactory</item>
+			<item>DirStateFactory.Result</item>
+			<item>DirectColorModel</item>
+			<item>DirectoryManager</item>
+			<item>DisplayMode</item>
+			<item>DnDConstants</item>
+			<item>Doc</item>
+			<item>DocAttribute</item>
+			<item>DocAttributeSet</item>
+			<item>DocFlavor</item>
+			<item>DocFlavor.BYTE_ARRAY</item>
+			<item>DocFlavor.CHAR_ARRAY</item>
+			<item>DocFlavor.INPUT_STREAM</item>
+			<item>DocFlavor.READER</item>
+			<item>DocFlavor.SERVICE_FORMATTED</item>
+			<item>DocFlavor.STRING</item>
+			<item>DocFlavor.URL</item>
+			<item>DocPrintJob</item>
+			<item>Document</item>
+			<item>Document</item>
+			<item>DocumentBuilder</item>
+			<item>DocumentBuilderFactory</item>
+			<item>DocumentEvent</item>
+			<item>DocumentEvent.ElementChange</item>
+			<item>DocumentEvent.EventType</item>
+			<item>DocumentFilter</item>
+			<item>DocumentFilter.FilterBypass</item>
+			<item>DocumentFragment</item>
+			<item>DocumentHandler</item>
+			<item>DocumentListener</item>
+			<item>DocumentName</item>
+			<item>DocumentParser</item>
+			<item>DocumentType</item>
+			<item>Documented</item>
+			<item>DomainCombiner</item>
+			<item>DomainManager</item>
+			<item>DomainManagerOperations</item>
+			<item>Double</item>
+			<item>DoubleBuffer</item>
+			<item>DoubleHolder</item>
+			<item>DoubleSeqHelper</item>
+			<item>DoubleSeqHolder</item>
+			<item>DragGestureEvent</item>
+			<item>DragGestureListener</item>
+			<item>DragGestureRecognizer</item>
+			<item>DragSource</item>
+			<item>DragSourceAdapter</item>
+			<item>DragSourceContext</item>
+			<item>DragSourceDragEvent</item>
+			<item>DragSourceDropEvent</item>
+			<item>DragSourceEvent</item>
+			<item>DragSourceListener</item>
+			<item>DragSourceMotionListener</item>
+			<item>Driver</item>
+			<item>DriverManager</item>
+			<item>DriverPropertyInfo</item>
+			<item>DropTarget</item>
+			<item>DropTarget.DropTargetAutoScroller</item>
+			<item>DropTargetAdapter</item>
+			<item>DropTargetContext</item>
+			<item>DropTargetDragEvent</item>
+			<item>DropTargetDropEvent</item>
+			<item>DropTargetEvent</item>
+			<item>DropTargetListener</item>
+			<item>DuplicateFormatFlagsException</item>
+			<item>DuplicateName</item>
+			<item>DuplicateNameHelper</item>
+			<item>Duration</item>
+			<item>DynAny</item>
+			<item>DynAny</item>
+			<item>DynAnyFactory</item>
+			<item>DynAnyFactoryHelper</item>
+			<item>DynAnyFactoryOperations</item>
+			<item>DynAnyHelper</item>
+			<item>DynAnyOperations</item>
+			<item>DynAnySeqHelper</item>
+			<item>DynArray</item>
+			<item>DynArray</item>
+			<item>DynArrayHelper</item>
+			<item>DynArrayOperations</item>
+			<item>DynEnum</item>
+			<item>DynEnum</item>
+			<item>DynEnumHelper</item>
+			<item>DynEnumOperations</item>
+			<item>DynFixed</item>
+			<item>DynFixed</item>
+			<item>DynFixedHelper</item>
+			<item>DynFixedOperations</item>
+			<item>DynSequence</item>
+			<item>DynSequence</item>
+			<item>DynSequenceHelper</item>
+			<item>DynSequenceOperations</item>
+			<item>DynStruct</item>
+			<item>DynStruct</item>
+			<item>DynStructHelper</item>
+			<item>DynStructOperations</item>
+			<item>DynUnion</item>
+			<item>DynUnion</item>
+			<item>DynUnionHelper</item>
+			<item>DynUnionOperations</item>
+			<item>DynValue</item>
+			<item>DynValue</item>
+			<item>DynValueBox</item>
+			<item>DynValueBoxOperations</item>
+			<item>DynValueCommon</item>
+			<item>DynValueCommonOperations</item>
+			<item>DynValueHelper</item>
+			<item>DynValueOperations</item>
+			<item>DynamicImplementation</item>
+			<item>DynamicImplementation</item>
+			<item>DynamicMBean</item>
+			<item>ECField</item>
+			<item>ECFieldF2m</item>
+			<item>ECFieldFp</item>
+			<item>ECGenParameterSpec</item>
+			<item>ECKey</item>
+			<item>ECParameterSpec</item>
+			<item>ECPoint</item>
+			<item>ECPrivateKey</item>
+			<item>ECPrivateKeySpec</item>
+			<item>ECPublicKey</item>
+			<item>ECPublicKeySpec</item>
+			<item>ENCODING_CDR_ENCAPS</item>
+			<item>EOFException</item>
+			<item>EditorKit</item>
+			<item>Element</item>
+			<item>Element</item>
+			<item>Element</item>
+			<item>ElementIterator</item>
+			<item>ElementType</item>
+			<item>Ellipse2D</item>
+			<item>Ellipse2D.Double</item>
+			<item>Ellipse2D.Float</item>
+			<item>EllipticCurve</item>
+			<item>EmptyBorder</item>
+			<item>EmptyStackException</item>
+			<item>EncodedKeySpec</item>
+			<item>Encoder</item>
+			<item>Encoding</item>
+			<item>EncryptedPrivateKeyInfo</item>
+			<item>Entity</item>
+			<item>Entity</item>
+			<item>EntityReference</item>
+			<item>EntityResolver</item>
+			<item>EntityResolver2</item>
+			<item>Enum</item>
+			<item>EnumConstantNotPresentException</item>
+			<item>EnumControl</item>
+			<item>EnumControl.Type</item>
+			<item>EnumMap</item>
+			<item>EnumSet</item>
+			<item>EnumSyntax</item>
+			<item>Enumeration</item>
+			<item>Environment</item>
+			<item>Error</item>
+			<item>ErrorHandler</item>
+			<item>ErrorListener</item>
+			<item>ErrorManager</item>
+			<item>EtchedBorder</item>
+			<item>Event</item>
+			<item>EventContext</item>
+			<item>EventDirContext</item>
+			<item>EventHandler</item>
+			<item>EventListener</item>
+			<item>EventListenerList</item>
+			<item>EventListenerProxy</item>
+			<item>EventObject</item>
+			<item>EventQueue</item>
+			<item>EventSetDescriptor</item>
+			<item>Exception</item>
+			<item>ExceptionDetailMessage</item>
+			<item>ExceptionInInitializerError</item>
+			<item>ExceptionList</item>
+			<item>ExceptionListener</item>
+			<item>Exchanger</item>
+			<item>ExecutionException</item>
+			<item>Executor</item>
+			<item>ExecutorCompletionService</item>
+			<item>ExecutorService</item>
+			<item>Executors</item>
+			<item>ExemptionMechanism</item>
+			<item>ExemptionMechanismException</item>
+			<item>ExemptionMechanismSpi</item>
+			<item>ExpandVetoException</item>
+			<item>ExportException</item>
+			<item>Expression</item>
+			<item>ExtendedRequest</item>
+			<item>ExtendedResponse</item>
+			<item>Externalizable</item>
+			<item>FREE_MEM</item>
+			<item>FactoryConfigurationError</item>
+			<item>FailedLoginException</item>
+			<item>FeatureDescriptor</item>
+			<item>Fidelity</item>
+			<item>Field</item>
+			<item>FieldNameHelper</item>
+			<item>FieldNameHelper</item>
+			<item>FieldPosition</item>
+			<item>FieldView</item>
+			<item>File</item>
+			<item>FileCacheImageInputStream</item>
+			<item>FileCacheImageOutputStream</item>
+			<item>FileChannel</item>
+			<item>FileChannel.MapMode</item>
+			<item>FileChooserUI</item>
+			<item>FileDescriptor</item>
+			<item>FileDialog</item>
+			<item>FileFilter</item>
+			<item>FileFilter</item>
+			<item>FileHandler</item>
+			<item>FileImageInputStream</item>
+			<item>FileImageOutputStream</item>
+			<item>FileInputStream</item>
+			<item>FileLock</item>
+			<item>FileLockInterruptionException</item>
+			<item>FileNameMap</item>
+			<item>FileNotFoundException</item>
+			<item>FileOutputStream</item>
+			<item>FilePermission</item>
+			<item>FileReader</item>
+			<item>FileSystemView</item>
+			<item>FileView</item>
+			<item>FileWriter</item>
+			<item>FilenameFilter</item>
+			<item>Filter</item>
+			<item>FilterInputStream</item>
+			<item>FilterOutputStream</item>
+			<item>FilterReader</item>
+			<item>FilterWriter</item>
+			<item>FilteredImageSource</item>
+			<item>FilteredRowSet</item>
+			<item>Finishings</item>
+			<item>FixedHeightLayoutCache</item>
+			<item>FixedHolder</item>
+			<item>FlatteningPathIterator</item>
+			<item>FlavorEvent</item>
+			<item>FlavorException</item>
+			<item>FlavorListener</item>
+			<item>FlavorMap</item>
+			<item>FlavorTable</item>
+			<item>Float</item>
+			<item>FloatBuffer</item>
+			<item>FloatControl</item>
+			<item>FloatControl.Type</item>
+			<item>FloatHolder</item>
+			<item>FloatSeqHelper</item>
+			<item>FloatSeqHolder</item>
+			<item>FlowLayout</item>
+			<item>FlowView</item>
+			<item>FlowView.FlowStrategy</item>
+			<item>Flushable</item>
+			<item>FocusAdapter</item>
+			<item>FocusEvent</item>
+			<item>FocusListener</item>
+			<item>FocusManager</item>
+			<item>FocusTraversalPolicy</item>
+			<item>Font</item>
+			<item>FontFormatException</item>
+			<item>FontMetrics</item>
+			<item>FontRenderContext</item>
+			<item>FontUIResource</item>
+			<item>FormSubmitEvent</item>
+			<item>FormSubmitEvent.MethodType</item>
+			<item>FormView</item>
+			<item>Format</item>
+			<item>Format.Field</item>
+			<item>FormatConversionProvider</item>
+			<item>FormatFlagsConversionMismatchException</item>
+			<item>FormatMismatch</item>
+			<item>FormatMismatchHelper</item>
+			<item>Formattable</item>
+			<item>FormattableFlags</item>
+			<item>Formatter</item>
+			<item>Formatter</item>
+			<item>FormatterClosedException</item>
+			<item>ForwardRequest</item>
+			<item>ForwardRequest</item>
+			<item>ForwardRequestHelper</item>
+			<item>ForwardRequestHelper</item>
+			<item>Frame</item>
+			<item>Future</item>
+			<item>FutureTask</item>
+			<item>GSSContext</item>
+			<item>GSSCredential</item>
+			<item>GSSException</item>
+			<item>GSSManager</item>
+			<item>GSSName</item>
+			<item>GZIPInputStream</item>
+			<item>GZIPOutputStream</item>
+			<item>GapContent</item>
+			<item>GarbageCollectorMXBean</item>
+			<item>GatheringByteChannel</item>
+			<item>GaugeMonitor</item>
+			<item>GaugeMonitorMBean</item>
+			<item>GeneralPath</item>
+			<item>GeneralSecurityException</item>
+			<item>GenericArrayType</item>
+			<item>GenericDeclaration</item>
+			<item>GenericSignatureFormatError</item>
+			<item>GlyphJustificationInfo</item>
+			<item>GlyphMetrics</item>
+			<item>GlyphVector</item>
+			<item>GlyphView</item>
+			<item>GlyphView.GlyphPainter</item>
+			<item>GradientPaint</item>
+			<item>GraphicAttribute</item>
+			<item>Graphics</item>
+			<item>Graphics2D</item>
+			<item>GraphicsConfigTemplate</item>
+			<item>GraphicsConfiguration</item>
+			<item>GraphicsDevice</item>
+			<item>GraphicsEnvironment</item>
+			<item>GrayFilter</item>
+			<item>GregorianCalendar</item>
+			<item>GridBagConstraints</item>
+			<item>GridBagLayout</item>
+			<item>GridLayout</item>
+			<item>Group</item>
+			<item>Guard</item>
+			<item>GuardedObject</item>
+			<item>HOLDING</item>
+			<item>HTML</item>
+			<item>HTML.Attribute</item>
+			<item>HTML.Tag</item>
+			<item>HTML.UnknownTag</item>
+			<item>HTMLDocument</item>
+			<item>HTMLDocument.Iterator</item>
+			<item>HTMLEditorKit</item>
+			<item>HTMLEditorKit.HTMLFactory</item>
+			<item>HTMLEditorKit.HTMLTextAction</item>
+			<item>HTMLEditorKit.InsertHTMLTextAction</item>
+			<item>HTMLEditorKit.LinkController</item>
+			<item>HTMLEditorKit.Parser</item>
+			<item>HTMLEditorKit.ParserCallback</item>
+			<item>HTMLFrameHyperlinkEvent</item>
+			<item>HTMLWriter</item>
+			<item>Handler</item>
+			<item>HandlerBase</item>
+			<item>HandshakeCompletedEvent</item>
+			<item>HandshakeCompletedListener</item>
+			<item>HasControls</item>
+			<item>HashAttributeSet</item>
+			<item>HashDocAttributeSet</item>
+			<item>HashMap</item>
+			<item>HashPrintJobAttributeSet</item>
+			<item>HashPrintRequestAttributeSet</item>
+			<item>HashPrintServiceAttributeSet</item>
+			<item>HashSet</item>
+			<item>Hashtable</item>
+			<item>HeadlessException</item>
+			<item>HierarchyBoundsAdapter</item>
+			<item>HierarchyBoundsListener</item>
+			<item>HierarchyEvent</item>
+			<item>HierarchyListener</item>
+			<item>Highlighter</item>
+			<item>Highlighter.Highlight</item>
+			<item>Highlighter.HighlightPainter</item>
+			<item>HostnameVerifier</item>
+			<item>HttpRetryException</item>
+			<item>HttpURLConnection</item>
+			<item>HttpsURLConnection</item>
+			<item>HyperlinkEvent</item>
+			<item>HyperlinkEvent.EventType</item>
+			<item>HyperlinkListener</item>
+			<item>ICC_ColorSpace</item>
+			<item>ICC_Profile</item>
+			<item>ICC_ProfileGray</item>
+			<item>ICC_ProfileRGB</item>
+			<item>IDLEntity</item>
+			<item>IDLType</item>
+			<item>IDLTypeHelper</item>
+			<item>IDLTypeOperations</item>
+			<item>ID_ASSIGNMENT_POLICY_ID</item>
+			<item>ID_UNIQUENESS_POLICY_ID</item>
+			<item>IIOByteBuffer</item>
+			<item>IIOException</item>
+			<item>IIOImage</item>
+			<item>IIOInvalidTreeException</item>
+			<item>IIOMetadata</item>
+			<item>IIOMetadataController</item>
+			<item>IIOMetadataFormat</item>
+			<item>IIOMetadataFormatImpl</item>
+			<item>IIOMetadataNode</item>
+			<item>IIOParam</item>
+			<item>IIOParamController</item>
+			<item>IIOReadProgressListener</item>
+			<item>IIOReadUpdateListener</item>
+			<item>IIOReadWarningListener</item>
+			<item>IIORegistry</item>
+			<item>IIOServiceProvider</item>
+			<item>IIOWriteProgressListener</item>
+			<item>IIOWriteWarningListener</item>
+			<item>IMPLICIT_ACTIVATION_POLICY_ID</item>
+			<item>IMP_LIMIT</item>
+			<item>INACTIVE</item>
+			<item>INITIALIZE</item>
+			<item>INTERNAL</item>
+			<item>INTF_REPOS</item>
+			<item>INVALID_ACTIVITY</item>
+			<item>INVALID_TRANSACTION</item>
+			<item>INV_FLAG</item>
+			<item>INV_IDENT</item>
+			<item>INV_OBJREF</item>
+			<item>INV_POLICY</item>
+			<item>IOException</item>
+			<item>IOR</item>
+			<item>IORHelper</item>
+			<item>IORHolder</item>
+			<item>IORInfo</item>
+			<item>IORInfoOperations</item>
+			<item>IORInterceptor</item>
+			<item>IORInterceptorOperations</item>
+			<item>IORInterceptor_3_0</item>
+			<item>IORInterceptor_3_0Helper</item>
+			<item>IORInterceptor_3_0Holder</item>
+			<item>IORInterceptor_3_0Operations</item>
+			<item>IRObject</item>
+			<item>IRObjectOperations</item>
+			<item>Icon</item>
+			<item>IconUIResource</item>
+			<item>IconView</item>
+			<item>IdAssignmentPolicy</item>
+			<item>IdAssignmentPolicyOperations</item>
+			<item>IdAssignmentPolicyValue</item>
+			<item>IdUniquenessPolicy</item>
+			<item>IdUniquenessPolicyOperations</item>
+			<item>IdUniquenessPolicyValue</item>
+			<item>IdentifierHelper</item>
+			<item>Identity</item>
+			<item>IdentityHashMap</item>
+			<item>IdentityScope</item>
+			<item>IllegalAccessError</item>
+			<item>IllegalAccessException</item>
+			<item>IllegalArgumentException</item>
+			<item>IllegalBlockSizeException</item>
+			<item>IllegalBlockingModeException</item>
+			<item>IllegalCharsetNameException</item>
+			<item>IllegalClassFormatException</item>
+			<item>IllegalComponentStateException</item>
+			<item>IllegalFormatCodePointException</item>
+			<item>IllegalFormatConversionException</item>
+			<item>IllegalFormatException</item>
+			<item>IllegalFormatFlagsException</item>
+			<item>IllegalFormatPrecisionException</item>
+			<item>IllegalFormatWidthException</item>
+			<item>IllegalMonitorStateException</item>
+			<item>IllegalPathStateException</item>
+			<item>IllegalSelectorException</item>
+			<item>IllegalStateException</item>
+			<item>IllegalThreadStateException</item>
+			<item>Image</item>
+			<item>ImageCapabilities</item>
+			<item>ImageConsumer</item>
+			<item>ImageFilter</item>
+			<item>ImageGraphicAttribute</item>
+			<item>ImageIO</item>
+			<item>ImageIcon</item>
+			<item>ImageInputStream</item>
+			<item>ImageInputStreamImpl</item>
+			<item>ImageInputStreamSpi</item>
+			<item>ImageObserver</item>
+			<item>ImageOutputStream</item>
+			<item>ImageOutputStreamImpl</item>
+			<item>ImageOutputStreamSpi</item>
+			<item>ImageProducer</item>
+			<item>ImageReadParam</item>
+			<item>ImageReader</item>
+			<item>ImageReaderSpi</item>
+			<item>ImageReaderWriterSpi</item>
+			<item>ImageTranscoder</item>
+			<item>ImageTranscoderSpi</item>
+			<item>ImageTypeSpecifier</item>
+			<item>ImageView</item>
+			<item>ImageWriteParam</item>
+			<item>ImageWriter</item>
+			<item>ImageWriterSpi</item>
+			<item>ImagingOpException</item>
+			<item>ImplicitActivationPolicy</item>
+			<item>ImplicitActivationPolicyOperations</item>
+			<item>ImplicitActivationPolicyValue</item>
+			<item>IncompatibleClassChangeError</item>
+			<item>IncompleteAnnotationException</item>
+			<item>InconsistentTypeCode</item>
+			<item>InconsistentTypeCode</item>
+			<item>InconsistentTypeCodeHelper</item>
+			<item>IndexColorModel</item>
+			<item>IndexOutOfBoundsException</item>
+			<item>IndexedPropertyChangeEvent</item>
+			<item>IndexedPropertyDescriptor</item>
+			<item>IndirectionException</item>
+			<item>Inet4Address</item>
+			<item>Inet6Address</item>
+			<item>InetAddress</item>
+			<item>InetSocketAddress</item>
+			<item>Inflater</item>
+			<item>InflaterInputStream</item>
+			<item>InheritableThreadLocal</item>
+			<item>Inherited</item>
+			<item>InitialContext</item>
+			<item>InitialContextFactory</item>
+			<item>InitialContextFactoryBuilder</item>
+			<item>InitialDirContext</item>
+			<item>InitialLdapContext</item>
+			<item>InlineView</item>
+			<item>InputContext</item>
+			<item>InputEvent</item>
+			<item>InputMap</item>
+			<item>InputMapUIResource</item>
+			<item>InputMethod</item>
+			<item>InputMethodContext</item>
+			<item>InputMethodDescriptor</item>
+			<item>InputMethodEvent</item>
+			<item>InputMethodHighlight</item>
+			<item>InputMethodListener</item>
+			<item>InputMethodRequests</item>
+			<item>InputMismatchException</item>
+			<item>InputSource</item>
+			<item>InputStream</item>
+			<item>InputStream</item>
+			<item>InputStream</item>
+			<item>InputStreamReader</item>
+			<item>InputSubset</item>
+			<item>InputVerifier</item>
+			<item>Insets</item>
+			<item>InsetsUIResource</item>
+			<item>InstanceAlreadyExistsException</item>
+			<item>InstanceNotFoundException</item>
+			<item>InstantiationError</item>
+			<item>InstantiationException</item>
+			<item>Instrument</item>
+			<item>Instrumentation</item>
+			<item>InsufficientResourcesException</item>
+			<item>IntBuffer</item>
+			<item>IntHolder</item>
+			<item>Integer</item>
+			<item>IntegerSyntax</item>
+			<item>Interceptor</item>
+			<item>InterceptorOperations</item>
+			<item>InternalError</item>
+			<item>InternalFrameAdapter</item>
+			<item>InternalFrameEvent</item>
+			<item>InternalFrameFocusTraversalPolicy</item>
+			<item>InternalFrameListener</item>
+			<item>InternalFrameUI</item>
+			<item>InternationalFormatter</item>
+			<item>InterruptedException</item>
+			<item>InterruptedIOException</item>
+			<item>InterruptedNamingException</item>
+			<item>InterruptibleChannel</item>
+			<item>IntrospectionException</item>
+			<item>IntrospectionException</item>
+			<item>Introspector</item>
+			<item>Invalid</item>
+			<item>InvalidActivityException</item>
+			<item>InvalidAddress</item>
+			<item>InvalidAddressHelper</item>
+			<item>InvalidAddressHolder</item>
+			<item>InvalidAlgorithmParameterException</item>
+			<item>InvalidApplicationException</item>
+			<item>InvalidAttributeIdentifierException</item>
+			<item>InvalidAttributeValueException</item>
+			<item>InvalidAttributeValueException</item>
+			<item>InvalidAttributesException</item>
+			<item>InvalidClassException</item>
+			<item>InvalidDnDOperationException</item>
+			<item>InvalidKeyException</item>
+			<item>InvalidKeyException</item>
+			<item>InvalidKeySpecException</item>
+			<item>InvalidMarkException</item>
+			<item>InvalidMidiDataException</item>
+			<item>InvalidName</item>
+			<item>InvalidName</item>
+			<item>InvalidName</item>
+			<item>InvalidNameException</item>
+			<item>InvalidNameHelper</item>
+			<item>InvalidNameHelper</item>
+			<item>InvalidNameHolder</item>
+			<item>InvalidObjectException</item>
+			<item>InvalidOpenTypeException</item>
+			<item>InvalidParameterException</item>
+			<item>InvalidParameterSpecException</item>
+			<item>InvalidPolicy</item>
+			<item>InvalidPolicyHelper</item>
+			<item>InvalidPreferencesFormatException</item>
+			<item>InvalidPropertiesFormatException</item>
+			<item>InvalidRelationIdException</item>
+			<item>InvalidRelationServiceException</item>
+			<item>InvalidRelationTypeException</item>
+			<item>InvalidRoleInfoException</item>
+			<item>InvalidRoleValueException</item>
+			<item>InvalidSearchControlsException</item>
+			<item>InvalidSearchFilterException</item>
+			<item>InvalidSeq</item>
+			<item>InvalidSlot</item>
+			<item>InvalidSlotHelper</item>
+			<item>InvalidTargetObjectTypeException</item>
+			<item>InvalidTransactionException</item>
+			<item>InvalidTypeForEncoding</item>
+			<item>InvalidTypeForEncodingHelper</item>
+			<item>InvalidValue</item>
+			<item>InvalidValue</item>
+			<item>InvalidValueHelper</item>
+			<item>InvocationEvent</item>
+			<item>InvocationHandler</item>
+			<item>InvocationTargetException</item>
+			<item>InvokeHandler</item>
+			<item>IstringHelper</item>
+			<item>ItemEvent</item>
+			<item>ItemListener</item>
+			<item>ItemSelectable</item>
+			<item>Iterable</item>
+			<item>Iterator</item>
+			<item>IvParameterSpec</item>
+			<item>JApplet</item>
+			<item>JButton</item>
+			<item>JCheckBox</item>
+			<item>JCheckBoxMenuItem</item>
+			<item>JColorChooser</item>
+			<item>JComboBox</item>
+			<item>JComboBox.KeySelectionManager</item>
+			<item>JComponent</item>
+			<item>JDesktopPane</item>
+			<item>JDialog</item>
+			<item>JEditorPane</item>
+			<item>JFileChooser</item>
+			<item>JFormattedTextField</item>
+			<item>JFormattedTextField.AbstractFormatter</item>
+			<item>JFormattedTextField.AbstractFormatterFactory</item>
+			<item>JFrame</item>
+			<item>JInternalFrame</item>
+			<item>JInternalFrame.JDesktopIcon</item>
+			<item>JLabel</item>
+			<item>JLayeredPane</item>
+			<item>JList</item>
+			<item>JMException</item>
+			<item>JMRuntimeException</item>
+			<item>JMXAuthenticator</item>
+			<item>JMXConnectionNotification</item>
+			<item>JMXConnector</item>
+			<item>JMXConnectorFactory</item>
+			<item>JMXConnectorProvider</item>
+			<item>JMXConnectorServer</item>
+			<item>JMXConnectorServerFactory</item>
+			<item>JMXConnectorServerMBean</item>
+			<item>JMXConnectorServerProvider</item>
+			<item>JMXPrincipal</item>
+			<item>JMXProviderException</item>
+			<item>JMXServerErrorException</item>
+			<item>JMXServiceURL</item>
+			<item>JMenu</item>
+			<item>JMenuBar</item>
+			<item>JMenuItem</item>
+			<item>JOptionPane</item>
+			<item>JPEGHuffmanTable</item>
+			<item>JPEGImageReadParam</item>
+			<item>JPEGImageWriteParam</item>
+			<item>JPEGQTable</item>
+			<item>JPanel</item>
+			<item>JPasswordField</item>
+			<item>JPopupMenu</item>
+			<item>JPopupMenu.Separator</item>
+			<item>JProgressBar</item>
+			<item>JRadioButton</item>
+			<item>JRadioButtonMenuItem</item>
+			<item>JRootPane</item>
+			<item>JScrollBar</item>
+			<item>JScrollPane</item>
+			<item>JSeparator</item>
+			<item>JSlider</item>
+			<item>JSpinner</item>
+			<item>JSpinner.DateEditor</item>
+			<item>JSpinner.DefaultEditor</item>
+			<item>JSpinner.ListEditor</item>
+			<item>JSpinner.NumberEditor</item>
+			<item>JSplitPane</item>
+			<item>JTabbedPane</item>
+			<item>JTable</item>
+			<item>JTable.PrintMode</item>
+			<item>JTableHeader</item>
+			<item>JTextArea</item>
+			<item>JTextComponent</item>
+			<item>JTextComponent.KeyBinding</item>
+			<item>JTextField</item>
+			<item>JTextPane</item>
+			<item>JToggleButton</item>
+			<item>JToggleButton.ToggleButtonModel</item>
+			<item>JToolBar</item>
+			<item>JToolBar.Separator</item>
+			<item>JToolTip</item>
+			<item>JTree</item>
+			<item>JTree.DynamicUtilTreeNode</item>
+			<item>JTree.EmptySelectionModel</item>
+			<item>JViewport</item>
+			<item>JWindow</item>
+			<item>JarEntry</item>
+			<item>JarException</item>
+			<item>JarFile</item>
+			<item>JarInputStream</item>
+			<item>JarOutputStream</item>
+			<item>JarURLConnection</item>
+			<item>JdbcRowSet</item>
+			<item>JobAttributes</item>
+			<item>JobAttributes.DefaultSelectionType</item>
+			<item>JobAttributes.DestinationType</item>
+			<item>JobAttributes.DialogType</item>
+			<item>JobAttributes.MultipleDocumentHandlingType</item>
+			<item>JobAttributes.SidesType</item>
+			<item>JobHoldUntil</item>
+			<item>JobImpressions</item>
+			<item>JobImpressionsCompleted</item>
+			<item>JobImpressionsSupported</item>
+			<item>JobKOctets</item>
+			<item>JobKOctetsProcessed</item>
+			<item>JobKOctetsSupported</item>
+			<item>JobMediaSheets</item>
+			<item>JobMediaSheetsCompleted</item>
+			<item>JobMediaSheetsSupported</item>
+			<item>JobMessageFromOperator</item>
+			<item>JobName</item>
+			<item>JobOriginatingUserName</item>
+			<item>JobPriority</item>
+			<item>JobPrioritySupported</item>
+			<item>JobSheets</item>
+			<item>JobState</item>
+			<item>JobStateReason</item>
+			<item>JobStateReasons</item>
+			<item>JoinRowSet</item>
+			<item>Joinable</item>
+			<item>KerberosKey</item>
+			<item>KerberosPrincipal</item>
+			<item>KerberosTicket</item>
+			<item>Kernel</item>
+			<item>Key</item>
+			<item>KeyAdapter</item>
+			<item>KeyAgreement</item>
+			<item>KeyAgreementSpi</item>
+			<item>KeyAlreadyExistsException</item>
+			<item>KeyEvent</item>
+			<item>KeyEventDispatcher</item>
+			<item>KeyEventPostProcessor</item>
+			<item>KeyException</item>
+			<item>KeyFactory</item>
+			<item>KeyFactorySpi</item>
+			<item>KeyGenerator</item>
+			<item>KeyGeneratorSpi</item>
+			<item>KeyListener</item>
+			<item>KeyManagementException</item>
+			<item>KeyManager</item>
+			<item>KeyManagerFactory</item>
+			<item>KeyManagerFactorySpi</item>
+			<item>KeyPair</item>
+			<item>KeyPairGenerator</item>
+			<item>KeyPairGeneratorSpi</item>
+			<item>KeyRep</item>
+			<item>KeyRep.Type</item>
+			<item>KeySpec</item>
+			<item>KeyStore</item>
+			<item>KeyStore.Builder</item>
+			<item>KeyStore.CallbackHandlerProtection</item>
+			<item>KeyStore.Entry</item>
+			<item>KeyStore.LoadStoreParameter</item>
+			<item>KeyStore.PasswordProtection</item>
+			<item>KeyStore.PrivateKeyEntry</item>
+			<item>KeyStore.ProtectionParameter</item>
+			<item>KeyStore.SecretKeyEntry</item>
+			<item>KeyStore.TrustedCertificateEntry</item>
+			<item>KeyStoreBuilderParameters</item>
+			<item>KeyStoreException</item>
+			<item>KeyStoreSpi</item>
+			<item>KeyStroke</item>
+			<item>KeyboardFocusManager</item>
+			<item>Keymap</item>
+			<item>LDAPCertStoreParameters</item>
+			<item>LIFESPAN_POLICY_ID</item>
+			<item>LOCATION_FORWARD</item>
+			<item>LSException</item>
+			<item>LSInput</item>
+			<item>LSLoadEvent</item>
+			<item>LSOutput</item>
+			<item>LSParser</item>
+			<item>LSParserFilter</item>
+			<item>LSProgressEvent</item>
+			<item>LSResourceResolver</item>
+			<item>LSSerializer</item>
+			<item>LSSerializerFilter</item>
+			<item>Label</item>
+			<item>LabelUI</item>
+			<item>LabelView</item>
+			<item>LanguageCallback</item>
+			<item>LastOwnerException</item>
+			<item>LayeredHighlighter</item>
+			<item>LayeredHighlighter.LayerPainter</item>
+			<item>LayoutFocusTraversalPolicy</item>
+			<item>LayoutManager</item>
+			<item>LayoutManager2</item>
+			<item>LayoutQueue</item>
+			<item>LdapContext</item>
+			<item>LdapName</item>
+			<item>LdapReferralException</item>
+			<item>Lease</item>
+			<item>Level</item>
+			<item>LexicalHandler</item>
+			<item>LifespanPolicy</item>
+			<item>LifespanPolicyOperations</item>
+			<item>LifespanPolicyValue</item>
+			<item>LimitExceededException</item>
+			<item>Line</item>
+			<item>Line.Info</item>
+			<item>Line2D</item>
+			<item>Line2D.Double</item>
+			<item>Line2D.Float</item>
+			<item>LineBorder</item>
+			<item>LineBreakMeasurer</item>
+			<item>LineEvent</item>
+			<item>LineEvent.Type</item>
+			<item>LineListener</item>
+			<item>LineMetrics</item>
+			<item>LineNumberInputStream</item>
+			<item>LineNumberReader</item>
+			<item>LineUnavailableException</item>
+			<item>LinkException</item>
+			<item>LinkLoopException</item>
+			<item>LinkRef</item>
+			<item>LinkageError</item>
+			<item>LinkedBlockingQueue</item>
+			<item>LinkedHashMap</item>
+			<item>LinkedHashSet</item>
+			<item>LinkedList</item>
+			<item>List</item>
+			<item>List</item>
+			<item>ListCellRenderer</item>
+			<item>ListDataEvent</item>
+			<item>ListDataListener</item>
+			<item>ListIterator</item>
+			<item>ListModel</item>
+			<item>ListResourceBundle</item>
+			<item>ListSelectionEvent</item>
+			<item>ListSelectionListener</item>
+			<item>ListSelectionModel</item>
+			<item>ListUI</item>
+			<item>ListView</item>
+			<item>ListenerNotFoundException</item>
+			<item>LoaderHandler</item>
+			<item>LocalObject</item>
+			<item>Locale</item>
+			<item>LocateRegistry</item>
+			<item>Locator</item>
+			<item>Locator2</item>
+			<item>Locator2Impl</item>
+			<item>LocatorImpl</item>
+			<item>Lock</item>
+			<item>LockSupport</item>
+			<item>LogManager</item>
+			<item>LogRecord</item>
+			<item>LogStream</item>
+			<item>Logger</item>
+			<item>LoggingMXBean</item>
+			<item>LoggingPermission</item>
+			<item>LoginContext</item>
+			<item>LoginException</item>
+			<item>LoginModule</item>
+			<item>Long</item>
+			<item>LongBuffer</item>
+			<item>LongHolder</item>
+			<item>LongLongSeqHelper</item>
+			<item>LongLongSeqHolder</item>
+			<item>LongSeqHelper</item>
+			<item>LongSeqHolder</item>
+			<item>LookAndFeel</item>
+			<item>LookupOp</item>
+			<item>LookupTable</item>
+			<item>MARSHAL</item>
+			<item>MBeanAttributeInfo</item>
+			<item>MBeanConstructorInfo</item>
+			<item>MBeanException</item>
+			<item>MBeanFeatureInfo</item>
+			<item>MBeanInfo</item>
+			<item>MBeanNotificationInfo</item>
+			<item>MBeanOperationInfo</item>
+			<item>MBeanParameterInfo</item>
+			<item>MBeanPermission</item>
+			<item>MBeanRegistration</item>
+			<item>MBeanRegistrationException</item>
+			<item>MBeanServer</item>
+			<item>MBeanServerBuilder</item>
+			<item>MBeanServerConnection</item>
+			<item>MBeanServerDelegate</item>
+			<item>MBeanServerDelegateMBean</item>
+			<item>MBeanServerFactory</item>
+			<item>MBeanServerForwarder</item>
+			<item>MBeanServerInvocationHandler</item>
+			<item>MBeanServerNotification</item>
+			<item>MBeanServerNotificationFilter</item>
+			<item>MBeanServerPermission</item>
+			<item>MBeanTrustPermission</item>
+			<item>MGF1ParameterSpec</item>
+			<item>MLet</item>
+			<item>MLetMBean</item>
+			<item>Mac</item>
+			<item>MacSpi</item>
+			<item>MalformedInputException</item>
+			<item>MalformedLinkException</item>
+			<item>MalformedObjectNameException</item>
+			<item>MalformedParameterizedTypeException</item>
+			<item>MalformedURLException</item>
+			<item>ManageReferralControl</item>
+			<item>ManagementFactory</item>
+			<item>ManagementPermission</item>
+			<item>ManagerFactoryParameters</item>
+			<item>Manifest</item>
+			<item>Map</item>
+			<item>Map.Entry</item>
+			<item>MappedByteBuffer</item>
+			<item>MarshalException</item>
+			<item>MarshalledObject</item>
+			<item>MaskFormatter</item>
+			<item>MatchResult</item>
+			<item>Matcher</item>
+			<item>Math</item>
+			<item>MathContext</item>
+			<item>MatteBorder</item>
+			<item>Media</item>
+			<item>MediaName</item>
+			<item>MediaPrintableArea</item>
+			<item>MediaSize</item>
+			<item>MediaSize.Engineering</item>
+			<item>MediaSize.ISO</item>
+			<item>MediaSize.JIS</item>
+			<item>MediaSize.NA</item>
+			<item>MediaSize.Other</item>
+			<item>MediaSizeName</item>
+			<item>MediaTracker</item>
+			<item>MediaTray</item>
+			<item>Member</item>
+			<item>MemoryCacheImageInputStream</item>
+			<item>MemoryCacheImageOutputStream</item>
+			<item>MemoryHandler</item>
+			<item>MemoryImageSource</item>
+			<item>MemoryMXBean</item>
+			<item>MemoryManagerMXBean</item>
+			<item>MemoryNotificationInfo</item>
+			<item>MemoryPoolMXBean</item>
+			<item>MemoryType</item>
+			<item>MemoryUsage</item>
+			<item>Menu</item>
+			<item>MenuBar</item>
+			<item>MenuBarUI</item>
+			<item>MenuComponent</item>
+			<item>MenuContainer</item>
+			<item>MenuDragMouseEvent</item>
+			<item>MenuDragMouseListener</item>
+			<item>MenuElement</item>
+			<item>MenuEvent</item>
+			<item>MenuItem</item>
+			<item>MenuItemUI</item>
+			<item>MenuKeyEvent</item>
+			<item>MenuKeyListener</item>
+			<item>MenuListener</item>
+			<item>MenuSelectionManager</item>
+			<item>MenuShortcut</item>
+			<item>MessageDigest</item>
+			<item>MessageDigestSpi</item>
+			<item>MessageFormat</item>
+			<item>MessageFormat.Field</item>
+			<item>MessageProp</item>
+			<item>MetaEventListener</item>
+			<item>MetaMessage</item>
+			<item>MetalBorders</item>
+			<item>MetalBorders.ButtonBorder</item>
+			<item>MetalBorders.Flush3DBorder</item>
+			<item>MetalBorders.InternalFrameBorder</item>
+			<item>MetalBorders.MenuBarBorder</item>
+			<item>MetalBorders.MenuItemBorder</item>
+			<item>MetalBorders.OptionDialogBorder</item>
+			<item>MetalBorders.PaletteBorder</item>
+			<item>MetalBorders.PopupMenuBorder</item>
+			<item>MetalBorders.RolloverButtonBorder</item>
+			<item>MetalBorders.ScrollPaneBorder</item>
+			<item>MetalBorders.TableHeaderBorder</item>
+			<item>MetalBorders.TextFieldBorder</item>
+			<item>MetalBorders.ToggleButtonBorder</item>
+			<item>MetalBorders.ToolBarBorder</item>
+			<item>MetalButtonUI</item>
+			<item>MetalCheckBoxIcon</item>
+			<item>MetalCheckBoxUI</item>
+			<item>MetalComboBoxButton</item>
+			<item>MetalComboBoxEditor</item>
+			<item>MetalComboBoxEditor.UIResource</item>
+			<item>MetalComboBoxIcon</item>
+			<item>MetalComboBoxUI</item>
+			<item>MetalDesktopIconUI</item>
+			<item>MetalFileChooserUI</item>
+			<item>MetalIconFactory</item>
+			<item>MetalIconFactory.FileIcon16</item>
+			<item>MetalIconFactory.FolderIcon16</item>
+			<item>MetalIconFactory.PaletteCloseIcon</item>
+			<item>MetalIconFactory.TreeControlIcon</item>
+			<item>MetalIconFactory.TreeFolderIcon</item>
+			<item>MetalIconFactory.TreeLeafIcon</item>
+			<item>MetalInternalFrameTitlePane</item>
+			<item>MetalInternalFrameUI</item>
+			<item>MetalLabelUI</item>
+			<item>MetalLookAndFeel</item>
+			<item>MetalMenuBarUI</item>
+			<item>MetalPopupMenuSeparatorUI</item>
+			<item>MetalProgressBarUI</item>
+			<item>MetalRadioButtonUI</item>
+			<item>MetalRootPaneUI</item>
+			<item>MetalScrollBarUI</item>
+			<item>MetalScrollButton</item>
+			<item>MetalScrollPaneUI</item>
+			<item>MetalSeparatorUI</item>
+			<item>MetalSliderUI</item>
+			<item>MetalSplitPaneUI</item>
+			<item>MetalTabbedPaneUI</item>
+			<item>MetalTextFieldUI</item>
+			<item>MetalTheme</item>
+			<item>MetalToggleButtonUI</item>
+			<item>MetalToolBarUI</item>
+			<item>MetalToolTipUI</item>
+			<item>MetalTreeUI</item>
+			<item>Method</item>
+			<item>MethodDescriptor</item>
+			<item>MidiChannel</item>
+			<item>MidiDevice</item>
+			<item>MidiDevice.Info</item>
+			<item>MidiDeviceProvider</item>
+			<item>MidiEvent</item>
+			<item>MidiFileFormat</item>
+			<item>MidiFileReader</item>
+			<item>MidiFileWriter</item>
+			<item>MidiMessage</item>
+			<item>MidiSystem</item>
+			<item>MidiUnavailableException</item>
+			<item>MimeTypeParseException</item>
+			<item>MinimalHTMLWriter</item>
+			<item>MissingFormatArgumentException</item>
+			<item>MissingFormatWidthException</item>
+			<item>MissingResourceException</item>
+			<item>Mixer</item>
+			<item>Mixer.Info</item>
+			<item>MixerProvider</item>
+			<item>ModelMBean</item>
+			<item>ModelMBeanAttributeInfo</item>
+			<item>ModelMBeanConstructorInfo</item>
+			<item>ModelMBeanInfo</item>
+			<item>ModelMBeanInfoSupport</item>
+			<item>ModelMBeanNotificationBroadcaster</item>
+			<item>ModelMBeanNotificationInfo</item>
+			<item>ModelMBeanOperationInfo</item>
+			<item>ModificationItem</item>
+			<item>Modifier</item>
+			<item>Monitor</item>
+			<item>MonitorMBean</item>
+			<item>MonitorNotification</item>
+			<item>MonitorSettingException</item>
+			<item>MouseAdapter</item>
+			<item>MouseDragGestureRecognizer</item>
+			<item>MouseEvent</item>
+			<item>MouseInfo</item>
+			<item>MouseInputAdapter</item>
+			<item>MouseInputListener</item>
+			<item>MouseListener</item>
+			<item>MouseMotionAdapter</item>
+			<item>MouseMotionListener</item>
+			<item>MouseWheelEvent</item>
+			<item>MouseWheelListener</item>
+			<item>MultiButtonUI</item>
+			<item>MultiColorChooserUI</item>
+			<item>MultiComboBoxUI</item>
+			<item>MultiDesktopIconUI</item>
+			<item>MultiDesktopPaneUI</item>
+			<item>MultiDoc</item>
+			<item>MultiDocPrintJob</item>
+			<item>MultiDocPrintService</item>
+			<item>MultiFileChooserUI</item>
+			<item>MultiInternalFrameUI</item>
+			<item>MultiLabelUI</item>
+			<item>MultiListUI</item>
+			<item>MultiLookAndFeel</item>
+			<item>MultiMenuBarUI</item>
+			<item>MultiMenuItemUI</item>
+			<item>MultiOptionPaneUI</item>
+			<item>MultiPanelUI</item>
+			<item>MultiPixelPackedSampleModel</item>
+			<item>MultiPopupMenuUI</item>
+			<item>MultiProgressBarUI</item>
+			<item>MultiRootPaneUI</item>
+			<item>MultiScrollBarUI</item>
+			<item>MultiScrollPaneUI</item>
+			<item>MultiSeparatorUI</item>
+			<item>MultiSliderUI</item>
+			<item>MultiSpinnerUI</item>
+			<item>MultiSplitPaneUI</item>
+			<item>MultiTabbedPaneUI</item>
+			<item>MultiTableHeaderUI</item>
+			<item>MultiTableUI</item>
+			<item>MultiTextUI</item>
+			<item>MultiToolBarUI</item>
+			<item>MultiToolTipUI</item>
+			<item>MultiTreeUI</item>
+			<item>MultiViewportUI</item>
+			<item>MulticastSocket</item>
+			<item>MultipleComponentProfileHelper</item>
+			<item>MultipleComponentProfileHolder</item>
+			<item>MultipleDocumentHandling</item>
+			<item>MultipleMaster</item>
+			<item>MutableAttributeSet</item>
+			<item>MutableComboBoxModel</item>
+			<item>MutableTreeNode</item>
+			<item>NON_EXISTENT</item>
+			<item>NO_IMPLEMENT</item>
+			<item>NO_MEMORY</item>
+			<item>NO_PERMISSION</item>
+			<item>NO_RESOURCES</item>
+			<item>NO_RESPONSE</item>
+			<item>NVList</item>
+			<item>Name</item>
+			<item>NameAlreadyBoundException</item>
+			<item>NameCallback</item>
+			<item>NameClassPair</item>
+			<item>NameComponent</item>
+			<item>NameComponentHelper</item>
+			<item>NameComponentHolder</item>
+			<item>NameDynAnyPair</item>
+			<item>NameDynAnyPairHelper</item>
+			<item>NameDynAnyPairSeqHelper</item>
+			<item>NameHelper</item>
+			<item>NameHolder</item>
+			<item>NameList</item>
+			<item>NameNotFoundException</item>
+			<item>NameParser</item>
+			<item>NameValuePair</item>
+			<item>NameValuePair</item>
+			<item>NameValuePairHelper</item>
+			<item>NameValuePairHelper</item>
+			<item>NameValuePairSeqHelper</item>
+			<item>NamedNodeMap</item>
+			<item>NamedValue</item>
+			<item>NamespaceChangeListener</item>
+			<item>NamespaceContext</item>
+			<item>NamespaceSupport</item>
+			<item>Naming</item>
+			<item>NamingContext</item>
+			<item>NamingContextExt</item>
+			<item>NamingContextExtHelper</item>
+			<item>NamingContextExtHolder</item>
+			<item>NamingContextExtOperations</item>
+			<item>NamingContextExtPOA</item>
+			<item>NamingContextHelper</item>
+			<item>NamingContextHolder</item>
+			<item>NamingContextOperations</item>
+			<item>NamingContextPOA</item>
+			<item>NamingEnumeration</item>
+			<item>NamingEvent</item>
+			<item>NamingException</item>
+			<item>NamingExceptionEvent</item>
+			<item>NamingListener</item>
+			<item>NamingManager</item>
+			<item>NamingSecurityException</item>
+			<item>NavigationFilter</item>
+			<item>NavigationFilter.FilterBypass</item>
+			<item>NegativeArraySizeException</item>
+			<item>NetPermission</item>
+			<item>NetworkInterface</item>
+			<item>NoClassDefFoundError</item>
+			<item>NoConnectionPendingException</item>
+			<item>NoContext</item>
+			<item>NoContextHelper</item>
+			<item>NoInitialContextException</item>
+			<item>NoPermissionException</item>
+			<item>NoRouteToHostException</item>
+			<item>NoServant</item>
+			<item>NoServantHelper</item>
+			<item>NoSuchAlgorithmException</item>
+			<item>NoSuchAttributeException</item>
+			<item>NoSuchElementException</item>
+			<item>NoSuchFieldError</item>
+			<item>NoSuchFieldException</item>
+			<item>NoSuchMethodError</item>
+			<item>NoSuchMethodException</item>
+			<item>NoSuchObjectException</item>
+			<item>NoSuchPaddingException</item>
+			<item>NoSuchProviderException</item>
+			<item>Node</item>
+			<item>NodeChangeEvent</item>
+			<item>NodeChangeListener</item>
+			<item>NodeList</item>
+			<item>NonReadableChannelException</item>
+			<item>NonWritableChannelException</item>
+			<item>NoninvertibleTransformException</item>
+			<item>NotActiveException</item>
+			<item>NotBoundException</item>
+			<item>NotCompliantMBeanException</item>
+			<item>NotContextException</item>
+			<item>NotEmpty</item>
+			<item>NotEmptyHelper</item>
+			<item>NotEmptyHolder</item>
+			<item>NotFound</item>
+			<item>NotFoundHelper</item>
+			<item>NotFoundHolder</item>
+			<item>NotFoundReason</item>
+			<item>NotFoundReasonHelper</item>
+			<item>NotFoundReasonHolder</item>
+			<item>NotOwnerException</item>
+			<item>NotSerializableException</item>
+			<item>NotYetBoundException</item>
+			<item>NotYetConnectedException</item>
+			<item>Notation</item>
+			<item>Notification</item>
+			<item>NotificationBroadcaster</item>
+			<item>NotificationBroadcasterSupport</item>
+			<item>NotificationEmitter</item>
+			<item>NotificationFilter</item>
+			<item>NotificationFilterSupport</item>
+			<item>NotificationListener</item>
+			<item>NotificationResult</item>
+			<item>NullCipher</item>
+			<item>NullPointerException</item>
+			<item>Number</item>
+			<item>NumberFormat</item>
+			<item>NumberFormat.Field</item>
+			<item>NumberFormatException</item>
+			<item>NumberFormatter</item>
+			<item>NumberOfDocuments</item>
+			<item>NumberOfInterveningJobs</item>
+			<item>NumberUp</item>
+			<item>NumberUpSupported</item>
+			<item>NumericShaper</item>
+			<item>OAEPParameterSpec</item>
+			<item>OBJECT_NOT_EXIST</item>
+			<item>OBJ_ADAPTER</item>
+			<item>OMGVMCID</item>
+			<item>ORB</item>
+			<item>ORB</item>
+			<item>ORBIdHelper</item>
+			<item>ORBInitInfo</item>
+			<item>ORBInitInfoOperations</item>
+			<item>ORBInitializer</item>
+			<item>ORBInitializerOperations</item>
+			<item>ObjID</item>
+			<item>Object</item>
+			<item>Object</item>
+			<item>ObjectAlreadyActive</item>
+			<item>ObjectAlreadyActiveHelper</item>
+			<item>ObjectChangeListener</item>
+			<item>ObjectFactory</item>
+			<item>ObjectFactoryBuilder</item>
+			<item>ObjectHelper</item>
+			<item>ObjectHolder</item>
+			<item>ObjectIdHelper</item>
+			<item>ObjectIdHelper</item>
+			<item>ObjectImpl</item>
+			<item>ObjectImpl</item>
+			<item>ObjectInput</item>
+			<item>ObjectInputStream</item>
+			<item>ObjectInputStream.GetField</item>
+			<item>ObjectInputValidation</item>
+			<item>ObjectInstance</item>
+			<item>ObjectName</item>
+			<item>ObjectNotActive</item>
+			<item>ObjectNotActiveHelper</item>
+			<item>ObjectOutput</item>
+			<item>ObjectOutputStream</item>
+			<item>ObjectOutputStream.PutField</item>
+			<item>ObjectReferenceFactory</item>
+			<item>ObjectReferenceFactoryHelper</item>
+			<item>ObjectReferenceFactoryHolder</item>
+			<item>ObjectReferenceTemplate</item>
+			<item>ObjectReferenceTemplateHelper</item>
+			<item>ObjectReferenceTemplateHolder</item>
+			<item>ObjectReferenceTemplateSeqHelper</item>
+			<item>ObjectReferenceTemplateSeqHolder</item>
+			<item>ObjectStreamClass</item>
+			<item>ObjectStreamConstants</item>
+			<item>ObjectStreamException</item>
+			<item>ObjectStreamField</item>
+			<item>ObjectView</item>
+			<item>Observable</item>
+			<item>Observer</item>
+			<item>OceanTheme</item>
+			<item>OctetSeqHelper</item>
+			<item>OctetSeqHolder</item>
+			<item>Oid</item>
+			<item>OpenDataException</item>
+			<item>OpenMBeanAttributeInfo</item>
+			<item>OpenMBeanAttributeInfoSupport</item>
+			<item>OpenMBeanConstructorInfo</item>
+			<item>OpenMBeanConstructorInfoSupport</item>
+			<item>OpenMBeanInfo</item>
+			<item>OpenMBeanInfoSupport</item>
+			<item>OpenMBeanOperationInfo</item>
+			<item>OpenMBeanOperationInfoSupport</item>
+			<item>OpenMBeanParameterInfo</item>
+			<item>OpenMBeanParameterInfoSupport</item>
+			<item>OpenType</item>
+			<item>OpenType</item>
+			<item>OperatingSystemMXBean</item>
+			<item>Operation</item>
+			<item>OperationNotSupportedException</item>
+			<item>OperationsException</item>
+			<item>Option</item>
+			<item>OptionPaneUI</item>
+			<item>OptionalDataException</item>
+			<item>OrientationRequested</item>
+			<item>OutOfMemoryError</item>
+			<item>OutputDeviceAssigned</item>
+			<item>OutputKeys</item>
+			<item>OutputStream</item>
+			<item>OutputStream</item>
+			<item>OutputStream</item>
+			<item>OutputStreamWriter</item>
+			<item>OverlappingFileLockException</item>
+			<item>OverlayLayout</item>
+			<item>Override</item>
+			<item>Owner</item>
+			<item>PBEKey</item>
+			<item>PBEKeySpec</item>
+			<item>PBEParameterSpec</item>
+			<item>PDLOverrideSupported</item>
+			<item>PERSIST_STORE</item>
+			<item>PKCS8EncodedKeySpec</item>
+			<item>PKIXBuilderParameters</item>
+			<item>PKIXCertPathBuilderResult</item>
+			<item>PKIXCertPathChecker</item>
+			<item>PKIXCertPathValidatorResult</item>
+			<item>PKIXParameters</item>
+			<item>POA</item>
+			<item>POAHelper</item>
+			<item>POAManager</item>
+			<item>POAManagerOperations</item>
+			<item>POAOperations</item>
+			<item>PRIVATE_MEMBER</item>
+			<item>PSSParameterSpec</item>
+			<item>PSource</item>
+			<item>PSource.PSpecified</item>
+			<item>PUBLIC_MEMBER</item>
+			<item>Pack200</item>
+			<item>Pack200.Packer</item>
+			<item>Pack200.Unpacker</item>
+			<item>Package</item>
+			<item>PackedColorModel</item>
+			<item>PageAttributes</item>
+			<item>PageAttributes.ColorType</item>
+			<item>PageAttributes.MediaType</item>
+			<item>PageAttributes.OrientationRequestedType</item>
+			<item>PageAttributes.OriginType</item>
+			<item>PageAttributes.PrintQualityType</item>
+			<item>PageFormat</item>
+			<item>PageRanges</item>
+			<item>Pageable</item>
+			<item>PagedResultsControl</item>
+			<item>PagedResultsResponseControl</item>
+			<item>PagesPerMinute</item>
+			<item>PagesPerMinuteColor</item>
+			<item>Paint</item>
+			<item>PaintContext</item>
+			<item>PaintEvent</item>
+			<item>Panel</item>
+			<item>PanelUI</item>
+			<item>Paper</item>
+			<item>ParagraphView</item>
+			<item>ParagraphView</item>
+			<item>Parameter</item>
+			<item>ParameterBlock</item>
+			<item>ParameterDescriptor</item>
+			<item>ParameterMetaData</item>
+			<item>ParameterMode</item>
+			<item>ParameterModeHelper</item>
+			<item>ParameterModeHolder</item>
+			<item>ParameterizedType</item>
+			<item>ParseException</item>
+			<item>ParsePosition</item>
+			<item>Parser</item>
+			<item>Parser</item>
+			<item>ParserAdapter</item>
+			<item>ParserConfigurationException</item>
+			<item>ParserDelegator</item>
+			<item>ParserFactory</item>
+			<item>PartialResultException</item>
+			<item>PasswordAuthentication</item>
+			<item>PasswordCallback</item>
+			<item>PasswordView</item>
+			<item>Patch</item>
+			<item>PathIterator</item>
+			<item>Pattern</item>
+			<item>PatternSyntaxException</item>
+			<item>Permission</item>
+			<item>Permission</item>
+			<item>PermissionCollection</item>
+			<item>Permissions</item>
+			<item>PersistenceDelegate</item>
+			<item>PersistentMBean</item>
+			<item>PhantomReference</item>
+			<item>Pipe</item>
+			<item>Pipe.SinkChannel</item>
+			<item>Pipe.SourceChannel</item>
+			<item>PipedInputStream</item>
+			<item>PipedOutputStream</item>
+			<item>PipedReader</item>
+			<item>PipedWriter</item>
+			<item>PixelGrabber</item>
+			<item>PixelInterleavedSampleModel</item>
+			<item>PlainDocument</item>
+			<item>PlainView</item>
+			<item>Point</item>
+			<item>Point2D</item>
+			<item>Point2D.Double</item>
+			<item>Point2D.Float</item>
+			<item>PointerInfo</item>
+			<item>Policy</item>
+			<item>Policy</item>
+			<item>Policy</item>
+			<item>PolicyError</item>
+			<item>PolicyErrorCodeHelper</item>
+			<item>PolicyErrorHelper</item>
+			<item>PolicyErrorHolder</item>
+			<item>PolicyFactory</item>
+			<item>PolicyFactoryOperations</item>
+			<item>PolicyHelper</item>
+			<item>PolicyHolder</item>
+			<item>PolicyListHelper</item>
+			<item>PolicyListHolder</item>
+			<item>PolicyNode</item>
+			<item>PolicyOperations</item>
+			<item>PolicyQualifierInfo</item>
+			<item>PolicyTypeHelper</item>
+			<item>Polygon</item>
+			<item>PooledConnection</item>
+			<item>Popup</item>
+			<item>PopupFactory</item>
+			<item>PopupMenu</item>
+			<item>PopupMenuEvent</item>
+			<item>PopupMenuListener</item>
+			<item>PopupMenuUI</item>
+			<item>Port</item>
+			<item>Port.Info</item>
+			<item>PortUnreachableException</item>
+			<item>PortableRemoteObject</item>
+			<item>PortableRemoteObjectDelegate</item>
+			<item>Position</item>
+			<item>Position.Bias</item>
+			<item>Predicate</item>
+			<item>PreferenceChangeEvent</item>
+			<item>PreferenceChangeListener</item>
+			<item>Preferences</item>
+			<item>PreferencesFactory</item>
+			<item>PreparedStatement</item>
+			<item>PresentationDirection</item>
+			<item>Principal</item>
+			<item>Principal</item>
+			<item>PrincipalHolder</item>
+			<item>PrintEvent</item>
+			<item>PrintException</item>
+			<item>PrintGraphics</item>
+			<item>PrintJob</item>
+			<item>PrintJobAdapter</item>
+			<item>PrintJobAttribute</item>
+			<item>PrintJobAttributeEvent</item>
+			<item>PrintJobAttributeListener</item>
+			<item>PrintJobAttributeSet</item>
+			<item>PrintJobEvent</item>
+			<item>PrintJobListener</item>
+			<item>PrintQuality</item>
+			<item>PrintRequestAttribute</item>
+			<item>PrintRequestAttributeSet</item>
+			<item>PrintService</item>
+			<item>PrintServiceAttribute</item>
+			<item>PrintServiceAttributeEvent</item>
+			<item>PrintServiceAttributeListener</item>
+			<item>PrintServiceAttributeSet</item>
+			<item>PrintServiceLookup</item>
+			<item>PrintStream</item>
+			<item>PrintWriter</item>
+			<item>Printable</item>
+			<item>PrinterAbortException</item>
+			<item>PrinterException</item>
+			<item>PrinterGraphics</item>
+			<item>PrinterIOException</item>
+			<item>PrinterInfo</item>
+			<item>PrinterIsAcceptingJobs</item>
+			<item>PrinterJob</item>
+			<item>PrinterLocation</item>
+			<item>PrinterMakeAndModel</item>
+			<item>PrinterMessageFromOperator</item>
+			<item>PrinterMoreInfo</item>
+			<item>PrinterMoreInfoManufacturer</item>
+			<item>PrinterName</item>
+			<item>PrinterResolution</item>
+			<item>PrinterState</item>
+			<item>PrinterStateReason</item>
+			<item>PrinterStateReasons</item>
+			<item>PrinterURI</item>
+			<item>PriorityBlockingQueue</item>
+			<item>PriorityQueue</item>
+			<item>PrivateClassLoader</item>
+			<item>PrivateCredentialPermission</item>
+			<item>PrivateKey</item>
+			<item>PrivateMLet</item>
+			<item>PrivilegedAction</item>
+			<item>PrivilegedActionException</item>
+			<item>PrivilegedExceptionAction</item>
+			<item>Process</item>
+			<item>ProcessBuilder</item>
+			<item>ProcessingInstruction</item>
+			<item>ProfileDataException</item>
+			<item>ProfileIdHelper</item>
+			<item>ProgressBarUI</item>
+			<item>ProgressMonitor</item>
+			<item>ProgressMonitorInputStream</item>
+			<item>Properties</item>
+			<item>PropertyChangeEvent</item>
+			<item>PropertyChangeListener</item>
+			<item>PropertyChangeListenerProxy</item>
+			<item>PropertyChangeSupport</item>
+			<item>PropertyDescriptor</item>
+			<item>PropertyEditor</item>
+			<item>PropertyEditorManager</item>
+			<item>PropertyEditorSupport</item>
+			<item>PropertyPermission</item>
+			<item>PropertyResourceBundle</item>
+			<item>PropertyVetoException</item>
+			<item>ProtectionDomain</item>
+			<item>ProtocolException</item>
+			<item>Provider</item>
+			<item>Provider.Service</item>
+			<item>ProviderException</item>
+			<item>Proxy</item>
+			<item>Proxy</item>
+			<item>Proxy.Type</item>
+			<item>ProxySelector</item>
+			<item>PublicKey</item>
+			<item>PushbackInputStream</item>
+			<item>PushbackReader</item>
+			<item>QName</item>
+			<item>QuadCurve2D</item>
+			<item>QuadCurve2D.Double</item>
+			<item>QuadCurve2D.Float</item>
+			<item>Query</item>
+			<item>QueryEval</item>
+			<item>QueryExp</item>
+			<item>Queue</item>
+			<item>QueuedJobCount</item>
+			<item>RC2ParameterSpec</item>
+			<item>RC5ParameterSpec</item>
+			<item>REBIND</item>
+			<item>REQUEST_PROCESSING_POLICY_ID</item>
+			<item>RGBImageFilter</item>
+			<item>RMIClassLoader</item>
+			<item>RMIClassLoaderSpi</item>
+			<item>RMIClientSocketFactory</item>
+			<item>RMIConnection</item>
+			<item>RMIConnectionImpl</item>
+			<item>RMIConnectionImpl_Stub</item>
+			<item>RMIConnector</item>
+			<item>RMIConnectorServer</item>
+			<item>RMICustomMaxStreamFormat</item>
+			<item>RMIFailureHandler</item>
+			<item>RMIIIOPServerImpl</item>
+			<item>RMIJRMPServerImpl</item>
+			<item>RMISecurityException</item>
+			<item>RMISecurityManager</item>
+			<item>RMIServer</item>
+			<item>RMIServerImpl</item>
+			<item>RMIServerImpl_Stub</item>
+			<item>RMIServerSocketFactory</item>
+			<item>RMISocketFactory</item>
+			<item>RSAKey</item>
+			<item>RSAKeyGenParameterSpec</item>
+			<item>RSAMultiPrimePrivateCrtKey</item>
+			<item>RSAMultiPrimePrivateCrtKeySpec</item>
+			<item>RSAOtherPrimeInfo</item>
+			<item>RSAPrivateCrtKey</item>
+			<item>RSAPrivateCrtKeySpec</item>
+			<item>RSAPrivateKey</item>
+			<item>RSAPrivateKeySpec</item>
+			<item>RSAPublicKey</item>
+			<item>RSAPublicKeySpec</item>
+			<item>RTFEditorKit</item>
+			<item>Random</item>
+			<item>RandomAccess</item>
+			<item>RandomAccessFile</item>
+			<item>Raster</item>
+			<item>RasterFormatException</item>
+			<item>RasterOp</item>
+			<item>Rdn</item>
+			<item>ReadOnlyBufferException</item>
+			<item>ReadWriteLock</item>
+			<item>Readable</item>
+			<item>ReadableByteChannel</item>
+			<item>Reader</item>
+			<item>RealmCallback</item>
+			<item>RealmChoiceCallback</item>
+			<item>Receiver</item>
+			<item>Rectangle</item>
+			<item>Rectangle2D</item>
+			<item>Rectangle2D.Double</item>
+			<item>Rectangle2D.Float</item>
+			<item>RectangularShape</item>
+			<item>ReentrantLock</item>
+			<item>ReentrantReadWriteLock</item>
+			<item>ReentrantReadWriteLock.ReadLock</item>
+			<item>ReentrantReadWriteLock.WriteLock</item>
+			<item>Ref</item>
+			<item>RefAddr</item>
+			<item>Reference</item>
+			<item>Reference</item>
+			<item>ReferenceQueue</item>
+			<item>ReferenceUriSchemesSupported</item>
+			<item>Referenceable</item>
+			<item>ReferralException</item>
+			<item>ReflectPermission</item>
+			<item>ReflectionException</item>
+			<item>RefreshFailedException</item>
+			<item>Refreshable</item>
+			<item>Region</item>
+			<item>RegisterableService</item>
+			<item>Registry</item>
+			<item>RegistryHandler</item>
+			<item>RejectedExecutionException</item>
+			<item>RejectedExecutionHandler</item>
+			<item>Relation</item>
+			<item>RelationException</item>
+			<item>RelationNotFoundException</item>
+			<item>RelationNotification</item>
+			<item>RelationService</item>
+			<item>RelationServiceMBean</item>
+			<item>RelationServiceNotRegisteredException</item>
+			<item>RelationSupport</item>
+			<item>RelationSupportMBean</item>
+			<item>RelationType</item>
+			<item>RelationTypeNotFoundException</item>
+			<item>RelationTypeSupport</item>
+			<item>RemarshalException</item>
+			<item>Remote</item>
+			<item>RemoteCall</item>
+			<item>RemoteException</item>
+			<item>RemoteObject</item>
+			<item>RemoteObjectInvocationHandler</item>
+			<item>RemoteRef</item>
+			<item>RemoteServer</item>
+			<item>RemoteStub</item>
+			<item>RenderContext</item>
+			<item>RenderableImage</item>
+			<item>RenderableImageOp</item>
+			<item>RenderableImageProducer</item>
+			<item>RenderedImage</item>
+			<item>RenderedImageFactory</item>
+			<item>Renderer</item>
+			<item>RenderingHints</item>
+			<item>RenderingHints.Key</item>
+			<item>RepaintManager</item>
+			<item>ReplicateScaleFilter</item>
+			<item>RepositoryIdHelper</item>
+			<item>Request</item>
+			<item>RequestInfo</item>
+			<item>RequestInfoOperations</item>
+			<item>RequestProcessingPolicy</item>
+			<item>RequestProcessingPolicyOperations</item>
+			<item>RequestProcessingPolicyValue</item>
+			<item>RequestingUserName</item>
+			<item>RequiredModelMBean</item>
+			<item>RescaleOp</item>
+			<item>ResolutionSyntax</item>
+			<item>ResolveResult</item>
+			<item>Resolver</item>
+			<item>ResourceBundle</item>
+			<item>ResponseCache</item>
+			<item>ResponseHandler</item>
+			<item>Result</item>
+			<item>ResultSet</item>
+			<item>ResultSetMetaData</item>
+			<item>Retention</item>
+			<item>RetentionPolicy</item>
+			<item>ReverbType</item>
+			<item>Robot</item>
+			<item>Role</item>
+			<item>RoleInfo</item>
+			<item>RoleInfoNotFoundException</item>
+			<item>RoleList</item>
+			<item>RoleNotFoundException</item>
+			<item>RoleResult</item>
+			<item>RoleStatus</item>
+			<item>RoleUnresolved</item>
+			<item>RoleUnresolvedList</item>
+			<item>RootPaneContainer</item>
+			<item>RootPaneUI</item>
+			<item>RoundRectangle2D</item>
+			<item>RoundRectangle2D.Double</item>
+			<item>RoundRectangle2D.Float</item>
+			<item>RoundingMode</item>
+			<item>RowMapper</item>
+			<item>RowSet</item>
+			<item>RowSetEvent</item>
+			<item>RowSetInternal</item>
+			<item>RowSetListener</item>
+			<item>RowSetMetaData</item>
+			<item>RowSetMetaDataImpl</item>
+			<item>RowSetReader</item>
+			<item>RowSetWarning</item>
+			<item>RowSetWriter</item>
+			<item>RuleBasedCollator</item>
+			<item>RunTime</item>
+			<item>RunTimeOperations</item>
+			<item>Runnable</item>
+			<item>Runtime</item>
+			<item>RuntimeErrorException</item>
+			<item>RuntimeException</item>
+			<item>RuntimeMBeanException</item>
+			<item>RuntimeMXBean</item>
+			<item>RuntimeOperationsException</item>
+			<item>RuntimePermission</item>
+			<item>SAXException</item>
+			<item>SAXNotRecognizedException</item>
+			<item>SAXNotSupportedException</item>
+			<item>SAXParseException</item>
+			<item>SAXParser</item>
+			<item>SAXParserFactory</item>
+			<item>SAXResult</item>
+			<item>SAXSource</item>
+			<item>SAXTransformerFactory</item>
+			<item>SERVANT_RETENTION_POLICY_ID</item>
+			<item>SQLData</item>
+			<item>SQLException</item>
+			<item>SQLInput</item>
+			<item>SQLInputImpl</item>
+			<item>SQLOutput</item>
+			<item>SQLOutputImpl</item>
+			<item>SQLPermission</item>
+			<item>SQLWarning</item>
+			<item>SSLContext</item>
+			<item>SSLContextSpi</item>
+			<item>SSLEngine</item>
+			<item>SSLEngineResult</item>
+			<item>SSLEngineResult.HandshakeStatus</item>
+			<item>SSLEngineResult.Status</item>
+			<item>SSLException</item>
+			<item>SSLHandshakeException</item>
+			<item>SSLKeyException</item>
+			<item>SSLPeerUnverifiedException</item>
+			<item>SSLPermission</item>
+			<item>SSLProtocolException</item>
+			<item>SSLServerSocket</item>
+			<item>SSLServerSocketFactory</item>
+			<item>SSLSession</item>
+			<item>SSLSessionBindingEvent</item>
+			<item>SSLSessionBindingListener</item>
+			<item>SSLSessionContext</item>
+			<item>SSLSocket</item>
+			<item>SSLSocketFactory</item>
+			<item>SUCCESSFUL</item>
+			<item>SYNC_WITH_TRANSPORT</item>
+			<item>SYSTEM_EXCEPTION</item>
+			<item>SampleModel</item>
+			<item>Sasl</item>
+			<item>SaslClient</item>
+			<item>SaslClientFactory</item>
+			<item>SaslException</item>
+			<item>SaslServer</item>
+			<item>SaslServerFactory</item>
+			<item>Savepoint</item>
+			<item>Scanner</item>
+			<item>ScatteringByteChannel</item>
+			<item>ScheduledExecutorService</item>
+			<item>ScheduledFuture</item>
+			<item>ScheduledThreadPoolExecutor</item>
+			<item>Schema</item>
+			<item>SchemaFactory</item>
+			<item>SchemaFactoryLoader</item>
+			<item>SchemaViolationException</item>
+			<item>ScrollBarUI</item>
+			<item>ScrollPane</item>
+			<item>ScrollPaneAdjustable</item>
+			<item>ScrollPaneConstants</item>
+			<item>ScrollPaneLayout</item>
+			<item>ScrollPaneLayout.UIResource</item>
+			<item>ScrollPaneUI</item>
+			<item>Scrollable</item>
+			<item>Scrollbar</item>
+			<item>SealedObject</item>
+			<item>SearchControls</item>
+			<item>SearchResult</item>
+			<item>SecretKey</item>
+			<item>SecretKeyFactory</item>
+			<item>SecretKeyFactorySpi</item>
+			<item>SecretKeySpec</item>
+			<item>SecureCacheResponse</item>
+			<item>SecureClassLoader</item>
+			<item>SecureRandom</item>
+			<item>SecureRandomSpi</item>
+			<item>Security</item>
+			<item>SecurityException</item>
+			<item>SecurityManager</item>
+			<item>SecurityPermission</item>
+			<item>Segment</item>
+			<item>SelectableChannel</item>
+			<item>SelectionKey</item>
+			<item>Selector</item>
+			<item>SelectorProvider</item>
+			<item>Semaphore</item>
+			<item>SeparatorUI</item>
+			<item>Sequence</item>
+			<item>SequenceInputStream</item>
+			<item>Sequencer</item>
+			<item>Sequencer.SyncMode</item>
+			<item>SerialArray</item>
+			<item>SerialBlob</item>
+			<item>SerialClob</item>
+			<item>SerialDatalink</item>
+			<item>SerialException</item>
+			<item>SerialJavaObject</item>
+			<item>SerialRef</item>
+			<item>SerialStruct</item>
+			<item>Serializable</item>
+			<item>SerializablePermission</item>
+			<item>Servant</item>
+			<item>ServantActivator</item>
+			<item>ServantActivatorHelper</item>
+			<item>ServantActivatorOperations</item>
+			<item>ServantActivatorPOA</item>
+			<item>ServantAlreadyActive</item>
+			<item>ServantAlreadyActiveHelper</item>
+			<item>ServantLocator</item>
+			<item>ServantLocatorHelper</item>
+			<item>ServantLocatorOperations</item>
+			<item>ServantLocatorPOA</item>
+			<item>ServantManager</item>
+			<item>ServantManagerOperations</item>
+			<item>ServantNotActive</item>
+			<item>ServantNotActiveHelper</item>
+			<item>ServantObject</item>
+			<item>ServantRetentionPolicy</item>
+			<item>ServantRetentionPolicyOperations</item>
+			<item>ServantRetentionPolicyValue</item>
+			<item>ServerCloneException</item>
+			<item>ServerError</item>
+			<item>ServerException</item>
+			<item>ServerIdHelper</item>
+			<item>ServerNotActiveException</item>
+			<item>ServerRef</item>
+			<item>ServerRequest</item>
+			<item>ServerRequestInfo</item>
+			<item>ServerRequestInfoOperations</item>
+			<item>ServerRequestInterceptor</item>
+			<item>ServerRequestInterceptorOperations</item>
+			<item>ServerRuntimeException</item>
+			<item>ServerSocket</item>
+			<item>ServerSocketChannel</item>
+			<item>ServerSocketFactory</item>
+			<item>ServiceContext</item>
+			<item>ServiceContextHelper</item>
+			<item>ServiceContextHolder</item>
+			<item>ServiceContextListHelper</item>
+			<item>ServiceContextListHolder</item>
+			<item>ServiceDetail</item>
+			<item>ServiceDetailHelper</item>
+			<item>ServiceIdHelper</item>
+			<item>ServiceInformation</item>
+			<item>ServiceInformationHelper</item>
+			<item>ServiceInformationHolder</item>
+			<item>ServiceNotFoundException</item>
+			<item>ServicePermission</item>
+			<item>ServiceRegistry</item>
+			<item>ServiceRegistry.Filter</item>
+			<item>ServiceUI</item>
+			<item>ServiceUIFactory</item>
+			<item>ServiceUnavailableException</item>
+			<item>Set</item>
+			<item>SetOfIntegerSyntax</item>
+			<item>SetOverrideType</item>
+			<item>SetOverrideTypeHelper</item>
+			<item>Severity</item>
+			<item>Shape</item>
+			<item>ShapeGraphicAttribute</item>
+			<item>SheetCollate</item>
+			<item>Short</item>
+			<item>ShortBuffer</item>
+			<item>ShortBufferException</item>
+			<item>ShortHolder</item>
+			<item>ShortLookupTable</item>
+			<item>ShortMessage</item>
+			<item>ShortSeqHelper</item>
+			<item>ShortSeqHolder</item>
+			<item>Sides</item>
+			<item>Signature</item>
+			<item>SignatureException</item>
+			<item>SignatureSpi</item>
+			<item>SignedObject</item>
+			<item>Signer</item>
+			<item>SimpleAttributeSet</item>
+			<item>SimpleBeanInfo</item>
+			<item>SimpleDateFormat</item>
+			<item>SimpleDoc</item>
+			<item>SimpleFormatter</item>
+			<item>SimpleTimeZone</item>
+			<item>SimpleType</item>
+			<item>SinglePixelPackedSampleModel</item>
+			<item>SingleSelectionModel</item>
+			<item>Size2DSyntax</item>
+			<item>SizeLimitExceededException</item>
+			<item>SizeRequirements</item>
+			<item>SizeSequence</item>
+			<item>Skeleton</item>
+			<item>SkeletonMismatchException</item>
+			<item>SkeletonNotFoundException</item>
+			<item>SliderUI</item>
+			<item>Socket</item>
+			<item>SocketAddress</item>
+			<item>SocketChannel</item>
+			<item>SocketException</item>
+			<item>SocketFactory</item>
+			<item>SocketHandler</item>
+			<item>SocketImpl</item>
+			<item>SocketImplFactory</item>
+			<item>SocketOptions</item>
+			<item>SocketPermission</item>
+			<item>SocketSecurityException</item>
+			<item>SocketTimeoutException</item>
+			<item>SoftBevelBorder</item>
+			<item>SoftReference</item>
+			<item>SortControl</item>
+			<item>SortKey</item>
+			<item>SortResponseControl</item>
+			<item>SortedMap</item>
+			<item>SortedSet</item>
+			<item>SortingFocusTraversalPolicy</item>
+			<item>Soundbank</item>
+			<item>SoundbankReader</item>
+			<item>SoundbankResource</item>
+			<item>Source</item>
+			<item>SourceDataLine</item>
+			<item>SourceLocator</item>
+			<item>SpinnerDateModel</item>
+			<item>SpinnerListModel</item>
+			<item>SpinnerModel</item>
+			<item>SpinnerNumberModel</item>
+			<item>SpinnerUI</item>
+			<item>SplitPaneUI</item>
+			<item>Spring</item>
+			<item>SpringLayout</item>
+			<item>SpringLayout.Constraints</item>
+			<item>SslRMIClientSocketFactory</item>
+			<item>SslRMIServerSocketFactory</item>
+			<item>Stack</item>
+			<item>StackOverflowError</item>
+			<item>StackTraceElement</item>
+			<item>StandardMBean</item>
+			<item>StartTlsRequest</item>
+			<item>StartTlsResponse</item>
+			<item>State</item>
+			<item>StateEdit</item>
+			<item>StateEditable</item>
+			<item>StateFactory</item>
+			<item>Statement</item>
+			<item>Statement</item>
+			<item>StreamCorruptedException</item>
+			<item>StreamHandler</item>
+			<item>StreamPrintService</item>
+			<item>StreamPrintServiceFactory</item>
+			<item>StreamResult</item>
+			<item>StreamSource</item>
+			<item>StreamTokenizer</item>
+			<item>Streamable</item>
+			<item>StreamableValue</item>
+			<item>StrictMath</item>
+			<item>String</item>
+			<item>StringBuffer</item>
+			<item>StringBufferInputStream</item>
+			<item>StringBuilder</item>
+			<item>StringCharacterIterator</item>
+			<item>StringContent</item>
+			<item>StringHolder</item>
+			<item>StringIndexOutOfBoundsException</item>
+			<item>StringMonitor</item>
+			<item>StringMonitorMBean</item>
+			<item>StringNameHelper</item>
+			<item>StringReader</item>
+			<item>StringRefAddr</item>
+			<item>StringSelection</item>
+			<item>StringSeqHelper</item>
+			<item>StringSeqHolder</item>
+			<item>StringTokenizer</item>
+			<item>StringValueExp</item>
+			<item>StringValueHelper</item>
+			<item>StringWriter</item>
+			<item>Stroke</item>
+			<item>Struct</item>
+			<item>StructMember</item>
+			<item>StructMemberHelper</item>
+			<item>Stub</item>
+			<item>StubDelegate</item>
+			<item>StubNotFoundException</item>
+			<item>Style</item>
+			<item>StyleConstants</item>
+			<item>StyleConstants.CharacterConstants</item>
+			<item>StyleConstants.ColorConstants</item>
+			<item>StyleConstants.FontConstants</item>
+			<item>StyleConstants.ParagraphConstants</item>
+			<item>StyleContext</item>
+			<item>StyleSheet</item>
+			<item>StyleSheet.BoxPainter</item>
+			<item>StyleSheet.ListPainter</item>
+			<item>StyledDocument</item>
+			<item>StyledEditorKit</item>
+			<item>StyledEditorKit.AlignmentAction</item>
+			<item>StyledEditorKit.BoldAction</item>
+			<item>StyledEditorKit.FontFamilyAction</item>
+			<item>StyledEditorKit.FontSizeAction</item>
+			<item>StyledEditorKit.ForegroundAction</item>
+			<item>StyledEditorKit.ItalicAction</item>
+			<item>StyledEditorKit.StyledTextAction</item>
+			<item>StyledEditorKit.UnderlineAction</item>
+			<item>Subject</item>
+			<item>SubjectDelegationPermission</item>
+			<item>SubjectDomainCombiner</item>
+			<item>SupportedValuesAttribute</item>
+			<item>SuppressWarnings</item>
+			<item>SwingConstants</item>
+			<item>SwingPropertyChangeSupport</item>
+			<item>SwingUtilities</item>
+			<item>SyncFactory</item>
+			<item>SyncFactoryException</item>
+			<item>SyncFailedException</item>
+			<item>SyncProvider</item>
+			<item>SyncProviderException</item>
+			<item>SyncResolver</item>
+			<item>SyncScopeHelper</item>
+			<item>SynchronousQueue</item>
+			<item>SynthConstants</item>
+			<item>SynthContext</item>
+			<item>SynthGraphicsUtils</item>
+			<item>SynthLookAndFeel</item>
+			<item>SynthPainter</item>
+			<item>SynthStyle</item>
+			<item>SynthStyleFactory</item>
+			<item>Synthesizer</item>
+			<item>SysexMessage</item>
+			<item>System</item>
+			<item>SystemColor</item>
+			<item>SystemException</item>
+			<item>SystemFlavorMap</item>
+			<item>TAG_ALTERNATE_IIOP_ADDRESS</item>
+			<item>TAG_CODE_SETS</item>
+			<item>TAG_INTERNET_IOP</item>
+			<item>TAG_JAVA_CODEBASE</item>
+			<item>TAG_MULTIPLE_COMPONENTS</item>
+			<item>TAG_ORB_TYPE</item>
+			<item>TAG_POLICIES</item>
+			<item>TAG_RMI_CUSTOM_MAX_STREAM_FORMAT</item>
+			<item>TCKind</item>
+			<item>THREAD_POLICY_ID</item>
+			<item>TIMEOUT</item>
+			<item>TRANSACTION_MODE</item>
+			<item>TRANSACTION_REQUIRED</item>
+			<item>TRANSACTION_ROLLEDBACK</item>
+			<item>TRANSACTION_UNAVAILABLE</item>
+			<item>TRANSIENT</item>
+			<item>TRANSPORT_RETRY</item>
+			<item>TabExpander</item>
+			<item>TabSet</item>
+			<item>TabStop</item>
+			<item>TabableView</item>
+			<item>TabbedPaneUI</item>
+			<item>TableCellEditor</item>
+			<item>TableCellRenderer</item>
+			<item>TableColumn</item>
+			<item>TableColumnModel</item>
+			<item>TableColumnModelEvent</item>
+			<item>TableColumnModelListener</item>
+			<item>TableHeaderUI</item>
+			<item>TableModel</item>
+			<item>TableModelEvent</item>
+			<item>TableModelListener</item>
+			<item>TableUI</item>
+			<item>TableView</item>
+			<item>TabularData</item>
+			<item>TabularDataSupport</item>
+			<item>TabularType</item>
+			<item>TagElement</item>
+			<item>TaggedComponent</item>
+			<item>TaggedComponentHelper</item>
+			<item>TaggedComponentHolder</item>
+			<item>TaggedProfile</item>
+			<item>TaggedProfileHelper</item>
+			<item>TaggedProfileHolder</item>
+			<item>Target</item>
+			<item>TargetDataLine</item>
+			<item>TargetedNotification</item>
+			<item>Templates</item>
+			<item>TemplatesHandler</item>
+			<item>Text</item>
+			<item>TextAction</item>
+			<item>TextArea</item>
+			<item>TextAttribute</item>
+			<item>TextComponent</item>
+			<item>TextEvent</item>
+			<item>TextField</item>
+			<item>TextHitInfo</item>
+			<item>TextInputCallback</item>
+			<item>TextLayout</item>
+			<item>TextLayout.CaretPolicy</item>
+			<item>TextListener</item>
+			<item>TextMeasurer</item>
+			<item>TextOutputCallback</item>
+			<item>TextSyntax</item>
+			<item>TextUI</item>
+			<item>TexturePaint</item>
+			<item>Thread</item>
+			<item>Thread.State</item>
+			<item>Thread.UncaughtExceptionHandler</item>
+			<item>ThreadDeath</item>
+			<item>ThreadFactory</item>
+			<item>ThreadGroup</item>
+			<item>ThreadInfo</item>
+			<item>ThreadLocal</item>
+			<item>ThreadMXBean</item>
+			<item>ThreadPolicy</item>
+			<item>ThreadPolicyOperations</item>
+			<item>ThreadPolicyValue</item>
+			<item>ThreadPoolExecutor</item>
+			<item>ThreadPoolExecutor.AbortPolicy</item>
+			<item>ThreadPoolExecutor.CallerRunsPolicy</item>
+			<item>ThreadPoolExecutor.DiscardOldestPolicy</item>
+			<item>ThreadPoolExecutor.DiscardPolicy</item>
+			<item>Throwable</item>
+			<item>Tie</item>
+			<item>TileObserver</item>
+			<item>Time</item>
+			<item>TimeLimitExceededException</item>
+			<item>TimeUnit</item>
+			<item>TimeZone</item>
+			<item>TimeoutException</item>
+			<item>Timer</item>
+			<item>Timer</item>
+			<item>Timer</item>
+			<item>TimerAlarmClockNotification</item>
+			<item>TimerMBean</item>
+			<item>TimerNotification</item>
+			<item>TimerTask</item>
+			<item>Timestamp</item>
+			<item>Timestamp</item>
+			<item>TitledBorder</item>
+			<item>TooManyListenersException</item>
+			<item>ToolBarUI</item>
+			<item>ToolTipManager</item>
+			<item>ToolTipUI</item>
+			<item>Toolkit</item>
+			<item>Track</item>
+			<item>TransactionRequiredException</item>
+			<item>TransactionRolledbackException</item>
+			<item>TransactionService</item>
+			<item>TransactionalWriter</item>
+			<item>TransferHandler</item>
+			<item>Transferable</item>
+			<item>TransformAttribute</item>
+			<item>Transformer</item>
+			<item>TransformerConfigurationException</item>
+			<item>TransformerException</item>
+			<item>TransformerFactory</item>
+			<item>TransformerFactoryConfigurationError</item>
+			<item>TransformerHandler</item>
+			<item>Transmitter</item>
+			<item>Transparency</item>
+			<item>TreeCellEditor</item>
+			<item>TreeCellRenderer</item>
+			<item>TreeExpansionEvent</item>
+			<item>TreeExpansionListener</item>
+			<item>TreeMap</item>
+			<item>TreeModel</item>
+			<item>TreeModelEvent</item>
+			<item>TreeModelListener</item>
+			<item>TreeNode</item>
+			<item>TreePath</item>
+			<item>TreeSelectionEvent</item>
+			<item>TreeSelectionListener</item>
+			<item>TreeSelectionModel</item>
+			<item>TreeSet</item>
+			<item>TreeUI</item>
+			<item>TreeWillExpandListener</item>
+			<item>TrustAnchor</item>
+			<item>TrustManager</item>
+			<item>TrustManagerFactory</item>
+			<item>TrustManagerFactorySpi</item>
+			<item>Type</item>
+			<item>TypeCode</item>
+			<item>TypeCodeHolder</item>
+			<item>TypeInfo</item>
+			<item>TypeInfoProvider</item>
+			<item>TypeMismatch</item>
+			<item>TypeMismatch</item>
+			<item>TypeMismatch</item>
+			<item>TypeMismatchHelper</item>
+			<item>TypeMismatchHelper</item>
+			<item>TypeNotPresentException</item>
+			<item>TypeVariable</item>
+			<item>Types</item>
+			<item>UID</item>
+			<item>UIDefaults</item>
+			<item>UIDefaults.ActiveValue</item>
+			<item>UIDefaults.LazyInputMap</item>
+			<item>UIDefaults.LazyValue</item>
+			<item>UIDefaults.ProxyLazyValue</item>
+			<item>UIManager</item>
+			<item>UIManager.LookAndFeelInfo</item>
+			<item>UIResource</item>
+			<item>ULongLongSeqHelper</item>
+			<item>ULongLongSeqHolder</item>
+			<item>ULongSeqHelper</item>
+			<item>ULongSeqHolder</item>
+			<item>UNKNOWN</item>
+			<item>UNKNOWN</item>
+			<item>UNSUPPORTED_POLICY</item>
+			<item>UNSUPPORTED_POLICY_VALUE</item>
+			<item>URI</item>
+			<item>URIException</item>
+			<item>URIResolver</item>
+			<item>URISyntax</item>
+			<item>URISyntaxException</item>
+			<item>URL</item>
+			<item>URLClassLoader</item>
+			<item>URLConnection</item>
+			<item>URLDecoder</item>
+			<item>URLEncoder</item>
+			<item>URLStreamHandler</item>
+			<item>URLStreamHandlerFactory</item>
+			<item>URLStringHelper</item>
+			<item>USER_EXCEPTION</item>
+			<item>UShortSeqHelper</item>
+			<item>UShortSeqHolder</item>
+			<item>UTFDataFormatException</item>
+			<item>UUID</item>
+			<item>UndeclaredThrowableException</item>
+			<item>UndoManager</item>
+			<item>UndoableEdit</item>
+			<item>UndoableEditEvent</item>
+			<item>UndoableEditListener</item>
+			<item>UndoableEditSupport</item>
+			<item>UnexpectedException</item>
+			<item>UnicastRemoteObject</item>
+			<item>UnionMember</item>
+			<item>UnionMemberHelper</item>
+			<item>UnknownEncoding</item>
+			<item>UnknownEncodingHelper</item>
+			<item>UnknownError</item>
+			<item>UnknownException</item>
+			<item>UnknownFormatConversionException</item>
+			<item>UnknownFormatFlagsException</item>
+			<item>UnknownGroupException</item>
+			<item>UnknownHostException</item>
+			<item>UnknownHostException</item>
+			<item>UnknownObjectException</item>
+			<item>UnknownServiceException</item>
+			<item>UnknownUserException</item>
+			<item>UnknownUserExceptionHelper</item>
+			<item>UnknownUserExceptionHolder</item>
+			<item>UnmappableCharacterException</item>
+			<item>UnmarshalException</item>
+			<item>UnmodifiableClassException</item>
+			<item>UnmodifiableSetException</item>
+			<item>UnrecoverableEntryException</item>
+			<item>UnrecoverableKeyException</item>
+			<item>Unreferenced</item>
+			<item>UnresolvedAddressException</item>
+			<item>UnresolvedPermission</item>
+			<item>UnsatisfiedLinkError</item>
+			<item>UnsolicitedNotification</item>
+			<item>UnsolicitedNotificationEvent</item>
+			<item>UnsolicitedNotificationListener</item>
+			<item>UnsupportedAddressTypeException</item>
+			<item>UnsupportedAudioFileException</item>
+			<item>UnsupportedCallbackException</item>
+			<item>UnsupportedCharsetException</item>
+			<item>UnsupportedClassVersionError</item>
+			<item>UnsupportedEncodingException</item>
+			<item>UnsupportedFlavorException</item>
+			<item>UnsupportedLookAndFeelException</item>
+			<item>UnsupportedOperationException</item>
+			<item>UserDataHandler</item>
+			<item>UserException</item>
+			<item>Util</item>
+			<item>UtilDelegate</item>
+			<item>Utilities</item>
+			<item>VMID</item>
+			<item>VM_ABSTRACT</item>
+			<item>VM_CUSTOM</item>
+			<item>VM_NONE</item>
+			<item>VM_TRUNCATABLE</item>
+			<item>Validator</item>
+			<item>ValidatorHandler</item>
+			<item>ValueBase</item>
+			<item>ValueBaseHelper</item>
+			<item>ValueBaseHolder</item>
+			<item>ValueExp</item>
+			<item>ValueFactory</item>
+			<item>ValueHandler</item>
+			<item>ValueHandlerMultiFormat</item>
+			<item>ValueInputStream</item>
+			<item>ValueMember</item>
+			<item>ValueMemberHelper</item>
+			<item>ValueOutputStream</item>
+			<item>VariableHeightLayoutCache</item>
+			<item>Vector</item>
+			<item>VerifyError</item>
+			<item>VersionSpecHelper</item>
+			<item>VetoableChangeListener</item>
+			<item>VetoableChangeListenerProxy</item>
+			<item>VetoableChangeSupport</item>
+			<item>View</item>
+			<item>ViewFactory</item>
+			<item>ViewportLayout</item>
+			<item>ViewportUI</item>
+			<item>VirtualMachineError</item>
+			<item>Visibility</item>
+			<item>VisibilityHelper</item>
+			<item>VoiceStatus</item>
+			<item>Void</item>
+			<item>VolatileImage</item>
+			<item>WCharSeqHelper</item>
+			<item>WCharSeqHolder</item>
+			<item>WStringSeqHelper</item>
+			<item>WStringSeqHolder</item>
+			<item>WStringValueHelper</item>
+			<item>WeakHashMap</item>
+			<item>WeakReference</item>
+			<item>WebRowSet</item>
+			<item>WildcardType</item>
+			<item>Window</item>
+			<item>WindowAdapter</item>
+			<item>WindowConstants</item>
+			<item>WindowEvent</item>
+			<item>WindowFocusListener</item>
+			<item>WindowListener</item>
+			<item>WindowStateListener</item>
+			<item>WrappedPlainView</item>
+			<item>WritableByteChannel</item>
+			<item>WritableRaster</item>
+			<item>WritableRenderedImage</item>
+			<item>WriteAbortedException</item>
+			<item>Writer</item>
+			<item>WrongAdapter</item>
+			<item>WrongAdapterHelper</item>
+			<item>WrongPolicy</item>
+			<item>WrongPolicyHelper</item>
+			<item>WrongTransaction</item>
+			<item>WrongTransactionHelper</item>
+			<item>WrongTransactionHolder</item>
+			<item>X500Principal</item>
+			<item>X500PrivateCredential</item>
+			<item>X509CRL</item>
+			<item>X509CRLEntry</item>
+			<item>X509CRLSelector</item>
+			<item>X509CertSelector</item>
+			<item>X509Certificate</item>
+			<item>X509Certificate</item>
+			<item>X509EncodedKeySpec</item>
+			<item>X509ExtendedKeyManager</item>
+			<item>X509Extension</item>
+			<item>X509KeyManager</item>
+			<item>X509TrustManager</item>
+			<item>XAConnection</item>
+			<item>XADataSource</item>
+			<item>XAException</item>
+			<item>XAResource</item>
+			<item>XMLConstants</item>
+			<item>XMLDecoder</item>
+			<item>XMLEncoder</item>
+			<item>XMLFilter</item>
+			<item>XMLFilterImpl</item>
+			<item>XMLFormatter</item>
+			<item>XMLGregorianCalendar</item>
+			<item>XMLParseException</item>
+			<item>XMLReader</item>
+			<item>XMLReaderAdapter</item>
+			<item>XMLReaderFactory</item>
+			<item>XPath</item>
+			<item>XPathConstants</item>
+			<item>XPathException</item>
+			<item>XPathExpression</item>
+			<item>XPathExpressionException</item>
+			<item>XPathFactory</item>
+			<item>XPathFactoryConfigurationException</item>
+			<item>XPathFunction</item>
+			<item>XPathFunctionException</item>
+			<item>XPathFunctionResolver</item>
+			<item>XPathVariableResolver</item>
+			<item>Xid</item>
+			<item>XmlReader</item>
+			<item>XmlWriter</item>
+			<item>ZipEntry</item>
+			<item>ZipException</item>
+			<item>ZipFile</item>
+			<item>ZipInputStream</item>
+			<item>ZipOutputStream</item>
+			<item>ZoneView</item>
+			<item>_BindingIteratorImplBase</item>
+			<item>_BindingIteratorStub</item>
+			<item>_DynAnyFactoryStub</item>
+			<item>_DynAnyStub</item>
+			<item>_DynArrayStub</item>
+			<item>_DynEnumStub</item>
+			<item>_DynFixedStub</item>
+			<item>_DynSequenceStub</item>
+			<item>_DynStructStub</item>
+			<item>_DynUnionStub</item>
+			<item>_DynValueStub</item>
+			<item>_IDLTypeStub</item>
+			<item>_NamingContextExtStub</item>
+			<item>_NamingContextImplBase</item>
+			<item>_NamingContextStub</item>
+			<item>_PolicyStub</item>
+			<item>_Remote_Stub</item>
+			<item>_ServantActivatorStub</item>
+			<item>_ServantLocatorStub</item>
+			
+<!-- 			new classes of jdk 6.0 -->
+
+			<item>AbstractAnnotationValueVisitor6</item>
+			<item>AbstractElementVisitor6</item>
+			<item>AbstractMarshallerImpl</item>
+			<item>AbstractOwnableSynchronizer</item>
+			<item>AbstractProcessor</item>
+			<item>AbstractQueuedLongSynchronizer</item>
+			<item>AbstractScriptEngine</item>
+			<item>AbstractTypeVisitor6</item>
+			<item>AbstractUnmarshallerImpl</item>
+			<item>ActivationDataFlavor</item>
+			<item>AlgorithmMethod</item>
+			<item>AnnotationMirror</item>
+			<item>AnnotationValue</item>
+			<item>AnnotationValueVisitor</item>
+			<item>ArrayDeque</item>
+			<item>AsyncHandler</item>
+			<item>AttachmentMarshaller</item>
+			<item>AttachmentPart</item>
+			<item>AttachmentUnmarshaller</item>
+			<item>Binder</item>
+			<item>BindingProvider</item>
+			<item>Bindings</item>
+			<item>BlockingDeque</item>
+			<item>BreakIteratorProvider</item>
+			<item>C14NMethodParameterSpec</item>
+			<item>CanonicalizationMethod</item>
+			<item>Characters</item>
+			<item>ClientInfoStatus</item>
+			<item>CollapsedStringAdapter</item>
+			<item>CollatorProvider</item>
+			<item>CommandInfo</item>
+			<item>CommandMap</item>
+			<item>CommandObject</item>
+			<item>CommonDataSource</item>
+			<item>Compilable</item>
+			<item>CompiledScript</item>
+			<item>Completion</item>
+			<item>Completions</item>
+			<item>CompositeDataInvocationHandler</item>
+			<item>CompositeDataView</item>
+			<item>ConcurrentNavigableMap</item>
+			<item>ConcurrentSkipListMap</item>
+			<item>ConcurrentSkipListSet</item>
+			<item>ConfigurationSpi</item>
+			<item>Console</item>
+			<item>ConstructorProperties</item>
+			<item>CookieManager</item>
+			<item>CookiePolicy</item>
+			<item>CookieStore</item>
+			<item>CurrencyNameProvider</item>
+			<item>Data</item>
+			<item>DataContentHandler</item>
+			<item>DataContentHandlerFactory</item>
+			<item>DataHandler</item>
+			<item>DatatypeConverter</item>
+			<item>DatatypeConverterInterface</item>
+			<item>DateFormatProvider</item>
+			<item>DateFormatSymbolsProvider</item>
+			<item>DecimalFormatSymbolsProvider</item>
+			<item>DeclaredType</item>
+			<item>DefaultRowSorter</item>
+			<item>DefaultValidationEventHandler</item>
+			<item>DeflaterInputStream</item>
+			<item>Deque</item>
+			<item>DescriptorKey</item>
+			<item>DescriptorRead</item>
+			<item>Desktop</item>
+			<item>Detail</item>
+			<item>DetailEntry</item>
+			<item>Diagnostic</item>
+			<item>DiagnosticCollector</item>
+			<item>DiagnosticListener</item>
+			<item>DigestMethod</item>
+			<item>DigestMethodParameterSpec</item>
+			<item>Dispatch</item>
+			<item>DOMCryptoContext</item>
+			<item>DomHandler</item>
+			<item>DOMSignContext</item>
+			<item>DOMStructure</item>
+			<item>DOMURIReference</item>
+			<item>DOMValidateContext</item>
+			<item>DropMode</item>
+			<item>ElementFilter</item>
+			<item>ElementKind</item>
+			<item>ElementKindVisitor6</item>
+			<item>Elements</item>
+			<item>ElementScanner6</item>
+			<item>ElementVisitor</item>
+			<item>EndDocument</item>
+			<item>EndElement</item>
+			<item>Endpoint</item>
+			<item>EntityDeclaration</item>
+			<item>ErrorType</item>
+			<item>EventException</item>
+			<item>EventFilter</item>
+			<item>EventReaderDelegate</item>
+			<item>EventTarget</item>
+			<item>ExcC14NParameterSpec</item>
+			<item>ExecutableElement</item>
+			<item>ExecutableType</item>
+			<item>FileDataSource</item>
+			<item>FileNameExtensionFilter</item>
+			<item>FileObject</item>
+			<item>Filer</item>
+			<item>FilerException</item>
+			<item>FileTypeMap</item>
+			<item>ForwardingFileObject</item>
+			<item>ForwardingJavaFileManager</item>
+			<item>ForwardingJavaFileObject</item>
+			<item>Generated</item>
+			<item>GridBagLayoutInfo</item>
+			<item>GroupLayout</item>
+			<item>HandlerChain</item>
+			<item>HandlerResolver</item>
+			<item>HexBinaryAdapter</item>
+			<item>HMACParameterSpec</item>
+			<item>Holder</item>
+			<item>HTTPBinding</item>
+			<item>HttpCookie</item>
+			<item>HTTPException</item>
+			<item>IDN</item>
+			<item>ImmutableDescriptor</item>
+			<item>InflaterOutputStream</item>
+			<item>InitParam</item>
+			<item>InterfaceAddress</item>
+			<item>Invocable</item>
+			<item>IOError</item>
+			<item>JavaCompiler</item>
+			<item>JavaFileManager</item>
+			<item>JavaFileObject</item>
+			<item>JAXBContext</item>
+			<item>JAXBElement</item>
+			<item>JAXBException</item>
+			<item>JAXBIntrospector</item>
+			<item>JAXBResult</item>
+			<item>JAXBSource</item>
+			<item>JMX</item>
+			<item>JMXAddressable</item>
+			<item>KeyInfo</item>
+			<item>KeyInfoFactory</item>
+			<item>KeyName</item>
+			<item>KeySelector</item>
+			<item>KeySelectorException</item>
+			<item>KeySelectorResult</item>
+			<item>KeyValue</item>
+			<item>LayoutPath</item>
+			<item>LayoutStyle</item>
+			<item>LinearGradientPaint</item>
+			<item>LinkedBlockingDeque</item>
+			<item>LocaleNameProvider</item>
+			<item>LocaleServiceProvider</item>
+			<item>Location</item>
+			<item>LockInfo</item>
+			<item>LogicalHandler</item>
+			<item>LogicalMessage</item>
+			<item>LogicalMessageContext</item>
+			<item>MailcapCommandMap</item>
+			<item>Marshaller</item>
+			<item>MessageContext</item>
+			<item>MessageFactory</item>
+			<item>Messager</item>
+			<item>MimeHeader</item>
+			<item>MimeHeaders</item>
+			<item>MimeType</item>
+			<item>MimeTypeParameterList</item>
+			<item>MimetypesFileTypeMap</item>
+			<item>MirroredTypeException</item>
+			<item>MirroredTypesException</item>
+			<item>MLetContent</item>
+			<item>MonitorInfo</item>
+			<item>MultipleGradientPaint</item>
+			<item>MutationEvent</item>
+			<item>MXBean</item>
+			<item>Namespace</item>
+			<item>NavigableMap</item>
+			<item>NavigableSet</item>
+			<item>NClob</item>
+			<item>NestingKind</item>
+			<item>NodeSetData</item>
+			<item>NormalizedStringAdapter</item>
+			<item>Normalizer</item>
+			<item>NoSuchMechanismException</item>
+			<item>NotationDeclaration</item>
+			<item>NotIdentifiableEvent</item>
+			<item>NotIdentifiableEventImpl</item>
+			<item>NoType</item>
+			<item>NullType</item>
+			<item>NumberFormatProvider</item>
+			<item>OctetStreamData</item>
+			<item>Oneway</item>
+			<item>OptionChecker</item>
+			<item>PackageElement</item>
+			<item>ParseConversionEvent</item>
+			<item>ParseConversionEventImpl</item>
+			<item>Path2D</item>
+			<item>PGPData</item>
+			<item>PolicySpi</item>
+			<item>PortInfo</item>
+			<item>PostConstruct</item>
+			<item>PreDestroy</item>
+			<item>PrimitiveType</item>
+			<item>PrintConversionEvent</item>
+			<item>PrintConversionEventImpl</item>
+			<item>ProcessingEnvironment</item>
+			<item>Processor</item>
+			<item>PropertyException</item>
+			<item>RadialGradientPaint</item>
+			<item>ReferenceType</item>
+			<item>RequestWrapper</item>
+			<item>Resource</item>
+			<item>Resources</item>
+			<item>Response</item>
+			<item>ResponseWrapper</item>
+			<item>RetrievalMethod</item>
+			<item>RoundEnvironment</item>
+			<item>RowFilter</item>
+			<item>RowId</item>
+			<item>RowIdLifetime</item>
+			<item>RowSorter</item>
+			<item>RowSorterEvent</item>
+			<item>RowSorterListener</item>
+			<item>RunnableFuture</item>
+			<item>RunnableScheduledFuture</item>
+			<item>SAAJMetaFactory</item>
+			<item>SAAJResult</item>
+			<item>SchemaOutputResolver</item>
+			<item>ScriptContext</item>
+			<item>ScriptEngine</item>
+			<item>ScriptEngineFactory</item>
+			<item>ScriptEngineManager</item>
+			<item>ScriptException</item>
+			<item>Service</item>
+			<item>ServiceConfigurationError</item>
+			<item>ServiceDelegate</item>
+			<item>ServiceLoader</item>
+			<item>ServiceMode</item>
+			<item>SignatureMethod</item>
+			<item>SignatureMethodParameterSpec</item>
+			<item>SignatureProperties</item>
+			<item>SignatureProperty</item>
+			<item>SignedInfo</item>
+			<item>SimpleAnnotationValueVisitor6</item>
+			<item>SimpleBindings</item>
+			<item>SimpleElementVisitor6</item>
+			<item>SimpleJavaFileObject</item>
+			<item>SimpleScriptContext</item>
+			<item>SimpleTypeVisitor6</item>
+			<item>SOAPBinding</item>
+			<item>SOAPBinding</item>
+			<item>SOAPBody</item>
+			<item>SOAPBodyElement</item>
+			<item>SOAPConnection</item>
+			<item>SOAPConnectionFactory</item>
+			<item>SOAPConstants</item>
+			<item>SOAPElement</item>
+			<item>SOAPElementFactory</item>
+			<item>SOAPEnvelope</item>
+			<item>SOAPException</item>
+			<item>SOAPFactory</item>
+			<item>SOAPFault</item>
+			<item>SOAPFaultElement</item>
+			<item>SOAPFaultException</item>
+			<item>SOAPHandler</item>
+			<item>SOAPHeader</item>
+			<item>SOAPHeaderElement</item>
+			<item>SOAPMessage</item>
+			<item>SOAPMessageContext</item>
+			<item>SOAPMessageHandler</item>
+			<item>SOAPMessageHandlers</item>
+			<item>SOAPPart</item>
+			<item>SortOrder</item>
+			<item>SourceVersion</item>
+			<item>SplashScreen</item>
+			<item>SQLClientInfoException</item>
+			<item>SQLDataException</item>
+			<item>SQLFeatureNotSupportedException</item>
+			<item>SQLIntegrityConstraintViolationException</item>
+			<item>SQLInvalidAuthorizationSpecException</item>
+			<item>SQLNonTransientConnectionException</item>
+			<item>SQLNonTransientException</item>
+			<item>SQLRecoverableException</item>
+			<item>SQLSyntaxErrorException</item>
+			<item>SQLTimeoutException</item>
+			<item>SQLTransactionRollbackException</item>
+			<item>SQLTransientConnectionException</item>
+			<item>SQLTransientException</item>
+			<item>SQLXML</item>
+			<item>SSLParameters</item>
+			<item>StandardEmitterMBean</item>
+			<item>StandardJavaFileManager</item>
+			<item>StandardLocation</item>
+			<item>StartDocument</item>
+			<item>StartElement</item>
+			<item>StatementEvent</item>
+			<item>StatementEventListener</item>
+			<item>StAXResult</item>
+			<item>StAXSource</item>
+			<item>StreamFilter</item>
+			<item>StreamReaderDelegate</item>
+			<item>SupportedAnnotationTypes</item>
+			<item>SupportedOptions</item>
+			<item>SupportedSourceVersion</item>
+			<item>SwingWorker</item>
+			<item>SystemTray</item>
+			<item>TableRowSorter</item>
+			<item>TableStringConverter</item>
+			<item>TimeZoneNameProvider</item>
+			<item>Tool</item>
+			<item>ToolProvider</item>
+			<item>Transform</item>
+			<item>TransformException</item>
+			<item>TransformParameterSpec</item>
+			<item>TransformService</item>
+			<item>TrayIcon</item>
+			<item>TypeConstraintException</item>
+			<item>TypeElement</item>
+			<item>TypeKind</item>
+			<item>TypeKindVisitor6</item>
+			<item>TypeMirror</item>
+			<item>TypeParameterElement</item>
+			<item>TypeVisitor</item>
+			<item>UIEvent</item>
+			<item>UnknownAnnotationValueException</item>
+			<item>UnknownElementException</item>
+			<item>UnknownTypeException</item>
+			<item>Unmarshaller</item>
+			<item>UnmarshallerHandler</item>
+			<item>UnsupportedDataTypeException</item>
+			<item>URIDereferencer</item>
+			<item>URIParameter</item>
+			<item>URIReference</item>
+			<item>URIReferenceException</item>
+			<item>URLDataSource</item>
+			<item>ValidationEvent</item>
+			<item>ValidationEventCollector</item>
+			<item>ValidationEventHandler</item>
+			<item>ValidationEventImpl</item>
+			<item>ValidationEventLocator</item>
+			<item>ValidationEventLocatorImpl</item>
+			<item>ValidationException</item>
+			<item>VariableElement</item>
+			<item>W3CDomHandler</item>
+			<item>WebEndpoint</item>
+			<item>WebFault</item>
+			<item>WebMethod</item>
+			<item>WebParam</item>
+			<item>WebResult</item>
+			<item>WebService</item>
+			<item>WebServiceClient</item>
+			<item>WebServiceContext</item>
+			<item>WebServiceException</item>
+			<item>WebServicePermission</item>
+			<item>WebServiceProvider</item>
+			<item>WebServiceRef</item>
+			<item>WebServiceRefs</item>
+			<item>Wrapper</item>
+			<item>X509Data</item>
+			<item>X509IssuerSerial</item>
+			<item>XmlAccessOrder</item>
+			<item>XmlAccessorOrder</item>
+			<item>XmlAccessorType</item>
+			<item>XmlAccessType</item>
+			<item>XmlAdapter</item>
+			<item>XmlAnyAttribute</item>
+			<item>XmlAnyElement</item>
+			<item>XmlAttachmentRef</item>
+			<item>XmlAttribute</item>
+			<item>XMLCryptoContext</item>
+			<item>XmlElement</item>
+			<item>XmlElementDecl</item>
+			<item>XmlElementRef</item>
+			<item>XmlElementRefs</item>
+			<item>XmlElements</item>
+			<item>XmlElementWrapper</item>
+			<item>XmlEnum</item>
+			<item>XmlEnumValue</item>
+			<item>XMLEvent</item>
+			<item>XMLEventAllocator</item>
+			<item>XMLEventConsumer</item>
+			<item>XMLEventFactory</item>
+			<item>XMLEventReader</item>
+			<item>XMLEventWriter</item>
+			<item>XmlID</item>
+			<item>XmlIDREF</item>
+			<item>XmlInlineBinaryData</item>
+			<item>XMLInputFactory</item>
+			<item>XmlJavaTypeAdapter</item>
+			<item>XmlJavaTypeAdapters</item>
+			<item>XmlList</item>
+			<item>XmlMimeType</item>
+			<item>XmlMixed</item>
+			<item>XmlNs</item>
+			<item>XmlNsForm</item>
+			<item>XMLObject</item>
+			<item>XMLOutputFactory</item>
+			<item>XmlRegistry</item>
+			<item>XMLReporter</item>
+			<item>XMLResolver</item>
+			<item>XmlRootElement</item>
+			<item>XmlSchema</item>
+			<item>XmlSchemaType</item>
+			<item>XmlSchemaTypes</item>
+			<item>XMLSignature</item>
+			<item>XMLSignatureException</item>
+			<item>XMLSignatureFactory</item>
+			<item>XMLSignContext</item>
+			<item>XMLStreamConstants</item>
+			<item>XMLStreamException</item>
+			<item>XMLStreamReader</item>
+			<item>XMLStreamWriter</item>
+			<item>XMLStructure</item>
+			<item>XmlTransient</item>
+			<item>XmlType</item>
+			<item>XMLValidateContext</item>
+			<item>XmlValue</item>
+			<item>XPathFilter2ParameterSpec</item>
+			<item>XPathFilterParameterSpec</item>
+			<item>XPathType</item>
+			<item>XSLTTransformParameterSpec</item>
+			<item>ZipError</item>
+			
+<!-- 			end new classes -->
+		</list>
+		<list name="keywords">
+			<item>abstract</item>
+			<item>break</item>
+			<item>case</item>
+			<item>catch</item>
+			<item>class</item>
+			<item>continue</item>
+			<item>default</item>
+			<item>do</item>
+			<item>else</item>
+			<item>enum</item>
+			<item>extends</item>
+			<item>false</item>
+			<item>finally</item>
+			<item>for</item>
+			<item>goto</item>
+			<item>if</item>
+			<item>implements</item>
+			<item>instanceof</item>
+			<item>@interface</item>
+			<item>interface</item>
+			<item>native</item>
+			<item>new</item>
+			<item>null</item>
+			<item>private</item>
+			<item>protected</item>
+			<item>public</item>
+			<item>return</item>
+			<item>super</item>
+			<item>strictfp</item>
+			<item>switch</item>
+			<item>synchronized</item>
+			<item>this</item>
+			<item>throws</item>
+			<item>throw</item>
+			<item>transient</item>
+			<item>true</item>
+			<item>try</item>
+			<item>volatile</item>
+			<item>while</item>
+		</list>
+		<list name="types">
+			<item>boolean</item>
+			<item>byte</item>
+			<item>char</item>
+			<item>const</item>
+			<item>double</item>
+			<item>final</item>
+			<item>float</item>
+			<item>int</item>
+			<item>long</item>
+			<item>short</item>
+			<item>static</item>
+			<item>void</item>
+		</list>
+		<contexts>
+			<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+				<!-- Comment next line if you don't use Javadoc tool -->
+				<IncludeRules context="##Javadoc"/>
+				<keyword attribute="Keyword" context="#stay" String="keywords"/>
+				<keyword attribute="Data Type" context="#stay" String="types"/>
+				<keyword attribute="Java15" context="#stay" String="java15"/>
+				<Float attribute="Float" context="#stay">
+					<AnyChar String="fF" attribute="Float" context="#stay"/>
+				</Float>
+				<HlCOct attribute="Octal" context="#stay"/>
+				<HlCHex attribute="Hex" context="#stay"/>
+				<Int attribute="Decimal" context="#stay">
+					<StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+				</Int>
+				<HlCChar attribute="Char" context="#stay"/>
+				<RegExpr attribute="Char" context="#stay" String="'\\u[0-9a-fA-F]{4}'"/>
+				<RegExpr attribute="Decimal" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1"/>
+				<RegExpr attribute="Decimal" context="#stay" String="//\s*END.*$" endRegion="Region1"/>
+				<DetectChar attribute="String" context="String" char="&quot;"/>
+				<RegExpr attribute="Function" context="EnterPrintf" String="\.(format|printf)\b"/>
+				<Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+				<Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+				<DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
+				<DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
+				<RegExpr attribute="Keyword" context="#stay" String="\.{3,3}\s+" />
+				<RegExpr attribute="Keyword" context="StaticImports" String="\b(import\s+static)\b" />
+				<RegExpr attribute="Keyword" context="Imports" String="\b(package|import)\b" />
+				<RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*(/\*\s*\d+\s*\*/\s*)?[(])" />
+				<RegExpr attribute="Annotation" context="#stay" String="@[_\w][_\w\d]*" />
+				<RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
+				<DetectChar attribute="Symbol" context="InFunctionCall" char="("/>
+				<AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+			</context>
+			<context attribute="Normal Text" lineEndContext="#stay" name="InFunctionCall">
+				<IncludeRules context="Normal"/>
+				<DetectChar attribute="Symbol" context="#pop" char=")"/>
+			</context>
+			<context attribute="String" lineEndContext="#pop" name="String">
+				<LineContinue attribute="String" context="#stay"/>
+				<HlCStringChar attribute="String Char" context="#stay"/>
+				<RegExpr attribute="String Char" context="#stay" String="\\u[0-9a-fA-F]{4}"/>
+				<DetectChar attribute="String" context="#pop" char="&quot;"/>
+			</context>
+			<context attribute="Normal Text" lineEndContext="#stay" name="EnterPrintf" fallthrough="true" fallthroughContext="#pop">
+				<DetectChar attribute="Symbol" context="Printf" char="("/>
+				<DetectSpaces attribute="Normal Text" context="#stay"/>
+			</context>
+			<context attribute="Normal Text" lineEndContext="#stay" name="Printf">
+				<DetectChar attribute="String" context="PrintfString" char="&quot;"/>
+				<IncludeRules context="InFunctionCall"/>
+			</context>
+			<context attribute="PrintfString" lineEndContext="#pop" name="PrintfString">
+				<LineContinue attribute="String" context="#stay"/>
+				<HlCStringChar attribute="String Char" context="#stay"/>
+				<DetectChar attribute="String" context="#pop" char="&quot;"/>
+				<RegExpr attribute="String Char" context="#stay" String="%(\d+\$)?(-|#|\+|\ |0|,|\()*\d*(\.\d+)?[a-hosxA-CEGHSX]" />
+				<RegExpr attribute="String Char" context="#stay" String="%(\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)" />
+				<RegExpr attribute="String Char" context="#stay" String="%(%|n)" />
+			</context>
+			<context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthrough="true" fallthroughContext="#pop">
+				<RegExpr attribute="Function" context="#pop" String="\b[_a-zA-Z]\w*(?=[\s]*)" />
+			</context>
+			<context attribute="Normal Text" lineEndContext="#pop" name="StaticImports">
+				<RegExpr attribute="StaticImports" context="#pop" String="\s*.*;" />
+			</context>
+			<context attribute="Normal Text" lineEndContext="#pop" name="Imports">
+				<RegExpr attribute="Imports" context="#pop" String="\s*.*;" />
+			</context>
+			<context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
+			<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+				<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+			</context>
+		</contexts>
+		<itemDatas>
+			<itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
+			<itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
+			<itemData name="Annotation"   defStyleNum="dsAttribute" spellChecking="false"/>
+			<itemData name="Function"     defStyleNum="dsFunction" spellChecking="false"/>
+			<itemData name="StaticImports" defStyleNum="dsImport" spellChecking="false"/>
+			<itemData name="Imports"      defStyleNum="dsImport" spellChecking="false"/>
+			<itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
+			<itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>
+			<itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false"/>
+			<itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
+			<itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
+			<itemData name="Char"         defStyleNum="dsChar" spellChecking="false"/>
+			<itemData name="String"       defStyleNum="dsString"/>
+			<itemData name="String Char"  defStyleNum="dsSpecialChar" spellChecking="false"/>
+			<itemData name="PrintfString" defStyleNum="dsString"/>
+			<itemData name="Comment"      defStyleNum="dsComment"/>
+			<itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
+			<itemData name="Java15"       defStyleNum="dsBuiltIn" spellChecking="false"/>
+		</itemDatas>
+	</highlighting>
+	<general>
+		<comments>
+			<comment name="singleLine" start="//"/>
+			<comment name="multiLine" start="/*" end="*/"/>
+		</comments>
+		<keywords casesensitive="1"/>
+	</general>
+</language>
diff --git a/xml/javadoc.xml b/xml/javadoc.xml
new file mode 100644
--- /dev/null
+++ b/xml/javadoc.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Javadoc" version="2" kateversion="2.4" section="Markup" extensions="" license="LGPL" author="Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)">
+	<highlighting>
+		<contexts>
+			<context name="Start" attribute="Normal Text" lineEndContext="#stay">
+				<IncludeRules context="FindJavadoc" />
+			</context>
+			<context name="FindJavadoc" attribute="Normal Text" lineEndContext="#stay">
+				<StringDetect attribute="JavadocFS" context="#stay" String="/**/"/>
+				<StringDetect attribute="JavadocFS" context="JavadocFSar" String="/**" beginRegion="Javadoc"/>
+			</context>
+			<context attribute="JavadocFS" lineEndContext="#stay" name="JavadocFSar">
+				<Detect2Chars attribute="JavadocFS" context="#pop" char="*" char1="/" endRegion="Javadoc"/>
+				<RegExpr attribute="JavadocFS" context="Javadocar" String="(!|\?)" />
+				<RegExpr attribute="JavadocFS" context="Javadocar" String="(\.\s*$)" />
+				<RegExpr attribute="JavadocFS" context="Javadocar" String="(\.\s)(?![\da-z])" />
+				<RegExpr attribute="JavadocFS" context="Javadocar" String="\**\s*(?=@(author|deprecated|exception|param|return|see|serial|serialData|serialField|since|throws|version)(\s|$))" firstNonSpace="true"/>
+				<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@code " />
+				<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@code&#009;" />
+				<StringDetect attribute="InlineTag" context="#stay" String="{@docRoot}" />
+				<StringDetect attribute="InlineTag" context="#stay" String="{@inheritDoc}" />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@link " />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@link&#009;" />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@linkplain " />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@linkplain&#009;" />
+				<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@literal " />
+				<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@literal&#009;" />
+				<StringDetect attribute="InlineTag" context="#stay" String="{@value}" />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value " />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value&#009;" />
+				<IncludeRules context="##HTML"/>
+			</context>
+			<context attribute="Javadoc" lineEndContext="#stay" name="Javadocar">
+				<Detect2Chars attribute="JavadocFS" context="#pop#pop" char="*" char1="/" endRegion="Javadoc"/>
+				<RegExpr attribute="JavadocFS" context="#stay" String="\*+(?!/)" firstNonSpace="true"/>
+				<StringDetect attribute="BlockTag" context="#stay" String="@author " />
+				<StringDetect attribute="BlockTag" context="#stay" String="@deprecated " />
+				<StringDetect attribute="BlockTag" context="JavadocParam" String="@exception " />
+				<StringDetect attribute="BlockTag" context="JavadocParam" String="@param " />
+				<StringDetect attribute="BlockTag" context="#stay" String="@return " />
+				<StringDetect attribute="BlockTag" context="SeeTag" String="@see "/>
+				<StringDetect attribute="BlockTag" context="#stay" String="@serial " />
+				<StringDetect attribute="BlockTag" context="#stay" String="@serialData " />
+				<StringDetect attribute="BlockTag" context="#stay" String="@serialField " />
+				<StringDetect attribute="BlockTag" context="#stay" String="@since " />
+				<StringDetect attribute="BlockTag" context="JavadocParam" String="@throws " />
+				<StringDetect attribute="BlockTag" context="#stay" String="@version " />
+				<StringDetect attribute="BlockTag" context="#stay" String="@author&#009;" />
+				<StringDetect attribute="BlockTag" context="#stay" String="@deprecated&#009;" />
+				<StringDetect attribute="BlockTag" context="JavadocParam" String="@exception&#009;" />
+				<StringDetect attribute="BlockTag" context="JavadocParam" String="@param&#009;" />
+				<StringDetect attribute="BlockTag" context="#stay" String="@return&#009;" />
+				<StringDetect attribute="BlockTag" context="SeeTag" String="@see&#009;" />
+				<StringDetect attribute="BlockTag" context="#stay" String="@serial&#009;" />
+				<StringDetect attribute="BlockTag" context="#stay" String="@serialData&#009;" />
+				<StringDetect attribute="BlockTag" context="#stay" String="@serialField&#009;" />
+				<StringDetect attribute="BlockTag" context="#stay" String="@since&#009;" />
+				<StringDetect attribute="BlockTag" context="JavadocParam" String="@throws&#009;" />
+				<StringDetect attribute="BlockTag" context="#stay" String="@version&#009;" />
+				<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@code " />
+				<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@code&#009;" />
+				<StringDetect attribute="InlineTag" context="#stay" String="{@docRoot}" />
+				<StringDetect attribute="InlineTag" context="#stay" String="{@inheritDoc}" />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@link " />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@link&#009;" />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@linkplain " />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@linkplain&#009;" />
+				<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@literal " />
+				<StringDetect attribute="InlineTag" context="LiteralTagar" String="{@literal&#009;" />
+				<StringDetect attribute="InlineTag" context="#stay" String="{@value}" />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value " />
+				<StringDetect attribute="InlineTag" context="InlineTagar" String="{@value&#009;" />
+				<IncludeRules context="##HTML"/>
+			</context>
+			<context attribute="Javadoc" lineEndContext="#pop" name="JavadocParam">
+				<DetectSpaces />
+				<RegExpr attribute="JavadocParam" context="#pop#pop" String="\S*(?=\*/)" />
+				<RegExpr attribute="JavadocParam" context="#pop" String="\S*(\s|$)" />
+			</context>
+			<context attribute="InlineTag" name="InlineTagar" lineEndContext="#stay">
+				<DetectChar attribute="InlineTag" context="#pop" char="}" />
+				<Detect2Chars attribute="JavadocFS" context="#pop#pop#pop" char="*" char1="/" />
+				<IncludeRules context="##HTML"/>
+			</context>
+			<context attribute="InlineTag" name="LiteralTagar" lineEndContext="#stay">
+				<DetectChar attribute="InlineTag" context="#pop" char="}" />
+				<Detect2Chars attribute="JavadocFS" context="#pop#pop#pop" char="*" char1="/" />
+			</context>
+			<context attribute="SeeTag" lineEndContext="#pop" name="SeeTag">
+				<Detect2Chars attribute="JavadocFS" context="#pop#pop#pop" char="*" char1="/" />
+				<IncludeRules context="##HTML"/>
+			</context>
+		</contexts>
+		<itemDatas>
+			<itemData name="Normal Text"  defStyleNum="dsNormal"/>
+			<itemData name="BlockTag"     defStyleNum="dsKeyword" color="#808080" selColor="#FFFFFF" bold="1" italic="0"/>
+			<itemData name="InlineTag"    defStyleNum="dsKeyword" color="#808080" selColor="#FFFFFF" bold="0" italic="0"/>
+			<itemData name="JavadocParam" defStyleNum="dsKeyword" color="#008080" selColor="#FFFFFF" bold="0" italic="1"/>
+			<itemData name="SeeTag"       defStyleNum="dsKeyword" color="#008080" selColor="#FFFFFF" bold="0" italic="1"/>
+			<itemData name="JavadocFS"    defStyleNum="dsComment" color="#008000" selColor="#FFFFFF" bold="1" italic="0"/>
+			<itemData name="Javadoc"      defStyleNum="dsComment" color="#008000" selColor="#FFFFFF"/>
+		</itemDatas>
+	</highlighting>
+	<general>
+		<keywords casesensitive="1"/>
+	</general>
+</language>
diff --git a/xml/javascript.xml b/xml/javascript.xml
new file mode 100644
--- /dev/null
+++ b/xml/javascript.xml
@@ -0,0 +1,261 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Author: Anders Lund <anders@alweb.dk> //-->
+<!-- Minor changes: Joseph Wenninger <jowenn@kde.org> //-->
+<!-- Full JavaScript 1.0 support by Whitehawk Stormchaser //-->
+<language name="JavaScript" version="6" kateversion="5.0" section="Scripts" extensions="*.js;*.kwinscript;*.julius"
+          mimetype="text/x-javascript;application/x-javascript;application/javascript;text/javascript" indenter="cstyle"
+          author="Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)" license="">
+  <highlighting>
+    <list name="controlflow">
+      <item>break</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>continue</item>
+      <item>debugger</item>
+      <item>do</item>
+      <item>else</item>
+      <item>finally</item>
+      <item>for</item>
+      <item>if</item>
+      <item>return</item>
+      <item>switch</item>
+      <item>throw</item>
+      <item>try</item>
+      <item>while</item>
+      <item>with</item>
+    </list>
+    <list name="keywords">
+      <item>const</item>
+      <item>delete</item>
+      <item>function</item>
+      <item>in</item>
+      <item>instanceof</item>
+      <item>new</item>
+      <item>this</item>
+      <item>typeof</item>
+      <item>var</item>
+      <item>void</item>
+    </list>
+    <list name="reserved">
+      <item>class</item>
+      <item>enum</item>
+      <item>extends</item>
+      <item>super</item>
+
+      <!-- The following keywords are reserved only in strict-mode -->
+      <item>implements</item>
+      <item>interface</item>
+      <item>let</item>
+      <item>private</item>
+      <item>protected</item>
+      <item>public</item>
+      <item>static</item>
+      <item>yield</item>
+    </list>
+    <list name="module">
+      <item>import</item>
+      <item>from</item>
+      <item>as</item>
+      <item>default</item>
+      <item>export</item>
+      <item>package</item>
+    </list>
+    <list name="primitives">
+      <item>Infinity</item>
+      <item>NaN</item>
+      <item>false</item>
+      <item>null</item>
+      <item>true</item>
+      <item>undefined</item>
+    </list>
+    <contexts>
+
+      <!-- Shebang: ("#!") Detect shebang and fallthrough to Normal -->
+      <!-- Based on the similar clause from prolog.xml, which notes the following BUG:
+        If the file starts with whitespace and a shebang on a line other than the first line,
+        this rule will still match it as a shebang, even tough the shebang is only valid on
+        the very first line.
+      -->
+      <context name="Shebang" lineEndContext="Normal" attribute="Normal Text" fallthrough="true" fallthroughContext="Normal" >
+        <Detect2Chars column="0" char="#" char1="!" context="Comment" attribute="Comment" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectSpaces/>
+        <StringDetect attribute="Region Marker" context="region_marker" String="//BEGIN" beginRegion="Region1" />
+        <StringDetect attribute="Region Marker" context="region_marker" String="//END" endRegion="Region1" />
+
+        <Float attribute="Float" context="NoRegExp" />
+        <HlCOct attribute="Octal" context="NoRegExp" />
+        <HlCHex attribute="Hex" context="NoRegExp" />
+        <Int attribute="Decimal" context="NoRegExp" />
+        <AnyChar context="NoRegExp" String="])" />
+
+        <keyword attribute="ControlFlow" String="controlflow" />
+        <keyword attribute="Keyword" String="keywords" />
+        <keyword attribute="Reserved" String="reserved" />
+        <keyword attribute="Keyword" context="NoRegExp" String="primitives" />
+        <keyword attribute="Module" String="module" />
+
+        <DetectChar attribute="Template" context="Template" char="`" />
+        <StringDetect attribute="Template" context="RawTemplate" String="String.raw`" />
+
+        <!--DetectIdentifier-->
+        <RegExpr attribute="Objects" context="Object Member" String="[a-zA-Z_$][\w$]*(?=\s*\.)" />
+        <!--DetectIdentifier-->
+        <RegExpr attribute="Object Member" context="NoRegExp" String="[a-zA-Z_$][\w$]*(?=\s*\()" />
+        <DetectChar context="Object Member" char="." />
+        <!--DetectIdentifier-->
+        <RegExpr context="NoRegExp" String="[a-zA-Z_$][\w$]*" />
+
+        <DetectChar attribute="String" context="String" char="&quot;" />
+        <DetectChar attribute="String" context="String SQ" char="'" />
+
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Comment" char="/" char1="/" />
+        <Detect2Chars attribute="Comment" context="Multi/inline Comment" char="/" char1="*" beginRegion="Comment" />
+
+        <!-- E4X extension (=xml inside JavaScript), see bug #373713 -->
+        <Detect2Chars attribute="Normal Text" context="NoRegExp" char="&lt;" char1="/" />
+        <Detect2Chars attribute="Normal Text" context="NoRegExp" char="/" char1="&gt;" />
+        <DetectChar attribute="Regular Expression" context="(regex caret first check)" char="/" />
+
+        <DetectChar attribute="Symbol" context="Object" char="{" beginRegion="Brace" />
+        <DetectChar attribute="Symbol" context="Conditional Expression" char="?" />
+
+        <AnyChar attribute="Symbol" String=":!%&amp;+,-/.*&lt;=&gt;?|~^&#59;" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" name="Object Member">
+        <DetectChar char="." />
+        <!--DetectIdentifier-->
+        <RegExpr attribute="Objects" context="Object Member" String="[a-zA-Z_$][\w$]*(?=\s*\.)" />
+        <!--DetectIdentifier-->
+        <RegExpr attribute="Object Member" String="[a-zA-Z_$][\w$]*" />
+        <IncludeRules context="NoRegExp" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop" name="NoRegExp">
+        <Detect2Chars context="#pop" lookAhead="true" char="/" char1="/" />
+        <Detect2Chars context="#pop" lookAhead="true" char="/" char1="*" />
+        <DetectChar context="#pop" char="/" />
+        <DetectSpaces/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Conditional Expression">
+        <DetectChar context="#pop" char=":" />
+        <IncludeRules context="Normal" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Object">
+        <!-- Mostly required for define: in switch blocks -->
+        <keyword attribute="Keyword" String="keywords" />
+        <!--DetectIdentifier-->
+        <RegExpr attribute="JSON" String="[a-zA-Z_$][\w$]*\s*(?=:)" />
+        <DetectChar attribute="Symbol" char="}" endRegion="Brace" context="#pop" />
+        <IncludeRules context="Normal" />
+      </context>
+
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <HlCStringChar attribute="Escape" />
+        <RegExpr attribute="Escape" String="\\u[0-9a-fA-F]{4}" />
+        <LineContinue/>
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String SQ">
+        <HlCStringChar attribute="Escape" />
+        <RegExpr attribute="Escape" String="\\u[0-9a-fA-F]{4}" />
+        <LineContinue/>
+        <DetectChar attribute="String" context="#pop" char="'" />
+      </context>
+
+      <context attribute="Template" lineEndContext="#stay" name="Template">
+        <HlCStringChar attribute="Escape" />
+        <Detect2Chars attribute="Escape" char="\" char1="`" />
+        <Detect2Chars attribute="Substitution" context="Substitution" char="$" char1="{" />
+        <DetectChar attribute="Template" context="#pop" char="`" />
+      </context>
+      <context attribute="Template" lineEndContext="#stay" name="RawTemplate">
+        <DetectChar attribute="Template" context="#pop" char="`" />
+      </context>
+      <context name="Substitution" attribute="Normal Text" lineEndContext="#stay">
+          <DetectChar attribute="Substitution" char="}" context="#pop"/>
+          <IncludeRules context="Normal"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Multi/inline Comment">
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
+      </context>
+
+      <context attribute="Regular Expression" lineEndContext="#stay" name="Regular Expression">
+        <RegExpr attribute="Regular Expression" context="#pop#pop" String="/\w*" />
+        <RegExpr attribute="Pattern Internal Operator" String="\{[\d, ]+\}" />
+        <RegExpr attribute="Pattern Internal Operator" String="\\[bB]" />
+        <RegExpr attribute="Pattern Character Class" String="\\[nrtvfDdSsWw]" />
+        <DetectChar attribute="Pattern Character Class" context="(charclass caret first check)" char="[" />
+        <RegExpr attribute="Pattern Internal Operator" String="\\." />
+        <RegExpr attribute="Pattern Internal Operator" String="\$(?=/)" />
+        <AnyChar attribute="Pattern Internal Operator" String="?+*()|" />
+      </context>
+      <context attribute="Pattern Character Class" lineEndContext="#stay" name="Regular Expression Character Class">
+        <RegExpr String="\\[\[\]]" />
+        <RegExpr attribute="Pattern Internal Operator" String="\\." />
+        <DetectChar attribute="Pattern Character Class" context="#pop#pop" char="]" />
+      </context>
+      <context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(regex caret first check)" fallthrough="true" fallthroughContext="Regular Expression">
+        <DetectChar attribute="Pattern Internal Operator" context="Regular Expression" char="^" />
+      </context>
+      <context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(charclass caret first check)" fallthrough="true" fallthroughContext="Regular Expression Character Class">
+        <DetectChar attribute="Pattern Internal Operator" context="Regular Expression Character Class" char="^" />
+      </context>
+
+      <context name="region_marker" attribute="Region Marker" lineEndContext="#pop" >
+        <DetectIdentifier/>
+        <DetectSpaces/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"  spellChecking="false" />
+      <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false" />
+      <itemData name="ControlFlow"  defStyleNum="dsControlFlow" spellChecking="false" />
+      <itemData name="Reserved"     defStyleNum="dsKeyword" italic="true" spellChecking="false" />
+      <itemData name="Module"       defStyleNum="dsImport" spellChecking="false" />
+      <itemData name="Function"     defStyleNum="dsFunction" spellChecking="false" />
+      <itemData name="Objects"      defStyleNum="dsVariable" spellChecking="false" />
+      <itemData name="Object Member" defStyleNum="dsAttribute" spellChecking="false" />
+
+      <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false" />
+      <itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false" />
+      <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false" />
+      <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false" />
+      <itemData name="Escape"       defStyleNum="dsSpecialChar" spellChecking="false" />
+      <itemData name="String"       defStyleNum="dsString" />
+      <itemData name="Template"     defStyleNum="dsVerbatimString" />
+      <itemData name="Substitution" defStyleNum="dsSpecialChar" spellChecking="false" />
+
+      <itemData name="Comment"      defStyleNum="dsComment" />
+      <itemData name="Symbol"       defStyleNum="dsOperator" spellChecking="false" />
+      <itemData name="Regular Expression" defStyleNum="dsSpecialString" spellChecking="false" />
+      <itemData name="Pattern Internal Operator" defStyleNum="dsSpecialChar" spellChecking="false" />
+      <itemData name="Pattern Character Class" defStyleNum="dsSpecialChar" spellChecking="false" />
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false" />
+      <itemData name="JSON"         defStyleNum="dsDataType" spellChecking="false" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
+
+<!-- kate: space-indent on; indent-width 2; -->
diff --git a/xml/json.xml b/xml/json.xml
new file mode 100644
--- /dev/null
+++ b/xml/json.xml
@@ -0,0 +1,104 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+ ***************************************************************************
+ ** Writing a Kate Highlighting XML File
+ ** http://kate-editor.org/article/writing_a_kate_highlighting_xml_file
+ **
+ ** Introducing JSON
+ ** http://www.json.org/
+ **
+ ** The application/json Media Type for JavaScript Object Notation (JSON)
+ ** http://tools.ietf.org/html/rfc4627
+ ***************************************************************************
+-->
+<language name="JSON" section="Markup" version="2" kateversion="2.4" extensions="*.json;.kateproject;.arcconfig" mimetype="application/json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
+  <highlighting>
+    <list name="Constants">
+      <item>null</item>
+      <item>true</item>
+      <item>false</item>
+    </list>
+
+    <contexts>
+      <context name="Normal" lineEndContext="#stay" attribute="Style_Error">
+        <DetectChar char="{"       context="Pair" beginRegion="Region_Object" attribute="Style_Seperator_Pair" />
+        <DetectChar char="["       context="Array" beginRegion="Region_Array" attribute="Style_Seperator_Array" />
+
+        <DetectSpaces context="#stay" attribute="Style_Normal" />
+      </context>
+
+      <context name="Pair" lineEndContext="#stay" attribute="Style_Error">
+        <DetectChar char="&quot;"  context="String_Key" attribute="Style_String_Key" />
+        <DetectChar char=":"       context="Value" attribute="Style_Seperator_Pair" />
+        <DetectChar char="}"       context="#pop" endRegion="Region_Object" attribute="Style_Seperator_Pair" />
+        <DetectChar char=","       context="#stay" attribute="Style_Seperator_Pair" />
+
+        <DetectSpaces context="#stay" attribute="Style_Normal" />
+      </context>
+
+      <context name="String_Key" lineEndContext="#stay" attribute="Style_String_Key">
+        <DetectChar char="&quot;"  context="#pop" attribute="Style_String_Key" />
+        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#stay" insensitive="false" minimal="false" attribute="Style_String_Key_Char" />
+      </context>
+
+      <context name="Value" lineEndContext="#stay" attribute="Style_Error" >
+        <DetectChar char="&quot;"  context="String_Value" attribute="Style_String_Value" />
+        <DetectChar char="{"       context="Pair" beginRegion="Region_Object" attribute="Style_Seperator_Pair" />
+        <DetectChar char="["       context="Array" beginRegion="Region_Array" attribute="Style_Seperator_Array" />
+        <DetectChar char="}"       context="#pop" lookAhead="true" />
+        <DetectChar char=","       context="#pop" lookAhead="true" />
+
+        <DetectSpaces context="#stay" attribute="Style_Normal" />
+
+        <keyword String="Constants" context="#stay" attribute="Style_Keyword" />
+
+        <RegExpr String="-?(?:[0-9]|[1-9][0-9]+)\.[0-9]+(?:[eE][+-]?[0-9]+)?" context="#stay" insensitive="false" minimal="false" attribute="Style_Float" />
+        <RegExpr String="-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?" context="#stay" insensitive="false" minimal="false" attribute="Style_Decimal" />
+      </context>
+
+      <context name="String_Value" lineEndContext="#stay" attribute="Style_String_Value">
+        <DetectChar char="&quot;"  context="#pop" attribute="Style_String_Value" />
+        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#stay" insensitive="false" minimal="false" attribute="Style_String_Value_Char" />
+      </context>
+
+      <context name="Array" lineEndContext="#stay" attribute="Style_Error">
+        <DetectChar char=","       context="#stay" attribute="Style_Seperator_Array" />
+        <DetectChar char="]"       context="#pop" endRegion="Region_Array" attribute="Style_Seperator_Array" />
+
+        <DetectChar char="{"       context="Pair" beginRegion="Region_Object" attribute="Style_Seperator_Pair" />
+        <DetectChar char="["       context="Array" beginRegion="Region_Array" attribute="Style_Seperator_Array" />
+        <DetectChar char="&quot;"  context="String_Value" attribute="Style_String_Value" />
+
+        <DetectSpaces context="#stay" attribute="Style_Normal" />
+
+        <keyword String="Constants" context="#stay" attribute="Style_Keyword" />
+
+        <RegExpr String="-?(?:[0-9]|[1-9][0-9]+)\.[0-9]+(?:[eE][+-]?[0-9]+)?" context="#stay" insensitive="false" minimal="false" attribute="Style_Float" />
+        <RegExpr String="-?(?:[0-9]|[1-9][0-9]+)(?:[eE][+-]?[0-9]+)?" context="#stay" insensitive="false" minimal="false" attribute="Style_Decimal" />
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Style_Normal"             defStyleNum="dsNormal" />
+
+      <itemData name="Style_Seperator_Pair"     defStyleNum="dsFunction" bold="true" />
+      <itemData name="Style_Seperator_Array"    defStyleNum="dsOthers" bold="true" />
+
+      <itemData name="Style_Decimal"            defStyleNum="dsDecVal" />
+      <itemData name="Style_Float"              defStyleNum="dsFloat" />
+      <itemData name="Style_String_Key"         defStyleNum="dsDataType" />
+      <itemData name="Style_String_Value"       defStyleNum="dsString" />
+      <itemData name="Style_String_Key_Char"    defStyleNum="dsChar" />
+      <itemData name="Style_String_Value_Char"  defStyleNum="dsChar" />
+
+      <itemData name="Style_Keyword"            defStyleNum="dsKeyword" />
+
+      <itemData name="Style_Error"              defStyleNum="dsError" />
+    </itemDatas>
+  </highlighting>
+</language>
+<!--
+// kate: space-indent on; indent-width 2; replace-tabs on;
+-->
+
diff --git a/xml/jsp.xml b/xml/jsp.xml
new file mode 100644
--- /dev/null
+++ b/xml/jsp.xml
@@ -0,0 +1,3070 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language version="2" kateversion="2.4" name="JSP" section="Markup" extensions="*.jsp;*.JSP" mimetype="text/html" casesensitive="false" author="Rob Martin (rob@gamepimp.com)" license="LGPL">
+  <highlighting>
+
+    <list name="java-1.4.2-classes">
+      <item>ARG_IN</item>
+      <item>ARG_INOUT</item>
+      <item>ARG_OUT</item>
+      <item>AWTError</item>
+      <item>AWTEvent</item>
+      <item>AWTEventListener</item>
+      <item>AWTEventListenerProxy</item>
+      <item>AWTEventMulticaster</item>
+      <item>AWTException</item>
+      <item>AWTKeyStroke</item>
+      <item>AWTPermission</item>
+      <item>AbstractAction</item>
+      <item>AbstractBorder</item>
+      <item>AbstractButton</item>
+      <item>AbstractCellEditor</item>
+      <item>AbstractCollection</item>
+      <item>AbstractColorChooserPanel</item>
+      <item>AbstractDocument</item>
+      <item>AbstractFormatter</item>
+      <item>AbstractFormatterFactory</item>
+      <item>AbstractInterruptibleChannel</item>
+      <item>AbstractLayoutCache</item>
+      <item>AbstractList</item>
+      <item>AbstractListModel</item>
+      <item>AbstractMap</item>
+      <item>AbstractMethodError</item>
+      <item>AbstractPreferences</item>
+      <item>AbstractSelectableChannel</item>
+      <item>AbstractSelectionKey</item>
+      <item>AbstractSelector</item>
+      <item>AbstractSequentialList</item>
+      <item>AbstractSet</item>
+      <item>AbstractSpinnerModel</item>
+      <item>AbstractTableModel</item>
+      <item>AbstractUndoableEdit</item>
+      <item>AbstractWriter</item>
+      <item>AccessControlContext</item>
+      <item>AccessControlException</item>
+      <item>AccessController</item>
+      <item>AccessException</item>
+      <item>Accessible</item>
+      <item>AccessibleAction</item>
+      <item>AccessibleBundle</item>
+      <item>AccessibleComponent</item>
+      <item>AccessibleContext</item>
+      <item>AccessibleEditableText</item>
+      <item>AccessibleExtendedComponent</item>
+      <item>AccessibleExtendedTable</item>
+      <item>AccessibleHyperlink</item>
+      <item>AccessibleHypertext</item>
+      <item>AccessibleIcon</item>
+      <item>AccessibleKeyBinding</item>
+      <item>AccessibleObject</item>
+      <item>AccessibleRelation</item>
+      <item>AccessibleRelationSet</item>
+      <item>AccessibleResourceBundle</item>
+      <item>AccessibleRole</item>
+      <item>AccessibleSelection</item>
+      <item>AccessibleState</item>
+      <item>AccessibleStateSet</item>
+      <item>AccessibleTable</item>
+      <item>AccessibleTableModelChange</item>
+      <item>AccessibleText</item>
+      <item>AccessibleValue</item>
+      <item>AccountExpiredException</item>
+      <item>Acl</item>
+      <item>AclEntry</item>
+      <item>AclNotFoundException</item>
+      <item>Action</item>
+      <item>ActionEvent</item>
+      <item>ActionListener</item>
+      <item>ActionMap</item>
+      <item>ActionMapUIResource</item>
+      <item>Activatable</item>
+      <item>ActivateFailedException</item>
+      <item>ActivationDesc</item>
+      <item>ActivationException</item>
+      <item>ActivationGroup</item>
+      <item>ActivationGroupDesc</item>
+      <item>ActivationGroupID</item>
+      <item>ActivationGroup_Stub</item>
+      <item>ActivationID</item>
+      <item>ActivationInstantiator</item>
+      <item>ActivationMonitor</item>
+      <item>ActivationSystem</item>
+      <item>Activator</item>
+      <item>ActiveEvent</item>
+      <item>ActiveValue</item>
+      <item>AdapterActivator</item>
+      <item>AdapterActivatorOperations</item>
+      <item>AdapterAlreadyExists</item>
+      <item>AdapterAlreadyExistsHelper</item>
+      <item>AdapterInactive</item>
+      <item>AdapterInactiveHelper</item>
+      <item>AdapterNonExistent</item>
+      <item>AdapterNonExistentHelper</item>
+      <item>AddressHelper</item>
+      <item>Adjustable</item>
+      <item>AdjustmentEvent</item>
+      <item>AdjustmentListener</item>
+      <item>Adler32</item>
+      <item>AffineTransform</item>
+      <item>AffineTransformOp</item>
+      <item>AlgorithmParameterGenerator</item>
+      <item>AlgorithmParameterGeneratorSpi</item>
+      <item>AlgorithmParameterSpec</item>
+      <item>AlgorithmParameters</item>
+      <item>AlgorithmParametersSpi</item>
+      <item>AlignmentAction</item>
+      <item>AllPermission</item>
+      <item>AlphaComposite</item>
+      <item>AlreadyBound</item>
+      <item>AlreadyBoundException</item>
+      <item>AlreadyBoundHelper</item>
+      <item>AlreadyBoundHolder</item>
+      <item>AlreadyConnectedException</item>
+      <item>AncestorEvent</item>
+      <item>AncestorListener</item>
+      <item>Annotation</item>
+      <item>Any</item>
+      <item>AnyHolder</item>
+      <item>AnySeqHelper</item>
+      <item>AnySeqHelper</item>
+      <item>AnySeqHolder</item>
+      <item>AppConfigurationEntry</item>
+      <item>Applet</item>
+      <item>AppletContext</item>
+      <item>AppletInitializer</item>
+      <item>AppletStub</item>
+      <item>ApplicationException</item>
+      <item>Arc2D</item>
+      <item>Area</item>
+      <item>AreaAveragingScaleFilter</item>
+      <item>ArithmeticException</item>
+      <item>Array</item>
+      <item>Array</item>
+      <item>ArrayIndexOutOfBoundsException</item>
+      <item>ArrayList</item>
+      <item>ArrayStoreException</item>
+      <item>Arrays</item>
+      <item>AssertionError</item>
+      <item>AsyncBoxView</item>
+      <item>AsynchronousCloseException</item>
+      <item>Attr</item>
+      <item>Attribute</item>
+      <item>Attribute</item>
+      <item>Attribute</item>
+      <item>Attribute</item>
+      <item>Attribute</item>
+      <item>AttributeContext</item>
+      <item>AttributeException</item>
+      <item>AttributeInUseException</item>
+      <item>AttributeList</item>
+      <item>AttributeList</item>
+      <item>AttributeListImpl</item>
+      <item>AttributeModificationException</item>
+      <item>AttributeSet</item>
+      <item>AttributeSet</item>
+      <item>AttributeSetUtilities</item>
+      <item>AttributeUndoableEdit</item>
+      <item>AttributedCharacterIterator</item>
+      <item>AttributedString</item>
+      <item>Attributes</item>
+      <item>Attributes</item>
+      <item>Attributes</item>
+      <item>AttributesImpl</item>
+      <item>AudioClip</item>
+      <item>AudioFileFormat</item>
+      <item>AudioFileReader</item>
+      <item>AudioFileWriter</item>
+      <item>AudioFormat</item>
+      <item>AudioInputStream</item>
+      <item>AudioPermission</item>
+      <item>AudioSystem</item>
+      <item>AuthPermission</item>
+      <item>AuthenticationException</item>
+      <item>AuthenticationNotSupportedException</item>
+      <item>Authenticator</item>
+      <item>Autoscroll</item>
+      <item>BAD_CONTEXT</item>
+      <item>BAD_INV_ORDER</item>
+      <item>BAD_OPERATION</item>
+      <item>BAD_PARAM</item>
+      <item>BAD_POLICY</item>
+      <item>BAD_POLICY_TYPE</item>
+      <item>BAD_POLICY_VALUE</item>
+      <item>BAD_TYPECODE</item>
+      <item>BCSIterator</item>
+      <item>BCSSServiceProvider</item>
+      <item>BYTE_ARRAY</item>
+      <item>BackingStoreException</item>
+      <item>BadKind</item>
+      <item>BadLocationException</item>
+      <item>BadPaddingException</item>
+      <item>BandCombineOp</item>
+      <item>BandedSampleModel</item>
+      <item>BasicArrowButton</item>
+      <item>BasicAttribute</item>
+      <item>BasicAttributes</item>
+      <item>BasicBorders</item>
+      <item>BasicButtonListener</item>
+      <item>BasicButtonUI</item>
+      <item>BasicCaret</item>
+      <item>BasicCheckBoxMenuItemUI</item>
+      <item>BasicCheckBoxUI</item>
+      <item>BasicColorChooserUI</item>
+      <item>BasicComboBoxEditor</item>
+      <item>BasicComboBoxRenderer</item>
+      <item>BasicComboBoxUI</item>
+      <item>BasicComboPopup</item>
+      <item>BasicDesktopIconUI</item>
+      <item>BasicDesktopPaneUI</item>
+      <item>BasicDirectoryModel</item>
+      <item>BasicEditorPaneUI</item>
+      <item>BasicFileChooserUI</item>
+      <item>BasicFormattedTextFieldUI</item>
+      <item>BasicGraphicsUtils</item>
+      <item>BasicHTML</item>
+      <item>BasicHighlighter</item>
+      <item>BasicIconFactory</item>
+      <item>BasicInternalFrameTitlePane</item>
+      <item>BasicInternalFrameUI</item>
+      <item>BasicLabelUI</item>
+      <item>BasicListUI</item>
+      <item>BasicLookAndFeel</item>
+      <item>BasicMenuBarUI</item>
+      <item>BasicMenuItemUI</item>
+      <item>BasicMenuUI</item>
+      <item>BasicOptionPaneUI</item>
+      <item>BasicPanelUI</item>
+      <item>BasicPasswordFieldUI</item>
+      <item>BasicPermission</item>
+      <item>BasicPopupMenuSeparatorUI</item>
+      <item>BasicPopupMenuUI</item>
+      <item>BasicProgressBarUI</item>
+      <item>BasicRadioButtonMenuItemUI</item>
+      <item>BasicRadioButtonUI</item>
+      <item>BasicRootPaneUI</item>
+      <item>BasicScrollBarUI</item>
+      <item>BasicScrollPaneUI</item>
+      <item>BasicSeparatorUI</item>
+      <item>BasicSliderUI</item>
+      <item>BasicSpinnerUI</item>
+      <item>BasicSplitPaneDivider</item>
+      <item>BasicSplitPaneUI</item>
+      <item>BasicStroke</item>
+      <item>BasicTabbedPaneUI</item>
+      <item>BasicTableHeaderUI</item>
+      <item>BasicTableUI</item>
+      <item>BasicTextAreaUI</item>
+      <item>BasicTextFieldUI</item>
+      <item>BasicTextPaneUI</item>
+      <item>BasicTextUI</item>
+      <item>BasicToggleButtonUI</item>
+      <item>BasicToolBarSeparatorUI</item>
+      <item>BasicToolBarUI</item>
+      <item>BasicToolTipUI</item>
+      <item>BasicTreeUI</item>
+      <item>BasicViewportUI</item>
+      <item>BatchUpdateException</item>
+      <item>BeanContext</item>
+      <item>BeanContextChild</item>
+      <item>BeanContextChildComponentProxy</item>
+      <item>BeanContextChildSupport</item>
+      <item>BeanContextContainerProxy</item>
+      <item>BeanContextEvent</item>
+      <item>BeanContextMembershipEvent</item>
+      <item>BeanContextMembershipListener</item>
+      <item>BeanContextProxy</item>
+      <item>BeanContextServiceAvailableEvent</item>
+      <item>BeanContextServiceProvider</item>
+      <item>BeanContextServiceProviderBeanInfo</item>
+      <item>BeanContextServiceRevokedEvent</item>
+      <item>BeanContextServiceRevokedListener</item>
+      <item>BeanContextServices</item>
+      <item>BeanContextServicesListener</item>
+      <item>BeanContextServicesSupport</item>
+      <item>BeanContextSupport</item>
+      <item>BeanDescriptor</item>
+      <item>BeanInfo</item>
+      <item>Beans</item>
+      <item>BeepAction</item>
+      <item>BevelBorder</item>
+      <item>BevelBorderUIResource</item>
+      <item>Bias</item>
+      <item>Bidi</item>
+      <item>BigDecimal</item>
+      <item>BigInteger</item>
+      <item>BinaryRefAddr</item>
+      <item>BindException</item>
+      <item>Binding</item>
+      <item>Binding</item>
+      <item>BindingHelper</item>
+      <item>BindingHolder</item>
+      <item>BindingIterator</item>
+      <item>BindingIteratorHelper</item>
+      <item>BindingIteratorHolder</item>
+      <item>BindingIteratorOperations</item>
+      <item>BindingIteratorPOA</item>
+      <item>BindingListHelper</item>
+      <item>BindingListHolder</item>
+      <item>BindingType</item>
+      <item>BindingTypeHelper</item>
+      <item>BindingTypeHolder</item>
+      <item>BitSet</item>
+      <item>Blob</item>
+      <item>BlockView</item>
+      <item>BoldAction</item>
+      <item>Book</item>
+      <item>Boolean</item>
+      <item>BooleanControl</item>
+      <item>BooleanHolder</item>
+      <item>BooleanSeqHelper</item>
+      <item>BooleanSeqHolder</item>
+      <item>Border</item>
+      <item>BorderFactory</item>
+      <item>BorderLayout</item>
+      <item>BorderUIResource</item>
+      <item>BoundedRangeModel</item>
+      <item>Bounds</item>
+      <item>Bounds</item>
+      <item>Box</item>
+      <item>BoxLayout</item>
+      <item>BoxPainter</item>
+      <item>BoxView</item>
+      <item>BoxedValueHelper</item>
+      <item>BreakIterator</item>
+      <item>Buffer</item>
+      <item>BufferCapabilities</item>
+      <item>BufferOverflowException</item>
+      <item>BufferStrategy</item>
+      <item>BufferUnderflowException</item>
+      <item>BufferedImage</item>
+      <item>BufferedImageFilter</item>
+      <item>BufferedImageOp</item>
+      <item>BufferedInputStream</item>
+      <item>BufferedOutputStream</item>
+      <item>BufferedReader</item>
+      <item>BufferedWriter</item>
+      <item>Button</item>
+      <item>ButtonAreaLayout</item>
+      <item>ButtonBorder</item>
+      <item>ButtonBorder</item>
+      <item>ButtonGroup</item>
+      <item>ButtonModel</item>
+      <item>ButtonUI</item>
+      <item>Byte</item>
+      <item>ByteArrayInputStream</item>
+      <item>ByteArrayOutputStream</item>
+      <item>ByteBuffer</item>
+      <item>ByteChannel</item>
+      <item>ByteHolder</item>
+      <item>ByteLookupTable</item>
+      <item>ByteOrder</item>
+      <item>CDATASection</item>
+      <item>CHAR_ARRAY</item>
+      <item>CMMException</item>
+      <item>COMM_FAILURE</item>
+      <item>CRC32</item>
+      <item>CRL</item>
+      <item>CRLException</item>
+      <item>CRLSelector</item>
+      <item>CSS</item>
+      <item>CTX_RESTRICT_SCOPE</item>
+      <item>Calendar</item>
+      <item>CallableStatement</item>
+      <item>Callback</item>
+      <item>CallbackHandler</item>
+      <item>CancelablePrintJob</item>
+      <item>CancelledKeyException</item>
+      <item>CannotProceed</item>
+      <item>CannotProceedException</item>
+      <item>CannotProceedHelper</item>
+      <item>CannotProceedHolder</item>
+      <item>CannotRedoException</item>
+      <item>CannotUndoException</item>
+      <item>Canvas</item>
+      <item>CardLayout</item>
+      <item>Caret</item>
+      <item>CaretEvent</item>
+      <item>CaretListener</item>
+      <item>CaretPolicy</item>
+      <item>CellEditor</item>
+      <item>CellEditorListener</item>
+      <item>CellRendererPane</item>
+      <item>CertPath</item>
+      <item>CertPathBuilder</item>
+      <item>CertPathBuilderException</item>
+      <item>CertPathBuilderResult</item>
+      <item>CertPathBuilderSpi</item>
+      <item>CertPathParameters</item>
+      <item>CertPathRep</item>
+      <item>CertPathValidator</item>
+      <item>CertPathValidatorException</item>
+      <item>CertPathValidatorResult</item>
+      <item>CertPathValidatorSpi</item>
+      <item>CertSelector</item>
+      <item>CertStore</item>
+      <item>CertStoreException</item>
+      <item>CertStoreParameters</item>
+      <item>CertStoreSpi</item>
+      <item>Certificate</item>
+      <item>Certificate</item>
+      <item>Certificate</item>
+      <item>CertificateEncodingException</item>
+      <item>CertificateEncodingException</item>
+      <item>CertificateException</item>
+      <item>CertificateException</item>
+      <item>CertificateExpiredException</item>
+      <item>CertificateExpiredException</item>
+      <item>CertificateFactory</item>
+      <item>CertificateFactorySpi</item>
+      <item>CertificateNotYetValidException</item>
+      <item>CertificateNotYetValidException</item>
+      <item>CertificateParsingException</item>
+      <item>CertificateParsingException</item>
+      <item>CertificateRep</item>
+      <item>ChangeEvent</item>
+      <item>ChangeListener</item>
+      <item>ChangedCharSetException</item>
+      <item>Channel</item>
+      <item>ChannelBinding</item>
+      <item>Channels</item>
+      <item>CharArrayReader</item>
+      <item>CharArrayWriter</item>
+      <item>CharBuffer</item>
+      <item>CharConversionException</item>
+      <item>CharHolder</item>
+      <item>CharSeqHelper</item>
+      <item>CharSeqHolder</item>
+      <item>CharSequence</item>
+      <item>Character</item>
+      <item>CharacterAttribute</item>
+      <item>CharacterCodingException</item>
+      <item>CharacterConstants</item>
+      <item>CharacterData</item>
+      <item>CharacterIterator</item>
+      <item>Charset</item>
+      <item>CharsetDecoder</item>
+      <item>CharsetEncoder</item>
+      <item>CharsetProvider</item>
+      <item>Checkbox</item>
+      <item>CheckboxGroup</item>
+      <item>CheckboxMenuItem</item>
+      <item>CheckedInputStream</item>
+      <item>CheckedOutputStream</item>
+      <item>Checksum</item>
+      <item>Choice</item>
+      <item>ChoiceCallback</item>
+      <item>ChoiceFormat</item>
+      <item>Chromaticity</item>
+      <item>Cipher</item>
+      <item>CipherInputStream</item>
+      <item>CipherOutputStream</item>
+      <item>CipherSpi</item>
+      <item>Class</item>
+      <item>ClassCastException</item>
+      <item>ClassCircularityError</item>
+      <item>ClassDesc</item>
+      <item>ClassFormatError</item>
+      <item>ClassLoader</item>
+      <item>ClassNotFoundException</item>
+      <item>ClientRequestInfo</item>
+      <item>ClientRequestInfoOperations</item>
+      <item>ClientRequestInterceptor</item>
+      <item>ClientRequestInterceptorOperations</item>
+      <item>Clip</item>
+      <item>Clipboard</item>
+      <item>ClipboardOwner</item>
+      <item>Clob</item>
+      <item>CloneNotSupportedException</item>
+      <item>Cloneable</item>
+      <item>ClosedByInterruptException</item>
+      <item>ClosedChannelException</item>
+      <item>ClosedSelectorException</item>
+      <item>CodeSets</item>
+      <item>CodeSource</item>
+      <item>Codec</item>
+      <item>CodecFactory</item>
+      <item>CodecFactoryHelper</item>
+      <item>CodecFactoryOperations</item>
+      <item>CodecOperations</item>
+      <item>CoderMalfunctionError</item>
+      <item>CoderResult</item>
+      <item>CodingErrorAction</item>
+      <item>CollationElementIterator</item>
+      <item>CollationKey</item>
+      <item>Collator</item>
+      <item>Collection</item>
+      <item>CollectionCertStoreParameters</item>
+      <item>Collections</item>
+      <item>Color</item>
+      <item>ColorAttribute</item>
+      <item>ColorChooserComponentFactory</item>
+      <item>ColorChooserUI</item>
+      <item>ColorConstants</item>
+      <item>ColorConvertOp</item>
+      <item>ColorModel</item>
+      <item>ColorSelectionModel</item>
+      <item>ColorSpace</item>
+      <item>ColorSupported</item>
+      <item>ColorType</item>
+      <item>ColorUIResource</item>
+      <item>ComboBoxEditor</item>
+      <item>ComboBoxModel</item>
+      <item>ComboBoxUI</item>
+      <item>ComboPopup</item>
+      <item>CommandEnvironment</item>
+      <item>Comment</item>
+      <item>CommunicationException</item>
+      <item>Comparable</item>
+      <item>Comparator</item>
+      <item>Compiler</item>
+      <item>CompletionStatus</item>
+      <item>CompletionStatusHelper</item>
+      <item>Component</item>
+      <item>ComponentAdapter</item>
+      <item>ComponentColorModel</item>
+      <item>ComponentEvent</item>
+      <item>ComponentIdHelper</item>
+      <item>ComponentInputMap</item>
+      <item>ComponentInputMapUIResource</item>
+      <item>ComponentListener</item>
+      <item>ComponentOrientation</item>
+      <item>ComponentSampleModel</item>
+      <item>ComponentUI</item>
+      <item>ComponentView</item>
+      <item>Composite</item>
+      <item>CompositeContext</item>
+      <item>CompositeName</item>
+      <item>CompositeView</item>
+      <item>CompoundBorder</item>
+      <item>CompoundBorderUIResource</item>
+      <item>CompoundControl</item>
+      <item>CompoundEdit</item>
+      <item>CompoundName</item>
+      <item>Compression</item>
+      <item>ConcurrentModificationException</item>
+      <item>Configuration</item>
+      <item>ConfigurationException</item>
+      <item>ConfirmationCallback</item>
+      <item>ConnectException</item>
+      <item>ConnectException</item>
+      <item>ConnectIOException</item>
+      <item>Connection</item>
+      <item>ConnectionEvent</item>
+      <item>ConnectionEventListener</item>
+      <item>ConnectionPendingException</item>
+      <item>ConnectionPoolDataSource</item>
+      <item>ConsoleHandler</item>
+      <item>Constraints</item>
+      <item>Constructor</item>
+      <item>Container</item>
+      <item>ContainerAdapter</item>
+      <item>ContainerEvent</item>
+      <item>ContainerListener</item>
+      <item>ContainerOrderFocusTraversalPolicy</item>
+      <item>Content</item>
+      <item>ContentHandler</item>
+      <item>ContentHandler</item>
+      <item>ContentHandlerFactory</item>
+      <item>ContentModel</item>
+      <item>Context</item>
+      <item>Context</item>
+      <item>ContextList</item>
+      <item>ContextNotEmptyException</item>
+      <item>ContextualRenderedImageFactory</item>
+      <item>Control</item>
+      <item>Control</item>
+      <item>ControlFactory</item>
+      <item>ControllerEventListener</item>
+      <item>ConvolveOp</item>
+      <item>CookieHolder</item>
+      <item>Copies</item>
+      <item>CopiesSupported</item>
+      <item>CopyAction</item>
+      <item>CredentialExpiredException</item>
+      <item>CropImageFilter</item>
+      <item>CubicCurve2D</item>
+      <item>Currency</item>
+      <item>Current</item>
+      <item>Current</item>
+      <item>Current</item>
+      <item>CurrentHelper</item>
+      <item>CurrentHelper</item>
+      <item>CurrentHelper</item>
+      <item>CurrentHolder</item>
+      <item>CurrentOperations</item>
+      <item>CurrentOperations</item>
+      <item>CurrentOperations</item>
+      <item>Cursor</item>
+      <item>CustomMarshal</item>
+      <item>CustomValue</item>
+      <item>Customizer</item>
+      <item>CutAction</item>
+      <item>DATA_CONVERSION</item>
+      <item>DESKeySpec</item>
+      <item>DESedeKeySpec</item>
+      <item>DGC</item>
+      <item>DHGenParameterSpec</item>
+      <item>DHKey</item>
+      <item>DHParameterSpec</item>
+      <item>DHPrivateKey</item>
+      <item>DHPrivateKeySpec</item>
+      <item>DHPublicKey</item>
+      <item>DHPublicKeySpec</item>
+      <item>DOMException</item>
+      <item>DOMImplementation</item>
+      <item>DOMLocator</item>
+      <item>DOMResult</item>
+      <item>DOMSource</item>
+      <item>DSAKey</item>
+      <item>DSAKeyPairGenerator</item>
+      <item>DSAParameterSpec</item>
+      <item>DSAParams</item>
+      <item>DSAPrivateKey</item>
+      <item>DSAPrivateKeySpec</item>
+      <item>DSAPublicKey</item>
+      <item>DSAPublicKeySpec</item>
+      <item>DTD</item>
+      <item>DTDConstants</item>
+      <item>DTDHandler</item>
+      <item>DataBuffer</item>
+      <item>DataBufferByte</item>
+      <item>DataBufferDouble</item>
+      <item>DataBufferFloat</item>
+      <item>DataBufferInt</item>
+      <item>DataBufferShort</item>
+      <item>DataBufferUShort</item>
+      <item>DataFlavor</item>
+      <item>DataFormatException</item>
+      <item>DataInput</item>
+      <item>DataInputStream</item>
+      <item>DataInputStream</item>
+      <item>DataLine</item>
+      <item>DataOutput</item>
+      <item>DataOutputStream</item>
+      <item>DataOutputStream</item>
+      <item>DataSource</item>
+      <item>DataTruncation</item>
+      <item>DatabaseMetaData</item>
+      <item>DatagramChannel</item>
+      <item>DatagramPacket</item>
+      <item>DatagramSocket</item>
+      <item>DatagramSocketImpl</item>
+      <item>DatagramSocketImplFactory</item>
+      <item>Date</item>
+      <item>Date</item>
+      <item>DateEditor</item>
+      <item>DateFormat</item>
+      <item>DateFormatSymbols</item>
+      <item>DateFormatter</item>
+      <item>DateTimeAtCompleted</item>
+      <item>DateTimeAtCreation</item>
+      <item>DateTimeAtProcessing</item>
+      <item>DateTimeSyntax</item>
+      <item>DebugGraphics</item>
+      <item>DecimalFormat</item>
+      <item>DecimalFormatSymbols</item>
+      <item>DeclHandler</item>
+      <item>DefaultBoundedRangeModel</item>
+      <item>DefaultButtonModel</item>
+      <item>DefaultCaret</item>
+      <item>DefaultCellEditor</item>
+      <item>DefaultColorSelectionModel</item>
+      <item>DefaultComboBoxModel</item>
+      <item>DefaultDesktopManager</item>
+      <item>DefaultEditor</item>
+      <item>DefaultEditorKit</item>
+      <item>DefaultFocusManager</item>
+      <item>DefaultFocusTraversalPolicy</item>
+      <item>DefaultFormatter</item>
+      <item>DefaultFormatterFactory</item>
+      <item>DefaultHandler</item>
+      <item>DefaultHighlightPainter</item>
+      <item>DefaultHighlighter</item>
+      <item>DefaultKeyTypedAction</item>
+      <item>DefaultKeyboardFocusManager</item>
+      <item>DefaultListCellRenderer</item>
+      <item>DefaultListModel</item>
+      <item>DefaultListSelectionModel</item>
+      <item>DefaultMenuLayout</item>
+      <item>DefaultMetalTheme</item>
+      <item>DefaultMutableTreeNode</item>
+      <item>DefaultPersistenceDelegate</item>
+      <item>DefaultSelectionType</item>
+      <item>DefaultSingleSelectionModel</item>
+      <item>DefaultStyledDocument</item>
+      <item>DefaultTableCellRenderer</item>
+      <item>DefaultTableColumnModel</item>
+      <item>DefaultTableModel</item>
+      <item>DefaultTextUI</item>
+      <item>DefaultTreeCellEditor</item>
+      <item>DefaultTreeCellRenderer</item>
+      <item>DefaultTreeModel</item>
+      <item>DefaultTreeSelectionModel</item>
+      <item>DefinitionKind</item>
+      <item>DefinitionKindHelper</item>
+      <item>Deflater</item>
+      <item>DeflaterOutputStream</item>
+      <item>Delegate</item>
+      <item>Delegate</item>
+      <item>Delegate</item>
+      <item>DelegationPermission</item>
+      <item>DesignMode</item>
+      <item>DesktopIconUI</item>
+      <item>DesktopManager</item>
+      <item>DesktopPaneUI</item>
+      <item>Destination</item>
+      <item>DestinationType</item>
+      <item>DestroyFailedException</item>
+      <item>Destroyable</item>
+      <item>Dialog</item>
+      <item>DialogType</item>
+      <item>Dictionary</item>
+      <item>DigestException</item>
+      <item>DigestInputStream</item>
+      <item>DigestOutputStream</item>
+      <item>Dimension</item>
+      <item>Dimension2D</item>
+      <item>DimensionUIResource</item>
+      <item>DirContext</item>
+      <item>DirObjectFactory</item>
+      <item>DirStateFactory</item>
+      <item>DirectColorModel</item>
+      <item>DirectoryManager</item>
+      <item>DisplayMode</item>
+      <item>DnDConstants</item>
+      <item>Doc</item>
+      <item>DocAttribute</item>
+      <item>DocAttributeSet</item>
+      <item>DocFlavor</item>
+      <item>DocPrintJob</item>
+      <item>Document</item>
+      <item>Document</item>
+      <item>DocumentBuilder</item>
+      <item>DocumentBuilderFactory</item>
+      <item>DocumentEvent</item>
+      <item>DocumentFilter</item>
+      <item>DocumentFragment</item>
+      <item>DocumentHandler</item>
+      <item>DocumentListener</item>
+      <item>DocumentName</item>
+      <item>DocumentParser</item>
+      <item>DocumentType</item>
+      <item>DomainCombiner</item>
+      <item>DomainManager</item>
+      <item>DomainManagerOperations</item>
+      <item>Double</item>
+      <item>Double</item>
+      <item>Double</item>
+      <item>Double</item>
+      <item>Double</item>
+      <item>Double</item>
+      <item>Double</item>
+      <item>Double</item>
+      <item>Double</item>
+      <item>DoubleBuffer</item>
+      <item>DoubleHolder</item>
+      <item>DoubleSeqHelper</item>
+      <item>DoubleSeqHolder</item>
+      <item>DragGestureEvent</item>
+      <item>DragGestureListener</item>
+      <item>DragGestureRecognizer</item>
+      <item>DragSource</item>
+      <item>DragSourceAdapter</item>
+      <item>DragSourceContext</item>
+      <item>DragSourceDragEvent</item>
+      <item>DragSourceDropEvent</item>
+      <item>DragSourceEvent</item>
+      <item>DragSourceListener</item>
+      <item>DragSourceMotionListener</item>
+      <item>Driver</item>
+      <item>DriverManager</item>
+      <item>DriverPropertyInfo</item>
+      <item>DropTarget</item>
+      <item>DropTargetAdapter</item>
+      <item>DropTargetAutoScroller</item>
+      <item>DropTargetContext</item>
+      <item>DropTargetDragEvent</item>
+      <item>DropTargetDropEvent</item>
+      <item>DropTargetEvent</item>
+      <item>DropTargetListener</item>
+      <item>DuplicateName</item>
+      <item>DuplicateNameHelper</item>
+      <item>DynAny</item>
+      <item>DynAny</item>
+      <item>DynAnyFactory</item>
+      <item>DynAnyFactoryHelper</item>
+      <item>DynAnyFactoryOperations</item>
+      <item>DynAnyHelper</item>
+      <item>DynAnyOperations</item>
+      <item>DynAnySeqHelper</item>
+      <item>DynArray</item>
+      <item>DynArray</item>
+      <item>DynArrayHelper</item>
+      <item>DynArrayOperations</item>
+      <item>DynEnum</item>
+      <item>DynEnum</item>
+      <item>DynEnumHelper</item>
+      <item>DynEnumOperations</item>
+      <item>DynFixed</item>
+      <item>DynFixed</item>
+      <item>DynFixedHelper</item>
+      <item>DynFixedOperations</item>
+      <item>DynSequence</item>
+      <item>DynSequence</item>
+      <item>DynSequenceHelper</item>
+      <item>DynSequenceOperations</item>
+      <item>DynStruct</item>
+      <item>DynStruct</item>
+      <item>DynStructHelper</item>
+      <item>DynStructOperations</item>
+      <item>DynUnion</item>
+      <item>DynUnion</item>
+      <item>DynUnionHelper</item>
+      <item>DynUnionOperations</item>
+      <item>DynValue</item>
+      <item>DynValue</item>
+      <item>DynValueBox</item>
+      <item>DynValueBoxOperations</item>
+      <item>DynValueCommon</item>
+      <item>DynValueCommonOperations</item>
+      <item>DynValueHelper</item>
+      <item>DynValueOperations</item>
+      <item>DynamicImplementation</item>
+      <item>DynamicImplementation</item>
+      <item>DynamicUtilTreeNode</item>
+      <item>ENCODING_CDR_ENCAPS</item>
+      <item>EOFException</item>
+      <item>EditorKit</item>
+      <item>Element</item>
+      <item>Element</item>
+      <item>Element</item>
+      <item>ElementChange</item>
+      <item>ElementEdit</item>
+      <item>ElementIterator</item>
+      <item>ElementSpec</item>
+      <item>Ellipse2D</item>
+      <item>EmptyBorder</item>
+      <item>EmptyBorderUIResource</item>
+      <item>EmptySelectionModel</item>
+      <item>EmptyStackException</item>
+      <item>EncodedKeySpec</item>
+      <item>Encoder</item>
+      <item>Encoding</item>
+      <item>Encoding</item>
+      <item>EncryptedPrivateKeyInfo</item>
+      <item>Engineering</item>
+      <item>Entity</item>
+      <item>Entity</item>
+      <item>EntityReference</item>
+      <item>EntityResolver</item>
+      <item>Entry</item>
+      <item>EnumControl</item>
+      <item>EnumSyntax</item>
+      <item>Enumeration</item>
+      <item>Environment</item>
+      <item>Error</item>
+      <item>ErrorHandler</item>
+      <item>ErrorListener</item>
+      <item>ErrorManager</item>
+      <item>EtchedBorder</item>
+      <item>EtchedBorderUIResource</item>
+      <item>Event</item>
+      <item>EventContext</item>
+      <item>EventDirContext</item>
+      <item>EventHandler</item>
+      <item>EventListener</item>
+      <item>EventListenerList</item>
+      <item>EventListenerProxy</item>
+      <item>EventObject</item>
+      <item>EventQueue</item>
+      <item>EventSetDescriptor</item>
+      <item>EventType</item>
+      <item>EventType</item>
+      <item>Exception</item>
+      <item>ExceptionInInitializerError</item>
+      <item>ExceptionList</item>
+      <item>ExceptionListener</item>
+      <item>ExemptionMechanism</item>
+      <item>ExemptionMechanismException</item>
+      <item>ExemptionMechanismSpi</item>
+      <item>ExpandVetoException</item>
+      <item>ExportException</item>
+      <item>Expression</item>
+      <item>ExtendedRequest</item>
+      <item>ExtendedResponse</item>
+      <item>Externalizable</item>
+      <item>FREE_MEM</item>
+      <item>FactoryConfigurationError</item>
+      <item>FailedLoginException</item>
+      <item>FeatureDescriptor</item>
+      <item>Fidelity</item>
+      <item>Field</item>
+      <item>Field</item>
+      <item>Field</item>
+      <item>Field</item>
+      <item>Field</item>
+      <item>FieldBorder</item>
+      <item>FieldNameHelper</item>
+      <item>FieldNameHelper</item>
+      <item>FieldPosition</item>
+      <item>FieldView</item>
+      <item>File</item>
+      <item>FileCacheImageInputStream</item>
+      <item>FileCacheImageOutputStream</item>
+      <item>FileChannel</item>
+      <item>FileChooserUI</item>
+      <item>FileDescriptor</item>
+      <item>FileDialog</item>
+      <item>FileFilter</item>
+      <item>FileFilter</item>
+      <item>FileHandler</item>
+      <item>FileIcon16</item>
+      <item>FileImageInputStream</item>
+      <item>FileImageOutputStream</item>
+      <item>FileInputStream</item>
+      <item>FileLock</item>
+      <item>FileLockInterruptionException</item>
+      <item>FileNameMap</item>
+      <item>FileNotFoundException</item>
+      <item>FileOutputStream</item>
+      <item>FilePermission</item>
+      <item>FileReader</item>
+      <item>FileSystemView</item>
+      <item>FileView</item>
+      <item>FileWriter</item>
+      <item>FilenameFilter</item>
+      <item>Filler</item>
+      <item>Filter</item>
+      <item>Filter</item>
+      <item>FilterBypass</item>
+      <item>FilterBypass</item>
+      <item>FilterInputStream</item>
+      <item>FilterOutputStream</item>
+      <item>FilterReader</item>
+      <item>FilterWriter</item>
+      <item>FilteredImageSource</item>
+      <item>Finishings</item>
+      <item>FixedHeightLayoutCache</item>
+      <item>FixedHolder</item>
+      <item>FlatteningPathIterator</item>
+      <item>FlavorException</item>
+      <item>FlavorMap</item>
+      <item>FlavorTable</item>
+      <item>FlipContents</item>
+      <item>Float</item>
+      <item>Float</item>
+      <item>Float</item>
+      <item>Float</item>
+      <item>Float</item>
+      <item>Float</item>
+      <item>Float</item>
+      <item>Float</item>
+      <item>Float</item>
+      <item>FloatBuffer</item>
+      <item>FloatControl</item>
+      <item>FloatHolder</item>
+      <item>FloatSeqHelper</item>
+      <item>FloatSeqHolder</item>
+      <item>FlowLayout</item>
+      <item>FlowStrategy</item>
+      <item>FlowView</item>
+      <item>Flush3DBorder</item>
+      <item>FocusAdapter</item>
+      <item>FocusEvent</item>
+      <item>FocusListener</item>
+      <item>FocusManager</item>
+      <item>FocusTraversalPolicy</item>
+      <item>FolderIcon16</item>
+      <item>Font</item>
+      <item>FontAttribute</item>
+      <item>FontConstants</item>
+      <item>FontFamilyAction</item>
+      <item>FontFormatException</item>
+      <item>FontMetrics</item>
+      <item>FontRenderContext</item>
+      <item>FontSizeAction</item>
+      <item>FontUIResource</item>
+      <item>ForegroundAction</item>
+      <item>FormView</item>
+      <item>Format</item>
+      <item>FormatConversionProvider</item>
+      <item>FormatMismatch</item>
+      <item>FormatMismatchHelper</item>
+      <item>Formatter</item>
+      <item>ForwardRequest</item>
+      <item>ForwardRequest</item>
+      <item>ForwardRequestHelper</item>
+      <item>ForwardRequestHelper</item>
+      <item>Frame</item>
+      <item>GSSContext</item>
+      <item>GSSCredential</item>
+      <item>GSSException</item>
+      <item>GSSManager</item>
+      <item>GSSName</item>
+      <item>GZIPInputStream</item>
+      <item>GZIPOutputStream</item>
+      <item>GapContent</item>
+      <item>GatheringByteChannel</item>
+      <item>GeneralPath</item>
+      <item>GeneralSecurityException</item>
+      <item>GetField</item>
+      <item>GlyphJustificationInfo</item>
+      <item>GlyphMetrics</item>
+      <item>GlyphPainter</item>
+      <item>GlyphVector</item>
+      <item>GlyphView</item>
+      <item>GradientPaint</item>
+      <item>GraphicAttribute</item>
+      <item>Graphics</item>
+      <item>Graphics2D</item>
+      <item>GraphicsConfigTemplate</item>
+      <item>GraphicsConfiguration</item>
+      <item>GraphicsDevice</item>
+      <item>GraphicsEnvironment</item>
+      <item>GrayFilter</item>
+      <item>GregorianCalendar</item>
+      <item>GridBagConstraints</item>
+      <item>GridBagLayout</item>
+      <item>GridLayout</item>
+      <item>Group</item>
+      <item>Guard</item>
+      <item>GuardedObject</item>
+      <item>HTML</item>
+      <item>HTMLDocument</item>
+      <item>HTMLEditorKit</item>
+      <item>HTMLEditorKit</item>
+      <item>HTMLEditorKit</item>
+      <item>HTMLFrameHyperlinkEvent</item>
+      <item>HTMLWriter</item>
+      <item>Handler</item>
+      <item>HandlerBase</item>
+      <item>HandshakeCompletedEvent</item>
+      <item>HandshakeCompletedListener</item>
+      <item>HasControls</item>
+      <item>HashAttributeSet</item>
+      <item>HashDocAttributeSet</item>
+      <item>HashMap</item>
+      <item>HashPrintJobAttributeSet</item>
+      <item>HashPrintRequestAttributeSet</item>
+      <item>HashPrintServiceAttributeSet</item>
+      <item>HashSet</item>
+      <item>Hashtable</item>
+      <item>HeadlessException</item>
+      <item>HierarchyBoundsAdapter</item>
+      <item>HierarchyBoundsListener</item>
+      <item>HierarchyEvent</item>
+      <item>HierarchyListener</item>
+      <item>Highlight</item>
+      <item>HighlightPainter</item>
+      <item>Highlighter</item>
+      <item>HostnameVerifier</item>
+      <item>HttpURLConnection</item>
+      <item>HttpsURLConnection</item>
+      <item>HyperlinkEvent</item>
+      <item>HyperlinkListener</item>
+      <item>ICC_ColorSpace</item>
+      <item>ICC_Profile</item>
+      <item>ICC_ProfileGray</item>
+      <item>ICC_ProfileRGB</item>
+      <item>IDLEntity</item>
+      <item>IDLType</item>
+      <item>IDLTypeHelper</item>
+      <item>IDLTypeOperations</item>
+      <item>ID_ASSIGNMENT_POLICY_ID</item>
+      <item>ID_UNIQUENESS_POLICY_ID</item>
+      <item>IIOByteBuffer</item>
+      <item>IIOException</item>
+      <item>IIOImage</item>
+      <item>IIOInvalidTreeException</item>
+      <item>IIOMetadata</item>
+      <item>IIOMetadataController</item>
+      <item>IIOMetadataFormat</item>
+      <item>IIOMetadataFormatImpl</item>
+      <item>IIOMetadataNode</item>
+      <item>IIOParam</item>
+      <item>IIOParamController</item>
+      <item>IIOReadProgressListener</item>
+      <item>IIOReadUpdateListener</item>
+      <item>IIOReadWarningListener</item>
+      <item>IIORegistry</item>
+      <item>IIOServiceProvider</item>
+      <item>IIOWriteProgressListener</item>
+      <item>IIOWriteWarningListener</item>
+      <item>IMPLICIT_ACTIVATION_POLICY_ID</item>
+      <item>IMP_LIMIT</item>
+      <item>INITIALIZE</item>
+      <item>INPUT_STREAM</item>
+      <item>INTERNAL</item>
+      <item>INTF_REPOS</item>
+      <item>INVALID_TRANSACTION</item>
+      <item>INV_FLAG</item>
+      <item>INV_IDENT</item>
+      <item>INV_OBJREF</item>
+      <item>INV_POLICY</item>
+      <item>IOException</item>
+      <item>IOR</item>
+      <item>IORHelper</item>
+      <item>IORHolder</item>
+      <item>IORInfo</item>
+      <item>IORInfoOperations</item>
+      <item>IORInterceptor</item>
+      <item>IORInterceptorOperations</item>
+      <item>IRObject</item>
+      <item>IRObjectOperations</item>
+      <item>ISO</item>
+      <item>Icon</item>
+      <item>IconUIResource</item>
+      <item>IconView</item>
+      <item>IdAssignmentPolicy</item>
+      <item>IdAssignmentPolicyOperations</item>
+      <item>IdAssignmentPolicyValue</item>
+      <item>IdUniquenessPolicy</item>
+      <item>IdUniquenessPolicyOperations</item>
+      <item>IdUniquenessPolicyValue</item>
+      <item>IdentifierHelper</item>
+      <item>Identity</item>
+      <item>IdentityHashMap</item>
+      <item>IdentityScope</item>
+      <item>IllegalAccessError</item>
+      <item>IllegalAccessException</item>
+      <item>IllegalArgumentException</item>
+      <item>IllegalBlockSizeException</item>
+      <item>IllegalBlockingModeException</item>
+      <item>IllegalCharsetNameException</item>
+      <item>IllegalComponentStateException</item>
+      <item>IllegalMonitorStateException</item>
+      <item>IllegalPathStateException</item>
+      <item>IllegalSelectorException</item>
+      <item>IllegalStateException</item>
+      <item>IllegalThreadStateException</item>
+      <item>Image</item>
+      <item>ImageCapabilities</item>
+      <item>ImageConsumer</item>
+      <item>ImageFilter</item>
+      <item>ImageGraphicAttribute</item>
+      <item>ImageIO</item>
+      <item>ImageIcon</item>
+      <item>ImageInputStream</item>
+      <item>ImageInputStreamImpl</item>
+      <item>ImageInputStreamSpi</item>
+      <item>ImageObserver</item>
+      <item>ImageOutputStream</item>
+      <item>ImageOutputStreamImpl</item>
+      <item>ImageOutputStreamSpi</item>
+      <item>ImageProducer</item>
+      <item>ImageReadParam</item>
+      <item>ImageReader</item>
+      <item>ImageReaderSpi</item>
+      <item>ImageReaderWriterSpi</item>
+      <item>ImageTranscoder</item>
+      <item>ImageTranscoderSpi</item>
+      <item>ImageTypeSpecifier</item>
+      <item>ImageView</item>
+      <item>ImageWriteParam</item>
+      <item>ImageWriter</item>
+      <item>ImageWriterSpi</item>
+      <item>ImagingOpException</item>
+      <item>ImplicitActivationPolicy</item>
+      <item>ImplicitActivationPolicyOperations</item>
+      <item>ImplicitActivationPolicyValue</item>
+      <item>IncompatibleClassChangeError</item>
+      <item>InconsistentTypeCode</item>
+      <item>InconsistentTypeCode</item>
+      <item>InconsistentTypeCodeHelper</item>
+      <item>IndexColorModel</item>
+      <item>IndexOutOfBoundsException</item>
+      <item>IndexedPropertyDescriptor</item>
+      <item>IndirectionException</item>
+      <item>Inet4Address</item>
+      <item>Inet6Address</item>
+      <item>InetAddress</item>
+      <item>InetSocketAddress</item>
+      <item>Inflater</item>
+      <item>InflaterInputStream</item>
+      <item>Info</item>
+      <item>Info</item>
+      <item>Info</item>
+      <item>Info</item>
+      <item>Info</item>
+      <item>InheritableThreadLocal</item>
+      <item>InitialContext</item>
+      <item>InitialContextFactory</item>
+      <item>InitialContextFactoryBuilder</item>
+      <item>InitialDirContext</item>
+      <item>InitialLdapContext</item>
+      <item>InlineView</item>
+      <item>InputContext</item>
+      <item>InputEvent</item>
+      <item>InputMap</item>
+      <item>InputMapUIResource</item>
+      <item>InputMethod</item>
+      <item>InputMethodContext</item>
+      <item>InputMethodDescriptor</item>
+      <item>InputMethodEvent</item>
+      <item>InputMethodHighlight</item>
+      <item>InputMethodListener</item>
+      <item>InputMethodRequests</item>
+      <item>InputSource</item>
+      <item>InputStream</item>
+      <item>InputStream</item>
+      <item>InputStream</item>
+      <item>InputStreamReader</item>
+      <item>InputSubset</item>
+      <item>InputVerifier</item>
+      <item>InsertBreakAction</item>
+      <item>InsertContentAction</item>
+      <item>InsertHTMLTextAction</item>
+      <item>InsertTabAction</item>
+      <item>Insets</item>
+      <item>InsetsUIResource</item>
+      <item>InstantiationError</item>
+      <item>InstantiationException</item>
+      <item>Instrument</item>
+      <item>InsufficientResourcesException</item>
+      <item>IntBuffer</item>
+      <item>IntHolder</item>
+      <item>Integer</item>
+      <item>IntegerSyntax</item>
+      <item>Interceptor</item>
+      <item>InterceptorOperations</item>
+      <item>InternalError</item>
+      <item>InternalFrameAdapter</item>
+      <item>InternalFrameBorder</item>
+      <item>InternalFrameEvent</item>
+      <item>InternalFrameFocusTraversalPolicy</item>
+      <item>InternalFrameListener</item>
+      <item>InternalFrameUI</item>
+      <item>InternationalFormatter</item>
+      <item>InterruptedException</item>
+      <item>InterruptedIOException</item>
+      <item>InterruptedNamingException</item>
+      <item>InterruptibleChannel</item>
+      <item>IntrospectionException</item>
+      <item>Introspector</item>
+      <item>Invalid</item>
+      <item>InvalidAddress</item>
+      <item>InvalidAddressHelper</item>
+      <item>InvalidAddressHolder</item>
+      <item>InvalidAlgorithmParameterException</item>
+      <item>InvalidAttributeIdentifierException</item>
+      <item>InvalidAttributeValueException</item>
+      <item>InvalidAttributesException</item>
+      <item>InvalidClassException</item>
+      <item>InvalidDnDOperationException</item>
+      <item>InvalidKeyException</item>
+      <item>InvalidKeySpecException</item>
+      <item>InvalidMarkException</item>
+      <item>InvalidMidiDataException</item>
+      <item>InvalidName</item>
+      <item>InvalidName</item>
+      <item>InvalidName</item>
+      <item>InvalidNameException</item>
+      <item>InvalidNameHelper</item>
+      <item>InvalidNameHelper</item>
+      <item>InvalidNameHolder</item>
+      <item>InvalidObjectException</item>
+      <item>InvalidParameterException</item>
+      <item>InvalidParameterSpecException</item>
+      <item>InvalidPolicy</item>
+      <item>InvalidPolicyHelper</item>
+      <item>InvalidPreferencesFormatException</item>
+      <item>InvalidSearchControlsException</item>
+      <item>InvalidSearchFilterException</item>
+      <item>InvalidSeq</item>
+      <item>InvalidSlot</item>
+      <item>InvalidSlotHelper</item>
+      <item>InvalidTransactionException</item>
+      <item>InvalidTypeForEncoding</item>
+      <item>InvalidTypeForEncodingHelper</item>
+      <item>InvalidValue</item>
+      <item>InvalidValue</item>
+      <item>InvalidValueHelper</item>
+      <item>InvocationEvent</item>
+      <item>InvocationHandler</item>
+      <item>InvocationTargetException</item>
+      <item>InvokeHandler</item>
+      <item>IstringHelper</item>
+      <item>ItalicAction</item>
+      <item>ItemEvent</item>
+      <item>ItemListener</item>
+      <item>ItemSelectable</item>
+      <item>Iterator</item>
+      <item>Iterator</item>
+      <item>IvParameterSpec</item>
+      <item>JApplet</item>
+      <item>JButton</item>
+      <item>JCheckBox</item>
+      <item>JCheckBoxMenuItem</item>
+      <item>JColorChooser</item>
+      <item>JComboBox</item>
+      <item>JComponent</item>
+      <item>JDesktopIcon</item>
+      <item>JDesktopPane</item>
+      <item>JDialog</item>
+      <item>JEditorPane</item>
+      <item>JFileChooser</item>
+      <item>JFormattedTextField</item>
+      <item>JFrame</item>
+      <item>JIS</item>
+      <item>JInternalFrame</item>
+      <item>JLabel</item>
+      <item>JLayeredPane</item>
+      <item>JList</item>
+      <item>JMenu</item>
+      <item>JMenuBar</item>
+      <item>JMenuItem</item>
+      <item>JOptionPane</item>
+      <item>JPEGHuffmanTable</item>
+      <item>JPEGImageReadParam</item>
+      <item>JPEGImageWriteParam</item>
+      <item>JPEGQTable</item>
+      <item>JPanel</item>
+      <item>JPasswordField</item>
+      <item>JPopupMenu</item>
+      <item>JProgressBar</item>
+      <item>JRadioButton</item>
+      <item>JRadioButtonMenuItem</item>
+      <item>JRootPane</item>
+      <item>JScrollBar</item>
+      <item>JScrollPane</item>
+      <item>JSeparator</item>
+      <item>JSlider</item>
+      <item>JSpinner</item>
+      <item>JSplitPane</item>
+      <item>JTabbedPane</item>
+      <item>JTable</item>
+      <item>JTableHeader</item>
+      <item>JTextArea</item>
+      <item>JTextComponent</item>
+      <item>JTextField</item>
+      <item>JTextPane</item>
+      <item>JToggleButton</item>
+      <item>JToolBar</item>
+      <item>JToolTip</item>
+      <item>JTree</item>
+      <item>JViewport</item>
+      <item>JWindow</item>
+      <item>JarEntry</item>
+      <item>JarException</item>
+      <item>JarFile</item>
+      <item>JarInputStream</item>
+      <item>JarOutputStream</item>
+      <item>JarURLConnection</item>
+      <item>JobAttributes</item>
+      <item>JobHoldUntil</item>
+      <item>JobImpressions</item>
+      <item>JobImpressionsCompleted</item>
+      <item>JobImpressionsSupported</item>
+      <item>JobKOctets</item>
+      <item>JobKOctetsProcessed</item>
+      <item>JobKOctetsSupported</item>
+      <item>JobMediaSheets</item>
+      <item>JobMediaSheetsCompleted</item>
+      <item>JobMediaSheetsSupported</item>
+      <item>JobMessageFromOperator</item>
+      <item>JobName</item>
+      <item>JobOriginatingUserName</item>
+      <item>JobPriority</item>
+      <item>JobPrioritySupported</item>
+      <item>JobSheets</item>
+      <item>JobState</item>
+      <item>JobStateReason</item>
+      <item>JobStateReasons</item>
+      <item>KerberosKey</item>
+      <item>KerberosPrincipal</item>
+      <item>KerberosTicket</item>
+      <item>Kernel</item>
+      <item>Key</item>
+      <item>Key</item>
+      <item>KeyAdapter</item>
+      <item>KeyAgreement</item>
+      <item>KeyAgreementSpi</item>
+      <item>KeyBinding</item>
+      <item>KeyEvent</item>
+      <item>KeyEventDispatcher</item>
+      <item>KeyEventPostProcessor</item>
+      <item>KeyException</item>
+      <item>KeyFactory</item>
+      <item>KeyFactorySpi</item>
+      <item>KeyGenerator</item>
+      <item>KeyGeneratorSpi</item>
+      <item>KeyListener</item>
+      <item>KeyManagementException</item>
+      <item>KeyManager</item>
+      <item>KeyManagerFactory</item>
+      <item>KeyManagerFactorySpi</item>
+      <item>KeyPair</item>
+      <item>KeyPairGenerator</item>
+      <item>KeyPairGeneratorSpi</item>
+      <item>KeySelectionManager</item>
+      <item>KeySpec</item>
+      <item>KeyStore</item>
+      <item>KeyStoreException</item>
+      <item>KeyStoreSpi</item>
+      <item>KeyStroke</item>
+      <item>KeyboardFocusManager</item>
+      <item>Keymap</item>
+      <item>LDAPCertStoreParameters</item>
+      <item>LIFESPAN_POLICY_ID</item>
+      <item>LOCATION_FORWARD</item>
+      <item>Label</item>
+      <item>LabelUI</item>
+      <item>LabelView</item>
+      <item>LanguageCallback</item>
+      <item>LastOwnerException</item>
+      <item>LayerPainter</item>
+      <item>LayeredHighlighter</item>
+      <item>LayoutFocusTraversalPolicy</item>
+      <item>LayoutManager</item>
+      <item>LayoutManager2</item>
+      <item>LayoutQueue</item>
+      <item>LazyInputMap</item>
+      <item>LazyValue</item>
+      <item>LdapContext</item>
+      <item>LdapReferralException</item>
+      <item>Lease</item>
+      <item>Level</item>
+      <item>LexicalHandler</item>
+      <item>LifespanPolicy</item>
+      <item>LifespanPolicyOperations</item>
+      <item>LifespanPolicyValue</item>
+      <item>LimitExceededException</item>
+      <item>Line</item>
+      <item>Line2D</item>
+      <item>LineBorder</item>
+      <item>LineBorderUIResource</item>
+      <item>LineBreakMeasurer</item>
+      <item>LineEvent</item>
+      <item>LineListener</item>
+      <item>LineMetrics</item>
+      <item>LineNumberInputStream</item>
+      <item>LineNumberReader</item>
+      <item>LineUnavailableException</item>
+      <item>LinkController</item>
+      <item>LinkException</item>
+      <item>LinkLoopException</item>
+      <item>LinkRef</item>
+      <item>LinkageError</item>
+      <item>LinkedHashMap</item>
+      <item>LinkedHashSet</item>
+      <item>LinkedList</item>
+      <item>List</item>
+      <item>List</item>
+      <item>ListCellRenderer</item>
+      <item>ListDataEvent</item>
+      <item>ListDataListener</item>
+      <item>ListEditor</item>
+      <item>ListIterator</item>
+      <item>ListModel</item>
+      <item>ListPainter</item>
+      <item>ListResourceBundle</item>
+      <item>ListSelectionEvent</item>
+      <item>ListSelectionListener</item>
+      <item>ListSelectionModel</item>
+      <item>ListUI</item>
+      <item>ListView</item>
+      <item>LoaderHandler</item>
+      <item>LocalObject</item>
+      <item>Locale</item>
+      <item>LocateRegistry</item>
+      <item>Locator</item>
+      <item>LocatorImpl</item>
+      <item>LogManager</item>
+      <item>LogRecord</item>
+      <item>LogStream</item>
+      <item>Logger</item>
+      <item>LoggingPermission</item>
+      <item>LoginContext</item>
+      <item>LoginException</item>
+      <item>LoginModule</item>
+      <item>LoginModuleControlFlag</item>
+      <item>Long</item>
+      <item>LongBuffer</item>
+      <item>LongHolder</item>
+      <item>LongLongSeqHelper</item>
+      <item>LongLongSeqHolder</item>
+      <item>LongSeqHelper</item>
+      <item>LongSeqHolder</item>
+      <item>LookAndFeel</item>
+      <item>LookAndFeelInfo</item>
+      <item>LookupOp</item>
+      <item>LookupTable</item>
+      <item>MARSHAL</item>
+      <item>Mac</item>
+      <item>MacSpi</item>
+      <item>MalformedInputException</item>
+      <item>MalformedLinkException</item>
+      <item>MalformedURLException</item>
+      <item>ManagerFactoryParameters</item>
+      <item>Manifest</item>
+      <item>Map</item>
+      <item>MapMode</item>
+      <item>MappedByteBuffer</item>
+      <item>MarginBorder</item>
+      <item>MarshalException</item>
+      <item>MarshalledObject</item>
+      <item>MaskFormatter</item>
+      <item>Matcher</item>
+      <item>Math</item>
+      <item>MatteBorder</item>
+      <item>MatteBorderUIResource</item>
+      <item>Media</item>
+      <item>MediaName</item>
+      <item>MediaPrintableArea</item>
+      <item>MediaSize</item>
+      <item>MediaSizeName</item>
+      <item>MediaTracker</item>
+      <item>MediaTray</item>
+      <item>MediaType</item>
+      <item>Member</item>
+      <item>MemoryCacheImageInputStream</item>
+      <item>MemoryCacheImageOutputStream</item>
+      <item>MemoryHandler</item>
+      <item>MemoryImageSource</item>
+      <item>Menu</item>
+      <item>MenuBar</item>
+      <item>MenuBarBorder</item>
+      <item>MenuBarBorder</item>
+      <item>MenuBarUI</item>
+      <item>MenuComponent</item>
+      <item>MenuContainer</item>
+      <item>MenuDragMouseEvent</item>
+      <item>MenuDragMouseListener</item>
+      <item>MenuElement</item>
+      <item>MenuEvent</item>
+      <item>MenuItem</item>
+      <item>MenuItemBorder</item>
+      <item>MenuItemUI</item>
+      <item>MenuKeyEvent</item>
+      <item>MenuKeyListener</item>
+      <item>MenuListener</item>
+      <item>MenuSelectionManager</item>
+      <item>MenuShortcut</item>
+      <item>MessageDigest</item>
+      <item>MessageDigestSpi</item>
+      <item>MessageFormat</item>
+      <item>MessageProp</item>
+      <item>MetaEventListener</item>
+      <item>MetaMessage</item>
+      <item>MetalBorders</item>
+      <item>MetalButtonUI</item>
+      <item>MetalCheckBoxIcon</item>
+      <item>MetalCheckBoxUI</item>
+      <item>MetalComboBoxButton</item>
+      <item>MetalComboBoxEditor</item>
+      <item>MetalComboBoxIcon</item>
+      <item>MetalComboBoxUI</item>
+      <item>MetalDesktopIconUI</item>
+      <item>MetalFileChooserUI</item>
+      <item>MetalIconFactory</item>
+      <item>MetalInternalFrameTitlePane</item>
+      <item>MetalInternalFrameUI</item>
+      <item>MetalLabelUI</item>
+      <item>MetalLookAndFeel</item>
+      <item>MetalPopupMenuSeparatorUI</item>
+      <item>MetalProgressBarUI</item>
+      <item>MetalRadioButtonUI</item>
+      <item>MetalRootPaneUI</item>
+      <item>MetalScrollBarUI</item>
+      <item>MetalScrollButton</item>
+      <item>MetalScrollPaneUI</item>
+      <item>MetalSeparatorUI</item>
+      <item>MetalSliderUI</item>
+      <item>MetalSplitPaneUI</item>
+      <item>MetalTabbedPaneUI</item>
+      <item>MetalTextFieldUI</item>
+      <item>MetalTheme</item>
+      <item>MetalToggleButtonUI</item>
+      <item>MetalToolBarUI</item>
+      <item>MetalToolTipUI</item>
+      <item>MetalTreeUI</item>
+      <item>Method</item>
+      <item>MethodDescriptor</item>
+      <item>MidiChannel</item>
+      <item>MidiDevice</item>
+      <item>MidiDeviceProvider</item>
+      <item>MidiEvent</item>
+      <item>MidiFileFormat</item>
+      <item>MidiFileReader</item>
+      <item>MidiFileWriter</item>
+      <item>MidiMessage</item>
+      <item>MidiSystem</item>
+      <item>MidiUnavailableException</item>
+      <item>MimeTypeParseException</item>
+      <item>MinimalHTMLWriter</item>
+      <item>MissingResourceException</item>
+      <item>Mixer</item>
+      <item>MixerProvider</item>
+      <item>ModificationItem</item>
+      <item>Modifier</item>
+      <item>MouseAdapter</item>
+      <item>MouseDragGestureRecognizer</item>
+      <item>MouseEvent</item>
+      <item>MouseInputAdapter</item>
+      <item>MouseInputListener</item>
+      <item>MouseListener</item>
+      <item>MouseMotionAdapter</item>
+      <item>MouseMotionListener</item>
+      <item>MouseWheelEvent</item>
+      <item>MouseWheelListener</item>
+      <item>MultiButtonUI</item>
+      <item>MultiColorChooserUI</item>
+      <item>MultiComboBoxUI</item>
+      <item>MultiDesktopIconUI</item>
+      <item>MultiDesktopPaneUI</item>
+      <item>MultiDoc</item>
+      <item>MultiDocPrintJob</item>
+      <item>MultiDocPrintService</item>
+      <item>MultiFileChooserUI</item>
+      <item>MultiInternalFrameUI</item>
+      <item>MultiLabelUI</item>
+      <item>MultiListUI</item>
+      <item>MultiLookAndFeel</item>
+      <item>MultiMenuBarUI</item>
+      <item>MultiMenuItemUI</item>
+      <item>MultiOptionPaneUI</item>
+      <item>MultiPanelUI</item>
+      <item>MultiPixelPackedSampleModel</item>
+      <item>MultiPopupMenuUI</item>
+      <item>MultiProgressBarUI</item>
+      <item>MultiRootPaneUI</item>
+      <item>MultiScrollBarUI</item>
+      <item>MultiScrollPaneUI</item>
+      <item>MultiSeparatorUI</item>
+      <item>MultiSliderUI</item>
+      <item>MultiSpinnerUI</item>
+      <item>MultiSplitPaneUI</item>
+      <item>MultiTabbedPaneUI</item>
+      <item>MultiTableHeaderUI</item>
+      <item>MultiTableUI</item>
+      <item>MultiTextUI</item>
+      <item>MultiToolBarUI</item>
+      <item>MultiToolTipUI</item>
+      <item>MultiTreeUI</item>
+      <item>MultiViewportUI</item>
+      <item>MulticastSocket</item>
+      <item>MultipleComponentProfileHelper</item>
+      <item>MultipleComponentProfileHolder</item>
+      <item>MultipleDocumentHandling</item>
+      <item>MultipleDocumentHandlingType</item>
+      <item>MultipleMaster</item>
+      <item>MutableAttributeSet</item>
+      <item>MutableComboBoxModel</item>
+      <item>MutableTreeNode</item>
+      <item>NA</item>
+      <item>NO_IMPLEMENT</item>
+      <item>NO_MEMORY</item>
+      <item>NO_PERMISSION</item>
+      <item>NO_RESOURCES</item>
+      <item>NO_RESPONSE</item>
+      <item>NVList</item>
+      <item>Name</item>
+      <item>Name</item>
+      <item>NameAlreadyBoundException</item>
+      <item>NameCallback</item>
+      <item>NameClassPair</item>
+      <item>NameComponent</item>
+      <item>NameComponentHelper</item>
+      <item>NameComponentHolder</item>
+      <item>NameDynAnyPair</item>
+      <item>NameDynAnyPairHelper</item>
+      <item>NameDynAnyPairSeqHelper</item>
+      <item>NameHelper</item>
+      <item>NameHolder</item>
+      <item>NameNotFoundException</item>
+      <item>NameParser</item>
+      <item>NameValuePair</item>
+      <item>NameValuePair</item>
+      <item>NameValuePairHelper</item>
+      <item>NameValuePairHelper</item>
+      <item>NameValuePairSeqHelper</item>
+      <item>NamedNodeMap</item>
+      <item>NamedValue</item>
+      <item>NamespaceChangeListener</item>
+      <item>NamespaceSupport</item>
+      <item>Naming</item>
+      <item>NamingContext</item>
+      <item>NamingContextExt</item>
+      <item>NamingContextExtHelper</item>
+      <item>NamingContextExtHolder</item>
+      <item>NamingContextExtOperations</item>
+      <item>NamingContextExtPOA</item>
+      <item>NamingContextHelper</item>
+      <item>NamingContextHolder</item>
+      <item>NamingContextOperations</item>
+      <item>NamingContextPOA</item>
+      <item>NamingEnumeration</item>
+      <item>NamingEvent</item>
+      <item>NamingException</item>
+      <item>NamingExceptionEvent</item>
+      <item>NamingListener</item>
+      <item>NamingManager</item>
+      <item>NamingSecurityException</item>
+      <item>NavigationFilter</item>
+      <item>NegativeArraySizeException</item>
+      <item>NetPermission</item>
+      <item>NetworkInterface</item>
+      <item>NoClassDefFoundError</item>
+      <item>NoConnectionPendingException</item>
+      <item>NoContext</item>
+      <item>NoContextHelper</item>
+      <item>NoInitialContextException</item>
+      <item>NoPermissionException</item>
+      <item>NoRouteToHostException</item>
+      <item>NoServant</item>
+      <item>NoServantHelper</item>
+      <item>NoSuchAlgorithmException</item>
+      <item>NoSuchAttributeException</item>
+      <item>NoSuchElementException</item>
+      <item>NoSuchFieldError</item>
+      <item>NoSuchFieldException</item>
+      <item>NoSuchMethodError</item>
+      <item>NoSuchMethodException</item>
+      <item>NoSuchObjectException</item>
+      <item>NoSuchPaddingException</item>
+      <item>NoSuchProviderException</item>
+      <item>Node</item>
+      <item>NodeChangeEvent</item>
+      <item>NodeChangeListener</item>
+      <item>NodeDimensions</item>
+      <item>NodeList</item>
+      <item>NonReadableChannelException</item>
+      <item>NonWritableChannelException</item>
+      <item>NoninvertibleTransformException</item>
+      <item>NotActiveException</item>
+      <item>NotBoundException</item>
+      <item>NotContextException</item>
+      <item>NotEmpty</item>
+      <item>NotEmptyHelper</item>
+      <item>NotEmptyHolder</item>
+      <item>NotFound</item>
+      <item>NotFoundHelper</item>
+      <item>NotFoundHolder</item>
+      <item>NotFoundReason</item>
+      <item>NotFoundReasonHelper</item>
+      <item>NotFoundReasonHolder</item>
+      <item>NotOwnerException</item>
+      <item>NotSerializableException</item>
+      <item>NotYetBoundException</item>
+      <item>NotYetConnectedException</item>
+      <item>Notation</item>
+      <item>NullCipher</item>
+      <item>NullPointerException</item>
+      <item>Number</item>
+      <item>NumberEditor</item>
+      <item>NumberFormat</item>
+      <item>NumberFormatException</item>
+      <item>NumberFormatter</item>
+      <item>NumberOfDocuments</item>
+      <item>NumberOfInterveningJobs</item>
+      <item>NumberUp</item>
+      <item>NumberUpSupported</item>
+      <item>NumericShaper</item>
+      <item>OBJECT_NOT_EXIST</item>
+      <item>OBJ_ADAPTER</item>
+      <item>OMGVMCID</item>
+      <item>ORB</item>
+      <item>ORB</item>
+      <item>ORBInitInfo</item>
+      <item>ORBInitInfoOperations</item>
+      <item>ORBInitializer</item>
+      <item>ORBInitializerOperations</item>
+      <item>ObjID</item>
+      <item>Object</item>
+      <item>Object</item>
+      <item>ObjectAlreadyActive</item>
+      <item>ObjectAlreadyActiveHelper</item>
+      <item>ObjectChangeListener</item>
+      <item>ObjectFactory</item>
+      <item>ObjectFactoryBuilder</item>
+      <item>ObjectHelper</item>
+      <item>ObjectHolder</item>
+      <item>ObjectIdHelper</item>
+      <item>ObjectImpl</item>
+      <item>ObjectImpl</item>
+      <item>ObjectInput</item>
+      <item>ObjectInputStream</item>
+      <item>ObjectInputValidation</item>
+      <item>ObjectNotActive</item>
+      <item>ObjectNotActiveHelper</item>
+      <item>ObjectOutput</item>
+      <item>ObjectOutputStream</item>
+      <item>ObjectStreamClass</item>
+      <item>ObjectStreamConstants</item>
+      <item>ObjectStreamException</item>
+      <item>ObjectStreamField</item>
+      <item>ObjectView</item>
+      <item>Observable</item>
+      <item>Observer</item>
+      <item>OctetSeqHelper</item>
+      <item>OctetSeqHolder</item>
+      <item>Oid</item>
+      <item>OpenType</item>
+      <item>Operation</item>
+      <item>OperationNotSupportedException</item>
+      <item>Option</item>
+      <item>OptionDialogBorder</item>
+      <item>OptionPaneUI</item>
+      <item>OptionalDataException</item>
+      <item>OrientationRequested</item>
+      <item>OrientationRequestedType</item>
+      <item>OriginType</item>
+      <item>Other</item>
+      <item>OutOfMemoryError</item>
+      <item>OutputDeviceAssigned</item>
+      <item>OutputKeys</item>
+      <item>OutputStream</item>
+      <item>OutputStream</item>
+      <item>OutputStream</item>
+      <item>OutputStreamWriter</item>
+      <item>OverlappingFileLockException</item>
+      <item>OverlayLayout</item>
+      <item>Owner</item>
+      <item>PBEKey</item>
+      <item>PBEKeySpec</item>
+      <item>PBEParameterSpec</item>
+      <item>PDLOverrideSupported</item>
+      <item>PERSIST_STORE</item>
+      <item>PKCS8EncodedKeySpec</item>
+      <item>PKIXBuilderParameters</item>
+      <item>PKIXCertPathBuilderResult</item>
+      <item>PKIXCertPathChecker</item>
+      <item>PKIXCertPathValidatorResult</item>
+      <item>PKIXParameters</item>
+      <item>POA</item>
+      <item>POAHelper</item>
+      <item>POAManager</item>
+      <item>POAManagerOperations</item>
+      <item>POAOperations</item>
+      <item>PRIVATE_MEMBER</item>
+      <item>PSSParameterSpec</item>
+      <item>PUBLIC_MEMBER</item>
+      <item>Package</item>
+      <item>PackedColorModel</item>
+      <item>PageAttributes</item>
+      <item>PageFormat</item>
+      <item>PageRanges</item>
+      <item>Pageable</item>
+      <item>PagesPerMinute</item>
+      <item>PagesPerMinuteColor</item>
+      <item>Paint</item>
+      <item>PaintContext</item>
+      <item>PaintEvent</item>
+      <item>PaletteBorder</item>
+      <item>PaletteCloseIcon</item>
+      <item>Panel</item>
+      <item>PanelUI</item>
+      <item>Paper</item>
+      <item>ParagraphAttribute</item>
+      <item>ParagraphConstants</item>
+      <item>ParagraphView</item>
+      <item>ParagraphView</item>
+      <item>Parameter</item>
+      <item>ParameterBlock</item>
+      <item>ParameterDescriptor</item>
+      <item>ParameterMetaData</item>
+      <item>ParameterMode</item>
+      <item>ParameterModeHelper</item>
+      <item>ParameterModeHolder</item>
+      <item>ParseException</item>
+      <item>ParsePosition</item>
+      <item>Parser</item>
+      <item>Parser</item>
+      <item>Parser</item>
+      <item>ParserAdapter</item>
+      <item>ParserCallback</item>
+      <item>ParserConfigurationException</item>
+      <item>ParserDelegator</item>
+      <item>ParserFactory</item>
+      <item>PartialResultException</item>
+      <item>PasswordAuthentication</item>
+      <item>PasswordCallback</item>
+      <item>PasswordView</item>
+      <item>PasteAction</item>
+      <item>Patch</item>
+      <item>PathIterator</item>
+      <item>Pattern</item>
+      <item>PatternSyntaxException</item>
+      <item>Permission</item>
+      <item>Permission</item>
+      <item>PermissionCollection</item>
+      <item>Permissions</item>
+      <item>PersistenceDelegate</item>
+      <item>PhantomReference</item>
+      <item>Pipe</item>
+      <item>PipedInputStream</item>
+      <item>PipedOutputStream</item>
+      <item>PipedReader</item>
+      <item>PipedWriter</item>
+      <item>PixelGrabber</item>
+      <item>PixelInterleavedSampleModel</item>
+      <item>PlainDocument</item>
+      <item>PlainView</item>
+      <item>Point</item>
+      <item>Point2D</item>
+      <item>Policy</item>
+      <item>Policy</item>
+      <item>Policy</item>
+      <item>PolicyError</item>
+      <item>PolicyErrorCodeHelper</item>
+      <item>PolicyErrorHelper</item>
+      <item>PolicyErrorHolder</item>
+      <item>PolicyFactory</item>
+      <item>PolicyFactoryOperations</item>
+      <item>PolicyHelper</item>
+      <item>PolicyHolder</item>
+      <item>PolicyListHelper</item>
+      <item>PolicyListHolder</item>
+      <item>PolicyNode</item>
+      <item>PolicyOperations</item>
+      <item>PolicyQualifierInfo</item>
+      <item>PolicyTypeHelper</item>
+      <item>Polygon</item>
+      <item>PooledConnection</item>
+      <item>Popup</item>
+      <item>PopupFactory</item>
+      <item>PopupMenu</item>
+      <item>PopupMenuBorder</item>
+      <item>PopupMenuEvent</item>
+      <item>PopupMenuListener</item>
+      <item>PopupMenuUI</item>
+      <item>Port</item>
+      <item>PortUnreachableException</item>
+      <item>PortableRemoteObject</item>
+      <item>PortableRemoteObjectDelegate</item>
+      <item>Position</item>
+      <item>PreferenceChangeEvent</item>
+      <item>PreferenceChangeListener</item>
+      <item>Preferences</item>
+      <item>PreferencesFactory</item>
+      <item>PreparedStatement</item>
+      <item>PresentationDirection</item>
+      <item>Principal</item>
+      <item>Principal</item>
+      <item>PrincipalHolder</item>
+      <item>PrintEvent</item>
+      <item>PrintException</item>
+      <item>PrintGraphics</item>
+      <item>PrintJob</item>
+      <item>PrintJobAdapter</item>
+      <item>PrintJobAttribute</item>
+      <item>PrintJobAttributeEvent</item>
+      <item>PrintJobAttributeListener</item>
+      <item>PrintJobAttributeSet</item>
+      <item>PrintJobEvent</item>
+      <item>PrintJobListener</item>
+      <item>PrintQuality</item>
+      <item>PrintQualityType</item>
+      <item>PrintRequestAttribute</item>
+      <item>PrintRequestAttributeSet</item>
+      <item>PrintService</item>
+      <item>PrintServiceAttribute</item>
+      <item>PrintServiceAttributeEvent</item>
+      <item>PrintServiceAttributeListener</item>
+      <item>PrintServiceAttributeSet</item>
+      <item>PrintServiceLookup</item>
+      <item>PrintStream</item>
+      <item>PrintWriter</item>
+      <item>Printable</item>
+      <item>PrinterAbortException</item>
+      <item>PrinterException</item>
+      <item>PrinterGraphics</item>
+      <item>PrinterIOException</item>
+      <item>PrinterInfo</item>
+      <item>PrinterIsAcceptingJobs</item>
+      <item>PrinterJob</item>
+      <item>PrinterLocation</item>
+      <item>PrinterMakeAndModel</item>
+      <item>PrinterMessageFromOperator</item>
+      <item>PrinterMoreInfo</item>
+      <item>PrinterMoreInfoManufacturer</item>
+      <item>PrinterName</item>
+      <item>PrinterResolution</item>
+      <item>PrinterState</item>
+      <item>PrinterStateReason</item>
+      <item>PrinterStateReasons</item>
+      <item>PrinterURI</item>
+      <item>PrivateCredentialPermission</item>
+      <item>PrivateKey</item>
+      <item>PrivilegedAction</item>
+      <item>PrivilegedActionException</item>
+      <item>PrivilegedExceptionAction</item>
+      <item>Process</item>
+      <item>ProcessingInstruction</item>
+      <item>ProfileDataException</item>
+      <item>ProfileIdHelper</item>
+      <item>ProgressBarUI</item>
+      <item>ProgressMonitor</item>
+      <item>ProgressMonitorInputStream</item>
+      <item>Properties</item>
+      <item>PropertyChangeEvent</item>
+      <item>PropertyChangeListener</item>
+      <item>PropertyChangeListenerProxy</item>
+      <item>PropertyChangeSupport</item>
+      <item>PropertyDescriptor</item>
+      <item>PropertyEditor</item>
+      <item>PropertyEditorManager</item>
+      <item>PropertyEditorSupport</item>
+      <item>PropertyPermission</item>
+      <item>PropertyResourceBundle</item>
+      <item>PropertyVetoException</item>
+      <item>ProtectionDomain</item>
+      <item>ProtocolException</item>
+      <item>Provider</item>
+      <item>ProviderException</item>
+      <item>Proxy</item>
+      <item>ProxyLazyValue</item>
+      <item>PublicKey</item>
+      <item>PushbackInputStream</item>
+      <item>PushbackReader</item>
+      <item>PutField</item>
+      <item>QuadCurve2D</item>
+      <item>QueuedJobCount</item>
+      <item>RC2ParameterSpec</item>
+      <item>RC5ParameterSpec</item>
+      <item>READER</item>
+      <item>REQUEST_PROCESSING_POLICY_ID</item>
+      <item>RGBImageFilter</item>
+      <item>RMIClassLoader</item>
+      <item>RMIClassLoaderSpi</item>
+      <item>RMIClientSocketFactory</item>
+      <item>RMIFailureHandler</item>
+      <item>RMISecurityException</item>
+      <item>RMISecurityManager</item>
+      <item>RMIServerSocketFactory</item>
+      <item>RMISocketFactory</item>
+      <item>RSAKey</item>
+      <item>RSAKeyGenParameterSpec</item>
+      <item>RSAMultiPrimePrivateCrtKey</item>
+      <item>RSAMultiPrimePrivateCrtKeySpec</item>
+      <item>RSAOtherPrimeInfo</item>
+      <item>RSAPrivateCrtKey</item>
+      <item>RSAPrivateCrtKeySpec</item>
+      <item>RSAPrivateKey</item>
+      <item>RSAPrivateKeySpec</item>
+      <item>RSAPublicKey</item>
+      <item>RSAPublicKeySpec</item>
+      <item>RTFEditorKit</item>
+      <item>RadioButtonBorder</item>
+      <item>Random</item>
+      <item>RandomAccess</item>
+      <item>RandomAccessFile</item>
+      <item>Raster</item>
+      <item>RasterFormatException</item>
+      <item>RasterOp</item>
+      <item>ReadOnlyBufferException</item>
+      <item>ReadableByteChannel</item>
+      <item>Reader</item>
+      <item>Receiver</item>
+      <item>Rectangle</item>
+      <item>Rectangle2D</item>
+      <item>RectangularShape</item>
+      <item>Ref</item>
+      <item>RefAddr</item>
+      <item>Reference</item>
+      <item>Reference</item>
+      <item>ReferenceQueue</item>
+      <item>ReferenceUriSchemesSupported</item>
+      <item>Referenceable</item>
+      <item>ReferralException</item>
+      <item>ReflectPermission</item>
+      <item>RefreshFailedException</item>
+      <item>Refreshable</item>
+      <item>RegisterableService</item>
+      <item>Registry</item>
+      <item>RegistryHandler</item>
+      <item>RemarshalException</item>
+      <item>Remote</item>
+      <item>RemoteCall</item>
+      <item>RemoteException</item>
+      <item>RemoteObject</item>
+      <item>RemoteRef</item>
+      <item>RemoteServer</item>
+      <item>RemoteStub</item>
+      <item>RenderContext</item>
+      <item>RenderableImage</item>
+      <item>RenderableImageOp</item>
+      <item>RenderableImageProducer</item>
+      <item>RenderedImage</item>
+      <item>RenderedImageFactory</item>
+      <item>Renderer</item>
+      <item>RenderingHints</item>
+      <item>RepaintManager</item>
+      <item>ReplicateScaleFilter</item>
+      <item>RepositoryIdHelper</item>
+      <item>Request</item>
+      <item>RequestInfo</item>
+      <item>RequestInfoOperations</item>
+      <item>RequestProcessingPolicy</item>
+      <item>RequestProcessingPolicyOperations</item>
+      <item>RequestProcessingPolicyValue</item>
+      <item>RequestingUserName</item>
+      <item>RescaleOp</item>
+      <item>ResolutionSyntax</item>
+      <item>ResolveResult</item>
+      <item>Resolver</item>
+      <item>ResourceBundle</item>
+      <item>ResponseHandler</item>
+      <item>Result</item>
+      <item>Result</item>
+      <item>ResultSet</item>
+      <item>ResultSetMetaData</item>
+      <item>ReverbType</item>
+      <item>Robot</item>
+      <item>RolloverButtonBorder</item>
+      <item>RolloverButtonBorder</item>
+      <item>RootPaneContainer</item>
+      <item>RootPaneUI</item>
+      <item>RoundRectangle2D</item>
+      <item>RowMapper</item>
+      <item>RowSet</item>
+      <item>RowSetEvent</item>
+      <item>RowSetInternal</item>
+      <item>RowSetListener</item>
+      <item>RowSetMetaData</item>
+      <item>RowSetReader</item>
+      <item>RowSetWriter</item>
+      <item>RuleBasedCollator</item>
+      <item>RunTime</item>
+      <item>RunTimeOperations</item>
+      <item>Runnable</item>
+      <item>Runtime</item>
+      <item>RuntimeException</item>
+      <item>RuntimePermission</item>
+      <item>SAXException</item>
+      <item>SAXNotRecognizedException</item>
+      <item>SAXNotSupportedException</item>
+      <item>SAXParseException</item>
+      <item>SAXParser</item>
+      <item>SAXParserFactory</item>
+      <item>SAXResult</item>
+      <item>SAXSource</item>
+      <item>SAXTransformerFactory</item>
+      <item>SERVANT_RETENTION_POLICY_ID</item>
+      <item>SERVICE_FORMATTED</item>
+      <item>SQLData</item>
+      <item>SQLException</item>
+      <item>SQLInput</item>
+      <item>SQLOutput</item>
+      <item>SQLPermission</item>
+      <item>SQLWarning</item>
+      <item>SSLContext</item>
+      <item>SSLContextSpi</item>
+      <item>SSLException</item>
+      <item>SSLHandshakeException</item>
+      <item>SSLKeyException</item>
+      <item>SSLPeerUnverifiedException</item>
+      <item>SSLPermission</item>
+      <item>SSLProtocolException</item>
+      <item>SSLServerSocket</item>
+      <item>SSLServerSocketFactory</item>
+      <item>SSLSession</item>
+      <item>SSLSessionBindingEvent</item>
+      <item>SSLSessionBindingListener</item>
+      <item>SSLSessionContext</item>
+      <item>SSLSocket</item>
+      <item>SSLSocketFactory</item>
+      <item>STRING</item>
+      <item>SUCCESSFUL</item>
+      <item>SYNC_WITH_TRANSPORT</item>
+      <item>SYSTEM_EXCEPTION</item>
+      <item>SampleModel</item>
+      <item>Savepoint</item>
+      <item>ScatteringByteChannel</item>
+      <item>SchemaViolationException</item>
+      <item>ScrollBarUI</item>
+      <item>ScrollPane</item>
+      <item>ScrollPaneAdjustable</item>
+      <item>ScrollPaneBorder</item>
+      <item>ScrollPaneConstants</item>
+      <item>ScrollPaneLayout</item>
+      <item>ScrollPaneUI</item>
+      <item>Scrollable</item>
+      <item>Scrollbar</item>
+      <item>SealedObject</item>
+      <item>SearchControls</item>
+      <item>SearchResult</item>
+      <item>SecretKey</item>
+      <item>SecretKeyFactory</item>
+      <item>SecretKeyFactorySpi</item>
+      <item>SecretKeySpec</item>
+      <item>SecureClassLoader</item>
+      <item>SecureRandom</item>
+      <item>SecureRandomSpi</item>
+      <item>Security</item>
+      <item>SecurityException</item>
+      <item>SecurityManager</item>
+      <item>SecurityPermission</item>
+      <item>Segment</item>
+      <item>SelectableChannel</item>
+      <item>SelectionKey</item>
+      <item>Selector</item>
+      <item>SelectorProvider</item>
+      <item>Separator</item>
+      <item>Separator</item>
+      <item>SeparatorUI</item>
+      <item>Sequence</item>
+      <item>SequenceInputStream</item>
+      <item>Sequencer</item>
+      <item>Serializable</item>
+      <item>SerializablePermission</item>
+      <item>Servant</item>
+      <item>ServantActivator</item>
+      <item>ServantActivatorHelper</item>
+      <item>ServantActivatorOperations</item>
+      <item>ServantActivatorPOA</item>
+      <item>ServantAlreadyActive</item>
+      <item>ServantAlreadyActiveHelper</item>
+      <item>ServantLocator</item>
+      <item>ServantLocatorHelper</item>
+      <item>ServantLocatorOperations</item>
+      <item>ServantLocatorPOA</item>
+      <item>ServantManager</item>
+      <item>ServantManagerOperations</item>
+      <item>ServantNotActive</item>
+      <item>ServantNotActiveHelper</item>
+      <item>ServantObject</item>
+      <item>ServantRetentionPolicy</item>
+      <item>ServantRetentionPolicyOperations</item>
+      <item>ServantRetentionPolicyValue</item>
+      <item>ServerCloneException</item>
+      <item>ServerError</item>
+      <item>ServerException</item>
+      <item>ServerNotActiveException</item>
+      <item>ServerRef</item>
+      <item>ServerRequest</item>
+      <item>ServerRequestInfo</item>
+      <item>ServerRequestInfoOperations</item>
+      <item>ServerRequestInterceptor</item>
+      <item>ServerRequestInterceptorOperations</item>
+      <item>ServerRuntimeException</item>
+      <item>ServerSocket</item>
+      <item>ServerSocketChannel</item>
+      <item>ServerSocketFactory</item>
+      <item>ServiceContext</item>
+      <item>ServiceContextHelper</item>
+      <item>ServiceContextHolder</item>
+      <item>ServiceContextListHelper</item>
+      <item>ServiceContextListHolder</item>
+      <item>ServiceDetail</item>
+      <item>ServiceDetailHelper</item>
+      <item>ServiceIdHelper</item>
+      <item>ServiceInformation</item>
+      <item>ServiceInformationHelper</item>
+      <item>ServiceInformationHolder</item>
+      <item>ServicePermission</item>
+      <item>ServiceRegistry</item>
+      <item>ServiceUI</item>
+      <item>ServiceUIFactory</item>
+      <item>ServiceUnavailableException</item>
+      <item>Set</item>
+      <item>SetOfIntegerSyntax</item>
+      <item>SetOverrideType</item>
+      <item>SetOverrideTypeHelper</item>
+      <item>Severity</item>
+      <item>Shape</item>
+      <item>ShapeGraphicAttribute</item>
+      <item>SheetCollate</item>
+      <item>Short</item>
+      <item>ShortBuffer</item>
+      <item>ShortBufferException</item>
+      <item>ShortHolder</item>
+      <item>ShortLookupTable</item>
+      <item>ShortMessage</item>
+      <item>ShortSeqHelper</item>
+      <item>ShortSeqHolder</item>
+      <item>Sides</item>
+      <item>SidesType</item>
+      <item>Signature</item>
+      <item>SignatureException</item>
+      <item>SignatureSpi</item>
+      <item>SignedObject</item>
+      <item>Signer</item>
+      <item>SimpleAttributeSet</item>
+      <item>SimpleBeanInfo</item>
+      <item>SimpleDateFormat</item>
+      <item>SimpleDoc</item>
+      <item>SimpleFormatter</item>
+      <item>SimpleTimeZone</item>
+      <item>SinglePixelPackedSampleModel</item>
+      <item>SingleSelectionModel</item>
+      <item>SinkChannel</item>
+      <item>Size2DSyntax</item>
+      <item>SizeLimitExceededException</item>
+      <item>SizeRequirements</item>
+      <item>SizeSequence</item>
+      <item>Skeleton</item>
+      <item>SkeletonMismatchException</item>
+      <item>SkeletonNotFoundException</item>
+      <item>SliderUI</item>
+      <item>Socket</item>
+      <item>SocketAddress</item>
+      <item>SocketChannel</item>
+      <item>SocketException</item>
+      <item>SocketFactory</item>
+      <item>SocketHandler</item>
+      <item>SocketImpl</item>
+      <item>SocketImplFactory</item>
+      <item>SocketOptions</item>
+      <item>SocketPermission</item>
+      <item>SocketSecurityException</item>
+      <item>SocketTimeoutException</item>
+      <item>SoftBevelBorder</item>
+      <item>SoftReference</item>
+      <item>SortedMap</item>
+      <item>SortedSet</item>
+      <item>SortingFocusTraversalPolicy</item>
+      <item>Soundbank</item>
+      <item>SoundbankReader</item>
+      <item>SoundbankResource</item>
+      <item>Source</item>
+      <item>SourceChannel</item>
+      <item>SourceDataLine</item>
+      <item>SourceLocator</item>
+      <item>SpinnerDateModel</item>
+      <item>SpinnerListModel</item>
+      <item>SpinnerModel</item>
+      <item>SpinnerNumberModel</item>
+      <item>SpinnerUI</item>
+      <item>SplitPaneBorder</item>
+      <item>SplitPaneUI</item>
+      <item>Spring</item>
+      <item>SpringLayout</item>
+      <item>Stack</item>
+      <item>StackOverflowError</item>
+      <item>StackTraceElement</item>
+      <item>StartTlsRequest</item>
+      <item>StartTlsResponse</item>
+      <item>State</item>
+      <item>StateEdit</item>
+      <item>StateEditable</item>
+      <item>StateFactory</item>
+      <item>Statement</item>
+      <item>Statement</item>
+      <item>StreamCorruptedException</item>
+      <item>StreamHandler</item>
+      <item>StreamPrintService</item>
+      <item>StreamPrintServiceFactory</item>
+      <item>StreamResult</item>
+      <item>StreamSource</item>
+      <item>StreamTokenizer</item>
+      <item>Streamable</item>
+      <item>StreamableValue</item>
+      <item>StrictMath</item>
+      <item>String</item>
+      <item>StringBuffer</item>
+      <item>StringBufferInputStream</item>
+      <item>StringCharacterIterator</item>
+      <item>StringContent</item>
+      <item>StringHolder</item>
+      <item>StringIndexOutOfBoundsException</item>
+      <item>StringNameHelper</item>
+      <item>StringReader</item>
+      <item>StringRefAddr</item>
+      <item>StringSelection</item>
+      <item>StringSeqHelper</item>
+      <item>StringSeqHolder</item>
+      <item>StringTokenizer</item>
+      <item>StringValueHelper</item>
+      <item>StringWriter</item>
+      <item>Stroke</item>
+      <item>Struct</item>
+      <item>StructMember</item>
+      <item>StructMemberHelper</item>
+      <item>Stub</item>
+      <item>StubDelegate</item>
+      <item>StubNotFoundException</item>
+      <item>Style</item>
+      <item>StyleConstants</item>
+      <item>StyleContext</item>
+      <item>StyleSheet</item>
+      <item>StyledDocument</item>
+      <item>StyledEditorKit</item>
+      <item>StyledTextAction</item>
+      <item>Subject</item>
+      <item>SubjectDomainCombiner</item>
+      <item>Subset</item>
+      <item>SupportedValuesAttribute</item>
+      <item>SwingConstants</item>
+      <item>SwingPropertyChangeSupport</item>
+      <item>SwingUtilities</item>
+      <item>SyncFailedException</item>
+      <item>SyncMode</item>
+      <item>SyncScopeHelper</item>
+      <item>Synthesizer</item>
+      <item>SysexMessage</item>
+      <item>System</item>
+      <item>SystemColor</item>
+      <item>SystemException</item>
+      <item>SystemFlavorMap</item>
+      <item>TAG_ALTERNATE_IIOP_ADDRESS</item>
+      <item>TAG_CODE_SETS</item>
+      <item>TAG_INTERNET_IOP</item>
+      <item>TAG_JAVA_CODEBASE</item>
+      <item>TAG_MULTIPLE_COMPONENTS</item>
+      <item>TAG_ORB_TYPE</item>
+      <item>TAG_POLICIES</item>
+      <item>TCKind</item>
+      <item>THREAD_POLICY_ID</item>
+      <item>TRANSACTION_REQUIRED</item>
+      <item>TRANSACTION_ROLLEDBACK</item>
+      <item>TRANSIENT</item>
+      <item>TRANSPORT_RETRY</item>
+      <item>TabExpander</item>
+      <item>TabSet</item>
+      <item>TabStop</item>
+      <item>TabableView</item>
+      <item>TabbedPaneUI</item>
+      <item>TableCellEditor</item>
+      <item>TableCellRenderer</item>
+      <item>TableColumn</item>
+      <item>TableColumnModel</item>
+      <item>TableColumnModelEvent</item>
+      <item>TableColumnModelListener</item>
+      <item>TableHeaderBorder</item>
+      <item>TableHeaderUI</item>
+      <item>TableModel</item>
+      <item>TableModelEvent</item>
+      <item>TableModelListener</item>
+      <item>TableUI</item>
+      <item>TableView</item>
+      <item>Tag</item>
+      <item>TagElement</item>
+      <item>TaggedComponent</item>
+      <item>TaggedComponentHelper</item>
+      <item>TaggedComponentHolder</item>
+      <item>TaggedProfile</item>
+      <item>TaggedProfileHelper</item>
+      <item>TaggedProfileHolder</item>
+      <item>TargetDataLine</item>
+      <item>Templates</item>
+      <item>TemplatesHandler</item>
+      <item>Text</item>
+      <item>TextAction</item>
+      <item>TextArea</item>
+      <item>TextAttribute</item>
+      <item>TextComponent</item>
+      <item>TextEvent</item>
+      <item>TextField</item>
+      <item>TextFieldBorder</item>
+      <item>TextHitInfo</item>
+      <item>TextInputCallback</item>
+      <item>TextLayout</item>
+      <item>TextListener</item>
+      <item>TextMeasurer</item>
+      <item>TextOutputCallback</item>
+      <item>TextSyntax</item>
+      <item>TextUI</item>
+      <item>TexturePaint</item>
+      <item>Thread</item>
+      <item>ThreadDeath</item>
+      <item>ThreadGroup</item>
+      <item>ThreadLocal</item>
+      <item>ThreadPolicy</item>
+      <item>ThreadPolicyOperations</item>
+      <item>ThreadPolicyValue</item>
+      <item>Throwable</item>
+      <item>Tie</item>
+      <item>TileObserver</item>
+      <item>Time</item>
+      <item>TimeLimitExceededException</item>
+      <item>TimeZone</item>
+      <item>Timer</item>
+      <item>Timer</item>
+      <item>TimerTask</item>
+      <item>Timestamp</item>
+      <item>TitledBorder</item>
+      <item>TitledBorderUIResource</item>
+      <item>ToggleButtonBorder</item>
+      <item>ToggleButtonBorder</item>
+      <item>ToggleButtonModel</item>
+      <item>TooManyListenersException</item>
+      <item>ToolBarBorder</item>
+      <item>ToolBarUI</item>
+      <item>ToolTipManager</item>
+      <item>ToolTipUI</item>
+      <item>Toolkit</item>
+      <item>Track</item>
+      <item>TransactionRequiredException</item>
+      <item>TransactionRolledbackException</item>
+      <item>TransactionService</item>
+      <item>TransferHandler</item>
+      <item>Transferable</item>
+      <item>TransformAttribute</item>
+      <item>Transformer</item>
+      <item>TransformerConfigurationException</item>
+      <item>TransformerException</item>
+      <item>TransformerFactory</item>
+      <item>TransformerFactoryConfigurationError</item>
+      <item>TransformerHandler</item>
+      <item>Transmitter</item>
+      <item>Transparency</item>
+      <item>TreeCellEditor</item>
+      <item>TreeCellRenderer</item>
+      <item>TreeControlIcon</item>
+      <item>TreeExpansionEvent</item>
+      <item>TreeExpansionListener</item>
+      <item>TreeFolderIcon</item>
+      <item>TreeLeafIcon</item>
+      <item>TreeMap</item>
+      <item>TreeModel</item>
+      <item>TreeModelEvent</item>
+      <item>TreeModelListener</item>
+      <item>TreeNode</item>
+      <item>TreePath</item>
+      <item>TreeSelectionEvent</item>
+      <item>TreeSelectionListener</item>
+      <item>TreeSelectionModel</item>
+      <item>TreeSet</item>
+      <item>TreeUI</item>
+      <item>TreeWillExpandListener</item>
+      <item>TrustAnchor</item>
+      <item>TrustManager</item>
+      <item>TrustManagerFactory</item>
+      <item>TrustManagerFactorySpi</item>
+      <item>Type</item>
+      <item>Type</item>
+      <item>Type</item>
+      <item>Type</item>
+      <item>Type</item>
+      <item>Type</item>
+      <item>Type</item>
+      <item>TypeCode</item>
+      <item>TypeCodeHolder</item>
+      <item>TypeMismatch</item>
+      <item>TypeMismatch</item>
+      <item>TypeMismatch</item>
+      <item>TypeMismatchHelper</item>
+      <item>TypeMismatchHelper</item>
+      <item>Types</item>
+      <item>UID</item>
+      <item>UIDefaults</item>
+      <item>UIManager</item>
+      <item>UIResource</item>
+      <item>UIResource</item>
+      <item>UIResource</item>
+      <item>UIResource</item>
+      <item>UIResource</item>
+      <item>UIResource</item>
+      <item>UIResource</item>
+      <item>ULongLongSeqHelper</item>
+      <item>ULongLongSeqHolder</item>
+      <item>ULongSeqHelper</item>
+      <item>ULongSeqHolder</item>
+      <item>UNKNOWN</item>
+      <item>UNSUPPORTED_POLICY</item>
+      <item>UNSUPPORTED_POLICY_VALUE</item>
+      <item>URI</item>
+      <item>URIException</item>
+      <item>URIResolver</item>
+      <item>URISyntax</item>
+      <item>URISyntaxException</item>
+      <item>URL</item>
+      <item>URL</item>
+      <item>URLClassLoader</item>
+      <item>URLConnection</item>
+      <item>URLDecoder</item>
+      <item>URLEncoder</item>
+      <item>URLStreamHandler</item>
+      <item>URLStreamHandlerFactory</item>
+      <item>URLStringHelper</item>
+      <item>USER_EXCEPTION</item>
+      <item>UShortSeqHelper</item>
+      <item>UShortSeqHolder</item>
+      <item>UTFDataFormatException</item>
+      <item>UndeclaredThrowableException</item>
+      <item>UnderlineAction</item>
+      <item>UndoManager</item>
+      <item>UndoableEdit</item>
+      <item>UndoableEditEvent</item>
+      <item>UndoableEditListener</item>
+      <item>UndoableEditSupport</item>
+      <item>UnexpectedException</item>
+      <item>UnicastRemoteObject</item>
+      <item>UnicodeBlock</item>
+      <item>UnionMember</item>
+      <item>UnionMemberHelper</item>
+      <item>UnknownEncoding</item>
+      <item>UnknownEncodingHelper</item>
+      <item>UnknownError</item>
+      <item>UnknownException</item>
+      <item>UnknownGroupException</item>
+      <item>UnknownHostException</item>
+      <item>UnknownHostException</item>
+      <item>UnknownObjectException</item>
+      <item>UnknownServiceException</item>
+      <item>UnknownTag</item>
+      <item>UnknownUserException</item>
+      <item>UnknownUserExceptionHelper</item>
+      <item>UnknownUserExceptionHolder</item>
+      <item>UnmappableCharacterException</item>
+      <item>UnmarshalException</item>
+      <item>UnmodifiableSetException</item>
+      <item>UnrecoverableKeyException</item>
+      <item>Unreferenced</item>
+      <item>UnresolvedAddressException</item>
+      <item>UnresolvedPermission</item>
+      <item>UnsatisfiedLinkError</item>
+      <item>UnsolicitedNotification</item>
+      <item>UnsolicitedNotificationEvent</item>
+      <item>UnsolicitedNotificationListener</item>
+      <item>UnsupportedAddressTypeException</item>
+      <item>UnsupportedAudioFileException</item>
+      <item>UnsupportedCallbackException</item>
+      <item>UnsupportedCharsetException</item>
+      <item>UnsupportedClassVersionError</item>
+      <item>UnsupportedEncodingException</item>
+      <item>UnsupportedFlavorException</item>
+      <item>UnsupportedLookAndFeelException</item>
+      <item>UnsupportedOperationException</item>
+      <item>UserException</item>
+      <item>Util</item>
+      <item>UtilDelegate</item>
+      <item>Utilities</item>
+      <item>VMID</item>
+      <item>VM_ABSTRACT</item>
+      <item>VM_CUSTOM</item>
+      <item>VM_NONE</item>
+      <item>VM_TRUNCATABLE</item>
+      <item>ValueBase</item>
+      <item>ValueBaseHelper</item>
+      <item>ValueBaseHolder</item>
+      <item>ValueFactory</item>
+      <item>ValueHandler</item>
+      <item>ValueMember</item>
+      <item>ValueMemberHelper</item>
+      <item>VariableHeightLayoutCache</item>
+      <item>Vector</item>
+      <item>VerifyError</item>
+      <item>VersionSpecHelper</item>
+      <item>VetoableChangeListener</item>
+      <item>VetoableChangeListenerProxy</item>
+      <item>VetoableChangeSupport</item>
+      <item>View</item>
+      <item>ViewFactory</item>
+      <item>ViewportLayout</item>
+      <item>ViewportUI</item>
+      <item>VirtualMachineError</item>
+      <item>Visibility</item>
+      <item>VisibilityHelper</item>
+      <item>VoiceStatus</item>
+      <item>Void</item>
+      <item>VolatileImage</item>
+      <item>WCharSeqHelper</item>
+      <item>WCharSeqHolder</item>
+      <item>WStringSeqHelper</item>
+      <item>WStringSeqHolder</item>
+      <item>WStringValueHelper</item>
+      <item>WeakHashMap</item>
+      <item>WeakReference</item>
+      <item>Window</item>
+      <item>WindowAdapter</item>
+      <item>WindowConstants</item>
+      <item>WindowEvent</item>
+      <item>WindowFocusListener</item>
+      <item>WindowListener</item>
+      <item>WindowStateListener</item>
+      <item>WrappedPlainView</item>
+      <item>WritableByteChannel</item>
+      <item>WritableRaster</item>
+      <item>WritableRenderedImage</item>
+      <item>WriteAbortedException</item>
+      <item>Writer</item>
+      <item>WrongAdapter</item>
+      <item>WrongAdapterHelper</item>
+      <item>WrongPolicy</item>
+      <item>WrongPolicyHelper</item>
+      <item>WrongTransaction</item>
+      <item>WrongTransactionHelper</item>
+      <item>WrongTransactionHolder</item>
+      <item>X500Principal</item>
+      <item>X500PrivateCredential</item>
+      <item>X509CRL</item>
+      <item>X509CRLEntry</item>
+      <item>X509CRLSelector</item>
+      <item>X509CertSelector</item>
+      <item>X509Certificate</item>
+      <item>X509Certificate</item>
+      <item>X509EncodedKeySpec</item>
+      <item>X509Extension</item>
+      <item>X509KeyManager</item>
+      <item>X509TrustManager</item>
+      <item>XAConnection</item>
+      <item>XADataSource</item>
+      <item>XAException</item>
+      <item>XAResource</item>
+      <item>XMLDecoder</item>
+      <item>XMLEncoder</item>
+      <item>XMLFilter</item>
+      <item>XMLFilterImpl</item>
+      <item>XMLFormatter</item>
+      <item>XMLReader</item>
+      <item>XMLReaderAdapter</item>
+      <item>XMLReaderFactory</item>
+      <item>Xid</item>
+      <item>ZipEntry</item>
+      <item>ZipException</item>
+      <item>ZipFile</item>
+      <item>ZipInputStream</item>
+      <item>ZipOutputStream</item>
+      <item>ZoneView</item>
+      <item>_BindingIteratorImplBase</item>
+      <item>_BindingIteratorStub</item>
+      <item>_DynAnyFactoryStub</item>
+      <item>_DynAnyStub</item>
+      <item>_DynArrayStub</item>
+      <item>_DynEnumStub</item>
+      <item>_DynFixedStub</item>
+      <item>_DynSequenceStub</item>
+      <item>_DynStructStub</item>
+      <item>_DynUnionStub</item>
+      <item>_DynValueStub</item>
+      <item>_IDLTypeStub</item>
+      <item>_NamingContextExtStub</item>
+      <item>_NamingContextImplBase</item>
+      <item>_NamingContextStub</item>
+      <item>_PolicyStub</item>
+      <item>_Remote_Stub</item>
+      <item>_ServantActivatorStub</item>
+      <item>_ServantLocatorStub</item>
+    </list>
+
+    <list name="java-1.4.2-keywords">
+      <item>abstract</item>
+      <item>assert</item>
+      <item>break</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>class</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>do</item>
+      <item>else</item>
+      <item>extends</item>
+      <item>false</item>
+      <item>finally</item>
+      <item>for</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>implements</item>
+      <item>import</item>
+      <item>instanceof</item>
+      <item>interface</item>
+      <item>native</item>
+      <item>new</item>
+      <item>null</item>
+      <item>package</item>
+      <item>private</item>
+      <item>protected</item>
+      <item>public</item>
+      <item>return</item>
+      <item>super</item>
+      <item>strictfp</item>
+      <item>switch</item>
+      <item>synchronized</item>
+      <item>this</item>
+      <item>throws</item>
+      <item>throw</item>
+      <item>transient</item>
+      <item>true</item>
+      <item>try</item>
+      <item>volatile</item>
+      <item>while</item>
+    </list>
+
+    <list name="java-1.4.2-types">
+      <item>boolean</item>
+      <item>byte</item>
+      <item>char</item>
+      <item>const</item>
+      <item>double</item>
+      <item>final</item>
+      <item>float</item>
+      <item>int</item>
+      <item>long</item>
+      <item>short</item>
+      <item>static</item>
+      <item>void</item>
+    </list>
+
+    <list name="jsp-reserved-words">
+      <item>and</item>
+      <item>eq</item>
+      <item>gt</item>
+      <item>true</item>
+      <item>instanceof</item>
+      <item>or</item>
+      <item>ne</item>
+      <item>le</item>
+      <item>false</item>
+      <item>empty</item>
+      <item>not</item>
+      <item>lt</item>
+      <item>ge</item>
+      <item>null</item>
+      <item>div</item>
+      <item>mod</item>
+    </list>
+
+    <contexts>
+        <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="&lt;%@\s*[a-zA-Z0-9_\.]*" attribute="Jsp Directive" context="Jsp Standard Directive"/>
+        <RegExpr String="&lt;\s*jsp:(declaration|expression|scriptlet)\s*&gt;" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <RegExpr String="&lt;\s*\/?s*jsp:[a-zA-Z0-9_\.]*" attribute="Jsp Directive" context="Jsp Xml Directive"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <StringDetect String="&lt;!--" attribute="Html Comment" context="Html Comment"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <RegExpr String="&lt;\s*\/?\s*\$?[a-zA-Z0-9_]*:\$?[a-zA-Z0-9_]*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <StringDetect String="&lt;![CDATA[" attribute="Normal Text" context="#stay"/>
+        <StringDetect String="]]&gt;" attribute="Normal Text" context="#stay"/>
+        <RegExpr String="&lt;\s*\/?\s*[a-zA-Z0-9_]*" attribute="Normal Text" context="Html Attribute"/>
+      </context>
+
+      <context name="Jsp Standard Directive" attribute="Jsp Param Name" lineEndContext="#stay">
+        <Detect2Chars char="%" char1="&gt;" attribute="Jsp Directive" context="#pop"/>
+        <RegExpr String="\s*=\s*" attribute="Normal Text" context="Jsp Standard Directive Value"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+      </context>
+
+      <context name="Jsp Xml Directive" attribute="Jsp Param Name" lineEndContext="#stay">
+        <RegExpr String="\s*\/?\s*&gt;" attribute="Jsp Directive" context="#pop"/>
+        <RegExpr String="\s*=\s*" attribute="Normal Text" context="Jsp Xml Directive Value"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+      </context>
+
+      <context name="Jsp Comment" attribute="Jsp Comment" lineEndContext="#stay">
+        <StringDetect String="--%&gt;" attribute="Jsp Comment" context="#pop"/>
+      </context>
+
+      <context name="Jsp Custom Tag" attribute="Identifier" lineEndContext="#stay">
+        <RegExpr String="\/?&gt;" attribute="Keyword" context="#pop"/>
+        <RegExpr String="\s*=\s*" attribute="Normal Text" context="Jsp Custom Tag Value"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+      </context>
+
+      <context name="Jsp Standard Directive Value" attribute="Jsp Param Value" lineEndContext="#stay">
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <DetectChar char="&quot;" attribute="Jsp Param Value" context="Jsp Double Quoted Param Value"/>
+        <DetectChar char="'" attribute="Jsp Param Value" context="Jsp Single Quoted Param Value"/>
+        <Detect2Chars char="%" char1="&gt;" attribute="Jsp Directive" context="#pop#pop"/>
+      </context>
+
+      <context name="Jsp Xml Directive Value" attribute="Jsp Param Value" lineEndContext="#stay">
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <DetectChar char="&quot;" attribute="Jsp Param Value" context="Jsp Double Quoted Param Value"/>
+        <DetectChar char="'" attribute="Jsp Param Value" context="Jsp Single Quoted Param Value"/>
+        <RegExpr String="\s*\/?\s*&gt;" attribute="Jsp Directive" context="#pop#pop"/>
+      </context>
+
+      <context name="Jsp Custom Tag Value" attribute="Normal Text" lineEndContext="#stay">
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <DetectChar char="&quot;" attribute="Types" context="Jsp Double Quoted Custom Tag Value"/>
+        <DetectChar char="'" attribute="Types" context="Jsp Single Quoted Custom Tag Value"/>
+        <RegExpr String="\/?&gt;" attribute="Normal Text" context="#pop#pop"/>
+      </context>
+
+      <context name="Jsp Double Quoted Param Value" attribute="Jsp Param Value" lineEndContext="#stay">
+        <DetectChar char="&quot;" attribute="Jsp Param Value" context="#pop#pop"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+      </context>
+
+      <context name="Jsp Single Quoted Param Value" attribute="Jsp Param Value" lineEndContext="#stay">
+        <DetectChar char="'" attribute="Jsp Param Value" context="#pop#pop"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+      </context>
+
+      <context name="Jsp Double Quoted Custom Tag Value" attribute="Types" lineEndContext="#stay">
+        <DetectChar char="&quot;" attribute="Types" context="#pop#pop"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+      </context>
+
+      <context name="Jsp Single Quoted Custom Tag Value" attribute="Types" lineEndContext="#stay">
+        <DetectChar char="'" attribute="Types" context="#pop#pop"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+      </context>
+
+      <context name="Jsp Scriptlet" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="%" char1="&gt;" attribute="Jsp Scriptlet" context="#pop"/>
+        <RegExpr String="&lt;\s*jsp:(declaration|expression|scriptlet)\s*&gt;" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <keyword String="java-1.4.2-keywords" attribute="Keyword" context="#stay"/>
+        <keyword String="jsp-reserved-words" attribute="Keyword" context="#stay"/>
+        <keyword String="java-1.4.2-types" attribute="Types" context="#stay"/>
+        <keyword String="java-1.4.2-classes" attribute="Java 1.4.2 Classes" context="#stay"/>
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay">
+          <StringDetect String="ULL" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="LUL" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="LLU" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="UL" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="LU" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="LL" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="U" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="L" attribute="Decimal" context="#stay" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <RegExpr String="//\s*BEGIN.*$" attribute="Decimal" context="#stay" beginRegion="Region1" firstNonSpace="true"/>
+        <RegExpr String="//\s*END.*$" attribute="Decimal" context="#stay" endRegion="Region1" firstNonSpace="true"/>
+        <DetectChar char="&quot;" attribute="String" context="Java String"/>
+        <DetectChar char="{" attribute="Normal Text" context="#stay" beginRegion="Brace1"/>
+        <DetectChar char="}" attribute="Normal Text" context="#stay" endRegion="Brace1"/>
+        <AnyChar String="!%&amp;()+,-&lt;=&gt;?[]^{|}~" attribute="Symbol" context="#stay"/>
+        <Detect2Chars char="/" char1="/" attribute="Java Comment" context="Java Single-Line Comment"/>
+        <Detect2Chars char="/" char1="*" attribute="Java Comment" context="Java Multi-Line Comment"/>
+      </context>
+
+      <context name="Jsp Expression" attribute="Normal Text" lineEndContext="#stay">
+        <StringDetect String="'${'" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="}" attribute="Jsp Scriptlet" context="#pop"/>
+        <keyword String="java-1.4.2-keywords" attribute="Keyword" context="#stay"/>
+        <keyword String="jsp-reserved-words" attribute="Keyword" context="#stay"/>
+        <keyword String="java-1.4.2-types" attribute="Types" context="#stay"/>
+        <keyword String="java-1.4.2-classes" attribute="Java 1.4.2 Classes" context="#stay"/>
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay">
+          <StringDetect String="ULL" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="LUL" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="LLU" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="UL" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="LU" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="LL" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="U" attribute="Decimal" context="#stay" insensitive="true"/>
+          <StringDetect String="L" attribute="Decimal" context="#stay" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <DetectChar char="&quot;" attribute="String" context="Java String"/>
+        <AnyChar String="!%&amp;()+,-&lt;=&gt;?[]^{|}~" attribute="Symbol" context="#stay"/>
+      </context>
+
+      <context name="Java Single-Line Comment" attribute="Java Comment" lineEndContext="#pop"/>
+
+      <context name="Java Multi-Line Comment" attribute="Java Comment" lineEndContext="#stay">
+        <Detect2Chars char="*" char1="/" attribute="Java Comment" context="#pop"/>
+      </context>
+
+      <context name="Java String" attribute="String" lineEndContext="#stay">
+        <Detect2Chars char="\" char1="&quot;" attribute="String" context="#stay"/>
+        <DetectChar char="&quot;" attribute="String" context="#pop"/>
+      </context>
+
+      <context name="Html Attribute" attribute="Identifier" lineEndContext="#stay">
+        <RegExpr String="\/?&gt;" attribute="Normal Text" context="#pop"/>
+        <RegExpr String="\s*=\s*" attribute="Normal Text" context="Html Value"/>
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+      </context>
+
+      <context name="Html Value" attribute="Types" lineEndContext="#stay">
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <RegExpr String="(&quot;|&amp;quot;|&amp;#34;)" attribute="Types" context="Html Double Quoted Value"/>
+        <RegExpr String="('|&amp;#39;)" attribute="Types" context="Html Single Quoted Value"/>
+        <RegExpr String="\s*#?-?_?\.?[a-zA-Z0-9]*" attribute="Types" context="Html Unquoted Value"/>
+        <RegExpr String="\/?&gt;" attribute="Normal Text" context="#pop#pop"/>
+      </context>
+
+      <context name="Html Double Quoted Value" attribute="Types" lineEndContext="#stay">
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <RegExpr String="(&quot;|&amp;quot;|&amp;#34;)" attribute="Types" context="#pop#pop"/>
+      </context>
+
+      <context name="Html Single Quoted Value" attribute="Types" lineEndContext="#stay">
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <RegExpr String="('|&amp;#39;)" attribute="Types" context="#pop#pop"/>
+      </context>
+
+      <context name="Html Unquoted Value" attribute="Types" lineEndContext="#stay">
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <RegExpr String="&lt;\s*\/?\s*\$?\w*:\$?\w*" attribute="Keyword" context="Jsp Custom Tag"/>
+        <RegExpr String="\/?&gt;" attribute="Normal Text" context="#pop#pop#pop"/>
+        <RegExpr String="\s+" attribute="Types" context="#pop#pop"/>
+      </context>
+
+      <context name="Html Comment" attribute="Html Comment" lineEndContext="#stay">
+        <StringDetect String="&lt;%--" attribute="Jsp Comment" context="Jsp Comment"/>
+        <RegExpr String="&lt;%(!|=)?" attribute="Jsp Scriptlet" context="Jsp Scriptlet"/>
+        <Detect2Chars char="$" char1="{" attribute="Jsp Expression" context="Jsp Expression"/>
+        <RegExpr String="\/*--&gt;" attribute="Html Comment" context="#pop"/>
+      </context>
+
+    </contexts>
+
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Identifier" defStyleNum="dsOthers"/>
+      <itemData name="Types" defStyleNum="dsDataType"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+
+      <itemData name="Html Comment" defStyleNum="dsComment"/>
+
+      <itemData name="Decimal" defStyleNum="dsDecVal"/>
+      <itemData name="Octal" defStyleNum="dsBaseN"/>
+      <itemData name="Hex" defStyleNum="dsBaseN"/>
+      <itemData name="Float" defStyleNum="dsFloat"/>
+      <itemData name="Char" defStyleNum="dsChar"/>
+      <itemData name="String Char" defStyleNum="dsChar"/>
+      <itemData name="Symbol" defStyleNum="dsNormal"/>
+      <itemData name="Java 1.4.2 Classes" defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
+
+      <itemData name="Jsp Directive" defStyleNum="dsNormal" color="#0000ff" selColor="#00ff00" bold="true" italic="true"/>
+      <itemData name="Jsp Scriptlet" defStyleNum="dsNormal" color="#000000" selColor="#ffffff" bold="true" italic="false"/>
+      <itemData name="Jsp Expression" defStyleNum="dsNormal" color="#000000" selColor="#ffffff" bold="true" italic="false"/>
+      <itemData name="Jsp Comment" defStyleNum="dsComment"/>
+
+      <itemData name="Jsp Param Name" defStyleNum="dsOthers"/>
+      <itemData name="Jsp Param Value" defStyleNum="dsString"/>
+
+      <itemData name="Java Comment" defStyleNum="dsComment"/>
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="multiLine" start="&lt;%-- " end=" --%&gt;" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/julia.xml b/xml/julia.xml
new file mode 100644
--- /dev/null
+++ b/xml/julia.xml
@@ -0,0 +1,291 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ====================================================================
+  Julia syntax highlighting file for the KDE editors Kate and Kwrite
+  ====================================================================
+
+  This was adapted from the Matlab syntax highlighting file
+
+  Most of this XML file is straightforward. Only the character ' (&apos;)
+  needs nontrivial treatment, since it is both a postfix operator indicating
+  complex conjugate transpose (adjoint) and a character delimiter. It is an
+  adjoint operator in the following positions:
+  1) immediately after an identifier (variable, function, but not keyword)
+  2) immediately after a number literal
+  3) immediately after the closing parenthesis ), ] and }
+  4) immediately after a simple transpose operator .'
+  5) immediately after another adjoint operator '
+  Otherwise it is a character delimiter.
+
+  This is implemented using look-ahead regexps. If one of the entities in the
+  above cases 1-4 (identifier, number literal, ...) matches and look-ahead
+  shows that it is followed by a ', the entity is highlighted and control is
+  passed to the special context _adjoint, whose sole purpose is to correctly
+  highlight a series of ' (thus covering case 5 as well). _adjoint immediately
+  returns to the default context _normal.
+
+  Author: Timothy E. Holy, Washington University in St. Louis
+-->
+
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<language name="Julia" section="Sources" version="3" kateversion="5.0" extensions="*.jl" casesensitive="1" priority="5" license="MIT">
+
+  <highlighting>
+    <list name="block_begin">
+      <item>begin</item>
+      <item>do</item>
+      <item>for</item>
+      <item>function</item>
+      <item>if</item>
+      <item>let</item>
+      <item>quote</item>
+      <item>try</item>
+      <item>type</item>
+      <item>while</item>
+    </list>
+    <list name="block_eb">
+      <item>catch</item>
+      <item>else</item>
+      <item>elseif</item>
+    </list>
+    <list name="block_end">
+      <item>end</item>
+    </list>
+    <list name="keywords">
+      <item>abstract</item>
+      <item>bitstype</item>
+      <item>break</item>
+      <item>ccall</item>
+      <item>const</item>
+      <item>continue</item>
+      <item>export</item>
+      <item>global</item>
+      <item>import</item>
+      <item>in</item>
+      <item>local</item>
+      <item>macro</item>
+      <item>module</item>
+      <item>return</item>
+      <item>typealias</item>
+    </list>
+    <list name="types">
+      <item>AbstractArray</item>
+      <item>AbstractMatrix</item>
+      <item>AbstractVector</item>
+      <item>Any</item>
+      <item>Array</item>
+      <item>ASCIIString</item>
+      <item>Associative</item>
+      <item>Bool</item>
+      <item>ByteString</item>
+      <item>Char</item>
+      <item>Complex</item>
+      <item>Complex64</item>
+      <item>Complex128</item>
+      <item>ComplexPair</item>
+      <item>DArray</item>
+      <item>Dict</item>
+      <item>Exception</item>
+      <item>Expr</item>
+      <item>Float</item>
+      <item>Float32</item>
+      <item>Float64</item>
+      <item>Function</item>
+      <item>ObjectIdDict</item>
+      <item>Int</item>
+      <item>Int8</item>
+      <item>Int16</item>
+      <item>Int32</item>
+      <item>Int64</item>
+      <item>Integer</item>
+      <item>IntSet</item>
+      <item>IO</item>
+      <item>IOStream</item>
+      <item>Matrix</item>
+      <item>Nothing</item>
+      <item>None</item>
+      <item>NTuple</item>
+      <item>Number</item>
+      <item>Ptr</item>
+      <item>Range</item>
+      <item>Range1</item>
+      <item>Ranges</item>
+      <item>Rational</item>
+      <item>Real</item>
+      <item>Regex</item>
+      <item>RegexMatch</item>
+      <item>Set</item>
+      <item>Signed</item>
+      <item>StridedArray</item>
+      <item>StridedMatrix</item>
+      <item>StridedVecOrMat</item>
+      <item>StridedVector</item>
+      <item>String</item>
+      <item>SubArray</item>
+      <item>SubString</item>
+      <item>Symbol</item>
+      <item>Task</item>
+      <item>Tuple</item>
+      <item>Type</item>
+      <item>Uint</item>
+      <item>Uint8</item>
+      <item>Uint16</item>
+      <item>Uint32</item>
+      <item>Uint64</item>
+      <item>Union</item>
+      <item>Unsigned</item>
+      <item>UTF8String</item>
+      <item>VecOrMat</item>
+      <item>Vector</item>
+      <item>Void</item>
+      <item>WeakRef</item>
+    </list>
+    <contexts>
+
+      <context name="_normal" attribute="Normal Text" lineEndContext="#stay">
+
+	<DetectSpaces />
+
+        <!-- Blocks -->
+        <keyword context="#stay" attribute="Keyword" String="block_begin" 
+beginRegion="block" />
+        <keyword context="#stay" attribute="Keyword" String="block_eb" 
+endRegion="block" beginRegion="block" />
+        <keyword context="#stay" attribute="Keyword" String="block_end" 
+endRegion="block" />
+        <StringDetect String="#BEGIN" context="region_marker" attribute="FoldingComment" beginRegion="user_region" />
+        <StringDetect String="#END" context="region_marker" attribute="FoldingComment" endRegion="user_region" />
+
+        <!-- Keywords, types, and comments -->
+        <keyword context="#stay" attribute="Keyword" String="keywords" />
+        <keyword context="#stay" attribute="Data Type" String="types" />
+        <DetectChar char="#" context="1-comment" attribute="Comment"/>
+
+	<!-- Lists and arrays -->
+        <!-- <DetectChar char="(" context="nested" beginRegion="nested" attribute="Delimiter" />
+        <DetectChar char="[" context="squared" beginRegion="squared" attribute="Delimiter" />
+        <DetectChar char="{" context="curly" beginRegion="curly" attribute="Delimiter" /> -->
+
+        <!-- Strings -->
+	<DetectChar attribute="String" context="String" char="&quot;"/>
+
+        <!-- Multi-character operators -->
+        <StringDetect context="#stay" attribute="Operator" String="..."/>
+        <StringDetect context="#stay" attribute="Operator" String="::"/>
+        <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;&gt;"/>
+        <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;"/>
+        <StringDetect context="#stay" attribute="Operator" String="&lt;&lt;"/>
+        <StringDetect context="#stay" attribute="Operator" String="=="/>
+        <StringDetect context="#stay" attribute="Operator" String="!="/>
+        <StringDetect context="#stay" attribute="Operator" String="&lt;="/>
+        <StringDetect context="#stay" attribute="Operator" String="&gt;="/>
+        <StringDetect context="#stay" attribute="Operator" String="&amp;&amp;"/>
+        <StringDetect context="#stay" attribute="Operator" String="||"/>
+        <StringDetect context="#stay" attribute="Operator" String=".*"/>
+        <StringDetect context="#stay" attribute="Operator" String=".^"/>
+        <StringDetect context="#stay" attribute="Operator" String="./"/>
+        <StringDetect context="#stay" attribute="Operator" String=".'"/>
+        <StringDetect context="#stay" attribute="Operator" String="+="/>
+        <StringDetect context="#stay" attribute="Operator" String="-="/>
+        <StringDetect context="#stay" attribute="Operator" String="*="/>
+        <StringDetect context="#stay" attribute="Operator" String="/="/>
+        <StringDetect context="#stay" attribute="Operator" String="&amp;="/>
+        <StringDetect context="#stay" attribute="Operator" String="|="/>
+        <StringDetect context="#stay" attribute="Operator" String="$="/>
+        <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;&gt;="/>
+        <StringDetect context="#stay" attribute="Operator" String="&gt;&gt;="/>
+        <StringDetect context="#stay" attribute="Operator" String="&lt;&lt;="/>
+
+        <!-- Look-ahead for adjoint ' after variable, number literal, closing braces and .' -->
+        <RegExpr context="_adjoint" attribute="Variable" String="[a-zA-Z]\w*(?=')" />
+        <RegExpr context="_adjoint" attribute="Float" String="(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?(im)?(?=')" />
+        <RegExpr context="_adjoint" attribute="Delimiter" String="[\)\]}](?=')" />
+        <RegExpr context="_adjoint" attribute="Operator" String="\.'(?=')" />
+
+        <!-- If ' is not the adjoint operator, it starts a character or an unterminated char -->
+        <RegExpr context="#stay" attribute="Char" String="'[^']*(''[^']*)*'(?=[^']|$)" />
+        <RegExpr context="#stay" attribute="Incomplete Char" String="'[^']*(''[^']*)*" />
+
+        <!-- Identifiers, numbers and braces -->
+        <!-- We can't use HlCHex, Int, and Float because we need to allow the "im" at the end of complex numbers -->
+        <DetectIdentifier context="#stay" attribute="Variable" />
+        <RegExpr context="#stay" attribute="Hex" String="0x[0-9a-fA-F]+(im)?" />
+        <RegExpr context="#stay" attribute="Float" String="(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?(im)?" />
+        <AnyChar context="#stay" attribute="Delimiter" String="()[]{}"/>
+
+        <!-- Single-character operators -->
+        <AnyChar context="#stay" attribute="Operator" String="*+-/\&amp;|&lt;&gt;~$!^=,;:@"/>
+
+      </context>
+
+      <!-- Context for user block (#BEGIN...#END) -->
+      <context name="region_marker" lineEndContext="#pop" attribute="FoldingComment" >
+        <IncludeRules context="1-comment" />
+      </context>
+
+      <!-- Contexts entered after beginning a list or array -->
+      <context name="nested" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char=")" context="#pop" endRegion="nested" attribute="Delimiter" />
+      </context>
+      <context name="squared" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="]" context="#pop" endRegion="squared" attribute="Delimiter" />
+      </context>
+      <context name="curly" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" context="#pop" endRegion="curly" attribute="Delimiter" />
+      </context>
+
+      <!-- Context entered after encountering an ' adjoint operator -->
+      <context name="_adjoint" attribute="Operator" lineEndContext="#pop">
+        <RegExpr context="#pop" attribute="Operator" String="'+" />
+      </context>
+
+      <!-- Context entered after encountering an " (string) -->
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <DetectSpaces />
+        <DetectIdentifier />
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+
+      <!-- 1-line comment: #pop@EOL  -->
+      <context name="1-comment" lineEndContext="#pop" attribute="Comment">
+        <DetectSpaces />
+        <DetectIdentifier />
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Variable" defStyleNum="dsNormal" />
+      <itemData name="Operator" defStyleNum="dsNormal"/>
+      <itemData name="Decimal" defStyleNum="dsDecVal" />
+      <itemData name="Float" defStyleNum="dsFloat" />
+      <itemData name="Hex" defStyleNum="dsBaseN" />
+      <itemData name="Delimiter" defStyleNum="dsNormal" />
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="String Char" defStyleNum="dsSpecialChar"/>
+      <itemData name="Char" defStyleNum="dsChar"/>
+      <itemData name="Incomplete Char" defStyleNum="dsChar"/>
+      <itemData name="System" defStyleNum="dsBaseN"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Data Type" defStyleNum="dsDataType"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="FoldingComment" defStyleNum="dsComment" />
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" />
+    </comments>
+    <keywords casesensitive="1" weakDeliminator=""/>
+  </general>
+
+</language>
+
+<!-- It's recommended to put the following line in the Variables field under Settings->Configure Kate->Open/Save->Modes&Filetypes -->
+<!-- kate: space-indent on; indent-width 4; mixed-indent off; indent-mode cstyle; -->
diff --git a/xml/kotlin.xml b/xml/kotlin.xml
new file mode 100644
--- /dev/null
+++ b/xml/kotlin.xml
@@ -0,0 +1,298 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- kotlin language syntax http://kotlinlang.org -->
+<language name="Kotlin" version="2" kateversion="5.0" section="Sources" extensions="*.kt;*.kts" license="LGPLv2+" author="Sergey Mashkov (sergey.mashkov@jetbrains.com)" style="cstyle" indenter="cstyle">
+    <highlighting>
+        <list name="keywords">
+            <item>package</item>
+            <item>import</item>
+
+            <item>sealed</item>
+            <item>data</item>
+            <item>class</item>
+            <item>enum</item>
+            <item>interface</item>
+            <item>companion</item>
+            <item>object</item>
+
+            <item>private</item>
+            <item>public</item>
+            <item>protected</item>
+            <item>internal</item>
+            <item>open</item>
+            <item>final</item>
+
+            <item>get</item>
+            <item>set</item>
+            <item>fun</item>
+            <item>var</item>
+            <item>val</item>
+            <item>constructor</item>
+
+            <item>inline</item>
+            <item>reified</item>
+            <item>crossinline</item>
+            <item>tailrec</item>
+
+            <item>in</item>
+            <item>out</item>
+            <item>is</item>
+            <item>as</item>
+            <item>by</item>
+            <item>where</item>
+
+            <item>vararg</item>
+            <item>get</item>
+            <item>set</item>
+
+            <item>return</item>
+            <item>throw</item>
+
+            <item>typealias</item>
+            <item>typeof</item>
+            <item>override</item>
+            <item>infix</item>
+            <item>operator</item>
+        </list>
+        <list name="controlFlowKeyword">
+            <item>if</item>
+            <item>else</item>
+            <item>when</item>
+
+            <item>for</item>
+            <item>while</item>
+            <item>do</item>
+
+            <item>try</item>
+            <item>catch</item>
+            <item>finally</item>
+
+            <item>continue</item>
+            <item>break</item>
+            <item>yield</item>
+        </list>
+        <list name="predeclared">
+            <item>this</item>
+            <item>super</item>
+            <item>null</item>
+            <item>true</item>
+            <item>false</item>
+        </list>
+        <list name="types">
+            <item>Unit</item>
+            <item>Nothing</item>
+
+            <item>String</item>
+            <item>Char</item>
+
+            <item>Int</item>
+            <item>Long</item>
+            <item>Byte</item>
+            <item>Short</item>
+            <item>Float</item>
+            <item>Double</item>
+
+            <item>Boolean</item>
+        </list>
+
+        <contexts>
+            <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+                <RegExpr attribute="Keyword" context="Imports" String="\b(package|import)\b"/>
+                <RegExpr attribute="Keyword" context="FunctionDeclaration" String="\bfun\b"/>
+                <RegExpr attribute="Keyword" context="TypeDeclaration" String="\b(object|class|interface)\b"/>
+                <RegExpr attribute="Keyword" context="VariableDeclaration" String="\b(val|var)\b"/>
+
+                <keyword attribute="Keyword" context="#stay" String="predeclared"/>
+                <keyword attribute="Keyword" context="#stay" String="keywords"/>
+                <keyword attribute="ControlFlowKeyword" context="#stay" String="controlFlowKeyword"/>
+                <keyword attribute="Keyword" context="#stay" String="types"/>
+
+                <StringDetect attribute="String" String="&quot;&quot;&quot;" context="MultiLineDoubleString" beginRegion="MultiLineString"/>
+                <DetectChar attribute="String" context="String" char="&quot;"/>
+                <DetectChar attribute="Char" context="Char" char="'"/>
+
+                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>
+                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>
+
+                <Float attribute="Float" context="#stay">
+                    <AnyChar String="fF" attribute="Float" context="#stay"/>
+                </Float>
+                <Int attribute="Decimal" context="#stay">
+                    <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+                </Int>
+
+                <RegExpr attribute="Annotation" context="#stay" String="@[_\w][_\w\d]*"/>
+                <RegExpr attribute="TODO" context="#stay" String="TODO\s*\([^)]*\)" />
+                <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+                <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="#" char1="!" />
+            </context>
+
+            <context attribute="Normal Text" lineEndContext="#pop" name="Imports">
+                <DetectChar attribute="Symbol" context="#pop" char=";" />
+                <StringDetect attribute="Keyword" context="TypeName" String="as" />
+
+                <RegExpr attribute="Imports" context="#stay" String="\b[_\w][_\w\d]*(\.[_\w][_\w\d]*)*(\.\*)?"/>
+            </context>
+
+            <context name="VariableDeclaration" lineEndContext="#stay" attribute="Normal Text">
+                <DetectIdentifier attribute="Variable" context="#pop" />
+            </context>
+
+            <context name="TypeDeclaration" lineEndContext="#stay" attribute="Normal Text">
+                <keyword attribute="Keyword" context="#stay" String="keywords"/>
+
+                <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
+                <DetectChar attribute="Symbol" context="Parameters" char="(" />
+                <DetectChar attribute="Symbol" context="SuperTypes" char=":" />
+                <DetectChar attribute="Symbol" context="#pop" char="{" lookAhead="true" />
+            </context>
+
+            <context name="SuperTypes" lineEndContext="#stay" attribute="Normal Text">
+                <keyword attribute="Keyword" context="#pop#pop" String="keywords" lookAhead="true" />
+
+                <DetectChar attribute="Symbol" context="#stay" char="," />
+                <DetectChar attribute="Symbol" context="#pop" char="{" lookAhead="true" />
+                <DetectChar attribute="Symbol" context="Parameters" char="(" />
+                <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
+
+                <RegExpr attribute="Data Type" context="#stay" String="[_\w][_\w\d]*" />
+            </context>
+
+            <context name="FunctionDeclaration" lineEndContext="#stay" attribute="Normal Text">
+                <keyword attribute="Keyword" context="#stay" String="keywords"/>
+                <DetectChar attribute="Symbol" context="#stay" char="." />
+                <DetectChar attribute="Symbol" context="Parameters" char="(" />
+                <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
+                <DetectChar attribute="Symbol" context="TypeName" char=":" />
+
+                <AnyChar attribute="Symbol" context="#pop" String="{=" lookAhead="true" />
+
+                <RegExpr attribute="Function" context="#stay" String="[_\w][_\w\d]*" />
+            </context>
+
+            <context name="TypeParameters" lineEndContext="#stay" attribute="Normal Text">
+                <keyword attribute="Keyword" context="#stay" String="keywords"/>
+
+                <DetectChar attribute="Symbol" context="TypeName" char=":" />
+                <DetectChar attribute="Symbol" context="#stay" char="*" />
+
+                <DetectChar attribute="Symbol" context="#pop" char="&gt;" />
+                <DetectChar attribute="Symbol" context="TypeParameters" char="&lt;" />
+
+                <RegExpr attribute="Data Type" context="#stay" String="[_\w][_\w\d]*[?]?" />
+            </context>
+
+            <context name="Parameters" lineEndContext="#stay" attribute="Normal Text">
+                <keyword attribute="Keyword" context="#stay" String="keywords" />
+                <DetectChar attribute="Symbol" context="#pop" char=")" />
+                <DetectChar attribute="Symbol" context="TypeName" char=":" />
+                <DetectChar attribute="Symbol" context="Expression" char="=" />
+                <RegExpr attribute="Variable" context="#stay" String="[_\w][_\w\d]*" />
+            </context>
+
+            <context name="TypeName" lineEndContext="#stay" attribute="Normal Text">
+                <DetectChar attribute="Symbol" context="#pop" char="*" />
+                <DetectChar attribute="Symbol" context="FunctionType" char="(" />
+                <StringDetect attribute="Symbol" context="#stay" String="-&gt;" />
+                <RegExpr attribute="Data Type" context="#pop" String="[_\w][_\w\d]*[?]?" />
+            </context>
+
+            <context name="FunctionType" lineEndContext="#stay" attribute="Normal Text">
+                <DetectChar attribute="Symbol" context="#pop" char=")" />
+                <RegExpr attribute="Data Type" context="#stay" String="[_\w][_\w\d]*[?]?" />
+                <StringDetect attribute="Symbol" context="#stay" String="-&gt;" />
+                <StringDetect attribute="Symbol" context="#stay" String="," />
+            </context>
+
+            <context name="Expression" lineEndContext="#stay" attribute="Normal Text">
+                <DetectChar attribute="Symbol" context="ExpressionInner" char="(" />
+                <DetectChar attribute="Symbol" context="#pop" char=")" lookAhead="true" />
+
+                <DetectChar attribute="Symbol" context="ExpressionInner" char="{" />
+                <DetectChar attribute="Symbol" context="#pop" char="}" lookAhead="true" />
+
+                <RegExpr attribute="Symbol" context="TypeParameters" String="&lt;\w+" lookAhead="true" />
+
+                <DetectChar attribute="Char" context="Char" char="'"/>
+                <StringDetect attribute="String" String="&quot;&quot;&quot;" context="MultiLineDoubleString" beginRegion="MultiLineString"/>
+                <DetectChar attribute="String" context="String" char="&quot;"/>
+
+                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>
+                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>
+
+                <DetectChar attribute="Symbol" context="#pop" char=","/>
+            </context>
+
+            <context name="ExpressionInner" lineEndContext="#stay" attribute="Normal Text">
+                <DetectChar attribute="Symbol" context="ExpressionInner" char="(" />
+                <DetectChar attribute="Symbol" context="#pop" char=")" />
+
+                <DetectChar attribute="Symbol" context="ExpressionInner" char="{" />
+                <DetectChar attribute="Symbol" context="#pop" char="}" />
+
+                <RegExpr attribute="Symbol" context="TypeParameters" String="&lt;\w+" lookAhead="true" />
+
+                <DetectChar attribute="Char" context="Char" char="'"/>
+                <StringDetect attribute="String" String="&quot;&quot;&quot;" context="MultiLineDoubleString" beginRegion="MultiLineString"/>
+                <DetectChar attribute="String" context="String" char="&quot;"/>
+
+                <Detect2Chars attribute="Comment" context="CommentSingleLine" char="/" char1="/"/>
+                <Detect2Chars attribute="Comment" context="CommentMultiline" char="/" char1="*" beginRegion="Comment"/>
+            </context>
+
+            <context attribute="Char" lineEndContext="#pop" name="Char">
+                <RegExpr attribute="String Char" context="#stay" String="\\u[0-9a-fA-F]{4}"/>
+                <DetectChar attribute="Char" context="#pop" char="'"/>
+            </context>
+            <context attribute="String" lineEndContext="#pop" name="String">
+                <LineContinue attribute="String" context="#stay"/>
+                <HlCStringChar attribute="String Char" context="#stay"/>
+                <RegExpr attribute="String Char" context="#stay" String="\\u[0-9a-fA-F]{4}"/>
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+            </context>
+            <context attribute="String" lineEndContext="#stay" name="MultiLineDoubleString">
+                <StringDetect attribute="String" context="#pop" String="&quot;&quot;&quot;" endRegion="MultiLineString"/>
+            </context>
+
+            <context attribute="Comment" lineEndContext="#pop" name="CommentSingleLine">
+                <StringDetect attribute="TODO" context="#stay" String="TODO" />
+            </context>
+            <context attribute="Comment" lineEndContext="#stay" name="CommentMultiline">
+                <StringDetect attribute="TODO" context="#stay" String="TODO" />
+                <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+            </context>
+
+            <context attribute="Symbol" lineEndContext="#stay" name="symbols">
+                <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;" />
+            </context>
+        </contexts>
+
+        <itemDatas>
+            <itemData name="Normal Text"  defStyleNum="dsNormal"/>
+            <itemData name="Keyword"      defStyleNum="dsKeyword"/>
+            <itemData name="ControlFlowKeyword" defStyleNum="dsControlFlow" />
+            <itemData name="Function"     defStyleNum="dsFunction"/>
+            <itemData name="Variable"     defStyleNum="dsVariable"/>
+            <itemData name="Imports"      defStyleNum="dsImport"/>
+            <itemData name="Annotation"   defStyleNum="dsAttribute"/>
+            <itemData name="Data Type"    defStyleNum="dsDataType" bold="true" />
+            <itemData name="Decimal"      defStyleNum="dsDecVal"/>
+            <itemData name="Hex"          defStyleNum="dsBaseN"/>
+            <itemData name="Float"        defStyleNum="dsFloat"/>
+            <itemData name="Char"         defStyleNum="dsChar"/>
+            <itemData name="String"       defStyleNum="dsString"/>
+            <itemData name="String Char"  defStyleNum="dsSpecialChar"/>
+            <itemData name="Comment"      defStyleNum="dsComment"/>
+            <itemData name="Symbol"       defStyleNum="dsNormal"/>
+            <itemData name="TODO"         defStyleNum="dsAlert" />
+    </itemDatas>
+    </highlighting>
+    <general>
+        <comments>
+            <comment name="singleLine" start="//"/>
+            <comment name="multiLine" start="/*" end="*/"/>
+        </comments>
+        <keywords casesensitive="1"/>
+    </general>
+</language>
diff --git a/xml/language.dtd b/xml/language.dtd
new file mode 100644
--- /dev/null
+++ b/xml/language.dtd
@@ -0,0 +1,556 @@
+<!--
+        Copyright (c) 2001 Joseph Wenninger <jowenn@kde.org>
+        modified (c) 2002 Anders Lund <anders@alweb.dk>
+        modified (c) 2003 Simon Huerlimann <simon.huerlimann@access.unizh.ch>
+        modified (c) 2005 Dominik Haumann <dhdev@gmx.de>
+        modified (c) 2008 Wilbert Berendsen <info@wilbertberendsen.nl>
+
+        This file describes the XML format used for syntax highlight descriptions
+        for the Kate text editor (http://kate.kde.org), which is part of the KDE
+        desktop environment (http://www.kde.org).
+        You'll find the "Writing a Kate Highlighting XML File HOWTO" at
+        http://kate.kde.org/doc/hlhowto.php
+
+        This format is identified using the SYSTEM identifier
+        SYSTEM "language.dtd"
+
+        Files using this format should include a DOCTYPE declaration like this:
+        <!DOCTYPE language SYSTEM "language.dtd">
+
+        You can validate your syntax files using checkXML from the development
+        package of kdelibs:
+         checkXML yourSyntax.xml
+        If you see any 'validity error' lines, you should fix them. If you get
+        a lot of 'No template matches' lines, everything's just fine. You've
+        produced a valid syntax file!
+
+        It's also possible to use the (much faster) xmllint which comes with the
+        GNOME (oops:-) XML Library libxml2:
+
+         xmllint - -dtdvalid language.dtd yourSyntax.xml
+	 (don't use a space between the two - That's just because XML
+         comments don't allow that:-(
+
+        To use your syntax file, copy it to .kde/share/apps/katepart/syntax/ in
+        your home directory. You have to open a new instance of kwrite/kate to use
+        the new syntax file.
+
+TODO
+  - find a more readable way for the - -dtdvalid stuff, it's just annoying
+    xml comments don't allow it.
+-->
+
+<!-- Entity declarations
+  You can use '&per;' instead of '.'. This seems to be useful in <item> elements.
+
+TODO
+  - Are there any more such pre-defined entities?
+-->
+<!ENTITY per "." >
+
+<!-- Boolean type
+  Attributes that are of type boolean allow the following values:
+  'true', 'TRUE' and '1' all meaning true,
+  'false', FALSE' and '0' all meaning false.
+
+  It is encouraged to use 'true' and 'false' instead of the alternatives.
+-->
+<!ENTITY % boolean "true|false|TRUE|FALSE|0|1">
+
+<!-- Default Styles
+  Allowed predefined default styles for itemData, available are:
+    - dsNormal,   used for normal text
+    - dsKeyword,  used for keywords
+    - dsDataType, used for data types
+    - dsDecVal,   used for decimal values
+    - dsBaseN,    used for values with a base other than 10
+    - dsFloat,    used for float values
+    - dsChar,     used for a character
+    - dsString,   used for strings
+    - dsComment,  used for comments
+    - dsOthers,   used for 'other' things
+    - dsAlert,    used for warning messages
+    - dsFunction, used for function calls
+    - dsRegionMarker, used for region markers
+    - dsError,    used for error highlighting.
+-->
+<!ENTITY % defStyles "dsNormal|dsKeyword|dsDataType|dsDecVal|dsBaseN|dsFloat|dsChar|dsString|dsComment|dsOthers|dsAlert|dsFunction|dsRegionMarker|dsError">
+
+<!-- Language specification
+  name:        The name of this syntax description. Used in the Highlightning Mode menu
+  section:     The logical group to which this syntax description belongs. Used for sub menus
+  extensions:  A file glob or pattern to decide for which documents to use this syntax description
+  style:       Attribute style that this highlighter provides to kate scripts [optional]
+  mimetype:    A list of mimetypes to decide for which documents to use this syntax description [optional]
+  version:     Version number of this syntax description [optional]
+  kateversion: Kate version required for using this file [optional]
+  casesensitive: Whether text is matched case sensitive. [boolean, optional, default=true] FIXME: This is not implemented yet
+  priority:    Priority of this language, if more than one are usable for the file [optional]
+  author:      Name of author of this hl file [optional]
+  license:     License for this hl file [optional]
+  indenter:    Name of the Indenter to use for this highlighting mode per default, like "cstyle" [optional]
+  hidden:      Should it be hidden in menu [boolean, optional, default=false]
+
+TODO
+  - Which matches are affected by casesensitive? keyword, RegExpr, StringDetect, WordDetect...?
+
+WARNING: due to helper scripts, the language opening tag must be on a
+*single line* and *cannot* be split in multiple lines.
+
+-->
+<!ELEMENT language (highlighting, general?, spellchecking?)>
+<!ATTLIST language
+  name          CDATA       #REQUIRED
+  section       NMTOKEN     #REQUIRED
+  extensions    CDATA       #REQUIRED
+  version       CDATA       #REQUIRED
+  kateversion   CDATA       #REQUIRED
+  style         CDATA       #IMPLIED
+  mimetype      CDATA       #IMPLIED
+  casesensitive (%boolean;) #IMPLIED
+  priority      CDATA       #IMPLIED
+  author        CDATA       #IMPLIED
+  license       CDATA       #IMPLIED
+  indenter      CDATA       #IMPLIED
+  hidden        (%boolean;) #IMPLIED
+>
+
+<!-- General options -->
+<!ELEMENT general (folding|comments|keywords|indentation|emptyLines)*>
+
+<!-- List of folding
+  indentationsensitive: If true, the code folding is indentation based.
+-->
+<!ELEMENT folding EMPTY>
+<!ATTLIST folding
+  indentationsensitive (%boolean;) #IMPLIED
+>
+
+<!-- List of comments -->
+<!ELEMENT comments (comment)+>
+
+<!-- Comment specification
+  name:         Type of this comment. Allowed are 'singleLine' and 'multiLine'
+  start:        The comment starts with this string
+  end:          The comment ends with this string [optional]
+  region:       The region name of the foldable multiline comment. If you have
+                beginRegion="Comment" ... endRegion="Comment" you should use
+                region="Comment". This way uncomment works even if you do not
+                select all the text of the multiline comment.
+  position:     only availalbe for type singleLine. Default is column0, to insert
+                the single line comment characters after the whitespaces
+                (= before the first non space) set position to "afterwhitespace"
+-->
+<!ELEMENT comment EMPTY>
+<!ATTLIST comment
+  name      (singleLine|multiLine)  #REQUIRED
+  start     CDATA                   #REQUIRED
+  end       CDATA                   #IMPLIED
+  region    CDATA                   #IMPLIED
+  position  (afterwhitespace)       #IMPLIED
+>
+
+<!-- Keyword options
+  casesensitive:        Whether keywords are matched case sensitive. [boolean, optional, default=true]
+  weakDeliminator:      Add weak deliminators [optional, default: ""]
+  additionalDeliminator: Add deliminators [optional]
+  wordWrapDeliminator:  characters that are used to wrap long lines [optional]
+
+-->
+<!ELEMENT keywords EMPTY>
+<!ATTLIST keywords
+  casesensitive         (%boolean;) #IMPLIED
+  weakDeliminator       CDATA       #IMPLIED
+  additionalDeliminator CDATA       #IMPLIED
+  wordWrapDeliminator   CDATA       #IMPLIED
+>
+
+<!-- Indentation options
+  mode:        indentation mode to use
+
+TODO
+  - Explain (weak) deliminators
+-->
+<!ELEMENT indentation EMPTY>
+<!ATTLIST indentation
+  mode         CDATA   #IMPLIED
+>
+
+<!-- Treat lines that match a given regular expression as empty line. This is
+  needed for example in Python for comments (#...), as then the indentation
+  based folding should ignore the line.
+  This is only implemented for indentation based folding. If the folding
+  is not indentation based, the emptyLines are not used.
+-->
+<!ELEMENT emptyLines (emptyLine*)>
+
+<!-- One empty line regular expression.
+  regexpr:       The regular expression, example from python: ^\s*#.*$
+  casesensitive: Sets, whether the regular expression match is performed case sesitive
+-->
+<!ELEMENT emptyLine EMPTY>
+<!ATTLIST emptyLine
+  regexpr       CDATA       #REQUIRED
+  casesensitive (%boolean;) #IMPLIED
+>
+
+
+<!-- Highlighting specification -->
+<!ELEMENT highlighting (list*, contexts, itemDatas)>
+<!ATTLIST highlighting
+>
+
+<!-- List of items
+  name:     Name of this list
+-->
+<!ELEMENT list (item)*>
+<!ATTLIST list
+  name  CDATA   #REQUIRED
+>
+
+<!-- List item
+  contains string used in <keyword>
+-->
+<!ELEMENT item (#PCDATA)>
+
+<!-- List of contexts -->
+<!ELEMENT contexts (context)+>
+
+<!-- context specification
+  name:             The name of this context specification. Used in '*Context' attributes [optional]
+  attribute:        The name of the ItemData to be used for matching text
+  lineEndContext:   Next context if end of line is encountered
+  lineBeginContext: Next context if begin of line is encountered [optional]
+  fallthrough:      Use a fallthrough context [optional]
+  fallthroughContext: Fall through to this context [optional]
+  dynamic:          Dynamic context [boolean, optional]
+  noIndentationBasedFolding: Python uses indentation based folding. However, Python has parts where
+                    it does not use indentation based folding (e.g. for """ strings). In this case
+		    switch to an own context and set this attribute to true. Then the indentation
+		    based folding will ignore this parts and not change folding markers. [optional]
+
+TODO:
+  - Explain fallthrough.
+  - Do we need fallthrough at all? It could be true, if fallthroughContext is set, false otherwise.
+  - Make lineEndContext optional, defaults to '#stay'. Reasonable?
+-->
+<!ELEMENT context (keyword | Float | HlCOct | HlCHex | HlCFloat | Int | DetectChar | Detect2Chars | AnyChar | StringDetect | WordDetect | RegExpr | LineContinue | HlCStringChar | RangeDetect | HlCChar | IncludeRules | DetectSpaces | DetectIdentifier)*>
+<!ATTLIST context
+  name              CDATA       #IMPLIED
+  attribute         CDATA       #REQUIRED
+  lineEndContext    CDATA       #REQUIRED
+  lineBeginContext  CDATA       #IMPLIED
+  fallthrough       (%boolean;) #IMPLIED
+  fallthroughContext CDATA      #IMPLIED
+  dynamic           (%boolean;) #IMPLIED
+  noIndentationBasedFolding (%boolean;) #IMPLIED
+>
+
+<!-- Common attributes
+  attribute:    The name of the ItemData to be used for matching text
+  context:      The name of the context to go to when this rule matches
+  beginRegion:  Begin a region of type beginRegion [optional]
+  endRegion:    End a region of type endRegion [optional]
+  firstNonSpace: should this rule only match at first non-space char in line?
+  column: should this rule only match at given column in line (column == count of chars in front)
+-->
+<!ENTITY % commonAttributes
+ "attribute     CDATA       #IMPLIED
+  context       CDATA       #IMPLIED
+  beginRegion   CDATA       #IMPLIED
+  endRegion     CDATA       #IMPLIED
+  lookAhead     (%boolean;) #IMPLIED
+  firstNonSpace (%boolean;) #IMPLIED
+  column        CDATA       #IMPLIED"
+>
+
+<!-- Detect members of a keyword list
+  commonAttributes: Common attributes
+  insensitive:      Is this list case-insensitive? [boolean, optional, see note]
+  String:           Name of the list
+  weakDelimiter:    Use weak deliminator
+
+  By default, case sensitivity is determined from <keywords casesensitive> in
+  <general> (default=true), but can be overridden per-list with 'insensitive'.
+
+TODO:
+  - Should be weakDeliminator
+  - Explain deliminator
+  - Doesn't seem to be supported in highligh.cpp
+-->
+<!ELEMENT keyword EMPTY>
+<!ATTLIST keyword
+  %commonAttributes;
+  insensitive   CDATA #IMPLIED
+  String        CDATA #REQUIRED
+  weakDelimiter CDATA #IMPLIED
+>
+
+<!-- Detect a floating point number
+  commonAttributes: Common attributes
+  AnyChar is allowed as a child rule. TODO: The source code allows
+  *all* rules to be child rules, shall we change the DTD in some way?
+-->
+<!ELEMENT Float (AnyChar)*>
+<!ATTLIST Float
+  %commonAttributes;
+>
+
+<!-- Detect an octal number
+  commonAttributes: Common attributes
+-->
+<!ELEMENT HlCOct EMPTY>
+<!ATTLIST HlCOct
+  %commonAttributes;
+>
+
+<!-- Detect a hexadecimal number
+  commonAttributes: Common attributes
+-->
+<!ELEMENT HlCHex EMPTY>
+<!ATTLIST HlCHex
+  %commonAttributes;
+>
+
+<!-- Detect a C-style floating point number
+  commonAttributes: Common attributes
+-->
+<!ELEMENT HlCFloat EMPTY>
+<!ATTLIST HlCFloat
+  %commonAttributes;
+>
+
+<!-- Detect C-style character
+  commonAttributes: Common attributes
+
+TODO
+  - Did I get this right?
+-->
+<!ELEMENT HlCChar EMPTY>
+<!ATTLIST HlCChar
+  %commonAttributes;
+>
+
+<!-- Detect an integer number
+  commonAttributes: Common attributes
+  StringDetect is allowed as a child rule. TODO: The source code allows
+  *all* rules to be child rules, shall we change the DTD in some way?
+-->
+<!ELEMENT Int (StringDetect)*>
+<!ATTLIST Int
+  %commonAttributes;
+>
+
+<!-- Detect a single character
+  commonAttributes: Common attributes
+  char:             The character to look for
+  dynamic:          Uses 0 ... 9 as placeholders for dynamic arguments (in fact, first char of arg...) [boolean, optional, default=false]
+-->
+<!ELEMENT DetectChar EMPTY>
+<!ATTLIST DetectChar
+  %commonAttributes;
+  char          CDATA   #REQUIRED
+  dynamic       (%boolean;) #IMPLIED
+>
+
+<!-- Detect two characters
+  commonAttributes: Common attributes
+  char:             The first character
+  char1:            The second character
+  dynamic:          Uses 0 ... 9 as placeholders for dynamic arguments (in fact, first char of arg...) [boolean, optional, default=false]
+-->
+<!ELEMENT Detect2Chars EMPTY>
+<!ATTLIST Detect2Chars
+  %commonAttributes;
+  char          CDATA   #REQUIRED
+  char1         CDATA   #REQUIRED
+  dynamic       (%boolean;) #IMPLIED
+>
+
+<!-- Detect any group of characters
+  commonAttributes: Common attributes
+  String:           A string representing the characters to look for
+
+TODO
+  - Description is not descriptive enough, I'm not sure what it exactly does:-(
+-->
+<!ELEMENT AnyChar EMPTY>
+<!ATTLIST AnyChar
+  %commonAttributes;
+  String        CDATA   #REQUIRED
+>
+
+<!-- Detect a string
+  commonAttributes: Common attributes
+  String:           The string to look for
+  insensitive:      Whether the string is matched case INsensitive. [boolean, optional, default=false]
+  dynamic:          Uses %0 ... %9 as placeholders for dynamic arguments [boolean, optional, default=false]
+
+TODO
+  - What's default of insensitive? I'm not sure...
+-->
+<!ELEMENT StringDetect EMPTY>
+<!ATTLIST StringDetect
+  %commonAttributes;
+  String        CDATA       #REQUIRED
+  insensitive   (%boolean;)  #IMPLIED
+  dynamic       (%boolean;) #IMPLIED
+>
+
+<!-- Detect a word, i.e. a string at word boundaries
+  commonAttributes: Common attributes
+  String:           The string to look for
+  insensitive:      Whether the string is matched case INsensitive. [boolean, optional, default=false]
+  dynamic:          Uses %0 ... %9 as placeholders for dynamic arguments [boolean, optional, default=false]
+
+TODO
+  - What's default of insensitive? I'm not sure...
+-->
+<!ELEMENT WordDetect EMPTY>
+<!ATTLIST WordDetect
+  %commonAttributes;
+  String        CDATA       #REQUIRED
+  insensitive   (%boolean;)  #IMPLIED
+  dynamic       (%boolean;) #IMPLIED
+>
+
+<!-- Detect a match of a regular expression
+  commonAttributes: Common attributes
+  String:           The regular expression pattern
+  insensitive:      Whether the text is matched case INsensitive. [boolean, optional, default=false]
+  minimal:          Wheather to use minimal matching for wild cards in the pattern [boolean, optional, default='false']
+  dynamic:          Uses %0 ... %9 as placeholders for dynamic arguments [boolean, optional, default=false]
+-->
+<!ELEMENT RegExpr EMPTY>
+<!ATTLIST RegExpr
+  %commonAttributes;
+  String        CDATA       #REQUIRED
+  insensitive   (%boolean;) #IMPLIED
+  minimal       (%boolean;) #IMPLIED
+  dynamic       (%boolean;) #IMPLIED
+>
+
+<!-- Detect a line continuation
+  commonAttributes: Common attributes
+-->
+<!ELEMENT LineContinue EMPTY>
+<!ATTLIST LineContinue
+  %commonAttributes;
+>
+
+<!-- Detect a C-style escaped character
+  commonAttributes: Common attributes
+
+TODO:
+  - Did I get this right? Only one character, or a string?
+-->
+<!ELEMENT HlCStringChar EMPTY>
+<!ATTLIST HlCStringChar
+  %commonAttributes;
+>
+
+<!-- Detect a range of characters
+  commonAttributes: Common attributes
+  char:             The character starting the range
+  char1:            The character terminating the range
+-->
+<!ELEMENT RangeDetect EMPTY>
+<!ATTLIST RangeDetect
+  %commonAttributes;
+  char          CDATA   #REQUIRED
+  char1         CDATA   #REQUIRED
+>
+
+<!-- Include Rules of another context
+  context:             The name of the context to include
+  includeAttrib:       If this is true, the host context of the IncludeRules
+                       will be given the attribute of the source context
+-->
+<!ELEMENT IncludeRules EMPTY>
+<!ATTLIST IncludeRules
+  context       CDATA   #REQUIRED
+  includeAttrib (%boolean;) #IMPLIED
+>
+
+<!-- Detect all following Spaces
+-->
+<!ELEMENT DetectSpaces EMPTY>
+<!ATTLIST DetectSpaces
+          %commonAttributes;
+>
+
+<!-- Detect an Identifier ( == LETTER(LETTER|NUMBER|_)*)
+     -->
+<!ELEMENT DetectIdentifier EMPTY>
+<!ATTLIST DetectIdentifier
+          %commonAttributes;
+>
+
+<!-- List of attributes -->
+<!ELEMENT itemDatas (itemData)+>
+<!ATTLIST itemDatas
+>
+
+<!-- Attribute specification
+  name          CDATA   #REQUIRED       The name of this attribute
+  defStyleNum   CDATA   #REQUIRED       The index of the default style to use
+  color         CDATA   #IMPLIED        Color for this style, either a hex triplet, a name or some other format recognized by Qt [optional]
+  selColor      CDATA   #IMPLIED        The color for this style when text is selected [optional]
+  italic        CDATA   #IMPLIED        Whether this attribute should be rendered using an italic typeface [optional, boolean, default=false]
+  bold          CDATA   #IMPLIED        Whether this attribute should be renederd using a bold typeface [optional, boolean, default=false]
+  underline     CDATA   #IMPLIED        Whether this attribute should be underlined [optional, boolean, default=false]
+  strikeOut     CDATA   #IMPLIED        Whether this attribute should be striked out [optional, boolean, default=false]
+  backgroundColor    CDATA #IMPLIED     The background color for this style [optional]
+  selBackgroundColor CDATA #IMPLIED     The background color for this style when text is selected [optional]
+  spellChecking      CDATA #IMPLIED     Whether this attribute should be spell checked [optional, boolean, default=true]
+-->
+<!ELEMENT itemData EMPTY>
+<!ATTLIST itemData
+  name          CDATA   #REQUIRED
+  defStyleNum   (%defStyles;) #REQUIRED
+  color         CDATA   #IMPLIED
+  selColor      CDATA   #IMPLIED
+  italic        (%boolean;) #IMPLIED
+  bold          (%boolean;) #IMPLIED
+  underline     (%boolean;) #IMPLIED
+  strikeOut     (%boolean;) #IMPLIED
+  backgroundColor    CDATA  #IMPLIED
+  selBackgroundColor CDATA  #IMPLIED
+  spellChecking (%boolean;) #IMPLIED
+>
+
+<!-- encodingPolicy type
+  Attributes that are of type 'encodingPolicy' allow the following values:
+  'EncodeAlways', 'EncodeWhenPresent' and 'EncodeNever'
+-->
+<!ENTITY % encodingPolicy "EncodeAlways|EncodeWhenPresent|EncodeNever">
+
+<!-- Spellchecking specification -->
+<!ELEMENT spellchecking (configuration?, encodings?)>
+<!ATTLIST spellchecking
+>
+
+<!-- List of character encodings -->
+<!ELEMENT encodings (encoding)+>
+<!ATTLIST encodings
+>
+
+<!-- Encoding specification
+  sequence       CDATA        #REQUIRED  Character sequence of the encoding; must not contain new-line characters, i.e. \n or \r
+  character      CDATA        #IMPLIED   Encoded character; must be of length 1
+  ignored        (%boolean;)  #IMPLIED   If true, then the encoding sequence is ignored for spellchecking
+-->
+<!ELEMENT encoding EMPTY>
+<!ATTLIST encoding
+  string         CDATA        #REQUIRED
+  char           CDATA        #IMPLIED
+  ignored        (%boolean;)  #IMPLIED
+>
+
+<!-- Spellchecking configuration
+  encodingReplacementPolicy       (%encodingPolicy;)     #IMPLIED  Policy for replacing encoded characters in replacements for misspelled words
+-->
+<!ELEMENT configuration EMPTY>
+<!ATTLIST configuration
+  encodingReplacementPolicy   (%encodingPolicy;)   #IMPLIED
+>
diff --git a/xml/latex.xml b/xml/latex.xml
new file mode 100644
--- /dev/null
+++ b/xml/latex.xml
@@ -0,0 +1,700 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="LaTeX" version="5" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz" mimetype="text/x-tex" casesensitive="1" author="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)" license="LGPL" >
+  <highlighting>
+    <contexts>
+      <!-- Normal text -->
+      <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="\\begin(?=[^a-zA-Z])" attribute="Structure" context="FindBeginEnvironment" beginRegion="block" />
+        <RegExpr String="\\end(?=[^a-zA-Z])" attribute="Structure" context="FindEndEnvironment" />
+        <RegExpr String="\\(cite|citet|citep|parencite|autocite|Autocite|citetitle)\*(?=[^a-zA-Z])" attribute="Structure" context="Label"/>
+        <RegExpr String="\\(documentclass|includegraphics|include|usepackage|bibliography|bibliographystyle)(?=[^a-zA-Z])" attribute="Builtin Macro" context="FancyLabel"/>
+        <RegExpr String="\\(cites|Cites|parencites|Parencites|autocites|Autocites|supercites|footcites|Footcites)(?=[^a-zA-Z])" attribute="Structure" context="FancyLabel"/>
+        <RegExpr String="\\(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])" attribute="Structure" context="Label"/>
+        <RegExpr String="\\(subref\*?|cref\*?|label|pageref|autoref|ref|vpageref|vref|pagecite|eqref)(?=[^a-zA-Z])" attribute="Structure" context="Label"/>
+        <RegExpr String="\\(part|chapter|section|subsection|subsubsection|paragraph|subparagraph)\*?\s*(?=[\{\[])" attribute="Structure" context="Sectioning"/>
+        <RegExpr String="\\(input|hspace|hspace\*|vspace|vspace\*|rule|special|setlength|newboolean|setboolean|setcounter|geometry|textcolor|definecolor|column)(?=[^a-zA-Z])" attribute="Macro" context="SpecialCommand"/>
+        <RegExpr String="\\(footnote)\*?\s*(?=[\{\[])" attribute="Macro" context="Footnoting"/>
+        <RegExpr String="\\(renewcommand|providenewcommand|newcommand)\*?(?=[^a-zA-Z])" attribute="Macro" context="NewCommand"/>
+        <RegExpr String="\\(e|g|x)?def(?=[^a-zA-Z])" attribute="Macro" context="DefCommand"/>
+        <RegExpr String="&lt;&lt;.*&gt;&gt;=" attribute="Normal Text" context="NoWeb" />
+        <StringDetect String="\(" attribute="Math" context="MathMode" />
+        <StringDetect String="\[" attribute="Math" context="MathModeEquation" beginRegion="mathMode" />
+        <WordDetect String="\iffalse" attribute="Comment" context="Multiline Comment"/>
+        <StringDetect String="\ensuremath{" attribute="Math" context="MathModeEnsure"/>
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <StringDetect String="$$" attribute="Math" context="MathModeDisplay" beginRegion="mathMode" />
+        <DetectChar char="$" attribute="Math" context="MathMode" />
+        <RegExpr String="%\s*BEGIN.*$" attribute="Region Marker" context="#stay" beginRegion="regionMarker" firstNonSpace="true" />
+        <RegExpr String="%\s*END.*$" attribute="Region Marker" context="#stay" endRegion="regionMarker" firstNonSpace="true" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+      </context>
+
+        <!-- NoWeb -->
+      <context name="NoWeb" attribute="Normal Text" lineEndContext="#stay" >
+        <RegExpr String="^\s*@\s*" attribute="Normal Text" context="#pop" />
+      </context>
+
+      <!-- LaTeX sectioning commands -->
+      <context name="Sectioning" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\[[^\]]*\]" attribute="Normal Text" context="#stay"/>
+        <DetectChar char=" " attribute="Normal Text" context="#stay"/>
+        <DetectChar char="{" attribute="Normal Text" context="SectioningInside"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+      </context>
+      <context name="SectioningInside" attribute="Sectioning Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="SectioningInside"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <StringDetect String="\(" attribute="Sectioning Math" context="SectioningMathMode" />
+        <DetectChar char="\" attribute="Sectioning Macro" context="SectioningContrSeq"/>
+        <DetectChar char="$" attribute="Sectioning Math" context="SectioningMathMode" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+      </context>
+      <context name="SectioningContrSeq" attribute="Macro" lineEndContext="#pop">
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z]+(\+?|\*{0,3})" attribute="Sectioning Macro" context="#pop"/>
+        <RegExpr String="[^a-zA-Z]" attribute="Sectioning Macro" context="#pop" />
+      </context>
+      <context name="SectioningMathMode" attribute="Sectioning Math" lineEndContext="#stay">
+        <StringDetect String="$$" attribute="Error" context="#stay" />
+        <DetectChar char="$" attribute="Sectioning Math" context="#pop" />
+        <Detect2Chars char="\" char1=")" attribute="Sectioning Math" context="#pop" />
+        <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" />
+        <DetectChar char="\" attribute="Sectioning Macro Mathmode" context="SectioningMathContrSeq"/>
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+      </context>
+      <context name="SectioningMathContrSeq" attribute="Sectioning Macro Mathmode" lineEndContext="#pop">
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z]+\*?" attribute="Sectioning Macro Mathmode" context="#pop"/>
+        <RegExpr String="[^a-zA-Z]" attribute="Sectioning Macro Mathmode" context="#pop" />
+      </context>
+
+      <!-- LaTeX Footnote commands -->
+      <context name="Footnoting" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\[[^\]]*\]" attribute="Normal Text" context="#stay"/>
+        <DetectChar char=" " attribute="Normal Text" context="#stay"/>
+        <DetectChar char="{" attribute="Normal Text" context="FootnotingInside"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+      </context>
+      <context name="FootnotingInside" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="FootnotingInside"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <StringDetect String="\(" attribute="Math" context="FootnotingMathMode" />
+        <DetectChar char="$" attribute="Math" context="FootnotingMathMode" />
+        <IncludeRules context="Normal Text" />
+      </context>
+      <context name="FootnotingMathMode" attribute="Math" lineEndContext="#stay">
+        <StringDetect String="$$" attribute="Error" context="#stay" />
+        <DetectChar char="$" attribute="Math" context="#pop" />
+        <Detect2Chars char="\" char1=")" attribute="Math" context="#pop" />
+        <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" />
+        <IncludeRules context="MathMode" />
+      </context>
+
+      <!-- LaTeX commands \newcommand and \renewcommand -->
+      <context name="NewCommand" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+          <RegExpr String="\s*\{\s*" attribute="Normal Text" context="LabelParameter"/>
+          <RegExpr String="\s*(\[\d\](\[[^\]]*\])?)?\{" attribute="Normal Text" context="LabelParameter"/>
+        <DetectChar char="}" attribute="Error" context="#pop"/>
+      </context>
+
+      <!-- LaTeX command \def -->
+      <context name="DefCommand" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\s*\\[a-zA-Z]+[^\{]*\{" attribute="Normal Text" context="CommandParameterStart"/>
+        <DetectChar char="}" attribute="Error" context="#pop"/>
+      </context>
+
+      <!-- parse command argument -->
+      <context name="CommandParameterStart" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="CommandParameter"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop"/>
+        <RegExpr String="\\." attribute="Normal Text" context="#stay" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+      </context>
+      <context name="CommandParameter" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="CommandParameter"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <RegExpr String="\\." attribute="Normal Text" context="#stay" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+      </context>
+
+      <!-- LaTeX command in text mode -->
+      <context name="ContrSeq" attribute="Macro" lineEndContext="#pop">
+        <StringDetect String="verb*" attribute="Macro" context="Verb"/>
+        <RegExpr String="(Verb|verb)(?=[^a-zA-Z])" attribute="Macro" context="Verb"/>
+        <RegExpr String="(lstinline)(?=[^a-zA-Z])" attribute="Macro" context="Lstinline"/>
+        <RegExpr String="mint(?=[^a-zA-Z])" attribute="Macro" context="MintParam"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z@]+(\+?|\*{0,3})" attribute="Macro" context="#pop"/>
+        <RegExpr String="[^a-zA-Z]" attribute="Macro" context="#pop" />
+      </context>
+      <context name="ToEndOfLine" attribute="Normal Text" lineEndContext="#pop">
+      </context>
+
+      <!-- \mint command with parameter-->
+      <context name="MintParam" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="}" char1="[" attribute="Normal Text" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="Verb"/>
+        <DetectChar char="]" attribute="Normal Text" context="Verb"/>
+      </context>
+
+      <!-- verb command -->
+      <context name="Verb" attribute="Verbatim" lineEndContext="#pop#pop" >
+        <RegExpr String="(.)" attribute="Normal Text" dynamic="true" context="VerbEnd" />
+      </context>
+      <context name="VerbEnd" attribute="Verbatim" lineEndContext="#pop#pop#pop" dynamic="true" >
+        <StringDetect String="%1" attribute="Normal Text" context="#pop#pop#pop" dynamic="true" />
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[^%1\xd7]*" attribute="Verbatim" context="#stay" dynamic="true" />
+      </context>
+
+      <!-- lstinline command, different from verb as it takes options -->
+      <context name="Lstinline" attribute="Verbatim" lineEndContext="#pop#pop" >
+        <RegExpr String="\s*\[\s*" attribute="Normal Text" context="FancyLabelOption"/>
+        <RegExpr String="\s*\{\s*" attribute="Normal Text" context="LstinlineParameter"/>
+        <RegExpr String="(.)" attribute="Normal Text" dynamic="true" context="LstinlineEnd" />
+      </context>
+      <context name="LstinlineEnd" attribute="Verbatim" lineEndContext="#pop#pop#pop" dynamic="true" >
+        <StringDetect String="%1" attribute="Normal Text" context="#pop#pop#pop" dynamic="true" />
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[^%1\xd7]*" attribute="Verbatim" context="#stay" dynamic="true" />
+      </context>
+      <context name="LstinlineParameter" attribute="Verbatim" lineEndContext="#stay">
+        <RegExpr String="\s*\}\s*" attribute="Normal Text" context="#pop#pop#pop"/>
+      </context>
+
+      <!-- label -->
+      <context name="Label" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="\s*\{\s*" attribute="Normal Text" context="LabelParameter"/>
+        <RegExpr String="\s*\[\s*" attribute="Normal Text" context="LabelOption"/>
+        <RegExpr String="[^\[\{]+" attribute="Error" context="#stay"/>
+      </context>
+
+      <context name="LabelOption" attribute="Normal Text" lineEndContext="#stay">
+        <StringDetect String="\(" attribute="Math" context="MathMode" />
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathMode" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\s*\]\s*" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <context name="LabelParameter" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\s*\}\s*" attribute="Normal Text" context="#pop#pop"/>
+      </context>
+
+      <!-- labels from biblatex commands -->
+      <context name="FancyLabel" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+              <RegExpr String="\s*\{\s*" attribute="Normal Text" context="FancyLabelParameter"/>
+              <RegExpr String="\s*\[\s*" attribute="Normal Text" context="FancyLabelOption"/>
+              <RegExpr String="\s*\(\s*" attribute="Normal Text" context="FancyLabelRoundBrackets"/>
+      </context>
+
+      <context name="FancyLabelParameter" attribute="Environment" lineEndContext="#stay">
+        <StringDetect String="\(" attribute="Math" context="MathMode" />
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathMode" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\s*\}\s*" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <context name="FancyLabelOption" attribute="Option Text" lineEndContext="#stay">
+        <StringDetect String="\(" attribute="Math" context="MathMode" />
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathMode" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\s*\]\s*" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <context name="FancyLabelRoundBrackets" attribute="Normal Text" lineEndContext="#stay">
+              <StringDetect String="\(" attribute="Math" context="MathMode" />
+              <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+              <DetectChar char="$" attribute="Math" context="MathMode" />
+              <DetectChar char="%" attribute="Comment" context="Comment"/>
+              <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+              <RegExpr String="\s*\)\s*" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <!-- Special commands -->
+      <context name="SpecialCommand" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop">
+              <RegExpr String="\s*\{\s*" attribute="Normal Text" context="SpecialCommandParameterOption"/>
+      </context>
+
+      <context name="SpecialCommandParameterOption" attribute="Option Text" lineEndContext="#stay">
+        <StringDetect String="\(" attribute="Math" context="MathMode" />
+        <DetectChar char="\" attribute="Macro" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathMode" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\s*\}\s*" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <!-- end of an environment -->
+      <context name="FindEndEnvironment" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="EndEnvironment"/>
+        <RegExpr String="\S" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <context name="EndEnvironment" attribute="Environment" lineEndContext="#stay">
+        <RegExpr String="[a-zA-Z]" attribute="Environment" context="EndLatexEnv"/>
+        <RegExpr String="\s+" attribute="Error" context="#pop"/>
+        <RegExpr String="[^a-zA-Z]" attribute="Error" context="#pop"/>
+      </context>
+
+       <context name="EndLatexEnv" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" endRegion="block" context="#pop#pop#pop"/>
+        <RegExpr String="[a-zA-Z]+(\*)?" attribute="Environment" context="#stay"/>
+        <RegExpr String="\s+" attribute="Error" context="#stay"/>
+        <RegExpr String="[a-zA-Z]" attribute="Error" context="#pop#pop#pop"/>
+      </context>
+
+      <!-- start of an environment -->
+      <context name="FindBeginEnvironment" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Normal Text" context="BeginEnvironment"/>
+        <RegExpr String="\S" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <!-- filter the environment name and check the type -->
+      <context name="BeginEnvironment" attribute="Environment" lineEndContext="#stay">
+        <WordDetect String="lstlisting" attribute="Environment" context="ListingsEnvParam"/>
+        <WordDetect String="minted" attribute="Environment" context="MintedEnvParam"/>
+        <RegExpr String="((B|L)?Verbatim)" attribute="Environment" context="VerbatimEnvParam"/>
+        <RegExpr String="(verbatim|boxedverbatim)" attribute="Environment" context="VerbatimEnv"/>
+        <RegExpr String="comment" attribute="Environment" context="CommentEnv"/>
+        <RegExpr String="(alignat|xalignat|xxalignat)" attribute="Environment" context="MathEnvParam"/>
+        <RegExpr String="(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|IEEEeqnarray|IEEEeqnarraybox|smallmatrix|pmatrix|bmatrix|Bmatrix|vmatrix|Vmatrix|cases)" attribute="Environment" context="MathEnv"/>
+        <RegExpr String="(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)" attribute="Environment" context="TabEnv"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z]" attribute="Environment" context="LatexEnv"/>
+        <RegExpr String="\s+" attribute="Error" context="#pop"/>
+        <RegExpr String="[^a-zA-Z\xd7]" attribute="Error" context="#pop"/>
+      </context>
+
+      <!-- environment type 1: normal -->
+      <context name="LatexEnv" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop"/>
+        <RegExpr String="[a-zA-Z]+" attribute="Environment" context="#stay"/>
+        <RegExpr String="\s+" attribute="Error" context="#stay"/>
+       <IncludeRules context="EnvCommon" />
+      </context>
+
+      <!-- environment type 2: verbatim without parameter -->
+      <context name="VerbatimEnv" attribute="Environment" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="Verbatim"/>
+        <RegExpr String="[a-zA-Z]" attribute="Environment" lookAhead="true" context="#pop"/>
+        <IncludeRules context="EnvCommon" />
+       </context>
+
+      <!-- environment type 3: verbatim with optional parameter -->
+      <context name="VerbatimEnvParam" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="}" char1="[" attribute="Normal Text" context="#stay" />
+        <DetectChar char="}" attribute="Normal Text" context="Verbatim"/>
+        <DetectChar char="]" attribute="Normal Text" context="Verbatim"/>
+      </context>
+
+      <!-- environment type 4: listings environment with optional parameter and HL switching-->
+      <context name="ListingsEnvParam" attribute="Normal Text" fallthrough="true" fallthroughContext="Verbatim" lineEndContext="#stay">
+        <Detect2Chars char="}" char1="[" attribute="Normal Text" context="#stay" />
+        <RegExpr String="language\s*=\s*(?=[^,]+)" minimal="true" attribute="Normal Text" context="HighlightningSelector"/>
+        <DetectChar char="}" attribute="Normal Text" context="Verbatim"/>
+        <DetectChar char="]" attribute="Normal Text" context="Verbatim"/>
+      </context>
+
+      <!-- environment type 5: minted environment with optional and HL switching -->
+      <context name="MintedEnvParam" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="}" char1="[" attribute="Normal Text" context="#stay" />
+        <Detect2Chars char="}" char1="{" attribute="Normal Text" context="HighlightningSelector"/>
+        <Detect2Chars char="]" char1="{" attribute="Normal Text" context="HighlightningSelector"/>
+        <DetectChar char="}" attribute="Normal Text" context="Verbatim"/>
+      </context>
+
+      <!-- Selector for different highlightning schemes, in case the language is not implemented we pop and thus fallback to verbatim -->
+      <context name="HighlightningSelector" attribute="Normal Text" lineEndContext="#stay">
+        <WordDetect String="C++" insensitive="true" context="HighlightningBeginC++"/>
+        <WordDetect String="Python" insensitive="true" context="HighlightningBeginPython"/>
+        <RegExpr String=".*(?=\}|\])" context="#pop"/>
+      </context>
+
+      <context name="HighlightningCommon" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="\\end\s*\{(lstlisting|minted)\*?\}" attribute="Structure" lookAhead="true" context="#pop#pop#pop#pop#pop#pop"/>
+      </context>
+
+      <context name="HighlightningBeginC++" attribute="Normal Text" lineEndContext="#stay">
+       <!-- Eat the trailing characters including } or ] after the language specification -->
+        <RegExpr String=".*(\}|\])" context="HighlightningC++"/>
+      </context>
+
+      <context name="HighlightningC++" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightningCommon"/>
+        <IncludeRules context="##C++" includeAttrib="true"/>
+      </context>
+
+      <context name="HighlightningBeginPython" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String=".*(\}|\])" context="HighlightningPython"/>
+      </context>
+
+      <context name="HighlightningPython" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="HighlightningCommon"/>
+        <IncludeRules context="##Python"/>
+      </context>
+
+      <!-- parse verbatim text -->
+      <context name="Verbatim" attribute="Verbatim" lineEndContext="#stay">
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\\end(?=\s*\{(verbatim|lstlisting|boxedverbatim|(B|L)?Verbatim|minted)\*?\})" attribute="Structure"  context="VerbFindEnd"/>
+      </context>
+
+      <!-- end of verbatim environment -->
+      <context name="VerbFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\s*\{" attribute="Normal Text" context="#stay"/>
+        <RegExpr String="(verbatim|lstlisting|boxedverbatim|(B|L)?Verbatim|minted)\*?" attribute="Environment" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop" endRegion="block"/>
+      </context>
+
+      <!-- begin comment environment  -->
+      <context name="CommentEnv" attribute="Environment" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="BlockComment"/>
+        <RegExpr String="[a-zA-Z]" attribute="Environment" lookAhead="true" context="#pop"/>
+        <IncludeRules context="EnvCommon" />
+       </context>
+
+      <!-- parse comment text -->
+      <context name="BlockComment" attribute="Comment" lineEndContext="#stay">
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\\end(?=\s*\{comment\*?\})" attribute="Structure" context="CommFindEnd"/>
+      </context>
+
+      <!-- end of comment environment -->
+      <context name="CommFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\s*\{" attribute="Normal Text" context="#stay"/>
+        <RegExpr String="comment\*?" attribute="Environment" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop" endRegion="block"/>
+      </context>
+
+      <!-- environment type 4: math environment with its own mathmode -->
+      <context name="MathEnv" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Normal Text" context="MathModeEnv"/>
+        <RegExpr String="[a-zA-Z]" attribute="Environment" lookAhead="true" context="#pop"/>
+        <IncludeRules context="EnvCommon" />
+      </context>
+
+      <!-- environment type 5: math environment with its own mathmode and parameter -->
+      <context name="MathEnvParam" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr String="\}\{[^\}]*\}" attribute="Normal Text" context="MathModeEnv"/>
+        <DetectChar char="}" attribute="Normal Text" context="MathModeEnv"/>
+        <RegExpr String="[a-zA-Z]" attribute="Environment" lookAhead="true" context="#pop"/>
+        <IncludeRules context="EnvCommon" />
+      </context>
+
+      <!-- environment common -->
+      <context name="EnvCommon" attribute="Environment" lineEndContext="#stay">
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\*(?=\})" attribute="Environment" context="#stay"/>
+        <RegExpr String="\*[^\}]*" attribute="Error" context="#pop#pop#pop"/>
+        <RegExpr String="[^a-zA-Z\xd7][^\}]*" attribute="Error" context="#pop#pop#pop"/>
+      </context>
+
+      <!-- parse math environment -->
+      <context name="MathModeEnv" attribute="Math" lineEndContext="#stay">
+        <RegExpr String="\\begin(?=[^a-zA-Z])" attribute="Structure" context="FindBeginEnvironment" beginRegion="block"/>
+        <RegExpr String="\\end(?=[^a-zA-Z])" attribute="Structure" context="MathFindEnd" endRegion="block"/>
+        <StringDetect String="\(" attribute="Error" context="#stay" />
+        <StringDetect String="\[" attribute="Error" context="#stay" />
+        <StringDetect String="\)" attribute="Error" context="#stay" />
+        <StringDetect String="\]" attribute="Error" context="#stay" />
+        <RegExpr String="\\(text|intertext|mbox)\s*(?=\{)" attribute="Macro Mathmode" context="MathModeText" />
+        <DetectChar char="\" attribute="Macro Mathmode" context="MathContrSeq"/>
+        <StringDetect String="$$" attribute="Error" context="#stay" />
+        <DetectChar char="$" attribute="Error" context="#stay" />
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="%\s*BEGIN.*$" attribute="Region Marker" context="#stay" beginRegion="regionMarker" firstNonSpace="true"/>
+        <RegExpr String="%\s*END.*$" attribute="Region Marker" context="#stay" endRegion="regionMarker" firstNonSpace="true"/>
+      </context>
+
+      <!-- end of math environment -->
+      <context name="MathFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\s*\{" attribute="Normal Text" context="#stay"/>
+        <RegExpr String="(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align(at)?|flalign|xalignat|xxalignat|IEEEeqnarray|IEEEeqnarraybox|smallmatrix|pmatrix|bmatrix|Bmatrix|vmatrix|Vmatrix|cases)\*?" attribute="Environment" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop"  endRegion="block"/>
+      </context>
+
+          <!-- environment type 9: tabular -->
+      <context name="TabEnv" attribute="Environment" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop#pop">
+        <DetectChar char="}" attribute="Normal Text" context="Tab"/>
+        <RegExpr String="[a-zA-Z]" attribute="Environment" lookAhead="true" context="#pop"/>
+        <IncludeRules context="EnvCommon" />
+       </context>
+
+      <!-- parse tabular text -->
+      <context name="Tab" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="&amp;" attribute="Ampersand" context="#stay"/>
+        <StringDetect String="@{" attribute="Column Separator" context="Column Separator"/>
+        <RegExpr String="\\end(?=\s*\{(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\*?\})" attribute="Structure"  context="TabFindEnd"/>
+        <IncludeRules context="Normal Text" />
+      </context>
+
+      <context name="Column Separator" attribute="Column Separator" lineEndContext="#stay">
+              <DetectChar char="{" attribute="Column Separator" context="Column Separator"/>
+              <DetectChar char="}" attribute="Column Separator" context="#pop"/>
+              <RegExpr String="." attribute="Column Separator"  context="#stay"/>
+<!--          the last regexp is very stupid. Suggestions are welcome! Fallthrough did not help-->
+      </context>
+
+      <!-- end of tabular environment -->
+      <context name="TabFindEnd" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\s*\{" attribute="Normal Text" context="#stay"/>
+        <RegExpr String="(tabularx|tabular|supertabular|mpsupertabular|xtabular|mpxtabular|longtable)\*?" attribute="Environment" context="#stay"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop#pop#pop#pop" endRegion="block"/>
+      </context>
+
+      <!-- math mode: starting with $ or \( -->
+      <context name="MathMode" attribute="Math" lineEndContext="#stay">
+        <StringDetect String="$$" attribute="Error" context="#stay" />
+        <DetectChar char="$" attribute="Math" context="#pop" />
+        <Detect2Chars char="\" char1=")" attribute="Math" context="#pop" />
+        <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" />
+        <IncludeRules context="MathModeCommon" />
+      </context>
+
+      <!-- math mode: starting with $$ -->
+      <context name="MathModeDisplay" attribute="Math" lineEndContext="#stay">
+        <StringDetect String="$$" attribute="Math" context="#pop" endRegion="mathMode" />
+        <DetectChar char="$" attribute="Error" context="#stay" />
+        <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" />
+        <Detect2Chars char="\" char1=")" attribute="Error" context="#stay" />
+        <IncludeRules context="MathModeCommon" />
+      </context>
+
+      <!-- math mode: starting with \[ -->
+      <context name="MathModeEquation" attribute="Math" lineEndContext="#stay">
+        <Detect2Chars char="\" char1="]" attribute="Math" context="#pop" endRegion="mathMode" />
+        <StringDetect String="$$" attribute="Error" context="#stay" />
+        <DetectChar char="$" attribute="Error" context="#stay" />
+        <Detect2Chars char="\" char1=")" attribute="Error" context="#stay" />
+        <IncludeRules context="MathModeCommon" />
+      </context>
+
+      <!-- math mode: \ensuremath{...} !-->
+      <context name="MathModeEnsure" attribute="Math" lineEndContext="#stay">
+              <DetectChar char="{" attribute="Math" context="MathModeEnsure" />
+              <DetectChar char="}" attribute="Math" context="#pop" />
+              <IncludeRules context="MathModeCommon" />
+      </context>
+
+      <!-- math mode common -->
+      <context name="MathModeCommon" attribute="Math" lineEndContext="#stay">
+        <RegExpr String="\\(begin|end)\s*\{(equation|displaymath|eqnarray|subeqnarray|math|multline|gather|align|flalign|alignat|xalignat|xxalignat|IEEEeqnarray)\*?\}" attribute="Error" context="#stay"/>
+        <RegExpr String="\\begin(?=[^a-zA-Z])" attribute="Macro Mathmode" context="#stay" beginRegion="block" />
+        <RegExpr String="\\end(?=[^a-zA-Z])" attribute="Macro Mathmode" context="#stay" endRegion="block" />
+        <RegExpr String="\\(text|intertext|mbox)\s*(?=\{)" attribute="Macro Mathmode" context="MathModeText" />
+        <DetectChar char="\" attribute="Macro Mathmode" context="MathContrSeq"/>
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <RegExpr String="%\s*BEGIN.*$" attribute="Region Marker" context="#stay" beginRegion="regionMarker" firstNonSpace="true"/>
+        <RegExpr String="%\s*END.*$" attribute="Region Marker" context="#stay" endRegion="regionMarker" firstNonSpace="true"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+      </context>
+
+      <!-- command in mathmode -->
+      <context name="MathContrSeq" attribute="Macro Mathmode" lineEndContext="#pop">
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z]+\*?" attribute="Macro Mathmode" context="#pop"/>
+        <RegExpr String="[^a-zA-Z]" attribute="Macro Mathmode" context="#pop" />
+      </context>
+
+      <!-- text in mathmode -->
+      <context name="MathModeText" attribute="Normal Text" lineEndContext="#stay" >
+         <DetectChar char="{" attribute="Normal Text" context="MathModeTextParameterStart"/>
+      </context>
+
+      <context name="MathModeTextParameterStart" attribute="Normal Text" lineEndContext="#stay" >
+        <RegExpr String="\\." attribute="Normal Text" context="#stay"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="\$.*\$" minimal="true" attribute="Math" context="#stay"/>
+        <DetectChar char="{" attribute="Normal Text" context="MathModeTextParameter"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop#pop"/>
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+      </context>
+
+      <context name="MathModeTextParameter" attribute="Normal Text" lineEndContext="#stay" >
+        <RegExpr String="\\." attribute="Normal Text" context="#stay"/>
+        <DetectChar char="{" attribute="Normal Text" context="MathModeTextParameter"/>
+        <DetectChar char="}" attribute="Normal Text" context="#pop"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+      </context>
+
+     <!--    iffalse aka multiline comment    -->
+        <context name="Multiline Comment" attribute="Comment" lineEndContext="#stay">
+          <WordDetect String="\fi" attribute="Comment" context="#pop"/>
+          <WordDetect String="\else" attribute="Comment" context="#pop"/>
+        </context>
+
+     <!-- comment -->
+      <context name="Comment" attribute="Comment" lineEndContext="#pop">
+              <RegExpr String="(FIXME|TODO):?" attribute="Alert" context="#stay"/>
+        <StringDetect String="\KileResetHL" attribute="Comment" context="Normal Text"/>
+        <StringDetect String="\KateResetHL" attribute="Comment" context="Normal Text"/>
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Option Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Macro" defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Comment" defStyleNum="dsComment" spellChecking="false"/>
+      <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>
+      <itemData name="Math" defStyleNum="dsSpecialString" spellChecking="false"/>
+      <!-- begin/end -->
+      <itemData name="Structure" defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Builtin Macro" defStyleNum="dsBuiltIn" spellChecking="false"/>
+      <itemData name="Macro Mathmode" defStyleNum="dsSpecialChar" spellChecking="false"/>
+      <itemData name="Environment" defStyleNum="dsExtension" spellChecking="false"/>
+      <itemData name="Verbatim" defStyleNum="dsVerbatimString" spellChecking="false"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
+      <itemData name="Bullet" defStyleNum="dsInformation" spellChecking="false"/>
+      <itemData name="Ampersand" defStyleNum="dsOperator" bold="1" spellChecking="false"/>
+      <itemData name="Column Separator" defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Alert" defStyleNum="dsAlert" spellChecking="false"/>
+      <!-- in section headers -->
+      <itemData name="Sectioning Text" defStyleNum="dsNormal" bold="1"/>
+      <itemData name="Sectioning Macro" defStyleNum="dsFunction" bold="1" spellChecking="false"/>
+      <itemData name="Sectioning Math" defStyleNum="dsSpecialString" bold="1"/>
+      <itemData name="Sectioning Macro Mathmode" defStyleNum="dsSpecialChar" bold="1" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <keywords weakDeliminator="\" wordWrapDeliminator=",{}[]"/>
+    <comments>
+      <comment name="singleLine" start="%" />
+    </comments>
+  </general>
+
+  <spellchecking>
+    <configuration encodingReplacementPolicy="EncodeWhenPresent"/>
+    <encodings>
+      <encoding char="&#192;" string="\`{A}" />
+      <encoding char="&#192;" string="\`A" />
+      <encoding char="&#193;" string="\'{A}" />
+      <encoding char="&#193;" string="\'A" />
+      <encoding char="&#194;" string="\^{A}" />
+      <encoding char="&#194;" string="\^A" />
+      <encoding char="&#195;" string="\~{A}" />
+      <encoding char="&#195;" string="\~A" />
+      <encoding char="&#196;" string="\&#34;{A}" />
+      <encoding char="&#196;" string="\&#34;A" />
+      <encoding char="&#197;" string="\AA{}" />
+      <encoding char="&#198;" string="\AE{}" />
+      <encoding char="&#199;" string="\c{C}" />
+      <encoding char="&#200;" string="\`{E}" />
+      <encoding char="&#200;" string="\`E" />
+      <encoding char="&#201;" string="\'{E}" />
+      <encoding char="&#201;" string="\'E" />
+      <encoding char="&#202;" string="\^{E}" />
+      <encoding char="&#202;" string="\^E" />
+      <encoding char="&#203;" string="\&#34;{E}" />
+      <encoding char="&#203;" string="\&#34;E" />
+      <encoding char="&#204;" string="\`{I}" />
+      <encoding char="&#204;" string="\`I" />
+      <encoding char="&#205;" string="\'{I}" />
+      <encoding char="&#205;" string="\'I" />
+      <encoding char="&#206;" string="\^{I}" />
+      <encoding char="&#206;" string="\^I" />
+      <encoding char="&#207;" string="\&#34;{I}" />
+      <encoding char="&#207;" string="\&#34;I" />
+      <encoding char="&#208;" string="\DH{}" />
+      <encoding char="&#209;" string="\~{N}" />
+      <encoding char="&#209;" string="\~N" />
+      <encoding char="&#210;" string="\`{O}" />
+      <encoding char="&#210;" string="\`O" />
+      <encoding char="&#211;" string="\'{O}" />
+      <encoding char="&#211;" string="\'O" />
+      <encoding char="&#212;" string="\^{O}" />
+      <encoding char="&#212;" string="\^O" />
+      <encoding char="&#213;" string="\~{O}" />
+      <encoding char="&#213;" string="\~O" />
+      <encoding char="&#214;" string="\&#34;{O}" />
+      <encoding char="&#214;" string="\&#34;O" />
+      <encoding char="&#216;" string="\O{}" />
+      <encoding char="&#217;" string="\`{U}" />
+      <encoding char="&#217;" string="\`U" />
+      <encoding char="&#218;" string="\'{U}" />
+      <encoding char="&#218;" string="\'U" />
+      <encoding char="&#219;" string="\^{U}" />
+      <encoding char="&#219;" string="\^U" />
+      <encoding char="&#220;" string="\&#34;{U}" />
+      <encoding char="&#220;" string="\&#34;U" />
+      <encoding char="&#221;" string="\'{Y}" />
+      <encoding char="&#221;" string="\'Y" />
+      <encoding char="&#222;" string="\TH{}" />
+      <encoding char="&#223;" string="\ss{}" />
+      <encoding char="&#224;" string="\`{a}" />
+      <encoding char="&#224;" string="\`a" />
+      <encoding char="&#225;" string="\'{a}" />
+      <encoding char="&#225;" string="\'a" />
+      <encoding char="&#226;" string="\^{a}" />
+      <encoding char="&#226;" string="\^a" />
+      <encoding char="&#227;" string="\~{a}" />
+      <encoding char="&#227;" string="\~a" />
+      <encoding char="&#228;" string="\&#34;{a}" />
+      <encoding char="&#228;" string="\&#34;a" />
+      <encoding char="&#229;" string="\aa{}" />
+      <encoding char="&#230;" string="\ae{}" />
+      <encoding char="&#231;" string="\c{c}" />
+      <encoding char="&#232;" string="\`{e}" />
+      <encoding char="&#232;" string="\`e" />
+      <encoding char="&#233;" string="\'{e}" />
+      <encoding char="&#233;" string="\'e" />
+      <encoding char="&#234;" string="\^{e}" />
+      <encoding char="&#234;" string="\^e" />
+      <encoding char="&#235;" string="\&#34;{e}" />
+      <encoding char="&#235;" string="\&#34;e" />
+      <encoding char="&#236;" string="\`{i}" />
+      <encoding char="&#236;" string="\`i" />
+      <encoding char="&#237;" string="\'{i}" />
+      <encoding char="&#237;" string="\'i" />
+      <encoding char="&#238;" string="\^{i}" />
+      <encoding char="&#238;" string="\^i" />
+      <encoding char="&#239;" string="\&#34;{i}" />
+      <encoding char="&#239;" string="\&#34;i" />
+      <encoding char="&#240;" string="\dh{}" />
+      <encoding char="&#241;" string="\~{n}" />
+      <encoding char="&#241;" string="\~n" />
+      <encoding char="&#242;" string="\`{o}" />
+      <encoding char="&#242;" string="\`o" />
+      <encoding char="&#243;" string="\'{o}" />
+      <encoding char="&#243;" string="\'o" />
+      <encoding char="&#244;" string="\^{o}" />
+      <encoding char="&#244;" string="\^o" />
+      <encoding char="&#245;" string="\~{o}" />
+      <encoding char="&#245;" string="\~o" />
+      <encoding char="&#246;" string="\&#34;{o}" />
+      <encoding char="&#246;" string="\&#34;o" />
+      <encoding char="&#248;" string="\o{}" />
+      <encoding char="&#249;" string="\`{u}" />
+      <encoding char="&#249;" string="\`u" />
+      <encoding char="&#250;" string="\'{u}" />
+      <encoding char="&#250;" string="\'u" />
+      <encoding char="&#251;" string="\^{u}" />
+      <encoding char="&#251;" string="\^u" />
+      <encoding char="&#252;" string="\&#34;{u}" />
+      <encoding char="&#252;" string="\&#34;u" />
+      <encoding char="&#253;" string="\'{y}" />
+      <encoding char="&#253;" string="\'y" />
+      <encoding char="&#254;" string="\th{}" />
+      <encoding char="&#255;" string="\&#34;{y}" />
+      <encoding char="&#255;" string="\&#34;y" />
+      <encoding string="''" ignored="true" />
+      <encoding string="\-" ignored="true" />
+    </encodings>
+  </spellchecking>
+</language>
diff --git a/xml/lex.xml b/xml/lex.xml
new file mode 100644
--- /dev/null
+++ b/xml/lex.xml
@@ -0,0 +1,144 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+  ========================================================================
+
+  LEX.XML supports syntax highlighting for Lex/Flex source under Kate.
+
+  Copyright (C) 2004 - Jan Villat <jan.villat@net2000.ch>
+  This code is released under the LGPL as part of kdelibs/kate.
+
+  ========================================================================
+
+  Updates for LEX.XML can be obtained from http://kate.kde.org/hl/
+
+  UPDATE HISTORY:-
+  2004.05.25 - LEX.XML 1.00        - First released.
+
+  TODO:-
+  - Add a mime type (cannot find it !?)
+  
+  ========================================================================
+-->
+<language name="Lex/Flex" version="2" kateversion="2.4" section="Sources" extensions="*.l;*.lex;*.flex" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">
+
+<highlighting>
+<contexts>
+  <context name="Pre Start" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Normal Text" context="Definitions" String="." lookAhead="true" beginRegion="definitions" />
+  </context>
+  <context name="Definitions" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="Detect C" />
+    <Detect2Chars attribute="Content-Type Delimiter" context="Rules" char="%" char1="%" beginRegion="rules" endRegion="definitions" />
+    <DetectChar attribute="Directive" context="Percent Command" char="%" />
+    <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" column="0"/>
+    <RegExpr attribute="Definition" context="Definition RegExpr" String="[A-Za-z_]\w*\s+" column="0"/>
+  </context>
+  <context name="Rules" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Rule RegExpr">
+    <IncludeRules context="Detect C" />
+    <Detect2Chars attribute="Content-Type Delimiter" context="User Code" char="%" char1="%" beginRegion="code" endRegion="rules" />
+  </context>
+  <context name="User Code" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="##C++" />
+  </context>
+  
+  <context name="Percent Command" attribute="Directive" lineEndContext="#pop">
+  </context>
+  <context name="Comment" attribute="Comment" lineEndContext="#stay">
+    <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" />
+  </context>
+
+  <context name="Definition RegExpr" attribute="RegExpr" lineEndContext="#pop">
+    <IncludeRules context="RegExpr Base" />
+    <RegExpr attribute="RegExpr" context="#stay" String="\S" />  
+    <RegExpr attribute="Alert" context="#stay" String=".*" />  
+  </context>
+  <context name="Rule RegExpr" attribute="RegExpr" lineEndContext="#pop">
+    <RegExpr attribute="Content-Type Delimiter" context="Start Conditions Scope" String="\{$" beginRegion="SCscope" />  
+    <IncludeRules context="RegExpr Base" />
+    <RegExpr attribute="RegExpr" context="#stay" String="\S" />  
+    <RegExpr attribute="Normal Text" context="Action" String="\s+" />  
+  </context>
+  <context name="RegExpr (" attribute="RegExpr" lineEndContext="#stay">
+    <IncludeRules context="RegExpr Base" />
+    <DetectChar attribute="RegExpr" context="#pop" char=")" />  
+    <RegExpr attribute="RegExpr" context="#stay" String="." />
+  </context>
+  <context name="RegExpr [" attribute="RegExpr" lineEndContext="#stay">
+    <RegExpr attribute="Backslash Code" context="#stay" String="\\." />
+    <DetectChar attribute="RegExpr" context="#pop" char="]" />  
+    <RegExpr attribute="RegExpr" context="#stay" String="." />
+  </context>
+  <context name="RegExpr {" attribute="RegExpr" lineEndContext="#stay">
+    <RegExpr attribute="Backslash Code" context="#stay" String="\\." />
+    <DetectChar attribute="RegExpr" context="#pop" char="}" />  
+    <RegExpr attribute="RegExpr" context="#stay" String="." />
+  </context>
+  <context name="RegExpr Q" attribute="RegExpr" lineEndContext="#stay">
+    <RegExpr attribute="Backslash Code" context="#stay" String="\\." />
+    <DetectChar attribute="RegExpr" context="#pop" char="&quot;" />  
+    <RegExpr attribute="RegExpr" context="#stay" String="." />
+  </context>
+  <context name="RegExpr Base" attribute="RegExpr" lineEndContext="#stay">
+    <RegExpr attribute="Backslash Code" context="#stay" String="\\." />
+    <DetectChar attribute="RegExpr" context="RegExpr (" char="(" />  
+    <DetectChar attribute="RegExpr" context="RegExpr [" char="[" />  
+    <DetectChar attribute="RegExpr" context="RegExpr {" char="{" />  
+    <DetectChar attribute="RegExpr" context="RegExpr Q" char="&quot;" />  
+  </context>
+  
+  <context name="Start Conditions Scope" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Rule RegExpr">
+    <RegExpr attribute="Content-Type Delimiter" context="#pop" String="\s*\}" endRegion="SCscope" />
+    <RegExpr attribute="Normal Text" context="Rule RegExpr" String="\s*" />
+  </context>
+  
+  <context name="Action" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="Action C">
+    <RegExpr attribute="Directive" context="#stay" String="\|\s*$" />
+    <Detect2Chars attribute="Content-Type Delimiter" context="Lex Rule C Bloc" char="%" char1="{" beginRegion="lexCbloc" />
+  </context>
+  
+  <context name="Detect C" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Normal Text" context="Indented C" String="^\s" />
+    <Detect2Chars attribute="Content-Type Delimiter" context="Lex C Bloc" char="%" char1="{" beginRegion="lexCbloc" column="0"/>
+  </context>
+  <context name="Indented C" attribute="Normal Text" lineEndContext="#pop">
+    <IncludeRules context="##C++" />
+  </context>
+  <context name="Lex C Bloc" attribute="Normal Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Content-Type Delimiter" context="#pop" char="%" char1="}" endRegion="lexCbloc" column="0"/>
+    <IncludeRules context="##C++" />
+  </context>
+  <context name="Lex Rule C Bloc" attribute="Normal Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Content-Type Delimiter" context="#pop" char="%" char1="}" endRegion="lexCbloc" />
+    <IncludeRules context="##C++" />
+  </context>
+  <context name="Normal C Bloc" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Normal Text" context="Normal C Bloc" char="{" beginRegion="bloc" />  
+    <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="bloc" />  
+    <IncludeRules context="##C++" />
+  </context>
+  <context name="Action C" attribute="Normal Text" lineEndContext="#pop">
+    <DetectChar attribute="Normal Text" context="Normal C Bloc" char="{" beginRegion="bloc" />  
+    <DetectChar attribute="Alert" context="#stay" char="}" />  
+    <IncludeRules context="##C++" />
+  </context>
+</contexts>
+
+<itemDatas>
+  <itemData name="Normal Text" defStyleNum="dsNormal" />
+  <itemData name="Definition" defStyleNum="dsDataType" />
+  <itemData name="Comment" defStyleNum="dsComment" />
+  <itemData name="Content-Type Delimiter" defStyleNum="dsBaseN" bold="1" />
+  <itemData name="Directive" defStyleNum="dsKeyword"/>
+  <itemData name="RegExpr" defStyleNum="dsString" />
+  <itemData name="Backslash Code" defStyleNum="dsString" bold="1" />
+  <itemData name="Alert" defStyleNum="dsAlert" />
+</itemDatas>
+
+</highlighting>
+<general>
+  <comments>
+    <comment name="multiLine" start="/*" end="*/" />
+  </comments>
+</general>
+</language>
diff --git a/xml/lilypond.xml b/xml/lilypond.xml
new file mode 100644
--- /dev/null
+++ b/xml/lilypond.xml
@@ -0,0 +1,1199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd" [
+  <!ENTITY b "(?![A-Za-z])">
+  <!ENTITY rest "\b[srR]&b;">
+  <!ENTITY pitch "\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)('+|,+|&b;)">
+  <!ENTITY duration "(\\(longa|breve)\b|(1|2|4|8|16|32|64|128|256|512|1024|2048)(?!\d))(\s*\.+)?(\s*\*\s*\d+(/\d+)?)*">
+  <!ENTITY dynamics "p{1,5}|mp|mf|f{1,5}|s?fp|sff?|spp?|[sr]?fz|cresc|decresc|dim">
+  <!ENTITY scripts "\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">
+  <!ENTITY keywords "accepts|alias|consists|defaultchild|denies|description|grobdescriptions|include|invalid|language|name|objectid|once|remove|sequential|simultaneous|type|version|score|book|bookpart">
+  <!ENTITY deprecatedkeywords "consistsend">
+
+  <!-- predefined commands, grouped, TODO: unravel other commands -->
+  <!ENTITY commands-heads "(aiken|funk|sacredHarp|southernHarmony|walker)Heads(Minor)?">
+  <!ENTITY commands-other1 "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)">
+  <!ENTITY commands-other2 "(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+&pitch;)?|killCues">
+  <!ENTITY commands-other3 "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*&duration;)?|pes|pitchedTrill">
+  <!ENTITY commands-other4 "pointAndClickO(ff|n)|quilisma|quoteDuring|relative(\s+&pitch;)?|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">
+  <!ENTITY commands-other5 "(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">
+  <!ENTITY commands-other6 "transpose(\s+&pitch;\s*&pitch;)?|transposition(\s+&pitch;)">
+  <!ENTITY commands-other7 "tweak|unfoldRepeats|virg(ul)?a|voice(One|Two|Three|Four)|withMusicProperty|cm|mm|in|pt|major|minor|ionian|locrian|aeolian|mixolydian|lydian|phrygian|dorian">
+
+  <!ENTITY deprecatedcommands "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">
+  <!ENTITY markupnotextargs "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">
+  <!ENTITY markupwithtextargs "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">
+  <!ENTITY deprecatedmarkup "bigger|h?center">
+  <!ENTITY headervars "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">
+
+  <!-- The '-new' entities are for for LilyPond 2.13.4 and higher, and '-old' for LilyPond up to 2.12 -->
+  <!ENTITY paper-margin "(top|bottom|left|right)-margin|(foot|head)-separation|indent|short-indent|paper-(height|width)|horizontal-shift|line-width">
+  <!ENTITY paper-margin-new "(inner|outer)-margin|two-sided|binding-offset">
+  <!ENTITY paper-spacing-old "(after|before|between)-title-space|between-system-(space|padding)|page-top-space|page-breaking-between-system-padding">
+  <!ENTITY paper-spacing-new "(after|before|between)-title-spacing|between-(scores-)?system-spacing|bottom-system-spacing|top-title-spacing|top-system-spacing|page-breaking-between-system-spacing">
+  <!ENTITY paper-systems "system-count">
+  <!ENTITY paper-systems-new "(min-|max-)?systems-per-page">
+  <!ENTITY paper-other "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">
+  <!ENTITY paper-markup "((even|odd)(Footer|Header)|(book|score|toc)Title|tocItem)Markup">
+  <!ENTITY papervars "&paper-margin;|&paper-margin-new;|&paper-spacing-old;|&paper-spacing-new;|&paper-systems;|&paper-systems-new;|&paper-other;|&paper-markup;">
+
+  <!ENTITY layoutvars "system-count|(short-)?indent">
+  <!ENTITY toplevelvars "dash(Hat|Plus|Dash|Bar|Larger|Dot|Underscore)|fermataMarkup|pipeSymbol|slashSeparator">
+  <!ENTITY performer "Beam|Control_track|Drum_note|Dynamic|Key|Lyric|Note|Piano_pedal|Slur|Staff|Swallow|Tempo|Tie|Time_signature">
+  <!ENTITY translator "Note_swallow|Rest_swallow|Skip_event_swallow|Timing">
+  <!ENTITY engraver0 "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">
+  <!ENTITY engraver1 "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">
+  <!ENTITY engraver2 "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">
+  <!ENTITY engravers00 "(&engraver0;)_engraver">
+  <!ENTITY engravers01 "(&engraver1;)_engraver">
+  <!ENTITY engravers02 "(&engraver2;)_engraver">
+  <!ENTITY engravers1 "(&performer;)_performer">
+  <!ENTITY engravers2 "(&translator;)_translator">
+
+  <!ENTITY schemename "[a-zA-Z#][^\s(){}[\];$&quot;]*">
+  <!ENTITY schemefunc0 "\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|\)))">
+  <!ENTITY schemefunc1 "\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-&gt;string|string-&gt;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-&gt;inexact|inexact-&gt;exact|number-&gt;string|string-&gt;number)(?=($|\s|\)))">
+  <!ENTITY schemefunc2 "\b(char((-ci)?(=\?|&lt;\?|&gt;\?|&lt;=\?|&gt;=\?)|-alphabetic\?|\?|-numeric\?|-whitespace\?|-upper-case\?|-lower-case\?|-&gt;integer|-upcase|-downcase|-ready\?)|integer-&gt;char|make-string|string(\?|-copy|-fill!|-length|-ref|-set!|(-ci)?(=\?|&lt;\?|&gt;\?|&lt;=\?|&gt;=\?)|-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-&gt;list|list-&gt;string|vector-&gt;list|list-&gt;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|\)))">
+]>
+<language name="LilyPond" section="Other"
+          style="lilypond" indenter="lilypond"
+          version="4" kateversion="3.3"
+          extensions="*.ly;*.LY;*.ily;*.ILY;*.lyi;*.LYI"
+          mimetype="text/x-lilypond"
+          author="Wilbert Berendsen (info@wilbertberendsen.nl)" license="LGPL">
+
+  <!--
+
+    Fall 2010
+    Minor updates by Wilbert Berendsen
+
+    Changes:
+    - add some new commands (\path, \eyeglasses, etc), contexts and grobs for LilyPond 2.14
+    - cleaned up papervars mess by using nested entities categorizing different variables
+
+    November, 2009
+    Minor updates by Wilbert Berendsen
+
+    Changes:
+    - add makeClusters
+    - fix chords in drummode
+
+    October, 2008
+    Minor updates by Wilbert Berendsen
+
+    Changes:
+    - More new LilyPond commands (2.12) and some more deprecated words
+    - Match deprecated properties after header vars
+    - Special case \tempo command
+
+    January, 2008
+    Fully rewritten by Wilbert Berendsen (info@wilbertberendsen.nl)
+
+    Changes:
+    - correctly parse pitches, chords, durations, etc. marking often made mistakes as invalid
+    - speed up by shortening contexts, e.g. branch out on a \, instead of RegExpr'ing all \commands
+    - recognize some contexts like \layout, \with, \header to colorcode variables, engravers, etc. only there
+    - recognize lilypond words like ChoirStaff etc. only in sections and after \set, \override etc.
+    - highlight some standard Scheme function names
+    - add \figuremode recognition
+    - all Scheme stuff has a nice, very light background, to show where Lilypond is in Scheme mode.
+    - mark some deprecated (pre 2.12) LilyPond commands and properties
+
+    October, 2007
+    New version by Wilbert Berendsen (info@wilbertberendsen.nl)
+
+    Changes:
+    - better recognition of being inside lyrics, drums, notes, chords and markup sections
+    - detect block comments %{  %}
+    - links to ##Alerts in comments (e.g. TODO, FIXME)
+    - detect lilypond inside scheme #{ #}
+    - detect \score inside \markup, etc.
+    - helps with some often made errors like forgetting spaces around lyric extenders and hyphens
+    - more scheme improvements: strings, numbers, $substitutions, lilypond objects
+    - highlights many variables, commands, lilypond objects, properties, engravers, etc.
+    - by using entities for many regexps the main syntax checking parts remain legible, and the file more maintainable.
+
+    I borrowed some colors and the drum names from Andrea Primiani's first version (August, 2004).
+
+  -->
+
+  <highlighting>
+    <list name="contexts">
+      <item>ChoirStaff</item>
+      <item>ChordNames</item>
+      <item>CueVoice</item>
+      <item>Devnull</item>
+      <item>DrumStaff</item>
+      <item>DrumVoice</item>
+      <item>Dynamics</item>
+      <item>FiguredBass</item>
+      <item>FretBoards</item>
+      <item>Global</item>
+      <item>GrandStaff</item>
+      <item>GregorianTranscriptionStaff</item>
+      <item>GregorianTranscriptionVoice</item>
+      <item>Lyrics</item>
+      <item>MensuralStaff</item>
+      <item>MensuralVoice</item>
+      <item>NoteNames</item>
+      <item>PianoStaff</item>
+      <item>RhythmicStaff</item>
+      <item>Score</item>
+      <item>Staff</item>
+      <item>StaffGroup</item>
+      <item>TabStaff</item>
+      <item>TabVoice</item>
+      <item>Timing</item>
+      <item>VaticanaStaff</item>
+      <item>VaticanaVoice</item>
+      <item>Voice</item>
+    </list>
+    <list name="deprecatedcontexts">
+      <item>InnerChoirStaff</item>
+      <item>InnerStaffGroup</item>
+    </list>
+    <list name="layoutobjects">
+      <item>Accidental</item>
+      <item>AccidentalCautionary</item>
+      <item>AccidentalPlacement</item>
+      <item>AccidentalSuggestion</item>
+      <item>Ambitus</item>
+      <item>AmbitusAccidental</item>
+      <item>AmbitusLine</item>
+      <item>AmbitusNoteHead</item>
+      <item>Arpeggio</item>
+      <item>BalloonTextItem</item>
+      <item>BarLine</item>
+      <item>BarNumber</item>
+      <item>BassFigure</item>
+      <item>BassFigureAlignment</item>
+      <item>BassFigureAlignmentPositioning</item>
+      <item>BassFigureBracket</item>
+      <item>BassFigureContinuation</item>
+      <item>BassFigureLine</item>
+      <item>Beam</item>
+      <item>BendAfter</item>
+      <item>BreakAlignGroup</item>
+      <item>BreakAlignment</item>
+      <item>BreathingSign</item>
+      <item>ChordName</item>
+      <item>Clef</item>
+      <item>ClusterSpanner</item>
+      <item>ClusterSpannerBeacon</item>
+      <item>CombineTextScript</item>
+      <item>Custos</item>
+      <item>DotColumn</item>
+      <item>Dots</item>
+      <item>DoublePercentRepeat</item>
+      <item>DoublePercentRepeatCounter</item>
+      <item>DynamicLineSpanner</item>
+      <item>DynamicText</item>
+      <item>DynamicTextSpanner</item>
+      <item>Episema</item>
+      <item>Fingering</item>
+      <item>FretBoard</item>
+      <item>Glissando</item>
+      <item>GraceSpacing</item>
+      <item>GridLine</item>
+      <item>GridPoint</item>
+      <item>Hairpin</item>
+      <item>HarmonicParenthesesItem</item>
+      <item>HorizontalBracket</item>
+      <item>InstrumentName</item>
+      <item>InstrumentSwitch</item>
+      <item>KeyCancellation</item>
+      <item>KeySignature</item>
+      <item>LaissezVibrerTie</item>
+      <item>LaissezVibrerTieColumn</item>
+      <item>LedgerLineSpanner</item>
+      <item>LeftEdge</item>
+      <item>LigatureBracket</item>
+      <item>LyricExtender</item>
+      <item>LyricHyphen</item>
+      <item>LyricSpace</item>
+      <item>LyricText</item>
+      <item>MeasureGrouping</item>
+      <item>MelodyItem</item>
+      <item>MensuralLigature</item>
+      <item>MetronomeMark</item>
+      <item>MultiMeasureRest</item>
+      <item>MultiMeasureRestNumber</item>
+      <item>MultiMeasureRestText</item>
+      <item>NonMusicalPaperColumn</item>
+      <item>NoteCollision</item>
+      <item>NoteColumn</item>
+      <item>NoteHead</item>
+      <item>NoteName</item>
+      <item>NoteSpacing</item>
+      <item>OctavateEight</item>
+      <item>OttavaBracket</item>
+      <item>PaperColumn</item>
+      <item>ParenthesesItem</item>
+      <item>PercentRepeat</item>
+      <item>PercentRepeatCounter</item>
+      <item>PhrasingSlur</item>
+      <item>PianoPedalBracket</item>
+      <item>RehearsalMark</item>
+      <item>RepeatSlash</item>
+      <item>RepeatTie</item>
+      <item>RepeatTieColumn</item>
+      <item>Rest</item>
+      <item>RestCollision</item>
+      <item>Script</item>
+      <item>ScriptColumn</item>
+      <item>ScriptRow</item>
+      <item>SeparationItem</item>
+      <item>Slur</item>
+      <item>SostenutoPedal</item>
+      <item>SostenutoPedalLineSpanner</item>
+      <item>SpacingSpanner</item>
+      <item>SpanBar</item>
+      <item>StaffGrouper</item>
+      <item>StaffSpacing</item>
+      <item>StaffSymbol</item>
+      <item>StanzaNumber</item>
+      <item>Stem</item>
+      <item>StemTremolo</item>
+      <item>StringNumber</item>
+      <item>StrokeFinger</item>
+      <item>SustainPedal</item>
+      <item>SustainPedalLineSpanner</item>
+      <item>System</item>
+      <item>SystemStartBar</item>
+      <item>SystemStartBrace</item>
+      <item>SystemStartBracket</item>
+      <item>SystemStartSquare</item>
+      <item>TabNoteHead</item>
+      <item>TextScript</item>
+      <item>TextSpanner</item>
+      <item>Tie</item>
+      <item>TieColumn</item>
+      <item>TimeSignature</item>
+      <item>TrillPitchAccidental</item>
+      <item>TrillPitchGroup</item>
+      <item>TrillPitchHead</item>
+      <item>TrillSpanner</item>
+      <item>TupletBracket</item>
+      <item>TupletNumber</item>
+      <item>UnaCordaPedal</item>
+      <item>UnaCordaPedalLineSpanner</item>
+      <item>VaticanaLigature</item>
+      <item>VerticalAlignment</item>
+      <item>VerticalAxisGroup</item>
+      <item>VoiceFollower</item>
+      <item>VoltaBracket</item>
+      <item>VoltaBracketSpanner</item>
+    </list>
+    <list name="properties">
+      <item>aDueText</item>
+      <item>alignAboveContext</item>
+      <item>alignBassFigureAccidentals</item>
+      <item>alignBelowContext</item>
+      <item>allowBeamBreak</item>
+      <item>associatedVoice</item>
+      <item>autoAccidentals</item>
+      <item>autoBeamCheck</item>
+      <item>autoBeamSettings</item>
+      <item>autoBeaming</item>
+      <item>autoCautionaries</item>
+      <item>automaticBars</item>
+      <item>barAlways</item>
+      <item>barCheckSynchronize</item>
+      <item>barNumberVisibility</item>
+      <item>baseMoment</item>
+      <item>bassFigureFormatFunction</item>
+      <item>bassStaffProperties</item>
+      <item>beamExceptions</item>
+      <item>beatGrouping</item>
+      <item>beatLength</item>
+      <item>beatStructure</item>
+      <item>chordChanges</item>
+      <item>chordNameExceptions</item>
+      <item>chordNameExceptionsFull</item>
+      <item>chordNameExceptionsPartial</item>
+      <item>chordNameFunction</item>
+      <item>chordNameSeparator</item>
+      <item>chordNoteNamer</item>
+      <item>chordPrefixSpacer</item>
+      <item>chordRootNamer</item>
+      <item>clefGlyph</item>
+      <item>clefOctavation</item>
+      <item>clefPosition</item>
+      <item>connectArpeggios</item>
+      <item>countPercentRepeats</item>
+      <item>createKeyOnClefChange</item>
+      <item>createSpacing</item>
+      <item>crescendoSpanner</item>
+      <item>crescendoText</item>
+      <item>currentBarNumber</item>
+      <item>decrescendoSpanner</item>
+      <item>decrescendoText</item>
+      <item>defaultBarType</item>
+      <item>doubleSlurs</item>
+      <item>doubleRepeatType</item>
+      <item>drumPitchTable</item>
+      <item>drumStyleTable</item>
+      <item>dynamicAbsoluteVolumeFunction</item>
+      <item>explicitClefVisibility</item>
+      <item>explicitKeySignatureVisibility</item>
+      <item>extendersOverRests</item>
+      <item>extraNatural</item>
+      <item>figuredBassAlterationDirection</item>
+      <item>figuredBassCenterContinuations</item>
+      <item>figuredBassFormatter</item>
+      <item>figuredBassPlusDirection</item>
+      <item>fingeringOrientations</item>
+      <item>firstClef</item>
+      <item>followVoice</item>
+      <item>fontSize</item>
+      <item>forbidBreak</item>
+      <item>forceClef</item>
+      <item>gridInterval</item>
+      <item>hairpinToBarline</item>
+      <item>harmonicAccidentals</item>
+      <item>highStringOne</item>
+      <item>ignoreBarChecks</item>
+      <item>ignoreFiguredBassRest</item>
+      <item>ignoreMelismata</item>
+      <item>implicitBassFigures</item>
+      <item>implicitTimeSignatureVisibility</item>
+      <item>instrumentCueName</item>
+      <item>instrumentEqualizer</item>
+      <item>instrumentName</item>
+      <item>instrumentTransposition</item>
+      <item>internalBarNumber</item>
+      <item>keepAliveInterfaces</item>
+      <item>keyAlterationOrder</item>
+      <item>keySignature</item>
+      <item>lyricMelismaAlignment</item>
+      <item>majorSevenSymbol</item>
+      <item>markFormatter</item>
+      <item>maximumFretStretch</item>
+      <item>measureLength</item>
+      <item>measurePosition</item>
+      <item>melismaBusyProperties</item>
+      <item>metronomeMarkFormatter</item>
+      <item>middleCClefPosition</item>
+      <item>middleCOffset</item>
+      <item>middleCPosition</item>
+      <item>midiInstrument</item>
+      <item>midiMaximumVolume</item>
+      <item>midiMinimumVolume</item>
+      <item>minimumFret</item>
+      <item>minimumPageTurnLength</item>
+      <item>minimumRepeatLengthForPageTurn</item>
+      <item>noteToFretFunction</item>
+      <item>ottavation</item>
+      <item>output</item>
+      <item>pedalSostenutoStrings</item>
+      <item>pedalSostenutoStyle</item>
+      <item>pedalSustainStrings</item>
+      <item>pedalSustainStyle</item>
+      <item>pedalUnaCordaStrings</item>
+      <item>pedalUnaCordaStyle</item>
+      <item>printKeyCancellation</item>
+      <item>printOctaveNames</item>
+      <item>printPartCombineTexts</item>
+      <item>proportionalNotationDuration</item>
+      <item>recordEventSequence</item>
+      <item>rehearsalMark</item>
+      <item>repeatCommands</item>
+      <item>restNumberThreshold</item>
+      <item>scriptDefinitions</item>
+      <item>shapeNoteStyles</item>
+      <item>shortInstrumentName</item>
+      <item>shortVocalName</item>
+      <item>skipBars</item>
+      <item>skipTypesetting</item>
+      <item>soloIIText</item>
+      <item>soloText</item>
+      <item>squashedPosition</item>
+      <item>staffLineLayoutFunction</item>
+      <item>stanza</item>
+      <item>stemLeftBeamCount</item>
+      <item>stemRightBeamCount</item>
+      <item>stringNumberOrientations</item>
+      <item>stringOneTopmost</item>
+      <item>stringTunings</item>
+      <item>strokeFingerOrientations</item>
+      <item>subdivideBeams</item>
+      <item>suggestAccidentals</item>
+      <item>systemStartDelimiter</item>
+      <item>systemStartDelimiterHierarchy</item>
+      <item>tablatureFormat</item>
+      <item>tempoUnitCount</item>
+      <item>tempoUnitDuration</item>
+      <item>tempoWholesPerMinute</item>
+      <item>tieWaitForNote</item>
+      <item>timeSignatureFraction</item>
+      <item>timing</item>
+      <item>tonic</item>
+      <item>topLevelAlignment</item>
+      <item>trebleStaffProperties</item>
+      <item>tremoloFlags</item>
+      <item>tupletFullLength</item>
+      <item>tupletFullLengthNote</item>
+      <item>tupletSpannerDuration</item>
+      <item>useBassFigureExtenders</item>
+      <item>verticallySpacedContexts</item>
+      <item>vocalName</item>
+      <item>voltaOnThisStaff</item> <!-- gone in 2.12 and 2.13 -->
+      <item>voltaSpannerDuration</item>
+      <item>whichBar</item>
+    </list>
+    <list name="deprecatedproperties">
+      <item>barNumberAlignSymbol</item>
+      <item>centralCPosition</item>
+      <item>extraVerticalExtent</item>
+      <item>fingerHorizontalDirection</item>
+      <item>instr</item>
+      <item>instrument</item>
+      <item>keyAccidentalOrder</item>
+      <item>minimumVerticalExtent</item>
+      <item>rehearsalMarkAlignSymbol</item>
+      <item>soloADue</item>
+      <item>tupletNumberFormatFunction</item>
+      <item>vocNam</item>
+    </list>
+    <list name="musicexpressions">
+      <item>AbsoluteDynamicEvent</item>
+      <item>AnnotateOutputEvent</item>
+      <item>ApplyContext</item>
+      <item>ApplyOutputEvent</item>
+      <item>ArpeggioEvent</item>
+      <item>ArticulationEvent</item>
+      <item>AutoChangeMusic</item>
+      <item>BarCheck</item>
+      <item>BassFigureEvent</item>
+      <item>BeamEvent</item>
+      <item>BeamForbidEvent</item>
+      <item>BendAfterEvent</item>
+      <item>BreathingEvent</item>
+      <item>ClusterNoteEvent</item>
+      <item>ContextChange</item>
+      <item>ContextSpeccedMusic</item>
+      <item>CrescendoEvent</item>
+      <item>DecrescendoEvent</item>
+      <item>Event</item>
+      <item>EventChord</item>
+      <item>ExtenderEvent</item>
+      <item>FingeringEvent</item>
+      <item>GlissandoEvent</item>
+      <item>GraceMusic</item>
+      <item>HarmonicEvent</item>
+      <item>HyphenEvent</item>
+      <item>KeyChangeEvent</item>
+      <item>LabelEvent</item>
+      <item>LaissezVibrerEvent</item>
+      <item>LigatureEvent</item>
+      <item>LineBreakEvent</item>
+      <item>LyricCombineMusic</item>
+      <item>LyricEvent</item>
+      <item>MarkEvent</item>
+      <item>MultiMeasureRestEvent</item>
+      <item>MultiMeasureRestMusic</item>
+      <item>MultiMeasureTextEvent</item>
+      <item>Music</item>
+      <item>NoteEvent</item>
+      <item>NoteGroupingEvent</item>
+      <item>OverrideProperty</item>
+      <item>PageBreakEvent</item>
+      <item>PageTurnEvent</item>
+      <item>PartCombineMusic</item>
+      <item>PercentEvent</item>
+      <item>PercentRepeatedMusic</item>
+      <item>PesOrFlexaEvent</item>
+      <item>PhrasingSlurEvent</item>
+      <item>PropertySet</item>
+      <item>PropertyUnset</item>
+      <item>QuoteMusic</item>
+      <item>RelativeOctaveCheck</item>
+      <item>RelativeOctaveMusic</item>
+      <item>RepeatTieEvent</item>
+      <item>RepeatedMusic</item>
+      <item>RestEvent</item>
+      <item>RevertProperty</item>
+      <item>ScriptEvent</item>
+      <item>SequentialMusic</item>
+      <item>SimultaneousMusic</item>
+      <item>SkipEvent</item>
+      <item>SkipMusic</item>
+      <item>SlurEvent</item>
+      <item>SoloOneEvent</item>
+      <item>SoloTwoEvent</item>
+      <item>SostenutoEvent</item>
+      <item>SpacingSectionEvent</item>
+      <item>SpanEvent</item>
+      <item>StaffSpanEvent</item>
+      <item>StringNumberEvent</item>
+      <item>StrokeFingerEvent</item>
+      <item>SustainEvent</item>
+      <item>TextScriptEvent</item>
+      <item>TextSpanEvent</item>
+      <item>TieEvent</item>
+      <item>TimeScaledMusic</item>
+      <item>TransposedMusic</item>
+      <item>TremoloEvent</item>
+      <item>TremoloRepeatedMusic</item>
+      <item>TremoloSpanEvent</item>
+      <item>TrillSpanEvent</item>
+      <item>TupletSpanEvent</item>
+      <item>UnaCordaEvent</item>
+      <item>UnfoldedRepeatedMusic</item>
+      <item>UnisonoEvent</item>
+      <item>UnrelativableMusic</item>
+      <item>VoiceSeparator</item>
+      <item>VoltaRepeatedMusic</item>
+    </list>
+    <list name="drumpitchnames">
+      <item>acousticbassdrum</item>
+      <item>acousticsnare</item>
+      <item>agh</item>
+      <item>agl</item>
+      <item>bassdrum</item>
+      <item>bd</item>
+      <item>bda</item>
+      <item>boh</item>
+      <item>bohm</item>
+      <item>boho</item>
+      <item>bol</item>
+      <item>bolm</item>
+      <item>bolo</item>
+      <item>cab</item>
+      <item>cabasa</item>
+      <item>cb</item>
+      <item>cgh</item>
+      <item>cghm</item>
+      <item>cgho</item>
+      <item>cgl</item>
+      <item>cglm</item>
+      <item>cglo</item>
+      <item>chinesecymbal</item>
+      <item>cl</item>
+      <item>claves</item>
+      <item>closedhihat</item>
+      <item>cowbell</item>
+      <item>crashcymbal</item>
+      <item>crashcymbala</item>
+      <item>crashcymbalb</item>
+      <item>cuim</item>
+      <item>cuio</item>
+      <item>cymc</item>
+      <item>cymca</item>
+      <item>cymcb</item>
+      <item>cymch</item>
+      <item>cymr</item>
+      <item>cymra</item>
+      <item>cymrb</item>
+      <item>cyms</item>
+      <item>da</item>
+      <item>db</item>
+      <item>dc</item>
+      <item>dd</item>
+      <item>de</item>
+      <item>electricsnare</item>
+      <item>fivedown</item>
+      <item>fiveup</item>
+      <item>fourdown</item>
+      <item>fourup</item>
+      <item>gui</item>
+      <item>guil</item>
+      <item>guiro</item>
+      <item>guis</item>
+      <item>halfopenhihat</item>
+      <item>handclap</item>
+      <item>hc</item>
+      <item>hh</item>
+      <item>hhc</item>
+      <item>hhho</item>
+      <item>hho</item>
+      <item>hhp</item>
+      <item>hiagogo</item>
+      <item>hibongo</item>
+      <item>hiconga</item>
+      <item>highfloortom</item>
+      <item>hightom</item>
+      <item>hihat</item>
+      <item>himidtom</item>
+      <item>hisidestick</item>
+      <item>hitimbale</item>
+      <item>hiwoodblock</item>
+      <item>loagogo</item>
+      <item>lobongo</item>
+      <item>loconga</item>
+      <item>longguiro</item>
+      <item>longwhistle</item>
+      <item>losidestick</item>
+      <item>lotimbale</item>
+      <item>lowfloortom</item>
+      <item>lowmidtom</item>
+      <item>lowoodblock</item>
+      <item>lowtom</item>
+      <item>mar</item>
+      <item>maracas</item>
+      <item>mutecuica</item>
+      <item>mutehibongo</item>
+      <item>mutehiconga</item>
+      <item>mutelobongo</item>
+      <item>muteloconga</item>
+      <item>mutetriangle</item>
+      <item>onedown</item>
+      <item>oneup</item>
+      <item>opencuica</item>
+      <item>openhibongo</item>
+      <item>openhiconga</item>
+      <item>openhihat</item>
+      <item>openlobongo</item>
+      <item>openloconga</item>
+      <item>opentriangle</item>
+      <item>pedalhihat</item>
+      <item>rb</item>
+      <item>ridebell</item>
+      <item>ridecymbal</item>
+      <item>ridecymbala</item>
+      <item>ridecymbalb</item>
+      <item>shortguiro</item>
+      <item>shortwhistle</item>
+      <item>sidestick</item>
+      <item>sn</item>
+      <item>sna</item>
+      <item>snare</item>
+      <item>sne</item>
+      <item>splashcymbal</item>
+      <item>ss</item>
+      <item>ssh</item>
+      <item>ssl</item>
+      <item>tamb</item>
+      <item>tambourine</item>
+      <item>tamtam</item>
+      <item>threedown</item>
+      <item>threeup</item>
+      <item>timh</item>
+      <item>timl</item>
+      <item>tomfh</item>
+      <item>tomfl</item>
+      <item>tomh</item>
+      <item>toml</item>
+      <item>tommh</item>
+      <item>tomml</item>
+      <item>tri</item>
+      <item>triangle</item>
+      <item>trim</item>
+      <item>trio</item>
+      <item>tt</item>
+      <item>twodown</item>
+      <item>twoup</item>
+      <item>ua</item>
+      <item>ub</item>
+      <item>uc</item>
+      <item>ud</item>
+      <item>ue</item>
+      <item>vibraslap</item>
+      <item>vibs</item>
+      <item>wbh</item>
+      <item>wbl</item>
+      <item>whl</item>
+      <item>whs</item>
+    </list>
+    <contexts>
+      <!-- Entry point -->
+      <context name="lilypond" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="music"/>
+        <RegExpr String="\b[a-z]+\s*=" insensitive="true" lookAhead="true" context="assignment"/>
+      </context>
+
+      <!-- Music expressions -->
+      <context name="music" attribute="Normal Text" lineEndContext="#stay">
+        <AnyChar String="()~" attribute="Slur"/>
+        <AnyChar String="[]" attribute="Beam"/>
+        <AnyChar String="-_^" context="connect"/>
+        <DetectChar char="\" context="musiccommand" lookAhead="true"/>
+        <IncludeRules context="default"/>
+        <DetectChar char="&lt;" attribute="Chord" context="chord"/>
+        <DetectChar char="&gt;" attribute="Invalid"/><!-- chord terminator outsite chord -->
+        <RegExpr String="[a-z]+\d+\.*[,']+" attribute="Invalid"/><!-- pitch-dur-octave i.s.o. pitch-oct-dur -->
+        <RegExpr String="(&rest;|&pitch;)" context="pitch"/>
+        <RegExpr String=":\d*" attribute="Tremolo"/>
+      </context>
+
+      <!-- Default Lilypond code to be recognized e.g. also inside lyrics -->
+      <context name="default" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="&lt;" char1="&lt;" attribute="Keyword" beginRegion="simultaneous"/>
+        <Detect2Chars char="&gt;" char1="&gt;" attribute="Keyword" endRegion="simultaneous"/>
+        <DetectChar char="{" attribute="Keyword" beginRegion="sequential"/>
+        <DetectChar char="}" attribute="Keyword" endRegion="sequential"/>
+        <DetectChar char="|" attribute="Check"/>
+        <DetectChar char="\" context="command" lookAhead="true"/>
+        <IncludeRules context="basic"/>
+      </context>
+
+      <!-- Basic Lilypond syntax that also works inside markup -->
+      <context name="basic" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="%" char1="{" context="commentblock" beginRegion="comment"/>
+        <DetectChar char="%" context="commentline"/>
+        <DetectChar char="&quot;" context="string"/>
+        <DetectChar char="#" context="scheme"/>
+        <DetectChar char="$" context="schemesub"/>
+      </context>
+
+      <context name="musiccommand" attribute="Normal Text" lineEndContext="#pop"
+               fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\\(&dynamics;)&b;" attribute="Dynamic"/>
+        <RegExpr String="\\[&lt;!&gt;]" attribute="Dynamic"/>
+        <RegExpr String="\\(&scripts;)&b;" attribute="Articulation"/>
+        <RegExpr String="\\[()]" attribute="Slur"/>
+        <RegExpr String="\\[][]" attribute="Beam"/>
+        <IncludeRules context="command"/>
+      </context>
+
+      <context name="command" attribute="Normal Text" lineEndContext="#pop"
+               fallthrough="true" fallthroughContext="#pop">
+        <Detect2Chars char="\" char1="\" attribute="Keyword"/>
+        <RegExpr String="\\note(mode|s)&b;" context="notemode"/>
+        <RegExpr String="\\drum(mode|s)&b;" context="drummode"/>
+        <RegExpr String="\\chord(mode|s)&b;" context="chordmode"/>
+        <RegExpr String="\\figure(mode|s)&b;" context="figuremode"/>
+        <RegExpr String="\\(lyric(mode|s)|addlyrics)&b;" context="lyricmode"/>
+        <RegExpr String="\\lyricsto&b;" context="lyricsto"/>
+        <RegExpr String="\\markup(lines)?&b;" attribute="Markup" context="markup"/>
+        <RegExpr String="\\(header|paper|layout|midi|with)\b" context="section"/>
+        <RegExpr String="\\(new|context|change)\b" attribute="Keyword" context="context"/>
+        <RegExpr String="\\(un)?set\b" attribute="Keyword" context="set"/>
+        <RegExpr String="\\(override(Property)?|revert)&b;" attribute="Keyword" context="override"/>
+        <RegExpr String="\\skip&b;" attribute="Command" context="duration"/>
+        <RegExpr String="\\tempo&b;" attribute="Command" context="tempo"/>
+        <RegExpr String="\\(&keywords;)&b;" attribute="Keyword"/>
+        <RegExpr String="\\(&commands-heads;)&b;" attribute="Command"/>
+        <RegExpr String="\\(&commands-other1;)&b;" attribute="Command"/>
+        <RegExpr String="\\(&commands-other2;)&b;" attribute="Command"/>
+        <RegExpr String="\\(&commands-other3;)&b;" attribute="Command"/>
+        <RegExpr String="\\(&commands-other4;)&b;" attribute="Command"/>
+        <RegExpr String="\\(&commands-other5;)&b;" attribute="Command"/>
+        <RegExpr String="\\(&commands-other6;)&b;" attribute="Command"/>
+        <RegExpr String="\\(&commands-other7;)&b;" attribute="Command"/>
+        <RegExpr String="\\(&toplevelvars;)&b;" attribute="Variable"/>
+        <RegExpr String="\\(&deprecatedkeywords;)&b;" attribute="Deprecated Keyword"/>
+        <RegExpr String="\\(&deprecatedcommands;)&b;" attribute="Deprecated Command"/>
+        <RegExpr String="\\(translator|newcontext)\b" attribute="Deprecated Keyword" context="context"/>
+        <RegExpr String="\\property&b;" attribute="Deprecated Keyword" context="override"/>
+        <RegExpr String="\\[A-Za-z]+" attribute="User Command"/>
+        <DetectChar char="\" attribute="Invalid"/>
+      </context>
+
+      <context name="assignment" attribute="Normal Text" lineEndContext="#pop">
+        <RegExpr String="\b(&toplevelvars;)\b" attribute="Variable" context="#pop"/>
+        <RegExpr String="[a-z]+" insensitive="true" attribute="User Command" context="#pop"/>
+      </context>
+
+      <context name="pitch" attribute="Pitch" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="=\s*('+|,+)?" attribute="Check"/>
+        <AnyChar String="!?"/>
+        <IncludeRules context="duration"/>
+      </context>
+
+      <context name="duration" attribute="Normal Text" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces attribute="Normal Text"/>
+        <RegExpr String="&duration;" attribute="Duration" context="#pop"/>
+        <RegExpr String="\d+" attribute="Invalid" context="#pop"/><!-- uncaught (wrong) durations -->
+      </context>
+
+      <context name="chord" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="&gt;" context="chordend"/>
+        <RegExpr String="&pitch;" context="chordpitch"/>
+        <AnyChar String="&lt;{}srR" attribute="Invalid"/><!-- no rests in chord allowed -->
+        <IncludeRules context="music"/>
+      </context>
+
+      <context name="chordpitch" attribute="Pitch" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces attribute="Normal Text"/>
+        <RegExpr String="=\s*('+|,+)?" attribute="Check"/>
+        <RegExpr String="&duration;" attribute="Invalid" context="#pop"/><!-- no duration in chord allowed -->
+        <RegExpr String="\d+" attribute="Invalid" context="#pop"/><!-- catch other (wrong) durations as well -->
+      </context>
+
+      <context name="chordend" attribute="Chord" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop#pop">
+        <DetectSpaces attribute="Normal Text"/>
+        <RegExpr String="&duration;" attribute="Duration" context="#pop#pop"/>
+      </context>
+
+      <context name="commentline" attribute="Comment" lineEndContext="#pop">
+        <IncludeRules context="##Alerts"/>
+      </context>
+
+      <context name="commentblock" attribute="Comment" lineEndContext="#stay">
+        <Detect2Chars char="%" char1="}" attribute="Comment" context="#pop" endRegion="comment"/>
+        <IncludeRules context="##Alerts"/>
+      </context>
+
+      <context name="string" attribute="Quoted Text" lineEndContext="#stay">
+        <DetectChar char="&quot;" attribute="Quoted Text" context="#pop"/>
+        <Detect2Chars char="\" char1="\"/>
+        <Detect2Chars char="\" char1="&quot;"/>
+      </context>
+
+      <context name="connect" attribute="Articulation" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <AnyChar String=".-+|&gt;^_12345" attribute="Articulation" context="#pop"/>
+      </context>
+
+      <!-- Scheme -->
+      <context name="scheme" attribute="Scheme" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="scheme2">
+        <DetectSpaces/>
+      </context>
+
+      <context name="scheme2" attribute="Scheme" lineEndContext="#pop#pop">
+        <DetectChar char="(" attribute="Scheme Keyword" context="scheme3" beginRegion="scheme"/>
+        <IncludeRules context="schemerules"/>
+        <DetectSpaces lookAhead="true" context="#pop#pop"/>
+      </context>
+
+      <context name="scheme3" attribute="Scheme" lineEndContext="#stay">
+        <DetectChar char=")" attribute="Scheme Keyword" context="#pop#pop#pop" endRegion="scheme"/>
+        <IncludeRules context="schemerules"/>
+      </context>
+
+      <context name="schemerules" attribute="Scheme" lineEndContext="#stay">
+        <DetectChar char="(" context="schemerules" beginRegion="scheme"/>
+        <DetectChar char=")" context="#pop" endRegion="scheme"/>
+        <DetectChar char="&quot;" context="schemestring"/>
+        <DetectChar char=";" context="schemecommentline"/>
+        <DetectChar char="$" context="schemesub"/>
+        <DetectChar char="'" context="schemequote"/>
+        <Detect2Chars char="#" char1="!" context="schemecommentblock" beginRegion="schemecomment"/>
+        <Detect2Chars char="#" char1="{" attribute="Scheme Keyword" context="schemelily" beginRegion="schemelily"/>
+        <keyword String="musicexpressions" attribute="Scheme Keyword"/>
+        <keyword String="contexts" attribute="Scheme Keyword"/>
+        <keyword String="layoutobjects" attribute="Scheme Keyword"/>
+        <RegExpr String="[-+]?(\d+(\.\d+)?|\.\d+)" attribute="Scheme Value"/>
+        <RegExpr String="#(t|f|b[-+]?[01.]+|o[-+]?[0-7.]+|d[-+]?[0-9.]+|x[-+]?[0-9a-f.]+)"
+                 insensitive="true" attribute="Scheme Value"/>
+        <RegExpr String="[+-](inf|nan)\.0" attribute="Scheme Value"/>
+        <RegExpr String="&schemefunc0;" attribute="Scheme Keyword"/>
+        <RegExpr String="&schemefunc1;" attribute="Scheme Keyword"/>
+        <RegExpr String="&schemefunc2;" attribute="Scheme Keyword"/>
+        <RegExpr String="&schemename;"/>
+      </context>
+
+      <context name="schemequote" attribute="Scheme" lineEndContext="#pop"
+               fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="&schemefunc0;"/>
+        <RegExpr String="&schemefunc1;"/>
+        <RegExpr String="&schemefunc2;"/>
+      </context>
+
+      <context name="schemelily" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars char="#" char1="}" attribute="Scheme Keyword" context="#pop" endRegion="schemelily"/>
+        <IncludeRules context="lilypond"/>
+      </context>
+
+      <context name="schemecommentline" attribute="Scheme Comment" lineEndContext="#pop">
+        <IncludeRules context="##Alerts"/>
+      </context>
+
+      <context name="schemecommentblock" attribute="Scheme Comment" lineEndContext="#stay">
+        <Detect2Chars char="!" char1="#" attribute="Scheme Comment" context="#pop" endRegion="schemecomment"/>
+        <IncludeRules context="##Alerts"/>
+      </context>
+
+      <context name="schemesub" attribute="Scheme Subst" lineEndContext="#pop"
+                fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="&schemename;" attribute="Scheme Subst" context="#pop"/>
+      </context>
+
+      <context name="schemestring" attribute="Scheme String" lineEndContext="#stay">
+        <DetectChar char="&quot;" attribute="Scheme String" context="#pop"/>
+        <RegExpr String="\\[0fnrtav\\&quot;]"/>
+      </context>
+
+      <!-- NoteMode -->
+      <context name="notemode" attribute="Other Mode" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectChar char="{" attribute="Keyword" context="notemode2" beginRegion="sequential"/>
+        <DetectSpaces/>
+      </context>
+
+      <context name="notemode2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop#pop" endRegion="sequential"/>
+        <IncludeRules context="noterules"/>
+      </context>
+
+      <context name="noterules" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Keyword" context="noterules" beginRegion="sequential"/>
+        <DetectChar char="}" attribute="Keyword" context="#pop" endRegion="sequential"/>
+        <IncludeRules context="music"/>
+      </context>
+
+      <!-- Drummode -->
+      <context name="drummode" attribute="Other Mode" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectChar char="{" attribute="Keyword" context="drummode2" beginRegion="sequential"/>
+        <DetectSpaces/>
+      </context>
+
+      <context name="drummode2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop#pop" endRegion="sequential"/>
+        <IncludeRules context="drumrules"/>
+      </context>
+
+      <context name="drumrules" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Keyword" context="drumrules" beginRegion="sequential"/>
+        <DetectChar char="}" attribute="Keyword" context="#pop" endRegion="sequential"/>
+        <RegExpr String="&lt;(?!&lt;)" attribute="Chord" context="drumchord"/>
+        <keyword attribute="Other Text" String="drumpitchnames" context="duration"/>
+        <IncludeRules context="music"/>
+      </context>
+
+      <context name="drumchord" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Other Text" String="drumpitchnames"/>
+        <IncludeRules context="chord"/>
+      </context>
+
+      <!-- Chordmode -->
+      <context name="chordmode" attribute="Other Mode" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectChar char="{" attribute="Keyword" context="chordmode2" beginRegion="sequential"/>
+        <DetectSpaces/>
+      </context>
+
+      <context name="chordmode2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop#pop" endRegion="sequential"/>
+        <IncludeRules context="chordrules"/>
+      </context>
+
+      <context name="chordrules" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Keyword" context="chordrules" beginRegion="sequential"/>
+        <DetectChar char="}" attribute="Keyword" context="#pop" endRegion="sequential"/>
+        <RegExpr attribute="Other Text" String=":?([\.^]?\d+[-+]?|(m|dim|aug|maj|sus)&b;)*(/\+?&pitch;)?"/>
+        <IncludeRules context="music"/>
+      </context>
+
+      <!-- Figuremode -->
+      <context name="figuremode" attribute="Other Mode" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectChar char="{" attribute="Keyword" context="figuremode2" beginRegion="sequential"/>
+        <DetectSpaces/>
+      </context>
+
+      <context name="figuremode2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop#pop" endRegion="sequential"/>
+        <IncludeRules context="figurerules"/>
+      </context>
+
+      <context name="figurerules" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Keyword" context="figurerules" beginRegion="sequential"/>
+        <DetectChar char="}" attribute="Keyword" context="#pop" endRegion="sequential"/>
+        <DetectChar char="&lt;" attribute="Chord" context="figure"/>
+        <RegExpr String="&rest;" attribute="Pitch" context="duration"/>
+        <IncludeRules context="default"/>
+      </context>
+
+      <context name="figure" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="&gt;" attribute="Chord" context="chordend"/>
+        <IncludeRules context="basic"/>
+        <RegExpr String="\\markup(lines)?&b;" attribute="Markup" context="markup"/>
+        <RegExpr String="\\skip&b;" attribute="Command" context="duration"/>
+      </context>
+
+      <!-- Lyrics -->
+      <context name="lyricmode" attribute="Lyricmode" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectChar char="{" attribute="Keyword" context="lyricmode2" beginRegion="sequential"/>
+        <DetectSpaces/>
+      </context>
+
+      <context name="lyricmode2" attribute="Lyric Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop#pop" endRegion="sequential"/>
+        <IncludeRules context="lyricrules"/>
+      </context>
+
+      <!-- LyricsTo has extra parameter -->
+      <context name="lyricsto" attribute="Lyricmode" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="&quot;(\\[&quot;\\]|[^&quot;\\])+&quot;" attribute="Quoted Text" context="lyricsto2"/>
+        <RegExpr String="[A-Za-z]+" attribute="Normal Text" context="lyricsto2"/>
+        <DetectSpaces/>
+      </context>
+
+      <context name="lyricsto2" attribute="Normal Text" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop#pop">
+        <DetectChar char="{" attribute="Keyword" context="lyricsto3" beginRegion="sequential"/>
+        <DetectSpaces/>
+      </context>
+
+      <context name="lyricsto3" attribute="Lyric Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop#pop#pop" endRegion="sequential"/>
+        <IncludeRules context="lyricrules"/>
+      </context>
+
+      <context name="lyricrules" attribute="Lyric Text" lineEndContext="#stay">
+        <DetectChar char="{" attribute="Keyword" context="lyricrules" beginRegion="sequential"/>
+        <DetectChar char="}" attribute="Keyword" context="#pop" endRegion="sequential"/>
+        <RegExpr String="(\w+-{2,}|\w+_{2,}|-{2,}\w+|_{2,}\w+)" attribute="Invalid"/><!-- two hyphens or underscores run together with a word -->
+        <RegExpr String="&duration;" attribute="Duration"/>
+        <RegExpr String="(--|__|_)" attribute="Lyricmode"/>
+        <IncludeRules context="default"/>
+        <RegExpr String="\S+\}" attribute="Invalid" context="#pop" endRegion="sequential"/>
+      </context>
+
+      <!-- Markup -->
+      <context name="markup" attribute="Normal Text" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectChar char="{" attribute="Keyword" context="markup2" beginRegion="markup"/>
+        <DetectSpaces/>
+        <RegExpr String="\\score\b" attribute="Markup" context="notemode"/>
+        <RegExpr String="\\(&markupwithtextargs;)&b;" attribute="Markup"/>
+        <RegExpr String="\\(&markupnotextargs;)&b;" attribute="Markup" context="#pop"/>
+        <DetectChar char="#" context="scheme"/>
+        <RegExpr String="[^&quot;\s\\#%{}$]+" attribute="Normal Text" context="#pop"/>
+      </context>
+
+      <context name="markup2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop#pop" endRegion="markup"/>
+        <IncludeRules context="markuprules"/>
+      </context>
+
+      <context name="markuprules" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop" endRegion="markup"/>
+        <DetectChar char="{" attribute="Keyword" context="markuprules" beginRegion="markup"/>
+        <RegExpr String="\\score\b" attribute="Markup" context="notemode"/>
+        <RegExpr String="\\(&markupnotextargs;|&markupwithtextargs;)&b;" attribute="Markup"/>
+        <RegExpr String="\\(&deprecatedmarkup;)&b;" attribute="Deprecated Markup"/>
+        <RegExpr String="\\[A-Za-z]+(-[A-Za-z]+)*" attribute="User Command"/>
+        <IncludeRules context="basic"/>
+      </context>
+
+      <!-- \paper, \layout, \midi, \header, \with -->
+      <context name="section" attribute="Keyword" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectChar char="{" attribute="Keyword" context="section2" beginRegion="section"/>
+        <DetectSpaces/>
+      </context>
+
+      <context name="section2" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop#pop" endRegion="section"/>
+        <IncludeRules context="sectionrules"/>
+      </context>
+
+      <context name="sectionrules" attribute="Normal Text" lineEndContext="#stay">
+        <DetectChar char="}" attribute="Keyword" context="#pop" endRegion="section"/>
+        <DetectChar char="{" attribute="Keyword" context="sectionrules" beginRegion="section"/>
+        <keyword String="contexts" attribute="Context"/>
+        <keyword String="deprecatedcontexts" attribute="Deprecated Context"/>
+        <RegExpr String="(&quot;?)\b(&engravers00;)\b\1" attribute="Engraver"/>
+        <RegExpr String="(&quot;?)\b(&engravers01;)\b\1" attribute="Engraver"/>
+        <RegExpr String="(&quot;?)\b(&engravers02;)\b\1" attribute="Engraver"/>
+        <RegExpr String="(&quot;?)\b(&engravers1;)\b\1" attribute="Engraver"/>
+        <RegExpr String="(&quot;?)\b(&engravers2;)\b\1" attribute="Engraver"/>
+        <keyword String="layoutobjects" attribute="Layout Object"/>
+        <keyword String="properties" attribute="Property"/>
+        <RegExpr String="\b(&headervars;|&papervars;|&layoutvars;)\b" attribute="Variable"/>
+        <keyword String="deprecatedproperties" attribute="Deprecated Property"/>
+        <IncludeRules context="default"/>
+      </context>
+
+      <!-- \new, \context, \change -->
+      <context name="context" attribute="Normal Text" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <keyword String="contexts" attribute="Context" context="context2"/>
+        <keyword String="deprecatedcontexts" attribute="Deprecated Context" context="context2"/>
+        <RegExpr String="[A-Za-z]+" attribute="User Command" context="context2"/>
+        <DetectChar char="{" attribute="Keyword" context="section2" beginRegion="section"/>
+      </context>
+
+      <context name="context2" attribute="Normal Text" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop#pop">
+        <DetectSpaces/>
+        <RegExpr String="=(\s*[A-Za-z]+)?" attribute="Normal Text" context="#pop#pop"/>
+      </context>
+
+      <!-- \set, \unset -->
+      <context name="set" attribute="Normal Text" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <keyword String="contexts" attribute="Context"/>
+        <keyword String="deprecatedcontexts" attribute="Deprecated Context"/>
+        <DetectChar char="."/>
+        <keyword String="properties" attribute="Property" context="#pop"/>
+        <keyword String="deprecatedproperties" attribute="Deprecated Property" context="#pop"/>
+        <RegExpr String="[A-Za-z]+" attribute="User Command" context="#pop"/>
+      </context>
+
+      <!-- \override, \overrideProperty, \revert -->
+      <context name="override" attribute="Normal Text" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <DetectSpaces/>
+        <keyword String="contexts" attribute="Context"/>
+        <keyword String="deprecatedcontexts" attribute="Deprecated Context"/>
+        <DetectChar char="."/>
+        <keyword String="layoutobjects" attribute="Layout Object" context="#pop"/>
+        <RegExpr String="[A-Za-z]+(?=\s*\.)" attribute="User Command"/>
+        <RegExpr String="[A-Za-z]+" attribute="User Command" context="#pop"/>
+      </context>
+
+      <!-- special cases for individual commands -->
+      <!-- \tempo -->
+      <context name="tempo" attribute="Normal Text" lineEndContext="#stay"
+               fallthrough="true" fallthroughContext="#pop">
+        <RegExpr String="\\markup(lines)?&b;" attribute="Markup" context="markup"/>
+        <RegExpr String="\d+\.*\s*=\s*\d+" attribute="Command" context="#pop"/>
+        <DetectSpaces/>
+        <IncludeRules context="basic"/>
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Pitch" defStyleNum="dsNormal"/>
+      <itemData name="Duration" defStyleNum="dsDataType"/>
+      <itemData name="Slur" defStyleNum="dsChar" bold="true"/>
+      <itemData name="Dynamic" defStyleNum="dsString" color="#ee5000" bold="true"/>
+      <itemData name="Articulation" defStyleNum="dsString" color="#ee5000" bold="true"/>
+      <itemData name="Chord" defStyleNum="dsDataType" bold="true"/>
+      <itemData name="Beam" defStyleNum="dsDataType" bold="true"/>
+      <itemData name="Check" defStyleNum="dsDecVal"/>
+      <itemData name="Repeat" defStyleNum="dsDataType" italic="true"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Command" defStyleNum="dsFunction" bold="true"/>
+      <itemData name="User Command" defStyleNum="dsFunction"/>
+      <itemData name="Context" defStyleNum="dsDataType" bold="true"/>
+      <itemData name="Layout Object" defStyleNum="dsDataType"/>
+      <itemData name="Property" defStyleNum="dsDataType"/>
+      <itemData name="Variable" defStyleNum="dsDataType"/>
+      <itemData name="Engraver" defStyleNum="dsDataType"/>
+      <itemData name="Markup" defStyleNum="dsBaseN" color="#009817"/>
+      <itemData name="Lyricmode" defStyleNum="dsKeyword" color="#007010"/>
+      <itemData name="Lyric Text" defStyleNum="dsNormal" color="#007010"/>
+      <itemData name="Other Mode" defStyleNum="dsKeyword" color="#0094e4"/>
+      <itemData name="Other Text" defStyleNum="dsNormal" color="#0094e4"/>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Quoted Text" defStyleNum="dsString"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Scheme" defStyleNum="dsFloat" backgroundColor="#fff6ff"/>
+      <itemData name="Scheme Keyword" defStyleNum="dsFloat" bold="true" backgroundColor="#fff6ff"/>
+      <itemData name="Scheme Subst" defStyleNum="dsDecVal" bold="true" backgroundColor="#fff6ff"/>
+      <itemData name="Scheme Value" defStyleNum="dsDecVal" backgroundColor="#fff6ff"/>
+      <itemData name="Scheme String" defStyleNum="dsString" backgroundColor="#fff6ff"/>
+      <itemData name="Scheme Comment" defStyleNum="dsComment" backgroundColor="#fff6ff"/>
+      <itemData name="Deprecated Keyword" defStyleNum="dsKeyword" backgroundColor="#fcc"/>
+      <itemData name="Deprecated Command" defStyleNum="dsFunction" backgroundColor="#fcc"/>
+      <itemData name="Deprecated Property" defStyleNum="dsDataType" backgroundColor="#fcc"/>
+      <itemData name="Deprecated Context" defStyleNum="dsDataType" bold="true" backgroundColor="#fcc"/>
+      <itemData name="Deprecated Markup" defStyleNum="dsBaseN" color="#009817" backgroundColor="#fcc"/>
+      <itemData name="Invalid" defStyleNum="dsError"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="%"/>
+      <comment name="multiLine" start="%{" end="%}" region="comment"/>
+    </comments>
+    <keywords casesensitive="true" additionalDeliminator="'_0123456789"/>
+  </general>
+</language>
+<!--
+  kate: space-indent on; indent-width 2; replace-tabs on;
+-->
diff --git a/xml/literate-curry.xml b/xml/literate-curry.xml
new file mode 100644
--- /dev/null
+++ b/xml/literate-curry.xml
@@ -0,0 +1,50 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Literate Curry" version="2" kateversion="3.4"
+          section="Sources" extensions="*.lcurry" mimetype="text/x-curry"
+          author="Björn Peemöller (bjp@informatik.uni-kiel.de)" license="LGPL"
+          indenter="haskell">
+  <highlighting>
+  <contexts>
+
+    <context attribute="Text" lineEndContext="#stay" name="Text">
+      <!-- Bird Tracks -->
+      <DetectChar attribute="BirdTrack" context="Code" char="&gt;" column="0"/>
+      <DetectChar attribute="BirdTrack" context="Code" char="&lt;" column="0"/>
+      <!-- \begin{code} and \begin{spec} -->
+      <StringDetect attribute="Text" context="normals" String="&#92;begin&#123;code&#125;"/>
+      <StringDetect attribute="Text" context="normals" String="&#92;begin&#123;spec&#125;"/>
+    </context>
+
+    <context attribute="Text" lineEndContext="#pop" name="Code">
+      <RegExpr attribute="Comment" context="multiline" String="\{-[^#]" />
+      <IncludeRules context="##Curry" />
+    </context>
+
+    <context attribute="Text" lineEndContext="#stay" name="normals">
+      <StringDetect attribute="Text" context="#pop" String="&#92;end&#123;code&#125;"/>
+      <StringDetect attribute="Text" context="#pop" String="&#92;end&#123;spec&#125;"/>
+      <IncludeRules context="##Curry" />
+    </context>
+
+    <!-- Handle comments in presence of bird tracks -->
+    <context attribute="Comment" lineEndContext="lineend" name="multiline" >
+      <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" />
+    </context>
+
+    <context attribute="Text" lineEndContext="#stay" name="lineend">
+      <DetectChar attribute="BirdTrack" context="restart" char="&gt;" column="0"/>
+      <DetectChar attribute="BirdTrack" context="restart" char="&lt;" column="0"/>
+    </context>
+
+    <context attribute="Comment" lineEndContext="#pop" name="restart">
+      <Detect2Chars attribute="Comment" context="#pop#pop#pop" char="-" char1="}" />
+    </context>
+  </contexts>
+  <itemDatas>
+    <itemData name="Text"      defStyleNum="dsNormal"  spellChecking="true"  />
+    <itemData name="BirdTrack" defStyleNum="dsOthers"  spellChecking="false" />
+    <itemData name="Comment"   defStyleNum="dsComment" />
+  </itemDatas>
+  </highlighting>
+</language>
diff --git a/xml/literate-haskell.xml b/xml/literate-haskell.xml
new file mode 100644
--- /dev/null
+++ b/xml/literate-haskell.xml
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Literate Haskell" version="4" kateversion="3.4" section="Sources" extensions="*.lhs" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL">
+  <highlighting>
+  <contexts>
+    <context attribute="Text" lineEndContext="#stay" name="text">
+      <DetectChar attribute="BirdTrack" context="normal" char="&gt;" column="0"/>
+      <DetectChar attribute="BirdTrack" context="normal" char="&lt;" column="0"/>
+      <StringDetect attribute="Text" context="normals" String="&#92;begin&#123;code&#125;"/>
+      <StringDetect attribute="Text" context="normals" String="&#92;begin&#123;spec&#125;"/>
+    </context>
+    <context attribute="Text" lineEndContext="#pop" name="normal">
+      <RegExpr attribute="Comment" context="comments'" String="\{-[^#]" />
+      <IncludeRules context="##Haskell" />
+    </context>
+    <context attribute="Text" lineEndContext="#stay" name="normals">
+      <StringDetect attribute="Text" context="#pop" String="&#92;end&#123;code&#125;"/>
+      <StringDetect attribute="Text" context="#pop" String="&#92;end&#123;spec&#125;"/>
+      <IncludeRules context="##Haskell" />
+    </context>
+    <context attribute="Comment" lineEndContext="uncomments" name="comments'" >
+      <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" />
+    </context>
+    <context attribute="Text" lineEndContext="#stay" name="uncomments">
+      <DetectChar attribute="BirdTrack" context="recomments" char="&gt;" column="0"/>
+      <DetectChar attribute="BirdTrack" context="recomments" char="&lt;" column="0"/>
+    </context>
+    <context attribute="Comment" lineEndContext="#pop" name="recomments">
+      <Detect2Chars attribute="Comment" context="#pop#pop#pop" char="-" char1="}" />
+    </context>
+  </contexts>
+  <itemDatas>
+    <itemData name="Text"             defStyleNum="dsNormal" spellChecking="true" />
+    <itemData name="BirdTrack"        defStyleNum="dsOthers"  spellChecking="false" />
+    <itemData name="Comment"          defStyleNum="dsComment" />
+  </itemDatas>
+  </highlighting>
+</language>
diff --git a/xml/llvm.xml b/xml/llvm.xml
new file mode 100644
--- /dev/null
+++ b/xml/llvm.xml
@@ -0,0 +1,255 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="LLVM" section="Sources"
+          version="1.00" kateversion="3.4.4"
+          extensions="*.ll"
+          mimetype=""
+          author="LLVM Team"
+          license="LLVM Release License">
+  <highlighting>
+    <list name="keywords">
+      <item> begin </item>
+      <item> end </item>
+      <item> true </item>
+      <item> false </item>
+      <item> declare </item>
+      <item> define </item>
+      <item> global </item>
+      <item> constant </item>
+      <item> gc </item>
+      <item> module </item>
+      <item> asm </item>
+      <item> target </item>
+      <item> datalayout </item>
+      <item> null </item>
+      <item> undef </item>
+      <item> blockaddress </item>
+      <item> sideeffect </item>
+      <item> alignstack </item>
+      <item> to </item>
+      <item> unwind </item>
+      <item> nuw </item>
+      <item> nsw </item>
+      <item> inbounds </item>
+      <item> tail </item>
+      <item> triple </item>
+      <item> type </item>
+      <item> align </item>
+      <item> alias </item>
+    </list>
+    <list name="linkage-types">
+      <item> private </item>
+      <item> internal </item>
+      <item> available_externally </item>
+      <item> linkonce </item>
+      <item> weak </item>
+      <item> common </item>
+      <item> appending </item>
+      <item> extern_weak </item>
+      <item> linkonce_odr </item>
+      <item> weak_odr </item>
+      <item> dllimport </item>
+      <item> dllexport </item>
+    </list>
+    <list name="calling-conventions">
+      <item> ccc </item>
+      <item> fastcc </item>
+      <item> coldcc </item>
+      <item> cc </item>
+    </list>
+    <list name="visibility-styles">
+      <item> default </item>
+      <item> hidden </item>
+      <item> protected </item>
+    </list>
+    <list name="parameter-attributes">
+      <item> zeroext </item>
+      <item> signext </item>
+      <item> inreg </item>
+      <item> byval </item>
+      <item> sret </item>
+      <item> noalias </item>
+      <item> nocapture </item>
+      <item> nest </item>
+    </list>
+    <list name="function-attributes">
+      <item> alignstack </item>
+      <item> alwaysinline </item>
+      <item> inlinehint </item>
+      <item> naked </item>
+      <item> noimplicitfloat </item>
+      <item> noinline </item>
+      <item> noredzone </item>
+      <item> noreturn </item>
+      <item> nounwind </item>
+      <item> optnone </item>
+      <item> optsize </item>
+      <item> readnone </item>
+      <item> readonly </item>
+      <item> ssp </item>
+      <item> sspreq </item>
+      <item> sspstrong </item>
+    </list>
+    <list name="types">
+      <item> float </item>
+      <item> double </item>
+      <item> fp128 </item>
+      <item> x86_fp80 </item>
+      <item> ppc_fp128 </item>
+      <item> x86mmx </item>
+      <item> void </item>
+      <item> label </item>
+      <item> metadata </item>
+      <item> opaque </item>
+    </list>
+    <list name="intrinsic-global-variables">
+      <item> llvm.used </item>
+      <item> llvm.compiler.used </item>
+      <item> llvm.global_ctors </item>
+      <item> llvm.global_dtors </item>
+    </list>
+    <list name="instructions">
+      <item> ret </item>
+      <item> br </item>
+      <item> switch </item>
+      <item> indirectbr </item>
+      <item> invoke </item>
+      <item> unwind </item>
+      <item> unreachable </item>
+      <item> add </item>
+      <item> fadd </item>
+      <item> sub </item>
+      <item> fsub </item>
+      <item> mul </item>
+      <item> fmul </item>
+      <item> udiv </item>
+      <item> sdiv </item>
+      <item> fdiv </item>
+      <item> urem </item>
+      <item> srem </item>
+      <item> frem </item>
+      <item> shl </item>
+      <item> lshr </item>
+      <item> ashr </item>
+      <item> and </item>
+      <item> or </item>
+      <item> xor </item>
+      <item> extractelement </item>
+      <item> insertelement </item>
+      <item> shufflevector </item>
+      <item> extractvalue </item>
+      <item> insertvalue </item>
+      <item> alloca </item>
+      <item> load </item>
+      <item> store </item>
+      <item> getelementptr </item>
+      <item> trunc </item>
+      <item> zext </item>
+      <item> sext </item>
+      <item> fptrunc </item>
+      <item> fpext </item>
+      <item> fptoui </item>
+      <item> fptosi </item>
+      <item> uitofp </item>
+      <item> sitofp </item>
+      <item> ptrtoint </item>
+      <item> inttoptr </item>
+      <item> bitcast </item>
+      <item> addrspacecast </item>
+      <item> icmp </item>
+      <item> fcmp </item>
+      <item> phi </item>
+      <item> select </item>
+      <item> call </item>
+      <item> va_arg </item>
+    </list>
+    <list name="conditions">
+      <item> eq </item>
+      <item> ne </item>
+      <item> ugt </item>
+      <item> uge </item>
+      <item> ult </item>
+      <item> ule </item>
+      <item> sgt </item>
+      <item> sge </item>
+      <item> slt </item>
+      <item> sle </item>
+      <item> oeq </item>
+      <item> ogt </item>
+      <item> oge </item>
+      <item> olt </item>
+      <item> ole </item>
+      <item> one </item>
+      <item> ord </item>
+      <item> ueq </item>
+      <item> une </item>
+      <item> uno </item>
+    </list>
+    <contexts>
+      <context name="llvm" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <AnyChar String="@%" attribute="Symbol" context="symbol" />
+
+        <DetectChar char="{" beginRegion="Brace1" />
+        <DetectChar char="}" endRegion="Brace1" />
+        <DetectChar char=";" attribute="Comment" context="comment" />
+        <DetectChar attribute="String" context="string" char="&quot;" />
+        <RegExpr String="i[0-9]+" attribute="Data Type" context="#stay" />
+        <RegExpr attribute="Symbol" String="[-a-zA-Z$._][-a-zA-Z$._0-9]*:" context="#stay" />
+        <Int attribute="Int" context="#stay" />
+
+        <keyword attribute="Keyword"   String="keywords" />
+        <keyword attribute="Keyword"   String="linkage-types" />
+        <keyword attribute="Keyword"   String="calling-conventions" />
+        <keyword attribute="Keyword"   String="visibility-styles" />
+        <keyword attribute="Keyword"   String="parameter-attributes" />
+        <keyword attribute="Keyword"   String="function-attributes" />
+        <keyword attribute="Data Type" String="types" />
+        <keyword attribute="Keyword"   String="intrinsic-global-variables" />
+        <keyword attribute="Keyword"   String="instructions" />
+        <keyword attribute="Keyword"   String="conditions" />
+      </context>
+
+      <context name="symbol" attribute="Symbol" lineEndContext="#pop">
+        <DetectChar attribute="Symbol" context="symbol-string" char="&quot;" />
+        <RegExpr attribute="Symbol" String="([-a-zA-Z$._][-a-zA-Z$._0-9]*|[0-9]+)" context="#pop" />
+      </context>
+
+      <context name="symbol-string" attribute="Symbol" lineEndContext="#stay">
+        <DetectChar attribute="Symbol" context="#pop#pop" char="&quot;" />
+      </context>
+
+      <context name="string" attribute="String" lineEndContext="#stay">
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+      </context>
+
+      <context name="comment" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces />
+        <!-- TODO: Add FileCheck syntax highlighting -->
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Keyword" defStyleNum="dsKeyword" />
+      <itemData name="Data Type" defStyleNum="dsDataType" />
+      <itemData name="Int" defStyleNum="dsDecVal" />
+      <itemData name="Hex" defStyleNum="dsBaseN" />
+      <itemData name="Float" defStyleNum="dsFloat" />
+      <itemData name="String" defStyleNum="dsString" />
+      <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="Function" defStyleNum="dsFunction" />
+      <itemData name="Symbol" defStyleNum="dsFunction" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start=";" />
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="." />
+  </general>
+</language>
+<!--
+// kate: space-indent on; indent-width 2; replace-tabs on;
+-->
diff --git a/xml/lua.xml b/xml/lua.xml
new file mode 100644
--- /dev/null
+++ b/xml/lua.xml
@@ -0,0 +1,300 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+    LUA (www.lua.org) syntax highlighting for Kate
+
+    CHANGES
+
+    [ Version 1.03 (2007-09-12) by Bruno Massa ]
+
+    - [=[ ]=] comment and string style is now working (thanks to Dominik and Sebastian)
+    - it uses DoxygenLua.xml to format the comments in a Doxygen style
+
+    [ Version 1.02 (2007-07-15) by Bruno Massa ]
+
+    - based on Lua 5.1
+    - highlight the Kepler function (cgilua, luasql, lfs, luazip)
+    - true, false and nil are highlighted in black
+    - table.foreach and foreachi are marked as alerts
+
+    [ Version 1.01 (2007-01-01) by Bruno Massa ]
+
+    - highlighting similar to PHP
+    - error detection on one-line strings and common mistakes from other languages like using "!=" "++"
+    - uppercase-only variables are highlighted as constants
+    - { } now is collapsable
+
+    [ Version 1.00 (2006-12-05) by Bruno Massa ]
+
+    - based on Lua 5.0.2 syntax
+    - strings "[[ ]]" and single quoted strings
+    - block comments
+    - function, if/elseif/else, do-end chunks, comment blocks, strings using [[ ]] collapsable
+    - nil, false and true consided pseudo-variables (displayed as numbers)
+    - NOTE, FIXME, TODO alerts added on comments
+    - improved highlighting
+
+    -->
+<language name="Lua" version="2" indenter="lua" kateversion="3.4" section="Scripts" extensions="*.lua" mimetype="text/x-lua">
+  <highlighting>
+    <list name="keywords">
+      <item>and</item>
+      <item>function</item>
+      <item>in</item>
+      <item>local</item>
+      <item>not</item>
+      <item>or</item>
+    </list>
+    <list name="control">
+      <item>break</item>
+      <item>do</item>
+      <item>else</item>
+      <item>elseif</item>
+      <item>end</item>
+      <item>for</item>
+      <item>if</item>
+      <item>repeat</item>
+      <item>return</item>
+      <item>then</item>
+      <item>until</item>
+      <item>while</item>
+    </list>
+    <list name="pseudo-variables">
+      <item>nil</item>
+      <item>false</item>
+      <item>true</item>
+    </list>
+    <list name="basefunc">
+      <item>string.byte</item>  <item>string.char</item>
+      <item>string.find</item>  <item>string.len</item>
+      <item>string.lower</item> <item>string.rep</item>
+      <item>string.sub</item>   <item>string.upper</item>
+      <item>string.format</item><item>string.gfind</item>
+      <item>string.gsub</item>  <item>table.concat</item>
+      <item>table.getn</item>   <item>table.sort</item>
+      <item>table.insert</item> <item>table.remove</item>
+      <item>table.setn</item>   <item>math.abs</item>
+      <item>math.sin</item>     <item>math.cos</item>
+      <item>math.tan</item>     <item>math.asin</item>
+      <item>math.acos</item>    <item>math.atan</item>
+      <item>math.atan2</item>   <item>math.ceil</item>
+      <item>math.floor</item>   <item>math.mod</item>
+      <item>math.frexp</item>   <item>math.ldexp</item>
+      <item>math.squrt</item>   <item>math.min</item>
+      <item>math.max</item>     <item>math.log</item>
+      <item>math.log10</item>   <item>math.exp</item>
+      <item>math.deg</item>     <item>math.rad</item>
+      <item>math.random</item>  <item>math.randomseed</item>
+      <item>io.close</item>     <item>io.flush</item>
+      <item>io.input</item>     <item>io.lines</item>
+      <item>io.open</item>      <item>io.output</item>
+      <item>io.read</item>      <item>io.stderr</item>
+      <item>io.stdin</item>     <item>io.stdout</item>
+      <item>io.tmpfile</item>   <item>io.write</item>
+      <item>os.clock</item>     <item>os.date</item>
+      <item>os.difftime</item>  <item>os.execute</item>
+      <item>os.exit</item>      <item>os.getenv</item>
+      <item>os.remove</item>    <item>os.rename</item>
+      <item>os.setlocale</item> <item>os.time</item>
+      <item>os.tmpname</item>   <item>debug.getinfo</item>
+      <item>debug.getlocal</item><item>debug.setlocal</item>
+      <item>debug.sethook</item><item>debug.gethook</item>
+      <item>assert</item>      <item>collectgarbage</item>
+      <item>dofile</item>      <item>error</item>
+      <item>next</item>        <item>print</item>
+      <item>rawget</item>      <item>rawset</item>
+      <item>tonumber</item>    <item>tostring</item>
+      <item>type</item>        <item>_ALERT</item>
+      <item>_ERRORMESSAGE</item><item>call</item>
+      <item>getmetatable</item><item>gcinfo</item>
+      <item>ipairs</item>      <item>loadfile</item>
+      <item>loadstring</item>  <item>pairs</item>
+      <item>pcall</item>       <item>require</item>
+      <item>LUA_PATH</item>    <item>setmetatable</item>
+      <item>_LOADED</item>     <item>_VERSION</item>
+      <item>gettagmethod</item><item>globals</item>
+      <item>newtag</item>      <item>setglobal</item>
+      <item>settag</item>      <item>settagmethod</item>
+      <item>setlinehook</item> <item>getglobals</item>
+      <item>copytagmethods</item><item>dostring</item>
+      <item>getglobal</item>   <item>tag</item>
+      <item>setglobals</item>  <item>unpack</item>
+      <item>exit</item>        <item>readfrom</item>
+      <item>writeto</item>     <item>appendto</item>
+      <item>read</item>        <item>write</item>
+      <item>getinfo</item>     <item>getlocal</item>
+      <item>setlocal</item>    <item>setcallhook</item>
+      <item>tinsert</item>     <item>tremove</item>
+      <item>flush</item>       <item>seek</item>
+      <item>setlocale</item>   <item>execute</item>
+      <item>remove</item>      <item>rename</item>
+      <item>tmpname</item>     <item>getenv</item>
+      <item>getn</item>        <item>sort</item>
+      <item>table.foreach</item> <item>table.foreachi</item>
+      <item>foreach</item>     <item>foreachi</item>
+      <item>abs</item>         <item>sin</item>
+      <item>cos</item>         <item>tan</item>
+      <item>asin</item>        <item>acos</item>
+      <item>atan</item>        <item>atan2</item>
+      <item>ceil</item>        <item>floor</item>
+      <item>mod</item>         <item>frexp</item>
+      <item>ldexp</item>       <item>squrt</item>
+      <item>min</item>         <item>max</item>
+      <item>log</item>         <item>log10</item>
+      <item>exp</item>         <item>deg</item>
+      <item>rad</item>         <item>random</item>
+      <item>randomseed</item>  <item>strlen</item>
+      <item>strsub</item>      <item>strlower</item>
+      <item>strupper</item>    <item>strchar</item>
+      <item>strrep</item>      <item>ascii</item>
+      <item>strbyte</item>     <item>format</item>
+      <item>strfind</item>     <item>gsub</item>
+      <item>openfile</item>    <item>closefile</item>
+      <item>date</item>        <item>clock</item>
+
+
+      <item>cgilua</item>                     <item>cgilua.lp.translate</item>
+      <item>cgilua.contentheader</item>       <item>cgilua.script_file</item>
+      <item>cgilua.header</item>              <item>cgilua.script_path</item>
+      <item>cgilua.htmlheader</item>          <item>cgilua.script_pdir</item>
+      <item>cgilua.redirect</item>            <item>cgilua.script_vdir</item>
+      <item>cgilua.mkabsoluteurl</item>       <item>cgilua.script_vpath</item>
+      <item>cgilua.mkurlpath</item>           <item>cgilua.servervariable</item>
+      <item>cgilua.put</item>                 <item>cgilua.urlpath</item>
+      <item>cgilua.handlelp</item>            <item>cgilua.errorlog</item>
+      <item>cgilua.lp.compile</item>          <item>cgilua.seterrorhandler</item>
+      <item>cgilua.lp.include</item>          <item>cgilua.seterroroutput</item>
+      <item>cgilua.lp.setcompatmode</item>    <item>cgilua.addclosefunction</item>
+      <item>cgilua.lp.setoutfunc</item>       <item>cgilua.addopenfunction</item>
+      <item>cgilua.addscripthandler</item>    <item>cgilua.addscripthandler</item>
+      <item>cgilua.buildprocesshandler</item> <item>cgilua.setmaxfilesize</item>
+      <item>cgilua.setmaxinput</item>         <item>cgilua.urlcode.encodetable</item>
+      <item>cgilua.urlcode.escape</item>      <item>cgilua.urlcode.parsequery</item>
+      <item>cgilua.urlcode.unescape</item>    <item>cgilua.urlcode.insertfield</item>
+      <item>cgilua.setoutfunc</item>          <item>cgilua.addopenfunction</item>
+      <item>cgilua.doif</item>                <item>cgilua.doscript</item>
+      <item>cgilua.pack</item>                <item>cgilua.splitpath</item>
+      <item>cgilua.cookies.get</item>         <item>cgilua.cookies.set</item>
+      <item>cgilua.cookies.sethtml</item>     <item>cgilua.cookies.delete</item>
+      <item>cgilua.serialize</item>           <item>cgilua.session.close</item>
+      <item>cgilua.session.data</item>        <item>cgilua.session.load</item>
+      <item>cgilua.session.new</item>         <item>cgilua.session.open</item>
+      <item>cgilua.session.save</item>        <item>cgilua.session.setsessiondir</item>
+      <item>cgilua.session.delete</item>      <item>cgilua.session</item>
+      <item>cgilua.cookies</item>
+
+      <item>numrows</item>                    <item>connect</item>
+      <item>close</item>                      <item>fetch</item>
+      <item>getcolnames</item>                <item>getcoltypes</item>
+      <item>commit</item>                     <item>rollback</item>
+      <item>setautocommit</item>
+
+      <item>lfs</item>                        <item>lfs.attributes</item>
+      <item>lfs.chdir</item>                  <item>lfs.currentdir</item>
+      <item>lfs.dir</item>                    <item>lfs.lock</item>
+      <item>lfs.mkdir</item>                  <item>lfs.rmdir</item>
+      <item>lfs.touch</item>                  <item>lfs.unlock</item>
+
+      <item>zip</item>                        <item>zip.open</item>
+      <item>zip.openfile</item>               <item>files</item>
+      <item>seek</item>                       <item>close</item>
+      <item>lines</item>
+
+
+    </list>
+    <list name="attention">
+      <item>TODO</item>
+      <item>FIXME</item>
+      <item>NOTE</item>
+    </list>
+    <list name="deprecated">
+      <item>table.foreach</item> <item>table.foreachi</item>
+      <item>foreach</item>       <item>foreachi</item>
+    </list>
+
+    <contexts>
+      <context name="Normal"        attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="##DoxygenLua" />
+        <keyword      attribute="Error"  context="#stay" String="deprecated" />
+        <DetectSpaces />
+        <RegExpr      attribute="Comment"  context="Block Comment" beginRegion="block comment"  String="--\[(=*)\[" dynamic="true" />
+        <Detect2Chars attribute="Comment"  context="Comment"       char="-" char1="-"/>
+        <RegExpr      attribute="Strings"  context="String_block"  String="\[(=*)\[" dynamic="true" />
+        <DetectChar   attribute="Strings"  context="String_single" char="'"/>
+        <DetectChar   attribute="Strings"  context="String_double" char="&quot;"/>
+        <keyword      attribute="BFunc"    context="#stay"         String="basefunc"/>
+
+        <RegExpr      attribute="Keyword"  context="#stay" beginRegion="chunk" String="\bfunction\b" />
+        <keyword      attribute="Keyword"  context="#stay" String="keywords" />
+        <keyword      attribute="Keyword"  context="#stay"  String="pseudo-variables" />
+        <RegExpr      attribute="Control"  context="#stay" endRegion="chunk"   beginRegion="chunk" String="\belse\b" />
+        <RegExpr      attribute="Control"  context="#stay" endRegion="chunk"   beginRegion="chunk" String="\belseif\b" />
+        <RegExpr      attribute="Control"  context="#stay" beginRegion="chunk" String="\bdo\b" />
+        <RegExpr      attribute="Control"  context="#stay" beginRegion="chunk" String="\bif\b" />
+        <RegExpr      attribute="Control"  context="#stay" endRegion="chunk"   String="\bend\b" />
+        <keyword      attribute="Control"  context="#stay" String="control" />
+
+        <DetectChar   attribute="Symbols"  context="#stay" beginRegion="table" char="{" />
+        <DetectChar   attribute="Symbols"  context="#stay" endRegion="table"   char="}" />
+
+        <RegExpr      attribute="Numbers"  context="#stay"  String="\b\d*\.?\d*(e|e\-|e\+)?\d+\b"/>
+        <RegExpr      attribute="Numbers"  context="#stay"  String="\b-?0[xX][0-9a-fA-F]+\b"/>
+
+        <RegExpr      attribute="Normal Text" context="#stay" String="\b[a-zA-Z_][a-zA-Z0-9_]*(?=\s*([({'&quot;]|\[\[))\b" />
+        <RegExpr      attribute="Constant" context="#stay" String="\b[A-Z_][A-Z0-9_]*\b" />
+        <RegExpr      attribute="Variable" context="#stay" String="\b[a-zA-Z_][a-zA-Z0-9_]*\b" />
+
+        <Detect2Chars attribute="Error"    context="#stay" char="!" char1="="/>
+        <Detect2Chars attribute="Error"    context="#stay" char="-" char1="="/>
+        <Detect2Chars attribute="Error"    context="#stay" char="+" char1="="/>
+        <Detect2Chars attribute="Error"    context="#stay" char="+" char1="+"/>
+        <Detect2Chars attribute="Error"    context="#stay" char="." char1="="/>
+        <AnyChar      attribute="Symbols"  context="#stay" String="[]().,=~+-*/^&gt;&lt;#;" />
+      </context>
+      <context name="Comment"       attribute="Comment"     lineEndContext="#pop">
+        <Detect2Chars attribute="Alerts"   context="#stay" char="-" char1="-" />
+        <keyword      attribute="Alerts"   context="#stay" String="attention"/>
+      </context>
+      <context name="Block Comment" attribute="Comment"     lineEndContext="#stay" dynamic="true" >
+        <RegExpr attribute="Comment"  context="#pop"  endRegion="block comment" String="\]%1\]" dynamic="true" />
+        <Detect2Chars attribute="Alerts"   context="#stay" char="-" char1="-" />
+        <keyword      attribute="Alerts"   context="#stay" String="attention" />
+      </context>
+      <context name="String_single" attribute="Strings"     lineEndContext="Error">
+        <RegExpr      attribute="Symbols"  context="#stay" String="\\(a|b|f|n|r|t|v|\\|&quot;|\'|[|])" />
+        <DetectChar   attribute="Strings"  context="#pop"  char="'"/>
+      </context>
+      <context name="String_double" attribute="Strings"     lineEndContext="Error">
+        <RegExpr      attribute="Symbols"  context="#stay" String="\\[abfnrtv'&quot;\\\[\]]" />
+        <DetectChar   attribute="Strings"  context="#pop"  char="&quot;"/>
+      </context>
+      <context name="String_block"  attribute="Strings"     lineEndContext="#stay" dynamic="true">
+        <RegExpr      attribute="Symbols"  context="#stay" String="\\(a|b|f|n|r|t|v|\\|&quot;|\'|[|])" />
+        <RegExpr      attribute="Strings"  context="#pop"  String="\]%1\]" dynamic="true" />
+      </context>
+      <context name="Error"         attribute="Error"       lineEndContext="#stay">
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"     defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Alerts"          defStyleNum="dsAlert" spellChecking="false"/>
+      <itemData name="BFunc"           defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Comment"         defStyleNum="dsComment"/>
+      <itemData name="Constant"        defStyleNum="dsNormal" /> <!-- JGM -->
+      <itemData name="Control"         defStyleNum="dsKeyword" color="#A1A100" selColor="#ffffff" bold="0" italic="0" spellChecking="false"/>
+      <itemData name="Error"           defStyleNum="dsError" spellChecking="false"/>
+      <itemData name="Keyword"         defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Numbers"         defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Strings"         defStyleNum="dsString"/>
+      <itemData name="Symbols"         defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Variable"        defStyleNum="dsNormal" /> <!-- JGM -->
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="--" />
+      <comment name="multiLine" start="--[[" end="]]" />
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="&#46;" additionalDeliminator="&quot;"/>
+  </general>
+</language>
diff --git a/xml/m4.xml b/xml/m4.xml
new file mode 100644
--- /dev/null
+++ b/xml/m4.xml
@@ -0,0 +1,193 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+
+  GNU M4 syntax highlightning.
+  Corresponds to GNU M4 version 1.4.16.
+
+  For KatePart (Kate, KWrite etc) copy this file to
+    ~/.kde/share/apps/katepart/syntax/
+
+  For Qt Creator copy this file to
+    ~/.config/Nokia/qtcreator/generic-highlighter/
+
+
+  Copyright (c) 2011, Cybernetica AS ( http://www.cyber.ee/ )
+  All rights reserved.
+
+  Redistribution and use in source and binary forms, with or without
+  modification, are permitted provided that the following conditions are met:
+      * Redistributions of source code must retain the above copyright
+        notice, this list of conditions and the following disclaimer.
+      * Redistributions in binary form must reproduce the above copyright
+        notice, this list of conditions and the following disclaimer in the
+        documentation and/or other materials provided with the distribution.
+      * Neither the name of Cybernetica AS nor the names of its contributors
+        may be used to endorse or promote products derived from this software
+        without specific prior written permission.
+
+  THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
+  ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+  WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
+  DISCLAIMED. IN NO EVENT SHALL  Cybernetica AS  BE LIABLE FOR ANY
+  DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
+  (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
+  LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
+  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
+  (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
+  SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+
+-->
+<language name="GNU M4" version="2" section="Sources" kateversion="3.0" extensions="*.m4;" author="Jaak Ristioja" license="New BSD License">
+  <highlighting>
+    <list name="optbuiltins">
+      <item>__gnu__</item>
+      <item>__os2__</item>
+      <item>os2</item>
+      <item>__unix__</item>
+      <item>unix</item>
+      <item>__windows__</item>
+      <item>windows</item>
+    </list>
+    <list name="m4_optbuiltins">
+      <item>m4___gnu__</item>
+      <item>m4___os2__</item>
+      <item>m4_os2</item>
+      <item>m4___unix__</item>
+      <item>m4_unix</item>
+      <item>m4___windows__</item>
+      <item>m4_windows</item>
+    </list>
+    <list name="builtins">
+      <item>__file__</item>
+      <item>__line__</item>
+      <item>__program__</item>
+      <item>builtin</item>
+      <item>changecom</item>
+      <item>changequote</item>
+      <item>changeword</item>
+      <item>debugfile</item>
+      <item>debugmode</item>
+      <item>decr</item>
+      <item>define</item>
+      <item>defn</item>
+      <item>divert</item>
+      <item>divnum</item>
+      <item>dnl</item>
+      <item>dumpdef</item>
+      <item>errprint</item>
+      <item>esyscmd</item>
+      <item>eval</item>
+      <item>format</item>
+      <item>ifdef</item>
+      <item>ifelse</item>
+      <item>include</item>
+      <item>incr</item>
+      <item>index</item>
+      <item>indir</item>
+      <item>len</item>
+      <item>m4exit</item>
+      <item>m4wrap</item>
+      <item>maketemp</item>
+      <item>mkstemp</item>
+      <item>patsubst</item>
+      <item>popdef</item>
+      <item>pushdef</item>
+      <item>regexp</item>
+      <item>shift</item>
+      <item>sinclude</item>
+      <item>substr</item>
+      <item>syscmd</item>
+      <item>sysval</item>
+      <item>traceon</item>
+      <item>traceoff</item>
+      <item>translit</item>
+      <item>undefine</item>
+      <item>undivert</item>
+    </list>
+    <list name="m4_builtins">
+      <item>m4___file__</item>
+      <item>m4___line__</item>
+      <item>m4___program__</item>
+      <item>m4_builtin</item>
+      <item>m4_changecom</item>
+      <item>m4_changequote</item>
+      <item>m4_changeword</item>
+      <item>m4_debugfile</item>
+      <item>m4_debugmode</item>
+      <item>m4_decr</item>
+      <item>m4_define</item>
+      <item>m4_defn</item>
+      <item>m4_divert</item>
+      <item>m4_divnum</item>
+      <item>m4_dnl</item>
+      <item>m4_dumpdef</item>
+      <item>m4_errprint</item>
+      <item>m4_esyscmd</item>
+      <item>m4_eval</item>
+      <item>m4_format</item>
+      <item>m4_ifdef</item>
+      <item>m4_ifelse</item>
+      <item>m4_include</item>
+      <item>m4_incr</item>
+      <item>m4_index</item>
+      <item>m4_indir</item>
+      <item>m4_len</item>
+      <item>m4_m4exit</item>
+      <item>m4_m4wrap</item>
+      <item>m4_maketemp</item>
+      <item>m4_mkstemp</item>
+      <item>m4_patsubst</item>
+      <item>m4_popdef</item>
+      <item>m4_pushdef</item>
+      <item>m4_regexp</item>
+      <item>m4_shift</item>
+      <item>m4_sinclude</item>
+      <item>m4_substr</item>
+      <item>m4_syscmd</item>
+      <item>m4_sysval</item>
+      <item>m4_traceon</item>
+      <item>m4_traceoff</item>
+      <item>m4_translit</item>
+      <item>m4_undefine</item>
+      <item>m4_undivert</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
+        <keyword attribute="Builtins" String="builtins" context="#stay"/>
+        <keyword attribute="Builtins (prefixed with m4_)" String="m4_builtins" context="#stay"/>
+        <keyword attribute="Optional builtins" String="optbuiltins" context="#stay"/>
+        <keyword attribute="Optional builtins (prefixed with m4_)" String="m4_optbuiltins" context="#stay"/>
+        <RegExpr attribute="Normal Text" String="[a-zA-Z_]\w+" context="#stay"/>
+        <RegExpr attribute="Special arguments to macros" String="\$([1-9]\d*|0|\#|\*|\@|\{([1-9]\d*|0)\})" context="#stay"/>
+        <RegExpr attribute="Int" String="([1-9]\d*|0|0x[0-9abcdefABCDEF]+)" context="#stay"/>
+        <RegExpr attribute="Comment" String="#.*$" context="#stay"/>
+        <DetectChar attribute="Commas" char="," context="#stay"/>
+        <DetectChar attribute="Operators" char="(" context="inparenthesis" beginRegion="parenthesis"/>
+        <DetectChar attribute="Operators" char=")" context="#pop" endRegion="parenthesis"/>
+        <RegExpr attribute="Operators" String="[+*/%\|=\!&lt;&gt;!^&amp;~-]" context="#stay"/>
+      </context>
+      <context name="inparenthesis" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">
+        <IncludeRules context="Normal Text" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Builtins" defStyleNum="dsKeyword"/>
+      <itemData name="Builtins (prefixed with m4_)" defStyleNum="dsKeyword"/>
+      <itemData name="Optional builtins" defStyleNum="dsKeyword"/>
+      <itemData name="Optional builtins (prefixed with m4_)" defStyleNum="dsKeyword"/>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Special arguments to macros" defStyleNum="dsChar"/>
+      <itemData name="Int" defStyleNum="dsDecVal"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Commas" defStyleNum="dsChar"/>
+      <itemData name="Operators" defStyleNum="dsChar"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <folding indentationsensitive="1" />
+    <comments>
+      <comment name="singleLine" start="#" position="afterwhitespace"/>
+    </comments>
+  </general>
+</language>
diff --git a/xml/makefile.xml b/xml/makefile.xml
new file mode 100644
--- /dev/null
+++ b/xml/makefile.xml
@@ -0,0 +1,500 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Makefile syntaxfile v0.9 by Per Wigren <wigren@home.se> -->
+<!-- Modified by Joseph Wenninger <jowenn@kde.org> -->
+<!-- Modified by Rui Santana <santana.rui@gmail.com> -->
+<!-- v2.0 by Andreas Nordal <andreas.nordal@gmail.com> -->
+<!-- small priority to allow for example Makefile.cpp to be detected as cpp file -->
+<!-- v2.1 by Alex Turbov <i.zaufi@gmail.com>
+     improve comments handling -->
+<!-- v4 by Alex Richardson <arichardson.kde@gmail.com>
+     added bmake support -->
+<language name="Makefile" section="Other"
+          version="6" kateversion="3.4"
+          extensions="GNUmakefile;Makefile;makefile;GNUmakefile.*;Makefile.*;makefile.*;*.mk"
+          mimetype="text/x-makefile" priority="11"
+          author="Per Wigren (wigren@home.se)" license="">
+  <highlighting>
+    <list name = "keywords" >
+      <item>include</item>
+      <item>-include</item>
+      <item>define</item>
+      <item>endef</item>
+    </list>
+    <!-- https://www.gnu.org/software/make/manual/html_node/Conditional-Syntax.html -->
+    <list name="gmake_if_keywords">
+      <item>if</item>
+      <item>ifeq</item>
+      <item>ifneq</item>
+      <item>ifdef</item>
+      <item>ifndef</item>
+    </list>
+    <list name="gmake_else_keywords"><item>else</item></list>
+    <list name="gmake_endif_keywords"><item>endif</item></list>
+    <!-- bmake statements: https://www.freebsd.org/cgi/man.cgi?make(1)#INCLUDE_STATEMENTS,_CONDITIONALS_AND_FOR_LOOPS -->
+    <list name="bmake_if_keywords">
+      <item>.if</item>
+      <item>.ifdef</item>
+      <item>.ifndef</item>
+      <item>.ifmake</item>
+      <item>.ifnmake</item>
+    </list>
+    <list name="bmake_else_keywords">
+      <item>.elif</item>
+      <item>.elifdef</item>
+      <item>.elifndef</item>
+      <item>.elifmake</item>
+      <item>.elifnmake</item>
+      <item>.else</item> <!-- TODO: anything following .else should be highlighted as an error -->
+    </list>
+    <list name="bmake_endif_keywords"><item>.endif</item></list>
+
+    <list name="bmake_expressions">
+      <item>defined</item>
+      <item>empty</item>
+      <item>exists</item>
+      <item>target</item>
+      <item>commands</item>
+    </list>
+
+    <list name="bmake_include_stmt">
+      <item>.include</item>
+      <item>.-include</item>
+      <item>.sinclude</item>
+      <!-- For compat bmake also handles include but this is already highlighted. <item>include</item> -->
+    </list>
+    <list name="bmake_message_stmt">
+      <item>.info</item>
+      <item>.warning</item>
+      <item>.error</item>
+    </list>
+    <!-- Use single element list here so that .for/.endfor also shows up in code completion -->
+    <list name="bmake_for_stmt"><item>.for</item></list>
+    <list name="bmake_endfor_stmt"><item>.endfor</item></list>
+
+    <!-- https://www.freebsd.org/cgi/man.cgi?make(1)#SPECIAL_TARGETS -->
+    <list name="bmake_special_targets">
+      <item>.BEGIN</item>
+      <item>.DEFAULT</item>
+      <item>.END</item>
+      <item>.ERROR</item>
+      <item>.IGNORE</item>
+      <item>.INTERRUPT</item>
+      <item>.MAIN</item>
+      <item>.MAKEFLAGS</item>
+      <item>.NOPATH</item>
+      <item>.NOTPARALLEL</item>
+      <item>.NO_PARALLEL</item>
+      <item>.OBJDIR</item>
+      <item>.ORDER</item>
+      <item>.PATH</item>
+      <item>.PHONY</item>
+      <item>.PRECIOUS</item>
+      <item>.SHELL</item>
+      <item>.SILENT</item>
+      <item>.STALE</item>
+      <item>.SUFFIXES</item>
+    </list>
+    <!-- https://www.freebsd.org/cgi/man.cgi?make(1)#SPECIAL_SOURCES_(ATTRIBUTES) -->
+    <list name="bmake_special_sources">
+      <item>.EXEC</item>
+      <item>.IGNORE</item>
+      <item>.MADE</item>
+      <item>.MAKE</item>
+      <item>.META</item>
+      <item>.NOMETA</item>
+      <item>.NOMETA_CMP</item>
+      <item>.NOPATH</item>
+      <item>.NOTMAIN</item>
+      <item>.OPTIONAL</item>
+      <item>.PHONY</item>
+      <item>.PRECIOUS</item>
+      <item>.RECURSIVE</item>
+      <item>.SILENT</item>
+      <item>.USE</item>
+      <item>.USEBEFORE</item>
+      <item>.WAIT</item>
+    </list>
+
+    <list name="bmake_other_stmts">
+      <item>.unexport-env</item>
+      <item>.unexport</item>
+      <item>.undef</item>
+      <item>.export-env</item>
+      <item>.export</item>
+    </list>
+
+    <list name = "functions">
+      <item>call</item>
+      <item>subst</item>
+      <item>patsubst</item>
+      <item>strip</item>
+      <item>findstring</item>
+      <item>filter</item>
+      <item>filter-out</item>
+      <item>sort</item>
+      <item>word</item>
+      <item>wordlist</item>
+      <item>words</item>
+      <item>firstword</item>
+      <item>lastword</item>
+      <item>dir</item>
+      <item>notdir</item>
+      <item>suffix</item>
+      <item>basename</item>
+      <item>addsuffix</item>
+      <item>addprefix</item>
+      <item>join</item>
+      <item>wildcard</item>
+      <item>realpath</item>
+      <item>abspath</item>
+      <item>if</item>
+      <item>or</item>
+      <item>and</item>
+      <item>foreach</item>
+      <item>value</item>
+      <item>eval</item>
+      <item>origin</item>
+      <item>flavor</item>
+      <item>shell</item>
+      <item>error</item>
+      <item>warning</item>
+      <item>info</item>
+    </list>
+    <contexts>
+      <context name="normal" attribute="Normal" lineEndContext="#stay">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+        <keyword attribute="ControlFlow" String="bmake_if_keywords" context="bmake_conditional" beginRegion="bmake_if" firstNonSpace="true"/>
+        <!--TODO: trailing non-space after .else should be highlighted as an error -->
+        <keyword attribute="ControlFlow" String="bmake_else_keywords" context="bmake_conditional" endRegion="bmake_if" beginRegion="bmake_if" firstNonSpace="true"/>
+        <keyword attribute="ControlFlow" String="bmake_endif_keywords" context="#stay" endRegion="bmake_if"/>
+
+        <keyword attribute="ControlFlow" String="gmake_if_keywords" context="#stay" beginRegion="gmake_if" firstNonSpace="true"/>
+        <!--TODO: trailing non-space after .else should be highlighted as an error -->
+        <keyword attribute="ControlFlow" String="gmake_else_keywords" context="gmake_else" endRegion="gmake_if" beginRegion="gmake_if" firstNonSpace="true"/>
+        <keyword attribute="ControlFlow" String="gmake_endif_keywords" context="#stay" endRegion="gmake_if"/>
+
+        <keyword attribute="Keyword"  context="#stay" String="keywords"/>
+        <keyword attribute="Keyword"  context="bmake_other_stmts" String="bmake_other_stmts" firstNonSpace="true"/>
+        <RegExpr attribute="Variable" context="assign" String="[^\s+:?+]*\s*(?=:=|=|\+=|\?=)"/>
+        <keyword attribute="SpecialTarget" context="bmake_special_target" String="bmake_special_targets" firstNonSpace="true"/>
+        <RegExpr attribute="SpecialTarget" context="prereq" String="\.PATH\.[^:]*:" firstNonSpace="true"/>
+        <keyword attribute="Keyword" context="bmake_include" String="bmake_include_stmt" firstNonSpace="true"/>
+        <keyword attribute="Keyword" context="bmake_message" String="bmake_message_stmt" firstNonSpace="true"/>
+        <keyword attribute="Keyword" context="bmake_for_loop" String="bmake_for_stmt" firstNonSpace="true" beginRegion="for"/>
+        <keyword attribute="Keyword" context="#stay" String="bmake_endfor_stmt" firstNonSpace="true" endRegion="for"/>
+
+        <RegExpr attribute="Section"  context="prereq" String="^\.[^.][^:]*:"/>
+        <RegExpr attribute="Target"   context="prereq" String="^[^:]*:"/>
+        <DetectIdentifier/>
+        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
+        <DetectChar attribute="String" context="string'" char="'"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
+        <AnyChar attribute="Operator" context="silent" String="@-" firstNonSpace="1"/>
+      </context>
+
+      <context name="strings_and_vars" attribute="Normal" lineEndContext="#pop">
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
+        <DetectChar attribute="String" context="string'" char="'"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+      </context>
+
+      <context name="gmake_else" attribute="Error" lineEndContext="#pop">
+        <DetectSpaces attribute="Normal"/>
+        <keyword attribute="ControlFlow" String="gmake_if_keywords" context="#stay"/>
+        <IncludeRules context="strings_and_vars"/>
+      </context>
+
+      <context name="bmake_include" attribute="Normal" lineEndContext="#pop">
+        <DetectSpaces />
+        <RangeDetect char="&lt;"  char1="&gt;" context="#stay" attribute="Include" />
+        <RangeDetect char="&quot;"  char1="&quot;" context="#stay" attribute="Include" />
+      </context>
+
+
+      <context name="bmake_conditional" attribute="Normal" lineEndContext="#pop">
+        <DetectSpaces/>
+        <IncludeRules context="strings_and_vars"/>
+        <keyword attribute="Builtin"  context="bmake_expression" String="bmake_expressions"/>
+        <Detect2Chars attribute="RealOperator" context="#stay" char="&amp;" char1="&amp;"/>
+        <Detect2Chars attribute="RealOperator" context="#stay" char="|" char1="|"/>
+        <Detect2Chars attribute="RealOperator" context="#stay" char="!" char1="="/>
+        <Detect2Chars attribute="RealOperator" context="#stay" char="=" char1="="/>
+        <DetectChar attribute="RealOperator" context="#stay" char="!"/>
+        <HlCHex attribute="Number" context="#stay"/>
+        <Int attribute="Number" context="#stay"/>
+        <DetectIdentifier attribute="Variable" context="#stay"/>
+        <LineContinue attribute="Operator" context="#stay"/>
+      </context>
+
+      <context name="bmake_for_loop" attribute="Variable" lineEndContext="#pop">
+        <DetectSpaces/>
+        <IncludeRules context="strings_and_vars"/>
+        <WordDetect attribute="RealOperator" context="#stay" String="in" />
+      </context>
+
+      <context name="bmake_other_stmts" attribute="Variable" lineEndContext="#pop">
+        <DetectSpaces/>
+        <IncludeRules context="strings_and_vars"/>
+      </context>
+
+      <context name="bmake_expression" attribute="Variable" lineEndContext="#pop">
+        <DetectSpaces/>
+        <IncludeRules context="strings_and_vars"/>
+        <DetectChar attribute="Normal" context="#stay" char="("/>
+        <DetectChar attribute="Normal" context="#pop" char=")"/>
+        <DetectIdentifier attribute="Variable"/>
+      </context>
+
+      <context name="bmake_special_target" attribute="Error" lineEndContext="rule">
+        <!-- anything but spaces before the : should be an error -->
+        <DetectSpaces attribute="Normal" />
+        <DetectChar attribute="SpecialTarget" context="#pop!prereq" char=":"/>
+      </context>
+
+      <context name="bmake_message" attribute="String" lineEndContext="#pop">
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+      </context>
+
+      <context name="prereq" attribute="Prereq" lineEndContext="rule">
+        <DetectSpaces/>
+        <keyword attribute="SpecialPrereq" context="#stay" String="bmake_special_sources"/>
+        <DetectIdentifier/>
+        <LineContinue attribute="Operator" context="#stay"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+      </context>
+
+      <context name="rule" attribute="Normal" lineEndContext="#stay">
+        <LineContinue attribute="Operator" context="#stay"/>
+        <!-- pop if there is a leading non-tab,
+        and in particular, mark leading spaces as errors -->
+        <RegExpr attribute="Error" context="#pop#pop#pop" String="^ +" firstNonSpace="1"/>
+        <RegExpr context="#pop#pop#pop" String="^[^\t]" lookAhead="1" firstNonSpace="1"/>
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
+        <DetectChar attribute="String" context="string'" char="'"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
+        <AnyChar attribute="Operator" context="silent" String="@-" firstNonSpace="1"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+      </context>
+
+      <context name="silent" attribute="Silent" lineEndContext="#pop">
+        <LineContinue attribute="Operator" context="#stay"/>
+        <DetectSpaces/>
+        <DetectIdentifier/>
+        <DetectChar attribute="String" context="string&quot;" char="&quot;"/>
+        <DetectChar attribute="String" context="string'" char="'"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="#"/>
+        <Detect2Chars attribute="Special" context="#stay" char="\" char1="\"/>
+        <DetectChar attribute="Comment" context="Comment" char="#"/>
+      </context>
+
+      <context name="string&quot;" attribute="String" lineEndContext="#pop">
+        <LineContinue attribute="Operator" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+      </context>
+
+      <context name="string'" attribute="String" lineEndContext="#pop">
+        <LineContinue attribute="String" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="'"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+      </context>
+
+      <context name="assign" attribute="Operator" lineEndContext="#pop">
+        <DetectChar attribute="Operator" context="value" char="="/>
+      </context>
+
+      <context name="value" attribute="String" lineEndContext="#pop#pop">
+        <LineContinue attribute="Operator"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <RegExpr attribute="Special" context="#pop#pop" String="@[-_\d\w]*@"/>
+        <DetectChar attribute="Operator" char=";" context="#pop#pop"/>
+      </context>
+
+      <context name="dollar" attribute="Operator" lineEndContext="#pop">
+        <DetectChar attribute="Operator" context="call(" char="("/>
+        <DetectChar attribute="Operator" context="call{" char="{"/>
+        <RegExpr attribute="Operator" context="#pop" String="."/>
+      </context>
+
+      <context name="call(" attribute="Variable" lineEndContext="#stay" fallthroughContext="callVar(" fallthrough="1">
+        <keyword attribute="Keyword" context="callFunc(" String="functions"/>
+      </context>
+
+      <context name="call{" attribute="Variable" lineEndContext="#stay" fallthroughContext="callVar{" fallthrough="1">
+        <keyword attribute="Keyword" context="callFunc{" String="functions"/>
+      </context>
+
+      <context name="callVar(" attribute="Variable" lineEndContext="#stay">
+        <DetectChar attribute="Operator" char=")" context="#pop#pop#pop"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <DetectSpaces attribute="Error" context="#stay"/>
+        <AnyChar attribute="Error" context="#stay" String="=#:"/>
+      </context>
+
+      <context name="callVar{" attribute="Variable" lineEndContext="#stay">
+        <DetectChar attribute="Operator" char="}" context="#pop#pop#pop"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <DetectSpaces attribute="Error" context="#stay"/>
+        <!-- Handle bmake Variable modifiers: ${variable[:modifier[:...]]} -->
+        <Detect2Chars context="#stay" char="\" char1=":"/>
+        <!-- other modifiers -->
+        <DetectChar attribute="RealOperator" context="bmake_var_modifier" char=":"/>
+        <AnyChar attribute="Error" context="#stay" String="=#"/>
+      </context>
+
+      <context name="bmake_var_modifier_arg" attribute="VarModifier" lineEndContext="#pop">
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <Detect2Chars context="#stay" char="\" char1="}"/>
+        <DetectChar attribute="Operator" char="}" context="#pop#pop#pop#pop"/>
+        <Detect2Chars context="#stay" char="\" char1=":"/>
+        <DetectChar attribute="RealOperator" context="#pop!bmake_var_modifier" char=":"/>
+      </context>
+
+      <!-- TODO: once all modifiers are properly handled change fallthroughContext to "expect}" -->
+      <context name="bmake_var_modifier" attribute="VarModifier" lineEndContext="#pop" fallthroughContext="#pop!bmake_var_modifier_arg" fallthrough="true">
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+
+                    <!--
+          TODO :?true_string:false_string
+          TODO :old_string=new_string This is the AT&T System V UNIX style variable substitution.
+          TODO :@temp@string@ This is the loop expansion mechanism from the OSF Development Environment (ODE) make.
+          TODO :!cmd! The output of running cmd is the value.
+          TODO :[range]
+        -->
+        <!--  Modifiers without arguments:-->
+        <!--
+          :E Replaces each word in the variable with its suffix.
+          :H Replaces each word in the variable with everything but the last component.
+          :O   Order every word in variable alphabetically.
+          :Q   Quotes every shell meta-character in the variable
+          :R   Replaces each word in the variable with everything but its suffix.
+          :T   Replaces each word in the variable with its last component.
+          :u   Remove adjacent duplicate words (like uniq(1)).
+          :L The name of the variable is the value.
+          :P The path of the node which has the same name as the variable is the value.
+        -->
+        <AnyChar    attribute="Builtin" context="#pop!expect}" String="EHOQRTuLP"/>
+        <!-- :sh  If the variable is non-empty it is run as a command and the output becomes the new value. -->
+        <Detect2Chars attribute="Builtin" context="#pop!expect}" char="s" char1="h"/>
+        <!-- :Ox  Randomize words in variable. -->
+        <Detect2Chars attribute="Builtin" context="#pop!expect}" char="O" char1="x"/>
+        <!-- :tA  Attempt to convert variable to an absolute path using realpath(3),-->
+        <Detect2Chars attribute="Builtin" context="#pop!expect}" char="t" char1="A"/>
+        <!-- :tl  Converts variable to lower-case letters.-->
+        <Detect2Chars attribute="Builtin" context="#pop!expect}" char="t" char1="L"/>
+        <!--  :gmtime The value is a format string for strftime(3), using the current gmtime(3). -->
+        <StringDetect attribute="Builtin" String="gmtime" context="#pop!expect}" />
+        <!-- :hash Compute a 32bit hash of the value and encode it as hex digits. -->
+        <StringDetect attribute="Builtin" String="hash" context="#pop!expect}" />
+        <!-- :localtime The value is a format string for strftime(3), using the current localtime(3). -->
+        <StringDetect attribute="Builtin" String="localtime" context="#pop!expect}" />
+        <!--Now the modifiers with arguments:-->
+        <!--
+          :Mpattern Select only those words that match pattern.
+          :Npattern This is identical to `:M', but selects all words which do not match pattern.
+          :Dnewval If the variable is defined newval is the value.
+          :Unewval If the variable is undefined newval is the value.
+        -->
+        <AnyChar    attribute="Builtin" context="#pop!bmake_var_modifier_arg" String="MNDU"/>
+        <!-- TODO: add new context to highligh old_string and new_string differently
+          :S/old_string/new_string/[1gW]
+          :C/pattern/replacement/[1gW]
+        -->
+        <AnyChar attribute="Builtin" context="#pop!bmake_var_modifier_arg" String="SC"/>
+        <!-- ::=str The variable is assigned the value str after substitution. -->
+        <Detect2Chars attribute="Builtin" context="#pop!bmake_var_modifier_arg" char=":" char1="="/>
+        <!-- ::?=str As for ::= but only if the variable does not already have a value. -->
+        <StringDetect attribute="Builtin" String=":?=" context="#pop!bmake_var_modifier_arg" />
+        <!-- ::+=str Append str to the variable. -->
+        <StringDetect attribute="Builtin" String=":+=" context="#pop!bmake_var_modifier_arg" />
+        <!-- ::!=cmd Assign the output of cmd to the variable. -->
+        <StringDetect attribute="Builtin" String=":!=" context="#pop!bmake_var_modifier_arg" />
+        <!-- :tu  Converts variable to upper-case letters. -->
+        <Detect2Chars attribute="Builtin" context="#pop!bmake_var_modifier_arg" char="t" char1="u"/>
+        <!-- :tW  Causes the value to be treated as a single word.  See also `:[*]'. -->
+        <Detect2Chars attribute="Builtin" context="#pop!bmake_var_modifier_arg" char="t" char1="W"/>
+        <!-- :tw  Causes the value to be treated as a sequence of words delimited by white space.  See also `:[@]'.-->
+        <Detect2Chars attribute="Builtin" context="#pop!bmake_var_modifier_arg" char="t" char1="w"/>
+        <!-- :tsc Words in the variable are normally separated by a space on
+          expansion.  This modifier sets the separator to the character c.  If
+          c is omitted, then no separator is used.  The common escapes
+          (including octal numeric codes), work as expected. -->
+        <Detect2Chars attribute="Builtin" context="#pop!bmake_var_modifier_arg" char="t" char1="s"/>
+        <RegExpr String=""/>
+
+
+        <IncludeRules context="bmake_var_modifier_arg"/>
+      </context>
+
+      <context name="expect}" attribute="Error" lineEndContext="#pop#pop#pop#pop">
+        <Detect2Chars context="#stay" char="\" char1="}"/>
+        <DetectChar attribute="Operator" char="}" context="#pop#pop#pop#pop"/>
+      </context>
+
+      <context name="callFunc(" attribute="FuncParam" lineEndContext="#stay">
+        <DetectChar attribute="Operator" char=")" context="#pop#pop#pop"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <DetectChar attribute="Keyword" context="#stay" char=","/>
+        <DetectChar attribute="String" context="string'" char="'"/>
+      </context>
+
+      <context name="callFunc{" attribute="FuncParam" lineEndContext="#stay">
+        <DetectChar attribute="Operator" char="}" context="#pop#pop#pop"/>
+        <DetectChar attribute="Operator" context="dollar" char="$"/>
+        <DetectChar attribute="Keyword" context="#stay" char=","/>
+        <DetectChar attribute="String" context="string'" char="'"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <LineContinue attribute="Comment" context="#stay" />
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal"    defStyleNum="dsNormal" spellChecking="0"/>
+      <itemData name="Keyword"   defStyleNum="dsKeyword" spellChecking="0"/>
+      <itemData name="Comment"   defStyleNum="dsComment"/>
+      <itemData name="String"    defStyleNum="dsString" spellChecking="0"/>
+      <itemData name="Variable"  defStyleNum="dsDataType" spellChecking="0"/>
+      <itemData name="Target"    defStyleNum="dsDecVal" spellChecking="0"/>
+      <itemData name="Section"   defStyleNum="dsOthers" spellChecking="0"/>
+      <itemData name="Prereq"    defStyleNum="dsDataType" spellChecking="0"/>
+      <itemData name="FuncParam" defStyleNum="dsString" spellChecking="0"/>
+      <itemData name="Operator"  defStyleNum="dsChar" spellChecking="0"/>
+      <itemData name="Silent"    defStyleNum="dsFunction" spellChecking="0"/>
+      <itemData name="Special"   defStyleNum="dsFloat" spellChecking="0"/>
+      <itemData name="Error"     defStyleNum="dsError" spellChecking="0"/>
+      <itemData name="Builtin"   defStyleNum="dsBuiltIn" spellChecking="0"/>
+      <itemData name="Number"    defStyleNum="dsDecVal" spellChecking="0"/>
+      <itemData name="Include"   defStyleNum="dsImport" spellChecking="0"/>
+      <itemData name="ControlFlow" defStyleNum="dsControlFlow" spellChecking="0"/>
+      <itemData name="VarModifier" defStyleNum="dsSpecialString" spellChecking="0"/>
+      <itemData name="RealOperator" defStyleNum="dsKeyword" spellChecking="0"/>
+      <itemData name="SpecialTarget" defStyleNum="dsOthers" spellChecking="0" bold="1"/>
+      <itemData name="SpecialPrereq" defStyleNum="dsDataType" spellChecking="0" bold="1"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name = "singleLine" start = "#"/>
+    </comments>
+    <!-- '-' is not a deliminator in function filter-out -->
+    <keywords casesensitive="1" weakDeliminator = ".-"/>
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/mandoc.xml b/xml/mandoc.xml
new file mode 100644
--- /dev/null
+++ b/xml/mandoc.xml
@@ -0,0 +1,89 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Troff Mandoc" section="Markup" version="1" kateversion="2.4" extensions="*.1;*.2;*.3;*.4;*.5;*.6;*.7;*.8;*.1m;*.3x;*.tmac" mimetype="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
+
+  <highlighting>
+
+    <list name="headings">
+      <item>SH</item>
+      <item>SS</item>
+      <item>TH</item>
+    </list>
+
+    <list name="paragraph">
+      <item>HP</item>
+      <item>IP</item>
+      <item>LP</item>
+      <item>P</item>
+      <item>PD</item>
+      <item>PP</item>
+      <item>RE</item>
+      <item>RS</item>
+      <item>TP</item>
+    </list>
+
+    <list name="formatting">
+      <item>B</item>
+      <item>BI</item>
+      <item>BR</item>
+      <item>I</item>
+      <item>IB</item>
+      <item>IR</item>
+      <item>RB</item>
+      <item>RI</item>
+      <item>SM</item>
+      <item>SB</item>
+    </list>
+
+    <list name="others">
+      <item>DT</item>
+    </list>
+
+    <contexts>
+
+      <!-- root context -->
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="DetectComments##Roff"/>
+        <DetectChar attribute="Macros" context="DetectDirective" char="." column="0"/>
+        <IncludeRules context="DetectOthers##Roff"/>
+      </context>
+
+      <!-- directive start -->
+      <context name="DetectDirective" attribute="Macros" lineEndContext="#pop">
+        <keyword attribute="Headings" context="Directive" String="headings"/>
+        <keyword attribute="Paragraphs" context="Directive" String="paragraph"/>
+        <keyword attribute="Formatting" context="Directive" String="formatting"/>
+        <keyword attribute="Other Macros" context="Directive" String="others"/>
+        <IncludeRules context="DetectDirective##Roff"/>
+      </context>
+
+      <context name="Directive" attribute="Identifier" lineEndContext="#pop">
+        <IncludeRules context="Directive##Roff"/>
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"    defStyleNum="dsNormal"/>
+      <itemData name="Comment"        defStyleNum="dsComment"/>
+      <itemData name="Macros"         defStyleNum="dsFunction"/>
+      <itemData name="Headings"       defStyleNum="dsKeyword"/>
+      <itemData name="Paragraphs"     defStyleNum="dsDataType"/>
+      <itemData name="Formatting"     defStyleNum="dsKeyword"/>
+      <itemData name="Other Macros"   defStyleNum="dsFunction"/>
+      <itemData name="Identifier"     defStyleNum="dsString"/>
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+
+    <comments>
+      <comment name="singleLine" start=".\&quot;" />
+    </comments>
+
+    <keywords casesensitive="1"/>
+
+  </general>
+
+</language>
diff --git a/xml/markdown.xml b/xml/markdown.xml
new file mode 100644
--- /dev/null
+++ b/xml/markdown.xml
@@ -0,0 +1,134 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Kate syntax highlight filter for Markdown/MultiMarkdown documents.
+
+    Copyright 2008 Darrin Yeager. http://www.dyeager.org/
+    Dual-Licensed under both GPL and BSD licenses.
+
+    Extended 2009 Claes Holmerson. http://github.com/claes/kate-markdown/
+-->
+<!--
+    The [^\s]{1} is in the regex to avoid interfering with bullet list which
+    starts "* item". Thus emphasis/strong MUST be formed like *words here*
+    with the asterisks next to the beginning of the first word.
+
+    Match space or newline, followed by "*", followed by one non-space,
+    followed by anything non-asterisk, followed by "*", followed by
+    space, end-of-sentence punctuation, or the end of the line.
+-->
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+<!ENTITY strongemphasisregex "(\s|^)[\*_]{3}[^\*_]+[\*_]{3}(\s|\.|,|;|:|\-|\?|$)">
+<!ENTITY strongregex "(\s|^)[\*_]{2}[^\s]{1}[^\*_]+[\*_]{2}(\s|\.|,|;|:|\-|\?|$)">
+<!ENTITY emphasisregex "(\s|^)[\*_]{1}[^\s]{1}[^\*_]+[\*_]{1}(\s|\.|,|;|:|\-|\?|$)">
+<!ENTITY reflinkregex '\[[^\]\^]+\]\s*\[[^\]]*\]\s*(\s+\"[^\"]*\"){0,1}'>
+<!ENTITY reflinktargetregex '\[[^\]\^]+\]\:\s+[^\s]+(\s+\"[^\"]*\"){0,1}'>
+<!ENTITY footnoteregex "\[\^[^\]]+\]">
+<!ENTITY inlinelinkregex "\[[^\]\^]+\]\s*\([^\(]*\)">
+<!ENTITY inlineimageregex "\!\[[^\]\^]+\]\([^\(]*\)">
+<!ENTITY refimageregex "\!\[[^\]\^]+\]\[[^\[]*\]">
+<!ENTITY autolinkregex '&lt;(https?|ftp):[^\"&gt;\s]+&gt;'>
+<!ENTITY mailtolinkregex "&lt;(?:mailto:)?([-.\w]+\@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)&gt;">
+<!ENTITY rulerregex "\s*([\*\-_]\s?){3,}\s*">
+<!-- two spaces at end of line generates linebreak -->
+<!ENTITY linebreakregex "  $">
+<!ENTITY strikeoutregex "[~]{2}[^~].*[^~][~]{2}">
+<!-- pandoc style -->
+]>
+<language name="Markdown" version="2" kateversion="3.8" section="Markup" extensions="*.md;*.mmd;*.markdown" priority="15" author="Darrin Yeager, Claes Holmerson" license="GPL,BSD">
+  <highlighting>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text">
+        <DetectChar context="blockquote" char="&gt;" column="0"/>
+        <RegExpr attribute="h1" String="^#\s.*[#]?$"/>
+        <RegExpr attribute="h2" String="^##\s.*[#]?$"/>
+        <RegExpr attribute="h3" String="^###\s.*[#]?$"/>
+        <RegExpr attribute="h4" String="^####\s.*[#]?$"/>
+        <RegExpr attribute="h5" String="^#####\s.*[#]?$"/>
+        <RegExpr attribute="h6" String="^######\s.*[#]?$"/>
+        <RegExpr attribute="ruler" String="&rulerregex;"/>
+        <RegExpr attribute="strong" String="&strongregex;"/>
+        <RegExpr attribute="emphasis" String="&emphasisregex;"/>
+        <RegExpr attribute="strongemphasis" String="&strongemphasisregex;"/>
+        <RegExpr attribute="code" String="^([\s]{4,}|\t+).*$"/>
+        <RegExpr context="bullet" String="^[\*\+\-]\s"/>
+        <RegExpr context="numlist" String="^[\d]+\.\s"/>
+        <RegExpr attribute="meta" String="^(Title|Author|Date|Copyright|Revision|CSS|LaTeX\ XSLT|Categories|Tags|BaseName|Excerpt):(.*)+$"/>
+        <IncludeRules context="inc"/>
+      </context>
+      <context attribute="blockquote" lineEndContext="#stay" lineEmptyContext="#pop" name="blockquote">
+        <RegExpr attribute="bq-strong" String="&strongregex;"/>
+        <RegExpr attribute="bq-emphasis" String="&emphasisregex;"/>
+        <IncludeRules context="inc"/>
+      </context>
+      <context attribute="bullet" lineEndContext="#stay" lineEmptyContext="#pop" name="bullet">
+        <RegExpr attribute="bl-strong" String="&strongregex;"/>
+        <RegExpr attribute="bl-emphasis" String="&emphasisregex;"/>
+        <IncludeRules context="inc"/>
+      </context>
+      <context attribute="numlist" lineEndContext="#stay" lineEmptyContext="#pop" name="numlist">
+        <RegExpr attribute="nl-strong" String="&strongregex;"/>
+        <RegExpr attribute="nl-emphasis" String="&emphasisregex;"/>
+        <IncludeRules context="inc"/>
+      </context>
+      <context attribute="comment" lineEndContext="#stay" name="comment">
+        <RegExpr String="--&gt;" attribute="comment" context="#pop" endRegion="comment"/>
+      </context>
+      <context attribute="common" name="inc" lineEndContext="#stay">
+        <RegExpr attribute="code" String="`[^`]+`"/>
+        <RegExpr context="comment" String="&lt;!--" beginRegion="comment"/>
+        <RegExpr attribute="reflink" String="&reflinkregex;"/>
+        <RegExpr attribute="footnote" String="&footnoteregex;"/>
+        <RegExpr attribute="inlinelink" String="&inlinelinkregex;"/>
+        <RegExpr attribute="reflinktarget" String="&reflinktargetregex;"/>
+        <RegExpr attribute="inlineimage" String="&inlineimageregex;"/>
+        <RegExpr attribute="refimage" String="&refimageregex;"/>
+        <RegExpr attribute="autolink" String="&autolinkregex;"/>
+        <RegExpr attribute="mailtolink" String="&mailtolinkregex;"/>
+        <RegExpr attribute="strikeout" minimal="true" String="&strikeoutregex;"/>
+        <RegExpr attribute="linebreak" minimal="true" String="&linebreakregex;"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="common" defStyleNum="dsNormal"/>
+      <itemData name="strongemphasis" defStyleNum="dsNormal" italic="true" bold="true"/>
+      <itemData name="emphasis" defStyleNum="dsNormal" italic="true"/>
+      <itemData name="strong" defStyleNum="dsNormal" bold="true"/>
+      <itemData name="ruler" defStyleNum="dsNormal" bold="true"/>
+      <itemData name="strikeout" defStyleNum="dsNormal" strikeOut="true"/>
+      <itemData name="linebreak" defStyleNum="dsNormal" underline="true" color="#999999"/>
+      <itemData name="h1" defStyleNum="dsFunction" bold="true"/>
+      <itemData name="h2" defStyleNum="dsFunction" bold="true"/>
+      <itemData name="h3" defStyleNum="dsFunction" bold="true"/>
+      <itemData name="h4" defStyleNum="dsFunction" bold="true"/>
+      <itemData name="h5" defStyleNum="dsFunction" bold="true"/>
+      <itemData name="h6" defStyleNum="dsFunction" bold="true"/>
+      <itemData name="blockquote" defStyleNum="dsDataType"/>
+      <itemData name="bq-emphasis" defStyleNum="dsDataType" italic="true"/>
+      <itemData name="bq-strong" defStyleNum="dsDataType" bold="true"/>
+      <itemData name="bullet" defStyleNum="dsFloat"/>
+      <itemData name="bl-emphasis" defStyleNum="dsFloat" italic="true"/>
+      <itemData name="bl-strong" defStyleNum="dsFloat" bold="true"/>
+      <itemData name="numlist" defStyleNum="dsFloat"/>
+      <itemData name="nl-emphasis" defStyleNum="dsFloat" italic="true"/>
+      <itemData name="nl-strong" defStyleNum="dsFloat" bold="true"/>
+      <itemData name="comment" defStyleNum="dsComment"/>
+      <itemData name="code" defStyleNum="dsBaseN"/>
+      <itemData name="reflink" defStyleNum="dsOthers" underline="true"/>
+      <itemData name="inlinelink" defStyleNum="dsOthers" underline="true"/>
+      <itemData name="autolink" defStyleNum="dsOthers" underline="true"/>
+      <itemData name="mailtolink" defStyleNum="dsOthers" underline="true"/>
+      <itemData name="footnote" defStyleNum="dsOthers" italic="true"/>
+      <itemData name="meta" defStyleNum="dsComment"/>
+      <itemData name="reflinktarget" defStyleNum="dsOthers" italic="false" bold="false"/>
+      <itemData name="inlineimage" defStyleNum="dsAlert" italic="false" bold="false"/>
+      <itemData name="refimage" defStyleNum="dsAlert" italic="false" bold="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="multiLine" start="&lt;!--" end="--&gt;" region="comment"/>
+    </comments>
+  </general>
+</language>
diff --git a/xml/mathematica.xml b/xml/mathematica.xml
new file mode 100644
--- /dev/null
+++ b/xml/mathematica.xml
@@ -0,0 +1,3229 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Mathematica" version="9" kateversion="3.4" section="Scientific" extensions="*.nb" indenter="cstyle"
+          author="Sven Brauch (svenbrauch@gmail.com)" license="LGPL" priority="3">
+  <highlighting>
+    <list name="functions">
+      <item>A</item>
+      <item>AbelianGroup</item>
+      <item>All</item>
+      <item>ArcSinh</item>
+      <item>Abort</item>
+      <item>AllowGroupClose</item>
+      <item>ArcTan</item>
+      <item>AbortKernels</item>
+      <item>AllowReverseGroupClose</item>
+      <item>ArcTanh</item>
+      <item>AbortProtect</item>
+      <item>AlphaChannel</item>
+      <item>Arg</item>
+      <item>Abs</item>
+      <item>AlternatingGroup</item>
+      <item>ArgMax</item>
+      <item>AbsoluteCurrentValue</item>
+      <item>AlternativeHypothesis</item>
+      <item>ArgMin</item>
+      <item>AbsoluteDashing</item>
+      <item>Alternatives</item>
+      <item>ArithmeticGeometricMean</item>
+      <item>AbsoluteFileName</item>
+      <item>AnchoredSearch</item>
+      <item>Array</item>
+      <item>AbsoluteOptions</item>
+      <item>And</item>
+      <item>ArrayComponents</item>
+      <item>AbsolutePointSize</item>
+      <item>AndersonDarlingTest</item>
+      <item>ArrayDepth</item>
+      <item>AbsoluteThickness</item>
+      <item>AngerJ</item>
+      <item>ArrayFlatten</item>
+      <item>AbsoluteTime</item>
+      <item>AngleBracket</item>
+      <item>ArrayPad</item>
+      <item>AbsoluteTiming</item>
+      <item>Animate</item>
+      <item>ArrayPlot</item>
+      <item>AccountingForm</item>
+      <item>AnimationDirection</item>
+      <item>ArrayQ</item>
+      <item>Accumulate</item>
+      <item>AnimationDisplayTime</item>
+      <item>ArrayRules</item>
+      <item>Accuracy</item>
+      <item>AnimationRate</item>
+      <item>Arrow</item>
+      <item>AccuracyGoal</item>
+      <item>AnimationRepetitions</item>
+      <item>Arrowheads</item>
+      <item>ActionMenu</item>
+      <item>AnimationRunning</item>
+      <item>AspectRatio</item>
+      <item>ActiveStyle</item>
+      <item>Animator</item>
+      <item>Assert</item>
+      <item>AcyclicGraphQ</item>
+      <item>Annotation</item>
+      <item>Assuming</item>
+      <item>AddTo</item>
+      <item>Annuity</item>
+      <item>Assumptions</item>
+      <item>AdjacencyGraph</item>
+      <item>AnnuityDue</item>
+      <item>AstronomicalData</item>
+      <item>AdjacencyMatrix</item>
+      <item>Antialiasing</item>
+      <item>Asynchronous</item>
+      <item>AdjustmentBox</item>
+      <item>Apart</item>
+      <item>AtomQ</item>
+      <item>AffineTransform</item>
+      <item>ApartSquareFree</item>
+      <item>Attributes</item>
+      <item>AiryAi</item>
+      <item>Appearance</item>
+      <item>AugmentedSymmetricPolynomial</item>
+      <item>AiryAiPrime</item>
+      <item>AppearanceElements</item>
+      <item>AutoAction</item>
+      <item>AiryAiZero</item>
+      <item>AppellF1</item>
+      <item>AutoIndent</item>
+      <item>AiryBi</item>
+      <item>Append</item>
+      <item>AutoItalicWords</item>
+      <item>AiryBiPrime</item>
+      <item>AppendTo</item>
+      <item>Automatic</item>
+      <item>AiryBiZero</item>
+      <item>Apply</item>
+      <item>AutoMultiplicationSymbol</item>
+      <item>AlgebraicIntegerQ</item>
+      <item>ArcCos</item>
+      <item>AutorunSequencing</item>
+      <item>AlgebraicNumber</item>
+      <item>ArcCosh</item>
+      <item>AutoScroll</item>
+      <item>AlgebraicNumberDenominator</item>
+      <item>ArcCot</item>
+      <item>AutoSpacing</item>
+      <item>AlgebraicNumberNorm</item>
+      <item>ArcCoth</item>
+      <item>Axes</item>
+      <item>AlgebraicNumberPolynomial</item>
+      <item>ArcCsc</item>
+      <item>AxesEdge</item>
+      <item>AlgebraicNumberTrace</item>
+      <item>ArcCsch</item>
+      <item>AxesLabel</item>
+      <item>Algebraics</item>
+      <item>ArcSec</item>
+      <item>AxesOrigin</item>
+      <item>AlgebraicUnitQ</item>
+      <item>ArcSech</item>
+      <item>AxesStyle</item>
+      <item>Alignment</item>
+      <item>ArcSin</item>
+      <item>Axis</item>
+      <item>AlignmentPoint</item>
+      <item>ArcSinDistribution</item>
+      <item>B</item>
+      <item>BabyMonsterGroupB</item>
+      <item>BetaRegularized</item>
+      <item>BooleanGraph</item>
+      <item>Back</item>
+      <item>BetweennessCentrality</item>
+      <item>BooleanMaxterms</item>
+      <item>Background</item>
+      <item>BezierCurve</item>
+      <item>BooleanMinimize</item>
+      <item>Backslash</item>
+      <item>BezierFunction</item>
+      <item>BooleanMinterms</item>
+      <item>Backward</item>
+      <item>BilateralFilter</item>
+      <item>Booleans</item>
+      <item>Band</item>
+      <item>Binarize</item>
+      <item>BooleanTable</item>
+      <item>BarabasiAlbertGraphDistribution</item>
+      <item>BinaryFormat</item>
+      <item>BooleanVariables</item>
+      <item>BarChart</item>
+      <item>BinaryImageQ</item>
+      <item>BorderDimensions</item>
+      <item>BarChart3D</item>
+      <item>BinaryRead</item>
+      <item>BorelTannerDistribution</item>
+      <item>BarnesG</item>
+      <item>BinaryReadList</item>
+      <item>Bottom</item>
+      <item>BarOrigin</item>
+      <item>BinaryWrite</item>
+      <item>BottomHatTransform</item>
+      <item>BarSpacing</item>
+      <item>BinCounts</item>
+      <item>BoundaryStyle</item>
+      <item>BaseForm</item>
+      <item>BinLists</item>
+      <item>BoxData</item>
+      <item>Baseline</item>
+      <item>Binomial</item>
+      <item>Boxed</item>
+      <item>BaselinePosition</item>
+      <item>BinomialDistribution</item>
+      <item>BoxMatrix</item>
+      <item>BaseStyle</item>
+      <item>BinormalDistribution</item>
+      <item>BoxRatios</item>
+      <item>BatesDistribution</item>
+      <item>BiorthogonalSplineWavelet</item>
+      <item>BoxStyle</item>
+      <item>BattleLemarieWavelet</item>
+      <item>BipartiteGraphQ</item>
+      <item>BoxWhiskerChart</item>
+      <item>Because</item>
+      <item>BirnbaumSaundersDistribution</item>
+      <item>BracketingBar</item>
+      <item>BeckmannDistribution</item>
+      <item>BitAnd</item>
+      <item>BrayCurtisDistance</item>
+      <item>Beep</item>
+      <item>BitClear</item>
+      <item>BreadthFirstScan</item>
+      <item>Begin</item>
+      <item>BitGet</item>
+      <item>Break</item>
+      <item>BeginDialogPacket</item>
+      <item>BitLength</item>
+      <item>Brown</item>
+      <item>BeginPackage</item>
+      <item>BitNot</item>
+      <item>BrownForsytheTest</item>
+      <item>BellB</item>
+      <item>BitOr</item>
+      <item>BSplineBasis</item>
+      <item>BellY</item>
+      <item>BitSet</item>
+      <item>BSplineCurve</item>
+      <item>BenfordDistribution</item>
+      <item>BitShiftLeft</item>
+      <item>BSplineFunction</item>
+      <item>BeniniDistribution</item>
+      <item>BitShiftRight</item>
+      <item>BSplineSurface</item>
+      <item>BenktanderGibratDistribution</item>
+      <item>BitXor</item>
+      <item>BubbleChart</item>
+      <item>BenktanderWeibullDistribution</item>
+      <item>Black</item>
+      <item>BubbleChart3D</item>
+      <item>BernoulliB</item>
+      <item>Blank</item>
+      <item>BubbleScale</item>
+      <item>BernoulliDistribution</item>
+      <item>BlankNullSequence</item>
+      <item>BubbleSizes</item>
+      <item>BernoulliGraphDistribution</item>
+      <item>BlankSequence</item>
+      <item>ButterflyGraph</item>
+      <item>BernsteinBasis</item>
+      <item>Blend</item>
+      <item>Button</item>
+      <item>BesselI</item>
+      <item>Block</item>
+      <item>ButtonBar</item>
+      <item>BesselJ</item>
+      <item>BlockRandom</item>
+      <item>ButtonBox</item>
+      <item>BesselJZero</item>
+      <item>Blue</item>
+      <item>ButtonData</item>
+      <item>BesselK</item>
+      <item>Blur</item>
+      <item>ButtonFrame</item>
+      <item>BesselY</item>
+      <item>BodePlot</item>
+      <item>ButtonFunction</item>
+      <item>BesselYZero</item>
+      <item>Bold</item>
+      <item>ButtonMinHeight</item>
+      <item>Beta</item>
+      <item>Bookmarks</item>
+      <item>ButtonNotebook</item>
+      <item>BetaBinomialDistribution</item>
+      <item>Boole</item>
+      <item>ButtonSource</item>
+      <item>BetaDistribution</item>
+      <item>BooleanConvert</item>
+      <item>Byte</item>
+      <item>BetaNegativeBinomialDistribution</item>
+      <item>BooleanCountingFunction</item>
+      <item>ByteCount</item>
+      <item>BetaPrimeDistribution</item>
+      <item>BooleanFunction</item>
+      <item>ByteOrdering</item>
+      <item>C</item>
+      <item>C</item>
+      <item>CityData</item>
+      <item>ContinuousAction</item>
+      <item>CallPacket</item>
+      <item>Clear</item>
+      <item>ContinuousTimeModelQ</item>
+      <item>CanberraDistance</item>
+      <item>ClearAll</item>
+      <item>ContinuousWaveletData</item>
+      <item>Cancel</item>
+      <item>ClearAttributes</item>
+      <item>ContinuousWaveletTransform</item>
+      <item>CancelButton</item>
+      <item>ClearSystemCache</item>
+      <item>ContourDetect</item>
+      <item>CandlestickChart</item>
+      <item>ClebschGordan</item>
+      <item>ContourLabels</item>
+      <item>Cap</item>
+      <item>ClickPane</item>
+      <item>ContourPlot</item>
+      <item>CapForm</item>
+      <item>Clip</item>
+      <item>ContourPlot3D</item>
+      <item>CapitalDifferentialD</item>
+      <item>ClippingStyle</item>
+      <item>Contours</item>
+      <item>CarmichaelLambda</item>
+      <item>Clock</item>
+      <item>ContourShading</item>
+      <item>Cases</item>
+      <item>Close</item>
+      <item>ContourStyle</item>
+      <item>Cashflow</item>
+      <item>CloseKernels</item>
+      <item>ContraharmonicMean</item>
+      <item>Casoratian</item>
+      <item>ClosenessCentrality</item>
+      <item>Control</item>
+      <item>Catalan</item>
+      <item>Closing</item>
+      <item>ControlActive</item>
+      <item>CatalanNumber</item>
+      <item>ClusteringComponents</item>
+      <item>ControllabilityGramian</item>
+      <item>Catch</item>
+      <item>CMYKColor</item>
+      <item>ControllabilityMatrix</item>
+      <item>CauchyDistribution</item>
+      <item>Coefficient</item>
+      <item>ControllableDecomposition</item>
+      <item>CayleyGraph</item>
+      <item>CoefficientArrays</item>
+      <item>ControllableModelQ</item>
+      <item>CDF</item>
+      <item>CoefficientList</item>
+      <item>ControllerInformation</item>
+      <item>CDFWavelet</item>
+      <item>CoefficientRules</item>
+      <item>ControllerLinking</item>
+      <item>Ceiling</item>
+      <item>CoifletWavelet</item>
+      <item>ControllerManipulate</item>
+      <item>Cell</item>
+      <item>Collect</item>
+      <item>ControllerMethod</item>
+      <item>CellAutoOverwrite</item>
+      <item>Colon</item>
+      <item>ControllerPath</item>
+      <item>CellBaseline</item>
+      <item>ColorCombine</item>
+      <item>ControllerState</item>
+      <item>CellChangeTimes</item>
+      <item>ColorConvert</item>
+      <item>ControlPlacement</item>
+      <item>CellContext</item>
+      <item>ColorData</item>
+      <item>ControlsRendering</item>
+      <item>CellDingbat</item>
+      <item>ColorDataFunction</item>
+      <item>ControlType</item>
+      <item>CellDynamicExpression</item>
+      <item>ColorFunction</item>
+      <item>Convergents</item>
+      <item>CellEditDuplicate</item>
+      <item>ColorFunctionScaling</item>
+      <item>ConversionRules</item>
+      <item>CellEpilog</item>
+      <item>Colorize</item>
+      <item>Convolve</item>
+      <item>CellEvaluationDuplicate</item>
+      <item>ColorNegate</item>
+      <item>ConwayGroupCo1</item>
+      <item>CellEvaluationFunction</item>
+      <item>ColorQuantize</item>
+      <item>ConwayGroupCo2</item>
+      <item>CellEventActions</item>
+      <item>ColorRules</item>
+      <item>ConwayGroupCo3</item>
+      <item>CellFrame</item>
+      <item>ColorSeparate</item>
+      <item>CoordinatesToolOptions</item>
+      <item>CellFrameMargins</item>
+      <item>ColorSetter</item>
+      <item>CoprimeQ</item>
+      <item>CellGroup</item>
+      <item>ColorSlider</item>
+      <item>Coproduct</item>
+      <item>CellGroupData</item>
+      <item>ColorSpace</item>
+      <item>CopulaDistribution</item>
+      <item>CellGrouping</item>
+      <item>Column</item>
+      <item>Copyable</item>
+      <item>CellLabel</item>
+      <item>ColumnAlignments</item>
+      <item>CopyDirectory</item>
+      <item>CellLabelAutoDelete</item>
+      <item>ColumnLines</item>
+      <item>CopyFile</item>
+      <item>CellMargins</item>
+      <item>ColumnsEqual</item>
+      <item>CopyToClipboard</item>
+      <item>CellOpen</item>
+      <item>ColumnSpacings</item>
+      <item>CornerFilter</item>
+      <item>CellPrint</item>
+      <item>ColumnWidths</item>
+      <item>CornerNeighbors</item>
+      <item>CellProlog</item>
+      <item>Commonest</item>
+      <item>Correlation</item>
+      <item>CellTags</item>
+      <item>CommonestFilter</item>
+      <item>CorrelationDistance</item>
+      <item>CellularAutomaton</item>
+      <item>CompilationOptions</item>
+      <item>Cos</item>
+      <item>CensoredDistribution</item>
+      <item>CompilationTarget</item>
+      <item>Cosh</item>
+      <item>Censoring</item>
+      <item>Compile</item>
+      <item>CoshIntegral</item>
+      <item>Center</item>
+      <item>Compiled</item>
+      <item>CosineDistance</item>
+      <item>CenterDot</item>
+      <item>CompiledFunction</item>
+      <item>CosIntegral</item>
+      <item>CentralMoment</item>
+      <item>Complement</item>
+      <item>Cot</item>
+      <item>CentralMomentGeneratingFunction</item>
+      <item>CompleteGraph</item>
+      <item>Coth</item>
+      <item>CForm</item>
+      <item>CompleteGraphQ</item>
+      <item>Count</item>
+      <item>ChampernowneNumber</item>
+      <item>CompleteKaryTree</item>
+      <item>CountRoots</item>
+      <item>ChanVeseBinarize</item>
+      <item>Complex</item>
+      <item>CountryData</item>
+      <item>Character</item>
+      <item>Complexes</item>
+      <item>Covariance</item>
+      <item>CharacterEncoding</item>
+      <item>ComplexExpand</item>
+      <item>CovarianceEstimatorFunction</item>
+      <item>CharacteristicFunction</item>
+      <item>ComplexInfinity</item>
+      <item>CramerVonMisesTest</item>
+      <item>CharacteristicPolynomial</item>
+      <item>ComplexityFunction</item>
+      <item>CreateArchive</item>
+      <item>CharacterRange</item>
+      <item>ComponentMeasurements</item>
+      <item>CreateDialog</item>
+      <item>Characters</item>
+      <item>ComposeList</item>
+      <item>CreateDirectory</item>
+      <item>ChartBaseStyle</item>
+      <item>ComposeSeries</item>
+      <item>CreateDocument</item>
+      <item>ChartElementFunction</item>
+      <item>Composition</item>
+      <item>CreateIntermediateDirectories</item>
+      <item>ChartElements</item>
+      <item>CompoundExpression</item>
+      <item>CreatePalette</item>
+      <item>ChartLabels</item>
+      <item>Compress</item>
+      <item>CreateScheduledTask</item>
+      <item>ChartLayout</item>
+      <item>Condition</item>
+      <item>CreateWindow</item>
+      <item>ChartLegends</item>
+      <item>ConditionalExpression</item>
+      <item>CriticalSection</item>
+      <item>ChartStyle</item>
+      <item>Conditioned</item>
+      <item>Cross</item>
+      <item>ChebyshevT</item>
+      <item>Cone</item>
+      <item>CrossingDetect</item>
+      <item>ChebyshevU</item>
+      <item>ConfidenceLevel</item>
+      <item>CrossMatrix</item>
+      <item>Check</item>
+      <item>Congruent</item>
+      <item>Csc</item>
+      <item>CheckAbort</item>
+      <item>Conjugate</item>
+      <item>Csch</item>
+      <item>Checkbox</item>
+      <item>ConjugateTranspose</item>
+      <item>Cubics</item>
+      <item>CheckboxBar</item>
+      <item>Conjunction</item>
+      <item>Cuboid</item>
+      <item>ChemicalData</item>
+      <item>ConnectedComponents</item>
+      <item>Cumulant</item>
+      <item>ChessboardDistance</item>
+      <item>ConnectedGraphQ</item>
+      <item>CumulantGeneratingFunction</item>
+      <item>ChiDistribution</item>
+      <item>ConoverTest</item>
+      <item>Cup</item>
+      <item>ChineseRemainder</item>
+      <item>Constant</item>
+      <item>CupCap</item>
+      <item>ChiSquareDistribution</item>
+      <item>ConstantArray</item>
+      <item>CurrentImage</item>
+      <item>ChoiceButtons</item>
+      <item>Constants</item>
+      <item>CurrentValue</item>
+      <item>ChoiceDialog</item>
+      <item>ContentPadding</item>
+      <item>CurvatureFlowFilter</item>
+      <item>CholeskyDecomposition</item>
+      <item>ContentSelectable</item>
+      <item>CurveClosed</item>
+      <item>Chop</item>
+      <item>ContentSize</item>
+      <item>Cyan</item>
+      <item>Circle</item>
+      <item>Context</item>
+      <item>CycleGraph</item>
+      <item>CircleDot</item>
+      <item>Contexts</item>
+      <item>Cycles</item>
+      <item>CircleMinus</item>
+      <item>ContextToFileName</item>
+      <item>CyclicGroup</item>
+      <item>CirclePlus</item>
+      <item>Continue</item>
+      <item>Cyclotomic</item>
+      <item>CircleTimes</item>
+      <item>ContinuedFraction</item>
+      <item>Cylinder</item>
+      <item>CirculantGraph</item>
+      <item>ContinuedFractionK</item>
+      <item>CylindricalDecomposition</item>
+      <item>D</item>
+      <item>D</item>
+      <item>DepthFirstScan</item>
+      <item>DiskMatrix</item>
+      <item>DagumDistribution</item>
+      <item>Derivative</item>
+      <item>Dispatch</item>
+      <item>DamerauLevenshteinDistance</item>
+      <item>DerivativeFilter</item>
+      <item>DispersionEstimatorFunction</item>
+      <item>Darker</item>
+      <item>DesignMatrix</item>
+      <item>DisplayAllSteps</item>
+      <item>Dashed</item>
+      <item>Det</item>
+      <item>DisplayEndPacket</item>
+      <item>Dashing</item>
+      <item>DGaussianWavelet</item>
+      <item>DisplayForm</item>
+      <item>DataDistribution</item>
+      <item>Diagonal</item>
+      <item>DisplayFunction</item>
+      <item>DataRange</item>
+      <item>DiagonalMatrix</item>
+      <item>DisplayPacket</item>
+      <item>DataReversed</item>
+      <item>Dialog</item>
+      <item>DistanceFunction</item>
+      <item>DateDifference</item>
+      <item>DialogInput</item>
+      <item>DistanceTransform</item>
+      <item>DateFunction</item>
+      <item>DialogNotebook</item>
+      <item>Distribute</item>
+      <item>DateList</item>
+      <item>DialogProlog</item>
+      <item>Distributed</item>
+      <item>DateListLogPlot</item>
+      <item>DialogReturn</item>
+      <item>DistributedContexts</item>
+      <item>DateListPlot</item>
+      <item>DialogSymbols</item>
+      <item>DistributeDefinitions</item>
+      <item>DatePattern</item>
+      <item>Diamond</item>
+      <item>DistributionChart</item>
+      <item>DatePlus</item>
+      <item>DiamondMatrix</item>
+      <item>DistributionFitTest</item>
+      <item>DateString</item>
+      <item>DiceDissimilarity</item>
+      <item>DistributionParameterAssumptions</item>
+      <item>DateTicksFormat</item>
+      <item>DictionaryLookup</item>
+      <item>DistributionParameterQ</item>
+      <item>DaubechiesWavelet</item>
+      <item>DifferenceDelta</item>
+      <item>Divide</item>
+      <item>DavisDistribution</item>
+      <item>DifferenceRoot</item>
+      <item>DivideBy</item>
+      <item>DawsonF</item>
+      <item>DifferenceRootReduce</item>
+      <item>Dividers</item>
+      <item>DeBruijnGraph</item>
+      <item>Differences</item>
+      <item>Divisible</item>
+      <item>DeclarePackage</item>
+      <item>DifferentialD</item>
+      <item>Divisors</item>
+      <item>Decompose</item>
+      <item>DifferentialRoot</item>
+      <item>DivisorSigma</item>
+      <item>Decrement</item>
+      <item>DifferentialRootReduce</item>
+      <item>DivisorSum</item>
+      <item>DedekindEta</item>
+      <item>DigitBlock</item>
+      <item>DMSList</item>
+      <item>Default</item>
+      <item>DigitCharacter</item>
+      <item>DMSString</item>
+      <item>DefaultAxesStyle</item>
+      <item>DigitCount</item>
+      <item>Do</item>
+      <item>DefaultBaseStyle</item>
+      <item>DigitQ</item>
+      <item>DockedCells</item>
+      <item>DefaultBoxStyle</item>
+      <item>DihedralGroup</item>
+      <item>DocumentNotebook</item>
+      <item>DefaultButton</item>
+      <item>Dilation</item>
+      <item>Dot</item>
+      <item>DefaultDuplicateCellStyle</item>
+      <item>Dimensions</item>
+      <item>DotDashed</item>
+      <item>DefaultDuration</item>
+      <item>DiracComb</item>
+      <item>DotEqual</item>
+      <item>DefaultElement</item>
+      <item>DiracDelta</item>
+      <item>Dotted</item>
+      <item>DefaultFaceGridsStyle</item>
+      <item>DirectedEdge</item>
+      <item>DoubleBracketingBar</item>
+      <item>DefaultFieldHintStyle</item>
+      <item>DirectedEdges</item>
+      <item>DoubleDownArrow</item>
+      <item>DefaultFrameStyle</item>
+      <item>DirectedGraph</item>
+      <item>DoubleLeftArrow</item>
+      <item>DefaultFrameTicksStyle</item>
+      <item>DirectedGraphQ</item>
+      <item>DoubleLeftRightArrow</item>
+      <item>DefaultGridLinesStyle</item>
+      <item>DirectedInfinity</item>
+      <item>DoubleLongLeftArrow</item>
+      <item>DefaultLabelStyle</item>
+      <item>Direction</item>
+      <item>DoubleLongLeftRightArrow</item>
+      <item>DefaultMenuStyle</item>
+      <item>Directive</item>
+      <item>DoubleLongRightArrow</item>
+      <item>DefaultNewCellStyle</item>
+      <item>Directory</item>
+      <item>DoubleRightArrow</item>
+      <item>DefaultOptions</item>
+      <item>DirectoryName</item>
+      <item>DoubleUpArrow</item>
+      <item>DefaultTicksStyle</item>
+      <item>DirectoryQ</item>
+      <item>DoubleUpDownArrow</item>
+      <item>Defer</item>
+      <item>DirectoryStack</item>
+      <item>DoubleVerticalBar</item>
+      <item>Definition</item>
+      <item>DirichletCharacter</item>
+      <item>DownArrow</item>
+      <item>Degree</item>
+      <item>DirichletConvolve</item>
+      <item>DownArrowBar</item>
+      <item>DegreeCentrality</item>
+      <item>DirichletDistribution</item>
+      <item>DownArrowUpArrow</item>
+      <item>DegreeGraphDistribution</item>
+      <item>DirichletL</item>
+      <item>DownLeftRightVector</item>
+      <item>Deinitialization</item>
+      <item>DirichletTransform</item>
+      <item>DownLeftTeeVector</item>
+      <item>Del</item>
+      <item>DiscreteConvolve</item>
+      <item>DownLeftVector</item>
+      <item>Deletable</item>
+      <item>DiscreteDelta</item>
+      <item>DownLeftVectorBar</item>
+      <item>Delete</item>
+      <item>DiscreteIndicator</item>
+      <item>DownRightTeeVector</item>
+      <item>DeleteBorderComponents</item>
+      <item>DiscreteLQEstimatorGains</item>
+      <item>DownRightVector</item>
+      <item>DeleteCases</item>
+      <item>DiscreteLQRegulatorGains</item>
+      <item>DownRightVectorBar</item>
+      <item>DeleteContents</item>
+      <item>DiscreteLyapunovSolve</item>
+      <item>DownTeeArrow</item>
+      <item>DeleteDirectory</item>
+      <item>DiscretePlot</item>
+      <item>DownValues</item>
+      <item>DeleteDuplicates</item>
+      <item>DiscretePlot3D</item>
+      <item>DragAndDrop</item>
+      <item>DeleteFile</item>
+      <item>DiscreteRatio</item>
+      <item>Drop</item>
+      <item>DeleteSmallComponents</item>
+      <item>DiscreteRiccatiSolve</item>
+      <item>DSolve</item>
+      <item>Delimiter</item>
+      <item>DiscreteShift</item>
+      <item>Dt</item>
+      <item>DelimiterFlashTime</item>
+      <item>DiscreteTimeModelQ</item>
+      <item>DualSystemsModel</item>
+      <item>Denominator</item>
+      <item>DiscreteUniformDistribution</item>
+      <item>DumpSave</item>
+      <item>DensityHistogram</item>
+      <item>DiscreteWaveletData</item>
+      <item>Dynamic</item>
+      <item>DensityPlot</item>
+      <item>DiscreteWaveletPacketTransform</item>
+      <item>DynamicEvaluationTimeout</item>
+      <item>DependentVariables</item>
+      <item>DiscreteWaveletTransform</item>
+      <item>DynamicModule</item>
+      <item>Deploy</item>
+      <item>Discriminant</item>
+      <item>DynamicModuleValues</item>
+      <item>Deployed</item>
+      <item>Disjunction</item>
+      <item>DynamicSetting</item>
+      <item>Depth</item>
+      <item>Disk</item>
+      <item>DynamicWrapper</item>
+      <item>E</item>
+      <item>E</item>
+      <item>End</item>
+      <item>ExactNumberQ</item>
+      <item>EdgeAdd</item>
+      <item>EndDialogPacket</item>
+      <item>ExampleData</item>
+      <item>EdgeCount</item>
+      <item>EndOfFile</item>
+      <item>Except</item>
+      <item>EdgeCoverQ</item>
+      <item>EndOfLine</item>
+      <item>ExcludedForms</item>
+      <item>EdgeDelete</item>
+      <item>EndOfString</item>
+      <item>ExcludePods</item>
+      <item>EdgeDetect</item>
+      <item>EndPackage</item>
+      <item>Exclusions</item>
+      <item>EdgeForm</item>
+      <item>EngineeringForm</item>
+      <item>ExclusionsStyle</item>
+      <item>EdgeIndex</item>
+      <item>EnterExpressionPacket</item>
+      <item>Exists</item>
+      <item>EdgeLabeling</item>
+      <item>EnterTextPacket</item>
+      <item>Exit</item>
+      <item>EdgeLabels</item>
+      <item>Entropy</item>
+      <item>Exp</item>
+      <item>EdgeList</item>
+      <item>EntropyFilter</item>
+      <item>Expand</item>
+      <item>EdgeQ</item>
+      <item>Environment</item>
+      <item>ExpandAll</item>
+      <item>EdgeRenderingFunction</item>
+      <item>Epilog</item>
+      <item>ExpandDenominator</item>
+      <item>EdgeRules</item>
+      <item>Equal</item>
+      <item>ExpandFileName</item>
+      <item>EdgeShapeFunction</item>
+      <item>EqualTilde</item>
+      <item>ExpandNumerator</item>
+      <item>EdgeStyle</item>
+      <item>Equilibrium</item>
+      <item>Expectation</item>
+      <item>EdgeWeight</item>
+      <item>Equivalent</item>
+      <item>ExpGammaDistribution</item>
+      <item>Editable</item>
+      <item>Erf</item>
+      <item>ExpIntegralE</item>
+      <item>EditDistance</item>
+      <item>Erfc</item>
+      <item>ExpIntegralEi</item>
+      <item>EffectiveInterest</item>
+      <item>Erfi</item>
+      <item>Exponent</item>
+      <item>Eigensystem</item>
+      <item>ErlangDistribution</item>
+      <item>ExponentFunction</item>
+      <item>Eigenvalues</item>
+      <item>Erosion</item>
+      <item>ExponentialDistribution</item>
+      <item>EigenvectorCentrality</item>
+      <item>ErrorBox</item>
+      <item>ExponentialFamily</item>
+      <item>Eigenvectors</item>
+      <item>EstimatedDistribution</item>
+      <item>ExponentialGeneratingFunction</item>
+      <item>Element</item>
+      <item>EstimatorGains</item>
+      <item>ExponentialMovingAverage</item>
+      <item>ElementData</item>
+      <item>EstimatorRegulator</item>
+      <item>ExponentialPowerDistribution</item>
+      <item>Eliminate</item>
+      <item>EuclideanDistance</item>
+      <item>ExponentStep</item>
+      <item>EllipticE</item>
+      <item>EulerE</item>
+      <item>Export</item>
+      <item>EllipticExp</item>
+      <item>EulerGamma</item>
+      <item>ExportString</item>
+      <item>EllipticExpPrime</item>
+      <item>EulerianGraphQ</item>
+      <item>Expression</item>
+      <item>EllipticF</item>
+      <item>EulerPhi</item>
+      <item>ExpressionCell</item>
+      <item>EllipticK</item>
+      <item>Evaluatable</item>
+      <item>ExpToTrig</item>
+      <item>EllipticLog</item>
+      <item>Evaluate</item>
+      <item>ExtendedGCD</item>
+      <item>EllipticNomeQ</item>
+      <item>EvaluatePacket</item>
+      <item>Extension</item>
+      <item>EllipticPi</item>
+      <item>EvaluationElements</item>
+      <item>ExtentElementFunction</item>
+      <item>EllipticTheta</item>
+      <item>EvaluationMonitor</item>
+      <item>ExtentMarkers</item>
+      <item>EllipticThetaPrime</item>
+      <item>EvaluationNotebook</item>
+      <item>ExtentSize</item>
+      <item>EmitSound</item>
+      <item>EvaluationObject</item>
+      <item>Extract</item>
+      <item>EmpiricalDistribution</item>
+      <item>Evaluator</item>
+      <item>ExtractArchive</item>
+      <item>EmptyGraphQ</item>
+      <item>EvenQ</item>
+      <item>ExtremeValueDistribution</item>
+      <item>Enabled</item>
+      <item>EventHandler</item>
+      <item>Encode</item>
+      <item>EventLabels</item>
+      <item>F</item>
+      <item>FaceForm</item>
+      <item>FindFit</item>
+      <item>FormBox</item>
+      <item>FaceGrids</item>
+      <item>FindGeneratingFunction</item>
+      <item>FortranForm</item>
+      <item>FaceGridsStyle</item>
+      <item>FindGeoLocation</item>
+      <item>Forward</item>
+      <item>Factor</item>
+      <item>FindGeometricTransform</item>
+      <item>ForwardBackward</item>
+      <item>Factorial</item>
+      <item>FindGraphIsomorphism</item>
+      <item>Fourier</item>
+      <item>Factorial2</item>
+      <item>FindHamiltonianCycle</item>
+      <item>FourierCoefficient</item>
+      <item>FactorialMoment</item>
+      <item>FindIndependentEdgeSet</item>
+      <item>FourierCosCoefficient</item>
+      <item>FactorialMomentGeneratingFunction</item>
+      <item>FindIndependentVertexSet</item>
+      <item>FourierCosSeries</item>
+      <item>FactorialPower</item>
+      <item>FindInstance</item>
+      <item>FourierCosTransform</item>
+      <item>FactorInteger</item>
+      <item>FindIntegerNullVector</item>
+      <item>FourierDCT</item>
+      <item>FactorList</item>
+      <item>FindLibrary</item>
+      <item>FourierDST</item>
+      <item>FactorSquareFree</item>
+      <item>FindLinearRecurrence</item>
+      <item>FourierParameters</item>
+      <item>FactorSquareFreeList</item>
+      <item>FindList</item>
+      <item>FourierSequenceTransform</item>
+      <item>FactorTerms</item>
+      <item>FindMaximum</item>
+      <item>FourierSeries</item>
+      <item>FactorTermsList</item>
+      <item>FindMaxValue</item>
+      <item>FourierSinCoefficient</item>
+      <item>False</item>
+      <item>FindMinimum</item>
+      <item>FourierSinSeries</item>
+      <item>FeedbackType</item>
+      <item>FindMinValue</item>
+      <item>FourierSinTransform</item>
+      <item>Fibonacci</item>
+      <item>FindPermutation</item>
+      <item>FourierTransform</item>
+      <item>FieldHint</item>
+      <item>FindRoot</item>
+      <item>FourierTrigSeries</item>
+      <item>FieldHintStyle</item>
+      <item>FindSequenceFunction</item>
+      <item>FractionalPart</item>
+      <item>FieldMasked</item>
+      <item>FindShortestPath</item>
+      <item>FractionBox</item>
+      <item>FieldSize</item>
+      <item>FindShortestTour</item>
+      <item>Frame</item>
+      <item>FileBaseName</item>
+      <item>FindThreshold</item>
+      <item>FrameBox</item>
+      <item>FileByteCount</item>
+      <item>FindVertexCover</item>
+      <item>Framed</item>
+      <item>FileDate</item>
+      <item>FinishDynamic</item>
+      <item>FrameLabel</item>
+      <item>FileExistsQ</item>
+      <item>FiniteAbelianGroupCount</item>
+      <item>FrameMargins</item>
+      <item>FileExtension</item>
+      <item>FiniteGroupCount</item>
+      <item>FrameStyle</item>
+      <item>FileFormat</item>
+      <item>FiniteGroupData</item>
+      <item>FrameTicks</item>
+      <item>FileHash</item>
+      <item>First</item>
+      <item>FrameTicksStyle</item>
+      <item>FileNameDepth</item>
+      <item>FischerGroupFi22</item>
+      <item>FRatioDistribution</item>
+      <item>FileNameDrop</item>
+      <item>FischerGroupFi23</item>
+      <item>FrechetDistribution</item>
+      <item>FileNameJoin</item>
+      <item>FischerGroupFi24Prime</item>
+      <item>FreeQ</item>
+      <item>FileNames</item>
+      <item>FisherHypergeometricDistribution</item>
+      <item>FresnelC</item>
+      <item>FileNameSetter</item>
+      <item>FisherRatioTest</item>
+      <item>FresnelS</item>
+      <item>FileNameSplit</item>
+      <item>FisherZDistribution</item>
+      <item>FrobeniusNumber</item>
+      <item>FileNameTake</item>
+      <item>Fit</item>
+      <item>FrobeniusSolve</item>
+      <item>FilePrint</item>
+      <item>FittedModel</item>
+      <item>FromCharacterCode</item>
+      <item>FileType</item>
+      <item>FixedPoint</item>
+      <item>FromCoefficientRules</item>
+      <item>FilledCurve</item>
+      <item>FixedPointList</item>
+      <item>FromContinuedFraction</item>
+      <item>Filling</item>
+      <item>Flat</item>
+      <item>FromDigits</item>
+      <item>FillingStyle</item>
+      <item>Flatten</item>
+      <item>FromDMS</item>
+      <item>FillingTransform</item>
+      <item>FlattenAt</item>
+      <item>Front</item>
+      <item>FilterRules</item>
+      <item>FlipView</item>
+      <item>FrontEndDynamicExpression</item>
+      <item>FinancialBond</item>
+      <item>Floor</item>
+      <item>FrontEndEventActions</item>
+      <item>FinancialData</item>
+      <item>Fold</item>
+      <item>FrontEndExecute</item>
+      <item>FinancialDerivative</item>
+      <item>FoldList</item>
+      <item>FrontEndToken</item>
+      <item>FinancialIndicator</item>
+      <item>FontColor</item>
+      <item>FrontEndTokenExecute</item>
+      <item>Find</item>
+      <item>FontFamily</item>
+      <item>Full</item>
+      <item>FindArgMax</item>
+      <item>FontSize</item>
+      <item>FullDefinition</item>
+      <item>FindArgMin</item>
+      <item>FontSlant</item>
+      <item>FullForm</item>
+      <item>FindClique</item>
+      <item>FontSubstitutions</item>
+      <item>FullGraphics</item>
+      <item>FindClusters</item>
+      <item>FontTracking</item>
+      <item>FullSimplify</item>
+      <item>FindCurvePath</item>
+      <item>FontVariations</item>
+      <item>Function</item>
+      <item>FindDistributionParameters</item>
+      <item>FontWeight</item>
+      <item>FunctionExpand</item>
+      <item>FindDivisions</item>
+      <item>For</item>
+      <item>FunctionInterpolation</item>
+      <item>FindEdgeCover</item>
+      <item>ForAll</item>
+      <item>FunctionSpace</item>
+      <item>FindEulerianCycle</item>
+      <item>Format</item>
+      <item>FindFile</item>
+      <item>FormatType</item>
+      <item>G</item>
+      <item>GaborWavelet</item>
+      <item>GeoPositionXYZ</item>
+      <item>GraphStyle</item>
+      <item>GainMargins</item>
+      <item>GeoProjectionData</item>
+      <item>GraphUnion</item>
+      <item>GainPhaseMargins</item>
+      <item>Get</item>
+      <item>Gray</item>
+      <item>Gamma</item>
+      <item>Glaisher</item>
+      <item>GrayLevel</item>
+      <item>GammaDistribution</item>
+      <item>Glow</item>
+      <item>Greater</item>
+      <item>GammaRegularized</item>
+      <item>GoldenRatio</item>
+      <item>GreaterEqual</item>
+      <item>GapPenalty</item>
+      <item>GompertzMakehamDistribution</item>
+      <item>GreaterEqualLess</item>
+      <item>Gather</item>
+      <item>Goto</item>
+      <item>GreaterFullEqual</item>
+      <item>GatherBy</item>
+      <item>Gradient</item>
+      <item>GreaterGreater</item>
+      <item>GaussianFilter</item>
+      <item>GradientFilter</item>
+      <item>GreaterLess</item>
+      <item>GaussianIntegers</item>
+      <item>Graph</item>
+      <item>GreaterSlantEqual</item>
+      <item>GaussianMatrix</item>
+      <item>GraphCenter</item>
+      <item>GreaterTilde</item>
+      <item>GCD</item>
+      <item>GraphComplement</item>
+      <item>Green</item>
+      <item>GegenbauerC</item>
+      <item>GraphData</item>
+      <item>Grid</item>
+      <item>General</item>
+      <item>GraphDiameter</item>
+      <item>GridBox</item>
+      <item>GeneralizedLinearModelFit</item>
+      <item>GraphDifference</item>
+      <item>GridDefaultElement</item>
+      <item>GenerateConditions</item>
+      <item>GraphDisjointUnion</item>
+      <item>GridGraph</item>
+      <item>GeneratedCell</item>
+      <item>GraphDistance</item>
+      <item>GridLines</item>
+      <item>GeneratedParameters</item>
+      <item>GraphDistanceMatrix</item>
+      <item>GridLinesStyle</item>
+      <item>GeneratingFunction</item>
+      <item>GraphHighlight</item>
+      <item>GroebnerBasis</item>
+      <item>GenericCylindricalDecomposition</item>
+      <item>GraphHighlightStyle</item>
+      <item>GroupActionBase</item>
+      <item>GenomeData</item>
+      <item>Graphics</item>
+      <item>GroupCentralizer</item>
+      <item>GenomeLookup</item>
+      <item>Graphics3D</item>
+      <item>GroupElementPosition</item>
+      <item>GeodesicDilation</item>
+      <item>GraphicsColumn</item>
+      <item>GroupElementQ</item>
+      <item>GeodesicErosion</item>
+      <item>GraphicsComplex</item>
+      <item>GroupElements</item>
+      <item>GeoDestination</item>
+      <item>GraphicsGrid</item>
+      <item>GroupGenerators</item>
+      <item>GeodesyData</item>
+      <item>GraphicsGroup</item>
+      <item>GroupMultiplicationTable</item>
+      <item>GeoDirection</item>
+      <item>GraphicsRow</item>
+      <item>GroupOrbits</item>
+      <item>GeoDistance</item>
+      <item>GraphIntersection</item>
+      <item>GroupOrder</item>
+      <item>GeoGridPosition</item>
+      <item>GraphLayout</item>
+      <item>GroupPageBreakWithin</item>
+      <item>GeometricDistribution</item>
+      <item>GraphPeriphery</item>
+      <item>GroupSetwiseStabilizer</item>
+      <item>GeometricMean</item>
+      <item>GraphPlot</item>
+      <item>GroupStabilizer</item>
+      <item>GeometricMeanFilter</item>
+      <item>GraphPlot3D</item>
+      <item>GroupStabilizerChain</item>
+      <item>GeometricTransformation</item>
+      <item>GraphPower</item>
+      <item>Gudermannian</item>
+      <item>GeoPosition</item>
+      <item>GraphQ</item>
+      <item>GumbelDistribution</item>
+      <item>GeoPositionENU</item>
+      <item>GraphRadius</item>
+      <item>H</item>
+      <item>HaarWavelet</item>
+      <item>HermitianMatrixQ</item>
+      <item>Hue</item>
+      <item>HalfNormalDistribution</item>
+      <item>HessenbergDecomposition</item>
+      <item>HumpDownHump</item>
+      <item>HamiltonianGraphQ</item>
+      <item>HexadecimalCharacter</item>
+      <item>HumpEqual</item>
+      <item>HammingDistance</item>
+      <item>HighlightGraph</item>
+      <item>HurwitzLerchPhi</item>
+      <item>HankelH1</item>
+      <item>HigmanSimsGroupHS</item>
+      <item>HurwitzZeta</item>
+      <item>HankelH2</item>
+      <item>HilbertMatrix</item>
+      <item>HyperbolicDistribution</item>
+      <item>HankelMatrix</item>
+      <item>Histogram</item>
+      <item>HypercubeGraph</item>
+      <item>HaradaNortonGroupHN</item>
+      <item>Histogram3D</item>
+      <item>Hyperfactorial</item>
+      <item>HararyGraph</item>
+      <item>HistogramDistribution</item>
+      <item>Hypergeometric0F1</item>
+      <item>HarmonicMean</item>
+      <item>HistogramList</item>
+      <item>Hypergeometric0F1Regularized</item>
+      <item>HarmonicMeanFilter</item>
+      <item>HitMissTransform</item>
+      <item>Hypergeometric1F1</item>
+      <item>HarmonicNumber</item>
+      <item>HITSCentrality</item>
+      <item>Hypergeometric1F1Regularized</item>
+      <item>Hash</item>
+      <item>Hold</item>
+      <item>Hypergeometric2F1</item>
+      <item>Haversine</item>
+      <item>HoldAll</item>
+      <item>Hypergeometric2F1Regularized</item>
+      <item>HazardFunction</item>
+      <item>HoldAllComplete</item>
+      <item>HypergeometricDistribution</item>
+      <item>Head</item>
+      <item>HoldComplete</item>
+      <item>HypergeometricPFQ</item>
+      <item>Heads</item>
+      <item>HoldFirst</item>
+      <item>HypergeometricPFQRegularized</item>
+      <item>HeavisideLambda</item>
+      <item>HoldForm</item>
+      <item>HypergeometricU</item>
+      <item>HeavisidePi</item>
+      <item>HoldPattern</item>
+      <item>Hyperlink</item>
+      <item>HeavisideTheta</item>
+      <item>HoldRest</item>
+      <item>Hyphenation</item>
+      <item>HeldGroupHe</item>
+      <item>HornerForm</item>
+      <item>HypothesisTestData</item>
+      <item>HermiteDecomposition</item>
+      <item>HotellingTSquareDistribution</item>
+      <item>HermiteH</item>
+      <item>HoytDistribution</item>
+      <item>I</item>
+      <item>I</item>
+      <item>ImportString</item>
+      <item>Interrupt</item>
+      <item>Identity</item>
+      <item>In</item>
+      <item>Intersection</item>
+      <item>IdentityMatrix</item>
+      <item>IncidenceGraph</item>
+      <item>Interval</item>
+      <item>If</item>
+      <item>IncidenceMatrix</item>
+      <item>IntervalIntersection</item>
+      <item>IgnoreCase</item>
+      <item>IncludeConstantBasis</item>
+      <item>IntervalMemberQ</item>
+      <item>Im</item>
+      <item>IncludePods</item>
+      <item>IntervalUnion</item>
+      <item>Image</item>
+      <item>Increment</item>
+      <item>Inverse</item>
+      <item>ImageAdd</item>
+      <item>IndependentEdgeSetQ</item>
+      <item>InverseBetaRegularized</item>
+      <item>ImageAdjust</item>
+      <item>IndependentVertexSetQ</item>
+      <item>InverseCDF</item>
+      <item>ImageAlign</item>
+      <item>Indeterminate</item>
+      <item>InverseChiSquareDistribution</item>
+      <item>ImageApply</item>
+      <item>IndexGraph</item>
+      <item>InverseContinuousWaveletTransform</item>
+      <item>ImageAspectRatio</item>
+      <item>InexactNumberQ</item>
+      <item>InverseDistanceTransform</item>
+      <item>ImageAssemble</item>
+      <item>Infinity</item>
+      <item>InverseEllipticNomeQ</item>
+      <item>ImageCapture</item>
+      <item>Infix</item>
+      <item>InverseErf</item>
+      <item>ImageChannels</item>
+      <item>Information</item>
+      <item>InverseErfc</item>
+      <item>ImageClip</item>
+      <item>Inherited</item>
+      <item>InverseFourier</item>
+      <item>ImageColorSpace</item>
+      <item>Initialization</item>
+      <item>InverseFourierCosTransform</item>
+      <item>ImageCompose</item>
+      <item>InitializationCell</item>
+      <item>InverseFourierSequenceTransform</item>
+      <item>ImageConvolve</item>
+      <item>Inner</item>
+      <item>InverseFourierSinTransform</item>
+      <item>ImageCooccurrence</item>
+      <item>Inpaint</item>
+      <item>InverseFourierTransform</item>
+      <item>ImageCorrelate</item>
+      <item>Input</item>
+      <item>InverseFunction</item>
+      <item>ImageCorrespondingPoints</item>
+      <item>InputAliases</item>
+      <item>InverseFunctions</item>
+      <item>ImageCrop</item>
+      <item>InputAssumptions</item>
+      <item>InverseGammaDistribution</item>
+      <item>ImageData</item>
+      <item>InputAutoReplacements</item>
+      <item>InverseGammaRegularized</item>
+      <item>ImageDeconvolve</item>
+      <item>InputField</item>
+      <item>InverseGaussianDistribution</item>
+      <item>ImageDifference</item>
+      <item>InputForm</item>
+      <item>InverseGudermannian</item>
+      <item>ImageDimensions</item>
+      <item>InputNamePacket</item>
+      <item>InverseHaversine</item>
+      <item>ImageEffect</item>
+      <item>InputNotebook</item>
+      <item>InverseJacobiCD</item>
+      <item>ImageFilter</item>
+      <item>InputPacket</item>
+      <item>InverseJacobiCN</item>
+      <item>ImageForestingComponents</item>
+      <item>InputStream</item>
+      <item>InverseJacobiCS</item>
+      <item>ImageForwardTransformation</item>
+      <item>InputString</item>
+      <item>InverseJacobiDC</item>
+      <item>ImageHistogram</item>
+      <item>InputStringPacket</item>
+      <item>InverseJacobiDN</item>
+      <item>ImageKeypoints</item>
+      <item>Insert</item>
+      <item>InverseJacobiDS</item>
+      <item>ImageLevels</item>
+      <item>InsertResults</item>
+      <item>InverseJacobiNC</item>
+      <item>ImageLines</item>
+      <item>Inset</item>
+      <item>InverseJacobiND</item>
+      <item>ImageMargins</item>
+      <item>Install</item>
+      <item>InverseJacobiNS</item>
+      <item>ImageMultiply</item>
+      <item>InstallService</item>
+      <item>InverseJacobiSC</item>
+      <item>ImagePad</item>
+      <item>InString</item>
+      <item>InverseJacobiSD</item>
+      <item>ImagePadding</item>
+      <item>Integer</item>
+      <item>InverseJacobiSN</item>
+      <item>ImagePartition</item>
+      <item>IntegerDigits</item>
+      <item>InverseLaplaceTransform</item>
+      <item>ImagePerspectiveTransformation</item>
+      <item>IntegerExponent</item>
+      <item>InversePermutation</item>
+      <item>ImageQ</item>
+      <item>IntegerLength</item>
+      <item>InverseRadon</item>
+      <item>ImageReflect</item>
+      <item>IntegerPart</item>
+      <item>InverseSeries</item>
+      <item>ImageResize</item>
+      <item>IntegerPartitions</item>
+      <item>InverseSurvivalFunction</item>
+      <item>ImageResolution</item>
+      <item>IntegerQ</item>
+      <item>InverseWaveletTransform</item>
+      <item>ImageRotate</item>
+      <item>Integers</item>
+      <item>InverseWeierstrassP</item>
+      <item>ImageScaled</item>
+      <item>IntegerString</item>
+      <item>InverseZTransform</item>
+      <item>ImageSize</item>
+      <item>Integrate</item>
+      <item>Invisible</item>
+      <item>ImageSizeAction</item>
+      <item>InteractiveTradingChart</item>
+      <item>IrreduciblePolynomialQ</item>
+      <item>ImageSizeMultipliers</item>
+      <item>Interleaving</item>
+      <item>IsolatingInterval</item>
+      <item>ImageSubtract</item>
+      <item>InternallyBalancedDecomposition</item>
+      <item>IsomorphicGraphQ</item>
+      <item>ImageTake</item>
+      <item>InterpolatingFunction</item>
+      <item>IsotopeData</item>
+      <item>ImageTransformation</item>
+      <item>InterpolatingPolynomial</item>
+      <item>Italic</item>
+      <item>ImageTrim</item>
+      <item>Interpolation</item>
+      <item>Item</item>
+      <item>ImageType</item>
+      <item>InterpolationOrder</item>
+      <item>ItemAspectRatio</item>
+      <item>ImageValue</item>
+      <item>Interpretation</item>
+      <item>ItemSize</item>
+      <item>Implies</item>
+      <item>InterpretationBox</item>
+      <item>ItemStyle</item>
+      <item>Import</item>
+      <item>InterquartileRange</item>
+      <item>J</item>
+      <item>JaccardDissimilarity</item>
+      <item>JacobiNS</item>
+      <item>JankoGroupJ4</item>
+      <item>JacobiAmplitude</item>
+      <item>JacobiP</item>
+      <item>JarqueBeraALMTest</item>
+      <item>JacobiCD</item>
+      <item>JacobiSC</item>
+      <item>JohnsonDistribution</item>
+      <item>JacobiCN</item>
+      <item>JacobiSD</item>
+      <item>Join</item>
+      <item>JacobiCS</item>
+      <item>JacobiSN</item>
+      <item>Joined</item>
+      <item>JacobiDC</item>
+      <item>JacobiSymbol</item>
+      <item>JoinedCurve</item>
+      <item>JacobiDN</item>
+      <item>JacobiZeta</item>
+      <item>JoinForm</item>
+      <item>JacobiDS</item>
+      <item>JankoGroupJ1</item>
+      <item>JordanDecomposition</item>
+      <item>JacobiNC</item>
+      <item>JankoGroupJ2</item>
+      <item>JordanModelDecomposition</item>
+      <item>JacobiND</item>
+      <item>JankoGroupJ3</item>
+      <item>K</item>
+      <item>KagiChart</item>
+      <item>KelvinKer</item>
+      <item>KolmogorovSmirnovTest</item>
+      <item>KalmanEstimator</item>
+      <item>KernelMixtureDistribution</item>
+      <item>KroneckerDelta</item>
+      <item>KarhunenLoeveDecomposition</item>
+      <item>KernelObject</item>
+      <item>KroneckerProduct</item>
+      <item>KaryTree</item>
+      <item>Kernels</item>
+      <item>KroneckerSymbol</item>
+      <item>KatzCentrality</item>
+      <item>Khinchin</item>
+      <item>KuiperTest</item>
+      <item>KCoreComponents</item>
+      <item>KirchhoffGraph</item>
+      <item>KumaraswamyDistribution</item>
+      <item>KDistribution</item>
+      <item>KirchhoffMatrix</item>
+      <item>Kurtosis</item>
+      <item>KelvinBei</item>
+      <item>KleinInvariantJ</item>
+      <item>KuwaharaFilter</item>
+      <item>KelvinBer</item>
+      <item>KnightTourGraph</item>
+      <item>KelvinKei</item>
+      <item>KnotData</item>
+      <item>L</item>
+      <item>Label</item>
+      <item>LibraryFunction</item>
+      <item>ListDensityPlot</item>
+      <item>Labeled</item>
+      <item>LibraryFunctionError</item>
+      <item>ListInterpolation</item>
+      <item>LabelingFunction</item>
+      <item>LibraryFunctionInformation</item>
+      <item>ListLineIntegralConvolutionPlot</item>
+      <item>LabelStyle</item>
+      <item>LibraryFunctionLoad</item>
+      <item>ListLinePlot</item>
+      <item>LaguerreL</item>
+      <item>LibraryFunctionUnload</item>
+      <item>ListLogLinearPlot</item>
+      <item>LandauDistribution</item>
+      <item>LibraryLoad</item>
+      <item>ListLogLogPlot</item>
+      <item>LanguageCategory</item>
+      <item>LibraryUnload</item>
+      <item>ListLogPlot</item>
+      <item>LaplaceDistribution</item>
+      <item>LiftingFilterData</item>
+      <item>ListPlay</item>
+      <item>LaplaceTransform</item>
+      <item>LiftingWaveletTransform</item>
+      <item>ListPlot</item>
+      <item>LaplacianFilter</item>
+      <item>LightBlue</item>
+      <item>ListPlot3D</item>
+      <item>LaplacianGaussianFilter</item>
+      <item>LightBrown</item>
+      <item>ListPointPlot3D</item>
+      <item>Large</item>
+      <item>LightCyan</item>
+      <item>ListPolarPlot</item>
+      <item>Larger</item>
+      <item>Lighter</item>
+      <item>ListStreamDensityPlot</item>
+      <item>Last</item>
+      <item>LightGray</item>
+      <item>ListStreamPlot</item>
+      <item>Latitude</item>
+      <item>LightGreen</item>
+      <item>ListSurfacePlot3D</item>
+      <item>LatitudeLongitude</item>
+      <item>Lighting</item>
+      <item>ListVectorDensityPlot</item>
+      <item>LatticeData</item>
+      <item>LightingAngle</item>
+      <item>ListVectorPlot</item>
+      <item>LatticeReduce</item>
+      <item>LightMagenta</item>
+      <item>ListVectorPlot3D</item>
+      <item>LaunchKernels</item>
+      <item>LightOrange</item>
+      <item>LocalizeVariables</item>
+      <item>LayeredGraphPlot</item>
+      <item>LightPink</item>
+      <item>LocationEquivalenceTest</item>
+      <item>LayerSizeFunction</item>
+      <item>LightPurple</item>
+      <item>LocationTest</item>
+      <item>LCM</item>
+      <item>LightRed</item>
+      <item>Locator</item>
+      <item>LeafCount</item>
+      <item>LightYellow</item>
+      <item>LocatorAutoCreate</item>
+      <item>LeastSquares</item>
+      <item>Likelihood</item>
+      <item>LocatorPane</item>
+      <item>Left</item>
+      <item>Limit</item>
+      <item>LocatorRegion</item>
+      <item>LeftArrow</item>
+      <item>LimitsPositioning</item>
+      <item>Locked</item>
+      <item>LeftArrowBar</item>
+      <item>LindleyDistribution</item>
+      <item>Log</item>
+      <item>LeftArrowRightArrow</item>
+      <item>Line</item>
+      <item>Log10</item>
+      <item>LeftDownTeeVector</item>
+      <item>LinearFractionalTransform</item>
+      <item>Log2</item>
+      <item>LeftDownVector</item>
+      <item>LinearModelFit</item>
+      <item>LogBarnesG</item>
+      <item>LeftDownVectorBar</item>
+      <item>LinearOffsetFunction</item>
+      <item>LogGamma</item>
+      <item>LeftRightArrow</item>
+      <item>LinearProgramming</item>
+      <item>LogGammaDistribution</item>
+      <item>LeftRightVector</item>
+      <item>LinearRecurrence</item>
+      <item>LogicalExpand</item>
+      <item>LeftTeeArrow</item>
+      <item>LinearSolve</item>
+      <item>LogIntegral</item>
+      <item>LeftTeeVector</item>
+      <item>LinearSolveFunction</item>
+      <item>LogisticDistribution</item>
+      <item>LeftTriangle</item>
+      <item>LineBreakChart</item>
+      <item>LogitModelFit</item>
+      <item>LeftTriangleBar</item>
+      <item>LineGraph</item>
+      <item>LogLikelihood</item>
+      <item>LeftTriangleEqual</item>
+      <item>LineIndent</item>
+      <item>LogLinearPlot</item>
+      <item>LeftUpDownVector</item>
+      <item>LineIndentMaxFraction</item>
+      <item>LogLogisticDistribution</item>
+      <item>LeftUpTeeVector</item>
+      <item>LineIntegralConvolutionPlot</item>
+      <item>LogLogPlot</item>
+      <item>LeftUpVector</item>
+      <item>LineIntegralConvolutionScale</item>
+      <item>LogNormalDistribution</item>
+      <item>LeftUpVectorBar</item>
+      <item>LineSpacing</item>
+      <item>LogPlot</item>
+      <item>LeftVector</item>
+      <item>LinkClose</item>
+      <item>LogSeriesDistribution</item>
+      <item>LeftVectorBar</item>
+      <item>LinkConnect</item>
+      <item>Longest</item>
+      <item>LegendAppearance</item>
+      <item>LinkCreate</item>
+      <item>LongestCommonSequence</item>
+      <item>Legended</item>
+      <item>LinkFunction</item>
+      <item>LongestCommonSubsequence</item>
+      <item>LegendreP</item>
+      <item>LinkInterrupt</item>
+      <item>Longitude</item>
+      <item>LegendreQ</item>
+      <item>LinkLaunch</item>
+      <item>LongLeftArrow</item>
+      <item>Length</item>
+      <item>LinkObject</item>
+      <item>LongLeftRightArrow</item>
+      <item>LengthWhile</item>
+      <item>LinkPatterns</item>
+      <item>LongRightArrow</item>
+      <item>LerchPhi</item>
+      <item>LinkProtocol</item>
+      <item>LoopFreeGraphQ</item>
+      <item>Less</item>
+      <item>LinkRead</item>
+      <item>LowerCaseQ</item>
+      <item>LessEqual</item>
+      <item>LinkReadyQ</item>
+      <item>LowerLeftArrow</item>
+      <item>LessEqualGreater</item>
+      <item>Links</item>
+      <item>LowerRightArrow</item>
+      <item>LessFullEqual</item>
+      <item>LinkWrite</item>
+      <item>LowerTriangularize</item>
+      <item>LessGreater</item>
+      <item>LiouvilleLambda</item>
+      <item>LQEstimatorGains</item>
+      <item>LessLess</item>
+      <item>List</item>
+      <item>LQGRegulator</item>
+      <item>LessSlantEqual</item>
+      <item>Listable</item>
+      <item>LQOutputRegulatorGains</item>
+      <item>LessTilde</item>
+      <item>ListAnimate</item>
+      <item>LQRegulatorGains</item>
+      <item>LetterCharacter</item>
+      <item>ListContourPlot</item>
+      <item>LucasL</item>
+      <item>LetterQ</item>
+      <item>ListContourPlot3D</item>
+      <item>LUDecomposition</item>
+      <item>Level</item>
+      <item>ListConvolve</item>
+      <item>LyapunovSolve</item>
+      <item>LeveneTest</item>
+      <item>ListCorrelate</item>
+      <item>LyonsGroupLy</item>
+      <item>LeviCivitaTensor</item>
+      <item>ListCurvePathPlot</item>
+      <item>LevyDistribution</item>
+      <item>ListDeconvolve</item>
+      <item>M</item>
+      <item>MachineNumberQ</item>
+      <item>MaxDetect</item>
+      <item>MinDetect</item>
+      <item>MachinePrecision</item>
+      <item>MaxExtraBandwidths</item>
+      <item>MinFilter</item>
+      <item>Magenta</item>
+      <item>MaxExtraConditions</item>
+      <item>MinimalPolynomial</item>
+      <item>Magnification</item>
+      <item>MaxFilter</item>
+      <item>MinimalStateSpaceModel</item>
+      <item>Magnify</item>
+      <item>Maximize</item>
+      <item>Minimize</item>
+      <item>Majority</item>
+      <item>MaxIterations</item>
+      <item>Minors</item>
+      <item>MakeBoxes</item>
+      <item>MaxMemoryUsed</item>
+      <item>MinStableDistribution</item>
+      <item>MakeExpression</item>
+      <item>MaxMixtureKernels</item>
+      <item>Minus</item>
+      <item>MangoldtLambda</item>
+      <item>MaxPlotPoints</item>
+      <item>MinusPlus</item>
+      <item>ManhattanDistance</item>
+      <item>MaxRecursion</item>
+      <item>MinValue</item>
+      <item>Manipulate</item>
+      <item>MaxStableDistribution</item>
+      <item>Missing</item>
+      <item>Manipulator</item>
+      <item>MaxStepFraction</item>
+      <item>MixtureDistribution</item>
+      <item>MannWhitneyTest</item>
+      <item>MaxSteps</item>
+      <item>Mod</item>
+      <item>MantissaExponent</item>
+      <item>MaxStepSize</item>
+      <item>Modal</item>
+      <item>Manual</item>
+      <item>MaxValue</item>
+      <item>ModularLambda</item>
+      <item>Map</item>
+      <item>MaxwellDistribution</item>
+      <item>Module</item>
+      <item>MapAll</item>
+      <item>McLaughlinGroupMcL</item>
+      <item>Modulus</item>
+      <item>MapAt</item>
+      <item>Mean</item>
+      <item>MoebiusMu</item>
+      <item>MapIndexed</item>
+      <item>MeanDeviation</item>
+      <item>Moment</item>
+      <item>MapThread</item>
+      <item>MeanFilter</item>
+      <item>MomentConvert</item>
+      <item>MarcumQ</item>
+      <item>MeanShift</item>
+      <item>MomentEvaluate</item>
+      <item>MardiaCombinedTest</item>
+      <item>MeanShiftFilter</item>
+      <item>MomentGeneratingFunction</item>
+      <item>MardiaKurtosisTest</item>
+      <item>Median</item>
+      <item>Monitor</item>
+      <item>MardiaSkewnessTest</item>
+      <item>MedianDeviation</item>
+      <item>MonomialList</item>
+      <item>MarginalDistribution</item>
+      <item>MedianFilter</item>
+      <item>MonsterGroupM</item>
+      <item>Masking</item>
+      <item>Medium</item>
+      <item>MorletWavelet</item>
+      <item>MatchingDissimilarity</item>
+      <item>MeijerG</item>
+      <item>MorphologicalBinarize</item>
+      <item>MatchLocalNames</item>
+      <item>MemberQ</item>
+      <item>MorphologicalBranchPoints</item>
+      <item>MatchQ</item>
+      <item>MemoryConstrained</item>
+      <item>MorphologicalComponents</item>
+      <item>MathieuC</item>
+      <item>MemoryInUse</item>
+      <item>MorphologicalEulerNumber</item>
+      <item>MathieuCharacteristicA</item>
+      <item>MenuCommandKey</item>
+      <item>MorphologicalGraph</item>
+      <item>MathieuCharacteristicB</item>
+      <item>MenuPacket</item>
+      <item>MorphologicalPerimeter</item>
+      <item>MathieuCharacteristicExponent</item>
+      <item>MenuSortingValue</item>
+      <item>MorphologicalTransform</item>
+      <item>MathieuCPrime</item>
+      <item>MenuStyle</item>
+      <item>Most</item>
+      <item>MathieuGroupM11</item>
+      <item>MenuView</item>
+      <item>MouseAnnotation</item>
+      <item>MathieuGroupM12</item>
+      <item>Mesh</item>
+      <item>MouseAppearance</item>
+      <item>MathieuGroupM22</item>
+      <item>MeshFunctions</item>
+      <item>Mouseover</item>
+      <item>MathieuGroupM23</item>
+      <item>MeshShading</item>
+      <item>MousePosition</item>
+      <item>MathieuGroupM24</item>
+      <item>MeshStyle</item>
+      <item>MovingAverage</item>
+      <item>MathieuS</item>
+      <item>Message</item>
+      <item>MovingMedian</item>
+      <item>MathieuSPrime</item>
+      <item>MessageDialog</item>
+      <item>MoyalDistribution</item>
+      <item>MathMLForm</item>
+      <item>MessageList</item>
+      <item>MultiedgeStyle</item>
+      <item>MatrixExp</item>
+      <item>MessageName</item>
+      <item>Multinomial</item>
+      <item>MatrixForm</item>
+      <item>MessagePacket</item>
+      <item>MultinomialDistribution</item>
+      <item>MatrixPlot</item>
+      <item>Messages</item>
+      <item>MultinormalDistribution</item>
+      <item>MatrixPower</item>
+      <item>Method</item>
+      <item>MultiplicativeOrder</item>
+      <item>MatrixQ</item>
+      <item>MexicanHatWavelet</item>
+      <item>MultivariateHypergeometricDistribution</item>
+      <item>MatrixRank</item>
+      <item>MeyerWavelet</item>
+      <item>MultivariatePoissonDistribution</item>
+      <item>Max</item>
+      <item>Min</item>
+      <item>MultivariateTDistribution</item>
+      <item>N</item>
+      <item>N</item>
+      <item>NormalizedSquaredEuclideanDistance</item>
+      <item>NotPrecedesSlantEqual</item>
+      <item>NakagamiDistribution</item>
+      <item>NormalsFunction</item>
+      <item>NotPrecedesTilde</item>
+      <item>NameQ</item>
+      <item>NormFunction</item>
+      <item>NotReverseElement</item>
+      <item>Names</item>
+      <item>Not</item>
+      <item>NotRightTriangle</item>
+      <item>Nand</item>
+      <item>NotCongruent</item>
+      <item>NotRightTriangleBar</item>
+      <item>NArgMax</item>
+      <item>NotCupCap</item>
+      <item>NotRightTriangleEqual</item>
+      <item>NArgMin</item>
+      <item>NotDoubleVerticalBar</item>
+      <item>NotSquareSubset</item>
+      <item>NCache</item>
+      <item>Notebook</item>
+      <item>NotSquareSubsetEqual</item>
+      <item>NDSolve</item>
+      <item>NotebookApply</item>
+      <item>NotSquareSuperset</item>
+      <item>Nearest</item>
+      <item>NotebookAutoSave</item>
+      <item>NotSquareSupersetEqual</item>
+      <item>NearestFunction</item>
+      <item>NotebookClose</item>
+      <item>NotSubset</item>
+      <item>NeedlemanWunschSimilarity</item>
+      <item>NotebookDelete</item>
+      <item>NotSubsetEqual</item>
+      <item>Needs</item>
+      <item>NotebookDirectory</item>
+      <item>NotSucceeds</item>
+      <item>Negative</item>
+      <item>NotebookDynamicExpression</item>
+      <item>NotSucceedsEqual</item>
+      <item>NegativeBinomialDistribution</item>
+      <item>NotebookEvaluate</item>
+      <item>NotSucceedsSlantEqual</item>
+      <item>NegativeMultinomialDistribution</item>
+      <item>NotebookEventActions</item>
+      <item>NotSucceedsTilde</item>
+      <item>NeighborhoodGraph</item>
+      <item>NotebookFileName</item>
+      <item>NotSuperset</item>
+      <item>Nest</item>
+      <item>NotebookFind</item>
+      <item>NotSupersetEqual</item>
+      <item>NestedGreaterGreater</item>
+      <item>NotebookGet</item>
+      <item>NotTilde</item>
+      <item>NestedLessLess</item>
+      <item>NotebookInformation</item>
+      <item>NotTildeEqual</item>
+      <item>NestList</item>
+      <item>NotebookLocate</item>
+      <item>NotTildeFullEqual</item>
+      <item>NestWhile</item>
+      <item>NotebookObject</item>
+      <item>NotTildeTilde</item>
+      <item>NestWhileList</item>
+      <item>NotebookOpen</item>
+      <item>NotVerticalBar</item>
+      <item>NevilleThetaC</item>
+      <item>NotebookPrint</item>
+      <item>NProbability</item>
+      <item>NevilleThetaD</item>
+      <item>NotebookPut</item>
+      <item>NProduct</item>
+      <item>NevilleThetaN</item>
+      <item>NotebookRead</item>
+      <item>NRoots</item>
+      <item>NevilleThetaS</item>
+      <item>Notebooks</item>
+      <item>NSolve</item>
+      <item>NExpectation</item>
+      <item>NotebookSave</item>
+      <item>NSum</item>
+      <item>NextPrime</item>
+      <item>NotebookSelection</item>
+      <item>Null</item>
+      <item>NHoldAll</item>
+      <item>NotebookWrite</item>
+      <item>NullRecords</item>
+      <item>NHoldFirst</item>
+      <item>NotElement</item>
+      <item>NullSpace</item>
+      <item>NHoldRest</item>
+      <item>NotEqualTilde</item>
+      <item>NullWords</item>
+      <item>NicholsGridLines</item>
+      <item>NotExists</item>
+      <item>Number</item>
+      <item>NicholsPlot</item>
+      <item>NotGreater</item>
+      <item>NumberFieldClassNumber</item>
+      <item>NIntegrate</item>
+      <item>NotGreaterEqual</item>
+      <item>NumberFieldDiscriminant</item>
+      <item>NMaximize</item>
+      <item>NotGreaterFullEqual</item>
+      <item>NumberFieldFundamentalUnits</item>
+      <item>NMaxValue</item>
+      <item>NotGreaterGreater</item>
+      <item>NumberFieldIntegralBasis</item>
+      <item>NMinimize</item>
+      <item>NotGreaterLess</item>
+      <item>NumberFieldNormRepresentatives</item>
+      <item>NMinValue</item>
+      <item>NotGreaterSlantEqual</item>
+      <item>NumberFieldRegulator</item>
+      <item>NominalVariables</item>
+      <item>NotGreaterTilde</item>
+      <item>NumberFieldRootsOfUnity</item>
+      <item>NoncentralBetaDistribution</item>
+      <item>NotHumpDownHump</item>
+      <item>NumberFieldSignature</item>
+      <item>NoncentralChiSquareDistribution</item>
+      <item>NotHumpEqual</item>
+      <item>NumberForm</item>
+      <item>NoncentralFRatioDistribution</item>
+      <item>NotLeftTriangle</item>
+      <item>NumberFormat</item>
+      <item>NoncentralStudentTDistribution</item>
+      <item>NotLeftTriangleBar</item>
+      <item>NumberMarks</item>
+      <item>NonCommutativeMultiply</item>
+      <item>NotLeftTriangleEqual</item>
+      <item>NumberMultiplier</item>
+      <item>NonConstants</item>
+      <item>NotLess</item>
+      <item>NumberPadding</item>
+      <item>None</item>
+      <item>NotLessEqual</item>
+      <item>NumberPoint</item>
+      <item>NonlinearModelFit</item>
+      <item>NotLessFullEqual</item>
+      <item>NumberQ</item>
+      <item>NonNegative</item>
+      <item>NotLessGreater</item>
+      <item>NumberSeparator</item>
+      <item>NonPositive</item>
+      <item>NotLessLess</item>
+      <item>NumberSigns</item>
+      <item>Nor</item>
+      <item>NotLessSlantEqual</item>
+      <item>NumberString</item>
+      <item>NorlundB</item>
+      <item>NotLessTilde</item>
+      <item>Numerator</item>
+      <item>Norm</item>
+      <item>NotNestedGreaterGreater</item>
+      <item>NumericFunction</item>
+      <item>Normal</item>
+      <item>NotNestedLessLess</item>
+      <item>NumericQ</item>
+      <item>NormalDistribution</item>
+      <item>NotPrecedes</item>
+      <item>NyquistGridLines</item>
+      <item>Normalize</item>
+      <item>NotPrecedesEqual</item>
+      <item>NyquistPlot</item>
+      <item>O</item>
+      <item>O</item>
+      <item>Operate</item>
+      <item>OutputForm</item>
+      <item>ObservabilityGramian</item>
+      <item>OperatingSystem</item>
+      <item>OutputNamePacket</item>
+      <item>ObservabilityMatrix</item>
+      <item>Optional</item>
+      <item>OutputResponse</item>
+      <item>ObservableDecomposition</item>
+      <item>Options</item>
+      <item>OutputSizeLimit</item>
+      <item>ObservableModelQ</item>
+      <item>OptionsPattern</item>
+      <item>OutputStream</item>
+      <item>OddQ</item>
+      <item>OptionValue</item>
+      <item>OverBar</item>
+      <item>Off</item>
+      <item>Or</item>
+      <item>OverDot</item>
+      <item>Offset</item>
+      <item>Orange</item>
+      <item>Overflow</item>
+      <item>On</item>
+      <item>Order</item>
+      <item>OverHat</item>
+      <item>ONanGroupON</item>
+      <item>OrderDistribution</item>
+      <item>Overlaps</item>
+      <item>OneIdentity</item>
+      <item>OrderedQ</item>
+      <item>Overlay</item>
+      <item>Opacity</item>
+      <item>Ordering</item>
+      <item>Overscript</item>
+      <item>OpenAppend</item>
+      <item>Orderless</item>
+      <item>OverscriptBox</item>
+      <item>Opener</item>
+      <item>Orthogonalize</item>
+      <item>OverTilde</item>
+      <item>OpenerView</item>
+      <item>Out</item>
+      <item>OverVector</item>
+      <item>Opening</item>
+      <item>Outer</item>
+      <item>OwenT</item>
+      <item>OpenRead</item>
+      <item>OutputControllabilityMatrix</item>
+      <item>OwnValues</item>
+      <item>OpenWrite</item>
+      <item>OutputControllableModelQ</item>
+      <item>P</item>
+      <item>PackingMethod</item>
+      <item>PermutationList</item>
+      <item>PopupMenu</item>
+      <item>PaddedForm</item>
+      <item>PermutationListQ</item>
+      <item>PopupView</item>
+      <item>Padding</item>
+      <item>PermutationMax</item>
+      <item>PopupWindow</item>
+      <item>PadeApproximant</item>
+      <item>PermutationMin</item>
+      <item>Position</item>
+      <item>PadLeft</item>
+      <item>PermutationOrder</item>
+      <item>Positive</item>
+      <item>PadRight</item>
+      <item>PermutationPower</item>
+      <item>PositiveDefiniteMatrixQ</item>
+      <item>PageBreakAbove</item>
+      <item>PermutationProduct</item>
+      <item>PossibleZeroQ</item>
+      <item>PageBreakBelow</item>
+      <item>PermutationReplace</item>
+      <item>Postfix</item>
+      <item>PageBreakWithin</item>
+      <item>Permutations</item>
+      <item>Power</item>
+      <item>PageFooters</item>
+      <item>PermutationSupport</item>
+      <item>PowerDistribution</item>
+      <item>PageHeaders</item>
+      <item>Permute</item>
+      <item>PowerExpand</item>
+      <item>PageRankCentrality</item>
+      <item>PeronaMalikFilter</item>
+      <item>PowerMod</item>
+      <item>PageWidth</item>
+      <item>PERTDistribution</item>
+      <item>PowerModList</item>
+      <item>PairedBarChart</item>
+      <item>PetersenGraph</item>
+      <item>PowersRepresentations</item>
+      <item>PairedHistogram</item>
+      <item>PhaseMargins</item>
+      <item>PowerSymmetricPolynomial</item>
+      <item>PairedTTest</item>
+      <item>Pi</item>
+      <item>PrecedenceForm</item>
+      <item>PairedZTest</item>
+      <item>Pick</item>
+      <item>Precedes</item>
+      <item>PaletteNotebook</item>
+      <item>Piecewise</item>
+      <item>PrecedesEqual</item>
+      <item>Pane</item>
+      <item>PiecewiseExpand</item>
+      <item>PrecedesSlantEqual</item>
+      <item>Panel</item>
+      <item>PieChart</item>
+      <item>PrecedesTilde</item>
+      <item>Paneled</item>
+      <item>PieChart3D</item>
+      <item>Precision</item>
+      <item>PaneSelector</item>
+      <item>Pink</item>
+      <item>PrecisionGoal</item>
+      <item>ParabolicCylinderD</item>
+      <item>PixelConstrained</item>
+      <item>PreDecrement</item>
+      <item>ParagraphIndent</item>
+      <item>PixelValue</item>
+      <item>PreemptProtect</item>
+      <item>ParagraphSpacing</item>
+      <item>Placed</item>
+      <item>Prefix</item>
+      <item>ParallelArray</item>
+      <item>Placeholder</item>
+      <item>PreIncrement</item>
+      <item>ParallelCombine</item>
+      <item>PlaceholderReplace</item>
+      <item>Prepend</item>
+      <item>ParallelDo</item>
+      <item>Plain</item>
+      <item>PrependTo</item>
+      <item>ParallelEvaluate</item>
+      <item>Play</item>
+      <item>PreserveImageOptions</item>
+      <item>Parallelization</item>
+      <item>PlayRange</item>
+      <item>PriceGraphDistribution</item>
+      <item>Parallelize</item>
+      <item>Plot</item>
+      <item>Prime</item>
+      <item>ParallelMap</item>
+      <item>Plot3D</item>
+      <item>PrimeNu</item>
+      <item>ParallelNeeds</item>
+      <item>PlotLabel</item>
+      <item>PrimeOmega</item>
+      <item>ParallelProduct</item>
+      <item>PlotLayout</item>
+      <item>PrimePi</item>
+      <item>ParallelSubmit</item>
+      <item>PlotMarkers</item>
+      <item>PrimePowerQ</item>
+      <item>ParallelSum</item>
+      <item>PlotPoints</item>
+      <item>PrimeQ</item>
+      <item>ParallelTable</item>
+      <item>PlotRange</item>
+      <item>Primes</item>
+      <item>ParallelTry</item>
+      <item>PlotRangeClipping</item>
+      <item>PrimeZetaP</item>
+      <item>ParameterEstimator</item>
+      <item>PlotRangePadding</item>
+      <item>PrimitiveRoot</item>
+      <item>ParameterMixtureDistribution</item>
+      <item>PlotRegion</item>
+      <item>PrincipalComponents</item>
+      <item>ParametricPlot</item>
+      <item>PlotStyle</item>
+      <item>PrincipalValue</item>
+      <item>ParametricPlot3D</item>
+      <item>Plus</item>
+      <item>Print</item>
+      <item>ParentDirectory</item>
+      <item>PlusMinus</item>
+      <item>PrintingStyleEnvironment</item>
+      <item>ParetoDistribution</item>
+      <item>Pochhammer</item>
+      <item>PrintTemporary</item>
+      <item>Part</item>
+      <item>PodStates</item>
+      <item>Probability</item>
+      <item>ParticleData</item>
+      <item>PodWidth</item>
+      <item>ProbabilityDistribution</item>
+      <item>Partition</item>
+      <item>Point</item>
+      <item>ProbabilityPlot</item>
+      <item>PartitionsP</item>
+      <item>PointFigureChart</item>
+      <item>ProbabilityScalePlot</item>
+      <item>PartitionsQ</item>
+      <item>PointSize</item>
+      <item>ProbitModelFit</item>
+      <item>PascalDistribution</item>
+      <item>PoissonConsulDistribution</item>
+      <item>Product</item>
+      <item>PassEventsDown</item>
+      <item>PoissonDistribution</item>
+      <item>ProductDistribution</item>
+      <item>PassEventsUp</item>
+      <item>PolarAxes</item>
+      <item>ProductLog</item>
+      <item>Paste</item>
+      <item>PolarAxesOrigin</item>
+      <item>ProgressIndicator</item>
+      <item>PasteButton</item>
+      <item>PolarGridLines</item>
+      <item>Projection</item>
+      <item>Path</item>
+      <item>PolarPlot</item>
+      <item>Prolog</item>
+      <item>PathGraph</item>
+      <item>PolarTicks</item>
+      <item>Properties</item>
+      <item>PathGraphQ</item>
+      <item>PoleZeroMarkers</item>
+      <item>Property</item>
+      <item>Pattern</item>
+      <item>PolyaAeppliDistribution</item>
+      <item>PropertyList</item>
+      <item>PatternSequence</item>
+      <item>PolyGamma</item>
+      <item>PropertyValue</item>
+      <item>PatternTest</item>
+      <item>Polygon</item>
+      <item>Proportion</item>
+      <item>PauliMatrix</item>
+      <item>PolyhedronData</item>
+      <item>Proportional</item>
+      <item>PaulWavelet</item>
+      <item>PolyLog</item>
+      <item>Protect</item>
+      <item>Pause</item>
+      <item>PolynomialExtendedGCD</item>
+      <item>Protected</item>
+      <item>PDF</item>
+      <item>PolynomialGCD</item>
+      <item>ProteinData</item>
+      <item>PearsonChiSquareTest</item>
+      <item>PolynomialLCM</item>
+      <item>Pruning</item>
+      <item>PearsonDistribution</item>
+      <item>PolynomialMod</item>
+      <item>PseudoInverse</item>
+      <item>PerformanceGoal</item>
+      <item>PolynomialQ</item>
+      <item>Purple</item>
+      <item>PermutationCycles</item>
+      <item>PolynomialQuotient</item>
+      <item>Put</item>
+      <item>PermutationCyclesQ</item>
+      <item>PolynomialQuotientRemainder</item>
+      <item>PutAppend</item>
+      <item>PermutationGroup</item>
+      <item>PolynomialReduce</item>
+      <item>PermutationLength</item>
+      <item>PolynomialRemainder</item>
+      <item>Q</item>
+      <item>QBinomial</item>
+      <item>QRDecomposition</item>
+      <item>Quartiles</item>
+      <item>QFactorial</item>
+      <item>QuadraticIrrationalQ</item>
+      <item>QuartileSkewness</item>
+      <item>QGamma</item>
+      <item>Quantile</item>
+      <item>Quiet</item>
+      <item>QHypergeometricPFQ</item>
+      <item>QuantilePlot</item>
+      <item>Quit</item>
+      <item>QPochhammer</item>
+      <item>Quartics</item>
+      <item>Quotient</item>
+      <item>QPolyGamma</item>
+      <item>QuartileDeviation</item>
+      <item>QuotientRemainder</item>
+      <item>R</item>
+      <item>RadicalBox</item>
+      <item>RefreshRate</item>
+      <item>RightArrowBar</item>
+      <item>RadioButton</item>
+      <item>RegionBinarize</item>
+      <item>RightArrowLeftArrow</item>
+      <item>RadioButtonBar</item>
+      <item>RegionFunction</item>
+      <item>RightCosetRepresentative</item>
+      <item>Radon</item>
+      <item>RegionPlot</item>
+      <item>RightDownTeeVector</item>
+      <item>RamanujanTau</item>
+      <item>RegionPlot3D</item>
+      <item>RightDownVector</item>
+      <item>RamanujanTauL</item>
+      <item>RegularExpression</item>
+      <item>RightDownVectorBar</item>
+      <item>RamanujanTauTheta</item>
+      <item>Regularization</item>
+      <item>RightTeeArrow</item>
+      <item>RamanujanTauZ</item>
+      <item>ReleaseHold</item>
+      <item>RightTeeVector</item>
+      <item>RandomChoice</item>
+      <item>ReliefImage</item>
+      <item>RightTriangle</item>
+      <item>RandomComplex</item>
+      <item>ReliefPlot</item>
+      <item>RightTriangleBar</item>
+      <item>RandomGraph</item>
+      <item>Remove</item>
+      <item>RightTriangleEqual</item>
+      <item>RandomImage</item>
+      <item>RemoveAlphaChannel</item>
+      <item>RightUpDownVector</item>
+      <item>RandomInteger</item>
+      <item>RemoveProperty</item>
+      <item>RightUpTeeVector</item>
+      <item>RandomPermutation</item>
+      <item>RemoveScheduledTask</item>
+      <item>RightUpVector</item>
+      <item>RandomPrime</item>
+      <item>RenameDirectory</item>
+      <item>RightUpVectorBar</item>
+      <item>RandomReal</item>
+      <item>RenameFile</item>
+      <item>RightVector</item>
+      <item>RandomSample</item>
+      <item>RenkoChart</item>
+      <item>RightVectorBar</item>
+      <item>RandomVariate</item>
+      <item>Repeated</item>
+      <item>RogersTanimotoDissimilarity</item>
+      <item>Range</item>
+      <item>RepeatedNull</item>
+      <item>Root</item>
+      <item>RangeFilter</item>
+      <item>Replace</item>
+      <item>RootApproximant</item>
+      <item>RankedMax</item>
+      <item>ReplaceAll</item>
+      <item>RootIntervals</item>
+      <item>RankedMin</item>
+      <item>ReplaceList</item>
+      <item>RootLocusPlot</item>
+      <item>Raster</item>
+      <item>ReplacePart</item>
+      <item>RootMeanSquare</item>
+      <item>Rasterize</item>
+      <item>ReplaceRepeated</item>
+      <item>RootOfUnityQ</item>
+      <item>RasterSize</item>
+      <item>Resampling</item>
+      <item>RootReduce</item>
+      <item>Rational</item>
+      <item>Rescale</item>
+      <item>Roots</item>
+      <item>Rationalize</item>
+      <item>RescalingTransform</item>
+      <item>RootSum</item>
+      <item>Rationals</item>
+      <item>ResetDirectory</item>
+      <item>Rotate</item>
+      <item>Ratios</item>
+      <item>ResetScheduledTask</item>
+      <item>RotateLabel</item>
+      <item>RawBoxes</item>
+      <item>Residue</item>
+      <item>RotateLeft</item>
+      <item>RawData</item>
+      <item>Resolve</item>
+      <item>RotateRight</item>
+      <item>RayleighDistribution</item>
+      <item>Rest</item>
+      <item>RotationAction</item>
+      <item>Re</item>
+      <item>Resultant</item>
+      <item>RotationMatrix</item>
+      <item>Read</item>
+      <item>ResumePacket</item>
+      <item>RotationTransform</item>
+      <item>ReadList</item>
+      <item>Return</item>
+      <item>Round</item>
+      <item>ReadProtected</item>
+      <item>ReturnExpressionPacket</item>
+      <item>RoundingRadius</item>
+      <item>Real</item>
+      <item>ReturnPacket</item>
+      <item>Row</item>
+      <item>RealBlockDiagonalForm</item>
+      <item>ReturnTextPacket</item>
+      <item>RowAlignments</item>
+      <item>RealDigits</item>
+      <item>Reverse</item>
+      <item>RowBox</item>
+      <item>RealExponent</item>
+      <item>ReverseBiorthogonalSplineWavelet</item>
+      <item>RowLines</item>
+      <item>Reals</item>
+      <item>ReverseElement</item>
+      <item>RowMinHeight</item>
+      <item>Reap</item>
+      <item>ReverseEquilibrium</item>
+      <item>RowReduce</item>
+      <item>Record</item>
+      <item>ReverseGraph</item>
+      <item>RowsEqual</item>
+      <item>RecordLists</item>
+      <item>ReverseUpEquilibrium</item>
+      <item>RowSpacings</item>
+      <item>RecordSeparators</item>
+      <item>RevolutionAxis</item>
+      <item>RSolve</item>
+      <item>Rectangle</item>
+      <item>RevolutionPlot3D</item>
+      <item>RudvalisGroupRu</item>
+      <item>RectangleChart</item>
+      <item>RGBColor</item>
+      <item>Rule</item>
+      <item>RectangleChart3D</item>
+      <item>RiccatiSolve</item>
+      <item>RuleDelayed</item>
+      <item>RecurrenceTable</item>
+      <item>RiceDistribution</item>
+      <item>Run</item>
+      <item>Red</item>
+      <item>RidgeFilter</item>
+      <item>RunScheduledTask</item>
+      <item>Reduce</item>
+      <item>RiemannR</item>
+      <item>RunThrough</item>
+      <item>ReferenceLineStyle</item>
+      <item>RiemannSiegelTheta</item>
+      <item>RuntimeAttributes</item>
+      <item>Refine</item>
+      <item>RiemannSiegelZ</item>
+      <item>RuntimeOptions</item>
+      <item>ReflectionMatrix</item>
+      <item>Riffle</item>
+      <item>RussellRaoDissimilarity</item>
+      <item>ReflectionTransform</item>
+      <item>Right</item>
+      <item>Refresh</item>
+      <item>RightArrow</item>
+      <item>S</item>
+      <item>SameQ</item>
+      <item>Sin</item>
+      <item>StationaryWaveletPacketTransform</item>
+      <item>SameTest</item>
+      <item>Sinc</item>
+      <item>StationaryWaveletTransform</item>
+      <item>SampleDepth</item>
+      <item>SinghMaddalaDistribution</item>
+      <item>StatusArea</item>
+      <item>SampledSoundFunction</item>
+      <item>SingleLetterItalics</item>
+      <item>StepMonitor</item>
+      <item>SampledSoundList</item>
+      <item>SingularValueDecomposition</item>
+      <item>StieltjesGamma</item>
+      <item>SampleRate</item>
+      <item>SingularValueList</item>
+      <item>StirlingS1</item>
+      <item>SamplingPeriod</item>
+      <item>SingularValuePlot</item>
+      <item>StirlingS2</item>
+      <item>SatisfiabilityCount</item>
+      <item>Sinh</item>
+      <item>StopScheduledTask</item>
+      <item>SatisfiabilityInstances</item>
+      <item>SinhIntegral</item>
+      <item>StreamColorFunction</item>
+      <item>SatisfiableQ</item>
+      <item>SinIntegral</item>
+      <item>StreamColorFunctionScaling</item>
+      <item>Save</item>
+      <item>SixJSymbol</item>
+      <item>StreamDensityPlot</item>
+      <item>SaveDefinitions</item>
+      <item>Skeleton</item>
+      <item>StreamPlot</item>
+      <item>SawtoothWave</item>
+      <item>SkeletonTransform</item>
+      <item>StreamPoints</item>
+      <item>Scale</item>
+      <item>SkellamDistribution</item>
+      <item>StreamPosition</item>
+      <item>Scaled</item>
+      <item>Skewness</item>
+      <item>Streams</item>
+      <item>ScalingFunctions</item>
+      <item>SkewNormalDistribution</item>
+      <item>StreamScale</item>
+      <item>ScalingMatrix</item>
+      <item>Skip</item>
+      <item>StreamStyle</item>
+      <item>ScalingTransform</item>
+      <item>Slider</item>
+      <item>String</item>
+      <item>Scan</item>
+      <item>Slider2D</item>
+      <item>StringCases</item>
+      <item>ScheduledTaskObject</item>
+      <item>SlideView</item>
+      <item>StringCount</item>
+      <item>ScheduledTasks</item>
+      <item>Slot</item>
+      <item>StringDrop</item>
+      <item>SchurDecomposition</item>
+      <item>SlotSequence</item>
+      <item>StringExpression</item>
+      <item>ScientificForm</item>
+      <item>Small</item>
+      <item>StringForm</item>
+      <item>ScreenStyleEnvironment</item>
+      <item>SmallCircle</item>
+      <item>StringFormat</item>
+      <item>ScriptBaselineShifts</item>
+      <item>Smaller</item>
+      <item>StringFreeQ</item>
+      <item>ScriptMinSize</item>
+      <item>SmithWatermanSimilarity</item>
+      <item>StringInsert</item>
+      <item>ScriptSizeMultipliers</item>
+      <item>SmoothDensityHistogram</item>
+      <item>StringJoin</item>
+      <item>Scrollbars</item>
+      <item>SmoothHistogram</item>
+      <item>StringLength</item>
+      <item>ScrollPosition</item>
+      <item>SmoothHistogram3D</item>
+      <item>StringMatchQ</item>
+      <item>Sec</item>
+      <item>SmoothKernelDistribution</item>
+      <item>StringPosition</item>
+      <item>Sech</item>
+      <item>SokalSneathDissimilarity</item>
+      <item>StringQ</item>
+      <item>SechDistribution</item>
+      <item>Solve</item>
+      <item>StringReplace</item>
+      <item>SectorChart</item>
+      <item>SolveAlways</item>
+      <item>StringReplaceList</item>
+      <item>SectorChart3D</item>
+      <item>Sort</item>
+      <item>StringReplacePart</item>
+      <item>SectorOrigin</item>
+      <item>SortBy</item>
+      <item>StringReverse</item>
+      <item>SectorSpacing</item>
+      <item>Sound</item>
+      <item>StringSkeleton</item>
+      <item>SeedRandom</item>
+      <item>SoundNote</item>
+      <item>StringSplit</item>
+      <item>Select</item>
+      <item>SoundVolume</item>
+      <item>StringTake</item>
+      <item>Selectable</item>
+      <item>Sow</item>
+      <item>StringToStream</item>
+      <item>SelectComponents</item>
+      <item>Spacer</item>
+      <item>StringTrim</item>
+      <item>SelectedNotebook</item>
+      <item>Spacings</item>
+      <item>StructuredSelection</item>
+      <item>SelectionAnimate</item>
+      <item>Span</item>
+      <item>StruveH</item>
+      <item>SelectionCreateCell</item>
+      <item>SpanFromAbove</item>
+      <item>StruveL</item>
+      <item>SelectionEvaluate</item>
+      <item>SpanFromBoth</item>
+      <item>Stub</item>
+      <item>SelectionEvaluateCreateCell</item>
+      <item>SpanFromLeft</item>
+      <item>StudentTDistribution</item>
+      <item>SelectionMove</item>
+      <item>SparseArray</item>
+      <item>Style</item>
+      <item>SelfLoopStyle</item>
+      <item>Speak</item>
+      <item>StyleBox</item>
+      <item>SemialgebraicComponentInstances</item>
+      <item>Specularity</item>
+      <item>StyleData</item>
+      <item>SendMail</item>
+      <item>SpellingCorrection</item>
+      <item>StyleDefinitions</item>
+      <item>Sequence</item>
+      <item>Sphere</item>
+      <item>Subfactorial</item>
+      <item>SequenceAlignment</item>
+      <item>SphericalBesselJ</item>
+      <item>Subgraph</item>
+      <item>SequenceHold</item>
+      <item>SphericalBesselY</item>
+      <item>SubMinus</item>
+      <item>Series</item>
+      <item>SphericalHankelH1</item>
+      <item>SubPlus</item>
+      <item>SeriesCoefficient</item>
+      <item>SphericalHankelH2</item>
+      <item>Subresultants</item>
+      <item>SeriesData</item>
+      <item>SphericalHarmonicY</item>
+      <item>Subscript</item>
+      <item>SessionTime</item>
+      <item>SphericalPlot3D</item>
+      <item>SubscriptBox</item>
+      <item>Set</item>
+      <item>SphericalRegion</item>
+      <item>Subset</item>
+      <item>SetAccuracy</item>
+      <item>SpheroidalEigenvalue</item>
+      <item>SubsetEqual</item>
+      <item>SetAlphaChannel</item>
+      <item>SpheroidalJoiningFactor</item>
+      <item>Subsets</item>
+      <item>SetAttributes</item>
+      <item>SpheroidalPS</item>
+      <item>SubStar</item>
+      <item>SetDelayed</item>
+      <item>SpheroidalPSPrime</item>
+      <item>Subsuperscript</item>
+      <item>SetDirectory</item>
+      <item>SpheroidalQS</item>
+      <item>SubsuperscriptBox</item>
+      <item>SetFileDate</item>
+      <item>SpheroidalQSPrime</item>
+      <item>Subtract</item>
+      <item>SetOptions</item>
+      <item>SpheroidalRadialFactor</item>
+      <item>SubtractFrom</item>
+      <item>SetPrecision</item>
+      <item>SpheroidalS1</item>
+      <item>Succeeds</item>
+      <item>SetProperty</item>
+      <item>SpheroidalS1Prime</item>
+      <item>SucceedsEqual</item>
+      <item>SetSelectedNotebook</item>
+      <item>SpheroidalS2</item>
+      <item>SucceedsSlantEqual</item>
+      <item>SetSharedFunction</item>
+      <item>SpheroidalS2Prime</item>
+      <item>SucceedsTilde</item>
+      <item>SetSharedVariable</item>
+      <item>Splice</item>
+      <item>SuchThat</item>
+      <item>SetStreamPosition</item>
+      <item>SplineClosed</item>
+      <item>Sum</item>
+      <item>SetSystemOptions</item>
+      <item>SplineDegree</item>
+      <item>SumConvergence</item>
+      <item>Setter</item>
+      <item>SplineKnots</item>
+      <item>SuperDagger</item>
+      <item>SetterBar</item>
+      <item>SplineWeights</item>
+      <item>SuperMinus</item>
+      <item>Setting</item>
+      <item>Split</item>
+      <item>SuperPlus</item>
+      <item>Shallow</item>
+      <item>SplitBy</item>
+      <item>Superscript</item>
+      <item>ShannonWavelet</item>
+      <item>SpokenString</item>
+      <item>SuperscriptBox</item>
+      <item>ShapiroWilkTest</item>
+      <item>Sqrt</item>
+      <item>Superset</item>
+      <item>Share</item>
+      <item>SqrtBox</item>
+      <item>SupersetEqual</item>
+      <item>Sharpen</item>
+      <item>Square</item>
+      <item>SuperStar</item>
+      <item>ShearingMatrix</item>
+      <item>SquaredEuclideanDistance</item>
+      <item>SurvivalDistribution</item>
+      <item>ShearingTransform</item>
+      <item>SquareFreeQ</item>
+      <item>SurvivalFunction</item>
+      <item>Short</item>
+      <item>SquareIntersection</item>
+      <item>SuspendPacket</item>
+      <item>ShortDownArrow</item>
+      <item>SquaresR</item>
+      <item>SuzukiDistribution</item>
+      <item>Shortest</item>
+      <item>SquareSubset</item>
+      <item>SuzukiGroupSuz</item>
+      <item>ShortestPathFunction</item>
+      <item>SquareSubsetEqual</item>
+      <item>Switch</item>
+      <item>ShortLeftArrow</item>
+      <item>SquareSuperset</item>
+      <item>Symbol</item>
+      <item>ShortRightArrow</item>
+      <item>SquareSupersetEqual</item>
+      <item>SymbolName</item>
+      <item>ShortUpArrow</item>
+      <item>SquareUnion</item>
+      <item>SymletWavelet</item>
+      <item>Show</item>
+      <item>SquareWave</item>
+      <item>SymmetricGroup</item>
+      <item>ShowAutoStyles</item>
+      <item>StabilityMargins</item>
+      <item>SymmetricMatrixQ</item>
+      <item>ShowCellBracket</item>
+      <item>StabilityMarginsStyle</item>
+      <item>SymmetricPolynomial</item>
+      <item>ShowCellLabel</item>
+      <item>StableDistribution</item>
+      <item>SymmetricReduction</item>
+      <item>ShowCellTags</item>
+      <item>Stack</item>
+      <item>SynchronousInitialization</item>
+      <item>ShowCursorTracker</item>
+      <item>StackBegin</item>
+      <item>SynchronousUpdating</item>
+      <item>ShowGroupOpener</item>
+      <item>StackComplete</item>
+      <item>SyntaxInformation</item>
+      <item>ShowPageBreaks</item>
+      <item>StackInhibit</item>
+      <item>SyntaxLength</item>
+      <item>ShowSelection</item>
+      <item>StandardDeviation</item>
+      <item>SyntaxPacket</item>
+      <item>ShowSpecialCharacters</item>
+      <item>StandardDeviationFilter</item>
+      <item>SyntaxQ</item>
+      <item>ShowStringCharacters</item>
+      <item>StandardForm</item>
+      <item>SystemDialogInput</item>
+      <item>ShrinkingDelay</item>
+      <item>Standardize</item>
+      <item>SystemInformation</item>
+      <item>SiegelTheta</item>
+      <item>Star</item>
+      <item>SystemOpen</item>
+      <item>SiegelTukeyTest</item>
+      <item>StarGraph</item>
+      <item>SystemOptions</item>
+      <item>Sign</item>
+      <item>StartingStepSize</item>
+      <item>SystemsModelDelete</item>
+      <item>Signature</item>
+      <item>StartOfLine</item>
+      <item>SystemsModelDimensions</item>
+      <item>SignedRankTest</item>
+      <item>StartOfString</item>
+      <item>SystemsModelExtract</item>
+      <item>SignificanceLevel</item>
+      <item>StartScheduledTask</item>
+      <item>SystemsModelFeedbackConnect</item>
+      <item>SignPadding</item>
+      <item>StateFeedbackGains</item>
+      <item>SystemsModelLabels</item>
+      <item>SignTest</item>
+      <item>StateOutputEstimator</item>
+      <item>SystemsModelOrder</item>
+      <item>SimilarityRules</item>
+      <item>StateResponse</item>
+      <item>SystemsModelParallelConnect</item>
+      <item>SimpleGraph</item>
+      <item>StateSpaceModel</item>
+      <item>SystemsModelSeriesConnect</item>
+      <item>SimpleGraphQ</item>
+      <item>StateSpaceRealization</item>
+      <item>SystemsModelStateFeedbackConnect</item>
+      <item>Simplify</item>
+      <item>StateSpaceTransform</item>
+      <item>T</item>
+      <item>Table</item>
+      <item>Tilde</item>
+      <item>TraceOn</item>
+      <item>TableAlignments</item>
+      <item>TildeEqual</item>
+      <item>TraceOriginal</item>
+      <item>TableDepth</item>
+      <item>TildeFullEqual</item>
+      <item>TracePrint</item>
+      <item>TableDirections</item>
+      <item>TildeTilde</item>
+      <item>TraceScan</item>
+      <item>TableForm</item>
+      <item>TimeConstrained</item>
+      <item>TrackedSymbols</item>
+      <item>TableHeadings</item>
+      <item>TimeConstraint</item>
+      <item>TradingChart</item>
+      <item>TableSpacing</item>
+      <item>Times</item>
+      <item>TraditionalForm</item>
+      <item>TabView</item>
+      <item>TimesBy</item>
+      <item>TransferFunctionCancel</item>
+      <item>TagBox</item>
+      <item>TimeUsed</item>
+      <item>TransferFunctionExpand</item>
+      <item>TaggingRules</item>
+      <item>TimeValue</item>
+      <item>TransferFunctionFactor</item>
+      <item>TagSet</item>
+      <item>TimeZone</item>
+      <item>TransferFunctionModel</item>
+      <item>TagSetDelayed</item>
+      <item>Timing</item>
+      <item>TransferFunctionPoles</item>
+      <item>TagUnset</item>
+      <item>Tiny</item>
+      <item>TransferFunctionZeros</item>
+      <item>Take</item>
+      <item>TitsGroupT</item>
+      <item>TransformationFunction</item>
+      <item>TakeWhile</item>
+      <item>ToBoxes</item>
+      <item>TransformationFunctions</item>
+      <item>Tally</item>
+      <item>ToCharacterCode</item>
+      <item>TransformationMatrix</item>
+      <item>Tan</item>
+      <item>ToContinuousTimeModel</item>
+      <item>TransformedDistribution</item>
+      <item>Tanh</item>
+      <item>ToDiscreteTimeModel</item>
+      <item>Translate</item>
+      <item>TargetFunctions</item>
+      <item>ToeplitzMatrix</item>
+      <item>TranslationTransform</item>
+      <item>TautologyQ</item>
+      <item>ToExpression</item>
+      <item>Transparent</item>
+      <item>Temporary</item>
+      <item>Together</item>
+      <item>Transpose</item>
+      <item>TeXForm</item>
+      <item>Toggler</item>
+      <item>TreeForm</item>
+      <item>Text</item>
+      <item>TogglerBar</item>
+      <item>TreeGraph</item>
+      <item>TextAlignment</item>
+      <item>TokenWords</item>
+      <item>TreeGraphQ</item>
+      <item>TextCell</item>
+      <item>Tolerance</item>
+      <item>TreePlot</item>
+      <item>TextClipboardType</item>
+      <item>ToLowerCase</item>
+      <item>TrendStyle</item>
+      <item>TextData</item>
+      <item>ToNumberField</item>
+      <item>TriangleWave</item>
+      <item>TextJustification</item>
+      <item>Tooltip</item>
+      <item>TriangularDistribution</item>
+      <item>TextPacket</item>
+      <item>TooltipDelay</item>
+      <item>Trig</item>
+      <item>TextRecognize</item>
+      <item>Top</item>
+      <item>TrigExpand</item>
+      <item>Texture</item>
+      <item>TopHatTransform</item>
+      <item>TrigFactor</item>
+      <item>TextureCoordinateFunction</item>
+      <item>TopologicalSort</item>
+      <item>TrigFactorList</item>
+      <item>TextureCoordinateScaling</item>
+      <item>ToRadicals</item>
+      <item>Trigger</item>
+      <item>Therefore</item>
+      <item>ToRules</item>
+      <item>TrigReduce</item>
+      <item>Thick</item>
+      <item>ToString</item>
+      <item>TrigToExp</item>
+      <item>Thickness</item>
+      <item>Total</item>
+      <item>TrimmedMean</item>
+      <item>Thin</item>
+      <item>TotalVariationFilter</item>
+      <item>True</item>
+      <item>Thinning</item>
+      <item>TotalWidth</item>
+      <item>TrueQ</item>
+      <item>ThompsonGroupTh</item>
+      <item>ToUpperCase</item>
+      <item>TruncatedDistribution</item>
+      <item>Thread</item>
+      <item>Tr</item>
+      <item>TTest</item>
+      <item>ThreeJSymbol</item>
+      <item>Trace</item>
+      <item>Tube</item>
+      <item>Threshold</item>
+      <item>TraceAbove</item>
+      <item>TukeyLambdaDistribution</item>
+      <item>Through</item>
+      <item>TraceBackward</item>
+      <item>Tuples</item>
+      <item>Throw</item>
+      <item>TraceDepth</item>
+      <item>TuranGraph</item>
+      <item>Thumbnail</item>
+      <item>TraceDialog</item>
+      <item>TuringMachine</item>
+      <item>Ticks</item>
+      <item>TraceForward</item>
+      <item>TicksStyle</item>
+      <item>TraceOff</item>
+      <item>U</item>
+      <item>Uncompress</item>
+      <item>UniformSumDistribution</item>
+      <item>UpArrowBar</item>
+      <item>Undefined</item>
+      <item>Uninstall</item>
+      <item>UpArrowDownArrow</item>
+      <item>UnderBar</item>
+      <item>Union</item>
+      <item>Update</item>
+      <item>Underflow</item>
+      <item>UnionPlus</item>
+      <item>UpdateInterval</item>
+      <item>Underlined</item>
+      <item>Unique</item>
+      <item>UpDownArrow</item>
+      <item>Underoverscript</item>
+      <item>UnitBox</item>
+      <item>UpEquilibrium</item>
+      <item>UnderoverscriptBox</item>
+      <item>Unitize</item>
+      <item>UpperCaseQ</item>
+      <item>Underscript</item>
+      <item>UnitStep</item>
+      <item>UpperLeftArrow</item>
+      <item>UnderscriptBox</item>
+      <item>UnitTriangle</item>
+      <item>UpperRightArrow</item>
+      <item>UndirectedEdge</item>
+      <item>UnitVector</item>
+      <item>UpperTriangularize</item>
+      <item>UndirectedGraph</item>
+      <item>Unprotect</item>
+      <item>UpSet</item>
+      <item>UndirectedGraphQ</item>
+      <item>UnsameQ</item>
+      <item>UpSetDelayed</item>
+      <item>Unequal</item>
+      <item>UnsavedVariables</item>
+      <item>UpTeeArrow</item>
+      <item>Unevaluated</item>
+      <item>Unset</item>
+      <item>UpValues</item>
+      <item>UniformDistribution</item>
+      <item>UnsetShared</item>
+      <item>UsingFrontEnd</item>
+      <item>UniformGraphDistribution</item>
+      <item>UpArrow</item>
+      <item>V</item>
+      <item>ValidationLength</item>
+      <item>VertexAdd</item>
+      <item>VertexReplace</item>
+      <item>ValueQ</item>
+      <item>VertexColors</item>
+      <item>VertexShape</item>
+      <item>Variables</item>
+      <item>VertexComponent</item>
+      <item>VertexShapeFunction</item>
+      <item>Variance</item>
+      <item>VertexCoordinateRules</item>
+      <item>VertexSize</item>
+      <item>VarianceEquivalenceTest</item>
+      <item>VertexCoordinates</item>
+      <item>VertexStyle</item>
+      <item>VarianceEstimatorFunction</item>
+      <item>VertexCount</item>
+      <item>VertexTextureCoordinates</item>
+      <item>VarianceTest</item>
+      <item>VertexCoverQ</item>
+      <item>VertexWeight</item>
+      <item>VectorAngle</item>
+      <item>VertexDegree</item>
+      <item>VerticalBar</item>
+      <item>VectorColorFunction</item>
+      <item>VertexDelete</item>
+      <item>VerticalSeparator</item>
+      <item>VectorColorFunctionScaling</item>
+      <item>VertexEccentricity</item>
+      <item>VerticalSlider</item>
+      <item>VectorDensityPlot</item>
+      <item>VertexInComponent</item>
+      <item>VerticalTilde</item>
+      <item>VectorPlot</item>
+      <item>VertexInDegree</item>
+      <item>ViewAngle</item>
+      <item>VectorPlot3D</item>
+      <item>VertexIndex</item>
+      <item>ViewCenter</item>
+      <item>VectorPoints</item>
+      <item>VertexLabeling</item>
+      <item>ViewMatrix</item>
+      <item>VectorQ</item>
+      <item>VertexLabels</item>
+      <item>ViewPoint</item>
+      <item>VectorScale</item>
+      <item>VertexList</item>
+      <item>ViewRange</item>
+      <item>VectorStyle</item>
+      <item>VertexNormals</item>
+      <item>ViewVector</item>
+      <item>Vee</item>
+      <item>VertexOutComponent</item>
+      <item>ViewVertical</item>
+      <item>Verbatim</item>
+      <item>VertexOutDegree</item>
+      <item>Visible</item>
+      <item>VerifyConvergence</item>
+      <item>VertexQ</item>
+      <item>VonMisesDistribution</item>
+      <item>VerifyTestAssumptions</item>
+      <item>VertexRenderingFunction</item>
+      <item>W</item>
+      <item>WaitAll</item>
+      <item>WeierstrassHalfPeriods</item>
+      <item>WindowFloating</item>
+      <item>WaitNext</item>
+      <item>WeierstrassInvariants</item>
+      <item>WindowFrame</item>
+      <item>WakebyDistribution</item>
+      <item>WeierstrassP</item>
+      <item>WindowMargins</item>
+      <item>WalleniusHypergeometricDistribution</item>
+      <item>WeierstrassPPrime</item>
+      <item>WindowMovable</item>
+      <item>WaringYuleDistribution</item>
+      <item>WeierstrassSigma</item>
+      <item>WindowOpacity</item>
+      <item>WatershedComponents</item>
+      <item>WeierstrassZeta</item>
+      <item>WindowSize</item>
+      <item>WatsonUSquareTest</item>
+      <item>WeightedAdjacencyGraph</item>
+      <item>WindowStatusArea</item>
+      <item>WattsStrogatzGraphDistribution</item>
+      <item>WeightedAdjacencyMatrix</item>
+      <item>WindowTitle</item>
+      <item>WaveletBestBasis</item>
+      <item>WeightedGraphQ</item>
+      <item>WindowToolbars</item>
+      <item>WaveletFilterCoefficients</item>
+      <item>Weights</item>
+      <item>With</item>
+      <item>WaveletImagePlot</item>
+      <item>WheelGraph</item>
+      <item>WolframAlpha</item>
+      <item>WaveletListPlot</item>
+      <item>Which</item>
+      <item>Word</item>
+      <item>WaveletMapIndexed</item>
+      <item>While</item>
+      <item>WordBoundary</item>
+      <item>WaveletMatrixPlot</item>
+      <item>White</item>
+      <item>WordCharacter</item>
+      <item>WaveletPhi</item>
+      <item>Whitespace</item>
+      <item>WordData</item>
+      <item>WaveletPsi</item>
+      <item>WhitespaceCharacter</item>
+      <item>WordSearch</item>
+      <item>WaveletScale</item>
+      <item>WhittakerM</item>
+      <item>WordSeparators</item>
+      <item>WaveletScalogram</item>
+      <item>WhittakerW</item>
+      <item>WorkingPrecision</item>
+      <item>WaveletThreshold</item>
+      <item>WienerFilter</item>
+      <item>Write</item>
+      <item>WeatherData</item>
+      <item>WignerD</item>
+      <item>WriteString</item>
+      <item>WeberE</item>
+      <item>WignerSemicircleDistribution</item>
+      <item>Wronskian</item>
+      <item>Wedge</item>
+      <item>WindowClickSelect</item>
+      <item>WeibullDistribution</item>
+      <item>WindowElements</item>
+      <item>X</item>
+      <item>XMLElement</item>
+      <item>Xnor</item>
+      <item>XMLObject</item>
+      <item>Xor</item>
+      <item>Y</item>
+      <item>Yellow</item>
+      <item>YuleDissimilarity</item>
+      <item>Z</item>
+      <item>ZernikeR</item>
+      <item>ZetaZero</item>
+      <item>ZTransform</item>
+      <item>ZeroTest</item>
+      <item>ZipfDistribution</item>
+      <item>Zeta</item>
+      <item>ZTest</item>
+      <item>$</item>
+      <item>$Aborted</item>
+      <item>$Inspector</item>
+      <item>$OutputSizeLimit</item>
+      <item>$AssertFunction</item>
+      <item>$InstallationDirectory</item>
+      <item>$Packages</item>
+      <item>$Assumptions</item>
+      <item>$IterationLimit</item>
+      <item>$ParentLink</item>
+      <item>$BaseDirectory</item>
+      <item>$KernelCount</item>
+      <item>$ParentProcessID</item>
+      <item>$BatchInput</item>
+      <item>$KernelID</item>
+      <item>$Path</item>
+      <item>$BatchOutput</item>
+      <item>$Language</item>
+      <item>$PathnameSeparator</item>
+      <item>$ByteOrdering</item>
+      <item>$LibraryPath</item>
+      <item>$PerformanceGoal</item>
+      <item>$Canceled</item>
+      <item>$LicenseExpirationDate</item>
+      <item>$Post</item>
+      <item>$CharacterEncoding</item>
+      <item>$LicenseID</item>
+      <item>$Pre</item>
+      <item>$CharacterEncodings</item>
+      <item>$LicenseServer</item>
+      <item>$PrePrint</item>
+      <item>$CommandLine</item>
+      <item>$Line</item>
+      <item>$PreRead</item>
+      <item>$CompilationTarget</item>
+      <item>$Linked</item>
+      <item>$ProcessID</item>
+      <item>$ConfiguredKernels</item>
+      <item>$MachineAddresses</item>
+      <item>$ProcessorCount</item>
+      <item>$Context</item>
+      <item>$MachineDomains</item>
+      <item>$ProcessorType</item>
+      <item>$ContextPath</item>
+      <item>$MachineEpsilon</item>
+      <item>$RecursionLimit</item>
+      <item>$ControlActiveSetting</item>
+      <item>$MachineID</item>
+      <item>$ReleaseNumber</item>
+      <item>$CreationDate</item>
+      <item>$MachineName</item>
+      <item>$RootDirectory</item>
+      <item>$CurrentLink</item>
+      <item>$MachinePrecision</item>
+      <item>$ScheduledTask</item>
+      <item>$DateStringFormat</item>
+      <item>$MachineType</item>
+      <item>$ScriptCommandLine</item>
+      <item>$DefaultImagingDevice</item>
+      <item>$MaxExtraPrecision</item>
+      <item>$SessionID</item>
+      <item>$Display</item>
+      <item>$MaxMachineNumber</item>
+      <item>$SharedFunctions</item>
+      <item>$DisplayFunction</item>
+      <item>$MaxNumber</item>
+      <item>$SharedVariables</item>
+      <item>$DistributedContexts</item>
+      <item>$MaxPiecewiseCases</item>
+      <item>$SoundDisplayFunction</item>
+      <item>$DynamicEvaluation</item>
+      <item>$MaxPrecision</item>
+      <item>$SyntaxHandler</item>
+      <item>$Echo</item>
+      <item>$MaxRootDegree</item>
+      <item>$System</item>
+      <item>$Epilog</item>
+      <item>$MessageGroups</item>
+      <item>$SystemCharacterEncoding</item>
+      <item>$ExportFormats</item>
+      <item>$MessageList</item>
+      <item>$SystemID</item>
+      <item>$Failed</item>
+      <item>$MessagePrePrint</item>
+      <item>$SystemWordLength</item>
+      <item>$FrontEnd</item>
+      <item>$Messages</item>
+      <item>$TemporaryDirectory</item>
+      <item>$FrontEndSession</item>
+      <item>$MinMachineNumber</item>
+      <item>$TimedOut</item>
+      <item>$GeoLocation</item>
+      <item>$MinNumber</item>
+      <item>$TimeUnit</item>
+      <item>$HistoryLength</item>
+      <item>$MinPrecision</item>
+      <item>$TimeZone</item>
+      <item>$HomeDirectory</item>
+      <item>$ModuleNumber</item>
+      <item>$Urgent</item>
+      <item>$IgnoreEOF</item>
+      <item>$NewMessage</item>
+      <item>$UserBaseDirectory</item>
+      <item>$ImagingDevices</item>
+      <item>$NewSymbol</item>
+      <item>$UserDocumentsDirectory</item>
+      <item>$ImportFormats</item>
+      <item>$Notebooks</item>
+      <item>$UserName</item>
+      <item>$InitialDirectory</item>
+      <item>$NumberMarks</item>
+      <item>$Version</item>
+      <item>$Input</item>
+      <item>$OperatingSystem</item>
+      <item>$VersionNumber</item>
+      <item>$InputFileName</item>
+      <item>$Output</item>
+    </list>
+    <contexts>
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+	<keyword attribute="function" String="functions" context="#stay"/>
+	<Int attribute="Int" context="#stay" />
+	<Float attribute="Float" context="#stay" />
+	<RegExpr attribute="Parameter" String="[a-zA-Z_0-9]+\_" context="#stay"/>
+	<RegExpr attribute="Replace" String="(\-\>|\/\.)" context="#stay"/>
+	<AnyChar attribute="Operator" String="+*/%\|-^" context="#stay"/>
+	<RegExpr attribute="Assign" String="(:=|=)" context="#stay"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="function" defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Parameter" italic="1" defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Operator" defStyleNum="dsNormal" color="#FF7B00" spellChecking="false"/>
+      <itemData name="Assign" defStyleNum="dsNormal" color="#00A0E4" spellChecking="false"/>
+      <itemData name="Replace" defStyleNum="dsNormal" color="#85C200" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="0" weakDeliminator="-%"/>
+    <comments>
+      <comment name="multiLine" start="(*" end="*)" />
+    </comments>
+  </general>
+</language>
diff --git a/xml/matlab.xml b/xml/matlab.xml
new file mode 100644
--- /dev/null
+++ b/xml/matlab.xml
@@ -0,0 +1,230 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+  ====================================================================
+  MATLAB syntax highlighting file for the KDE editors Kate and Kwrite
+  ====================================================================
+      works (at least) for MATLAB versions 5.3, 6.0, 6.1, 6.5, 6.5sp1
+      works with Kate 2.2 and with Kwrite 4.2 (KDE 3.2)
+
+  This file works only for syntactically correct MATLAB code. For incorrect
+  code, the behaviour is undefined. One exception is made: Incomplete strings
+  with missing closing delimiter are highlighted separately, just as in the
+  native editor of MATLAB does.
+
+  Highlighting errors never propagate across line breaks.
+
+  Most of this XML file is straight and simple. Only the character ' (&apos;)
+  needs nontrivial treatment, since it is both a postfix operator indicating
+  complex conjugate transpose (adjoint) and a string delimiter. It is an
+  adjoint operator in the following positions:
+  1) immediately after an identifier (variable, function, but not keyword)
+  2) immediately after a number literal
+  3) immediately after the closing parenthesis ), ] and }
+  4) immediately after a simple transpose operator .'
+  5) immediately after another adjoint operator '
+  In all other cases it is a string delimiter.
+
+  This is implemented using look-ahead regexps. If one of the entities in the
+  above cases 1-4 (identifier, number literal, ...) matches and look-ahead
+  shows that it is followed by a ', the entity is highlighted and control is
+  passed to the special context _adjoint, whose sole purpose is to correctly
+  highlight a series of ' (thus covering case 5 as well). _adjoint immediately
+  returns to the default context _normal.
+
+  MATLAB number literals are different from those in C and similar languages:
+  a) All numbers literals are doubles. There is no distinction between float and int.
+  b) There is no notation of hex or oct base integers.
+  c) The symbols i or j may be attached to a number to indicate a multiplication
+     with the imaginary unit.
+
+  MATLAB identifiers have to start with a letter followed by any number of letters,
+  digits and underscores.
+
+  There is a small number of reserved keywords, which cannot be the target of an
+  assignment. All other identifiers (including all of the many 100s of MATLAB commands)
+  can be redefined. Consequently, only the reserved keywords are highlighted.
+
+  At the end of the XML file, there is MATLAB testing code for developers.
+
+  Change log:
+  19-Nov-03  Created from scratch.
+  08-Mar-04  Small corrections. Added default colors of MATLAB editor.
+  25-Jan-09  Addedd basic support for OOP (Matlab 2008) (by Leonardo Finetti)
+
+  Author: Stefan Stoll, Swiss Federal Institute of Technology, Zurich
+  Co-author: Leonardo Finetti, www.finex.org
+-->
+
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<language name="Matlab" version="2" kateversion="2.2" section="Scientific" extensions="*.m;*.M" mimetype="text/mfile" casesensitive="1">
+  <highlighting>
+
+    <!-- Reserved keywords in MATLAB -->
+    <list name="KeywordsList">
+      <item>break</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>classdef</item>
+      <item>continue</item>
+      <item>else</item>
+      <item>elseif</item>
+      <item>end</item>
+      <item>for</item>
+      <item>function</item>
+      <item>global</item>
+      <item>if</item>
+      <item>otherwise</item>
+      <item>parfor</item>
+      <item>persistent</item>
+      <item>return</item>
+      <item>spmd</item>
+      <item>switch</item>
+      <item>try</item>
+      <item>while</item>
+      <item>methods</item>
+      <item>properties</item>
+      <item>events</item>
+    </list>
+
+    <contexts>
+
+      <context name="_normal" attribute="Normal Text" lineEndContext="#stay">
+
+        <!-- Look-ahead for adjoint ' after variable, number literal, closing braces and .' -->
+        <RegExpr context="_adjoint" attribute="Variable" String="[a-zA-Z]\w*(?=')" />
+        <RegExpr context="_adjoint" attribute="Number" String="(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?[ij]?(?=')" />
+        <RegExpr context="_adjoint" attribute="Delimiter" String="[\)\]}](?=')" />
+        <RegExpr context="_adjoint" attribute="Operator" String="\.'(?=')" />
+
+        <!-- If ' is not the adjoint operator, it starts a string or an unterminated string -->
+        <RegExpr context="#stay" attribute="String" String="'[^']*(''[^']*)*'(?=[^']|$)" />
+        <RegExpr context="#stay" attribute="Incomplete String" String="'[^']*(''[^']*)*" />
+
+        <!-- Handling of keywords, comments, system commands, identifiers, numbers and braces -->
+        <keyword context="#stay" attribute="Keyword" String="KeywordsList" />
+        <RegExpr context="#stay" attribute="Comment" String="%.*$" />
+        <RegExpr context="#stay" attribute="System" String="!.*$" />
+        <RegExpr context="#stay" attribute="Variable" String="[a-zA-Z]\w*" />
+        <RegExpr context="#stay" attribute="Number" String="(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?[ij]?" />
+        <AnyChar context="#stay" attribute="Delimiter" String="()[]{}"/>
+
+        <!-- Three and two-character operators -->
+        <StringDetect context="#stay" attribute="Operator" String="..."/>
+        <StringDetect context="#stay" attribute="Operator" String="=="/>
+        <StringDetect context="#stay" attribute="Operator" String="~="/>
+        <StringDetect context="#stay" attribute="Operator" String="&lt;="/>
+        <StringDetect context="#stay" attribute="Operator" String="&gt;="/>
+        <StringDetect context="#stay" attribute="Operator" String="&amp;&amp;"/>
+        <StringDetect context="#stay" attribute="Operator" String="||"/>
+        <StringDetect context="#stay" attribute="Operator" String=".*"/>
+        <StringDetect context="#stay" attribute="Operator" String=".^"/>
+        <StringDetect context="#stay" attribute="Operator" String="./"/>
+        <StringDetect context="#stay" attribute="Operator" String=".'"/>
+
+        <!-- Single-character operators -->
+        <AnyChar context="#stay" attribute="Operator" String="*+-/\&amp;|&lt;&gt;~^=,;:@"/>
+
+      </context>
+
+      <!-- Context entered after encountering an ' adjoint operator -->
+      <context name="_adjoint" attribute="Operator" lineEndContext="#pop">
+        <RegExpr context="#pop" attribute="Operator" String="'+" />
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Variable" defStyleNum="dsNormal" />
+      <itemData name="Operator" defStyleNum="dsNormal"/>
+      <itemData name="Number" defStyleNum="dsFloat" />
+      <itemData name="Delimiter" defStyleNum="dsNormal" />
+      <itemData name="String" defStyleNum="dsString" color="#b20000"/>
+      <itemData name="System" defStyleNum="dsBaseN" color="#b28c00"/>
+      <itemData name="Incomplete String" defStyleNum="dsChar" color="#a020f0"/>
+      <itemData name="Keyword"  defStyleNum="dsNormal" color="#0000ff"/>
+      <itemData name="Comment" defStyleNum="dsComment" color="#009900"/>
+    </itemDatas>
+    <!-- MATLAB 6.5 default color scheme
+          keywords             #0000ff
+          comments             #228b22
+          strings              #b20000
+          unterminated strings #a020f0
+          system commands      #b28c00
+          errors               #ff0000
+          all others           #000000
+    -->
+
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="% " />
+    </comments>
+    <keywords casesensitive="1" weakDeliminator=""/>
+  </general>
+
+</language>
+<!--
+%%=====================================================
+% MATLAB test code for Kate/Kwrite syntax highlighting
+%%=====================================================
+
+% Numbers _____________________________________________
+5, 5.5, .1, 0.1, 0.4e5, 1.2e-5, 5i, 5.3i, 6j, .345+3i
+5', 5.5', .1', 0.1', 0.4e5', 1.2e-5', 5i', 5.3i', 6j', .345+3i'
+
+% Operators ___________________________________________
+% relational operators
+'asdf'~=4, c<=4, d>=4, a<b, a>b, a==b, b||c, b&&c
+% elementwise arithmetic operators
+a.^b, a.*b a./b, 1:4:5
+% single-character binary arithmetic
+a+3, a-3, a*2, a^3, a/3, a\3, a|b, a&b
+% unary operators
+a = ~g; g = @sfdgdsf(sdfsd,345); g.' + 1i.' - ('asdf').'
+% separators and delimiter
+(asd),[sadf];{asdf},;;,;;;()
+% continuation
+a = 1+ ...
+  2;
+
+% Strings and adjoint _________________________________
+% incomplete strings
+'string
+'str''
+'str''ing
+% complete strings
+'string' % simple string
+'''' % string containing '
+'str''ing' % one string containing '
+'string' 'string'  % two strings
+'asdf'  'asdf''' variable  % two strings and a variable
+'asdf''asdf''   fsgdfg' + (asdf)' - 'asdf'.' + []''''.';''
+'sadf'.' % string transpose
+% adjoint
+{'asdf'}' + 1
+('asdf')' + 1
+['asdf']' + 1
+'' var''' % empty string, var with >1 adjoints
+[5]'*{5}'*('asd')'.'+(5)'*6'*asdf'*asdf'.'  % many adjoints
+A'*B + 1      % adjoint
+A.'*B + 1     % transpose
+A.'.'*B + 1   % double transpose
+A'.' + 1      % adjoint, then transpose
+A.''          % transpose, then adjoint
+
+% System command ______________________________________
+!hostname
+!cp * /tmp
+
+% Reserved keywords ___________________________________
+function, persistent, global
+switch, case, otherwise
+if, else, elseif
+try, catch
+for, while, break, continue
+end, return
+function, FUNCTION, Function  % case sensitive!
+-->
diff --git a/xml/maxima.xml b/xml/maxima.xml
new file mode 100644
--- /dev/null
+++ b/xml/maxima.xml
@@ -0,0 +1,1890 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    maxima.xml—Maxima CAS syntax highlighting for Kate and KWrite.
+    Copyright © 2008 Alexey V. Beshenov <al@beshenov.ru>.
+
+    maxima.xml is free software; you can redistribute it and/or modify it
+    under the terms of the GNU Lesser General Public License as published
+    by the Free Software Foundation; either version 2.1 of the License,
+    or (at your option) any later version.
+
+    maxima.xml is distributed in the hope that it will be useful, but
+    WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+    General Public License for more details.
+
+    You should have received a copy of the GNU General Public License
+    along with the maxima.xml. If not, see <http://www.gnu.org/licenses/>.
+
+    Usage: place maxima.xml in $KDEDIR/share/apps/katepart/syntax.
+-->
+
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<language name="Maxima" version="3" kateversion="5.2" section="Scientific" extensions="*.mac;*.MAC;*.dem;*.DEM" casesensitive="1" author="Alexey Beshenov &lt;al@beshenov.ru&gt;" license="LGPLv2.1+">
+    <highlighting>
+
+        <list name="MaximaKeyword">
+            <item>and</item>
+            <item>do</item>
+            <item>else</item>
+            <item>elseif</item>
+            <item>false</item>
+            <item>for</item>
+            <item>if</item>
+            <item>in</item>
+            <item>not</item>
+            <item>or</item>
+            <item>step</item>
+            <item>then</item>
+            <item>thru</item>
+            <item>true</item>
+            <item>while</item>
+        </list>
+
+        <list name="SpecialComment">
+            <item>FIXME</item>
+            <item>TODO</item>
+        </list>
+
+        <list name="MaximaFunction">
+            <item>abasep</item>
+            <item>abs</item>
+            <item>absint</item>
+            <item>absolute_real_time</item>
+            <item>acos</item>
+            <item>acosh</item>
+            <item>acot</item>
+            <item>acoth</item>
+            <item>acsc</item>
+            <item>acsch</item>
+            <item>activate</item>
+            <item>addcol</item>
+            <item>add_edge</item>
+            <item>add_edges</item>
+            <item>addmatrices</item>
+            <item>addrow</item>
+            <item>add_vertex</item>
+            <item>add_vertices</item>
+            <item>adjacency_matrix</item>
+            <item>adjoin</item>
+            <item>adjoint</item>
+            <item>af</item>
+            <item>agd</item>
+            <item>airy_ai</item>
+            <item>airy_bi</item>
+            <item>airy_dai</item>
+            <item>airy_dbi</item>
+            <item>algsys</item>
+            <item>alg_type</item>
+            <item>alias</item>
+            <item>allroots</item>
+            <item>alphacharp</item>
+            <item>alphanumericp</item>
+            <item>antid</item>
+            <item>antidiff</item>
+            <item>AntiDifference</item>
+            <item>append</item>
+            <item>appendfile</item>
+            <item>apply</item>
+            <item>apply1</item>
+            <item>apply2</item>
+            <item>applyb1</item>
+            <item>apropos</item>
+            <item>args</item>
+            <item>arithmetic</item>
+            <item>arithsum</item>
+            <item>array</item>
+            <item>arrayapply</item>
+            <item>arrayinfo</item>
+            <item>arraymake</item>
+            <item>ascii</item>
+            <item>asec</item>
+            <item>asech</item>
+            <item>asin</item>
+            <item>asinh</item>
+            <item>askinteger</item>
+            <item>asksign</item>
+            <item>assoc</item>
+            <item>assoc_legendre_p</item>
+            <item>assoc_legendre_q</item>
+            <item>assume</item>
+            <item>asympa</item>
+            <item>at</item>
+            <item>atan</item>
+            <item>atan2</item>
+            <item>atanh</item>
+            <item>atensimp</item>
+            <item>atom</item>
+            <item>atvalue</item>
+            <item>augcoefmatrix</item>
+            <item>augmented_lagrangian_method</item>
+            <item>av</item>
+            <item>average_degree</item>
+            <item>backtrace</item>
+            <item>barsplot</item>
+            <item>bashindices</item>
+            <item>batch</item>
+            <item>batchload</item>
+            <item>bc2</item>
+            <item>bdvac</item>
+            <item>belln</item>
+            <item>bern</item>
+            <item>bernpoly</item>
+            <item>bessel</item>
+            <item>bessel_i</item>
+            <item>bessel_j</item>
+            <item>bessel_k</item>
+            <item>bessel_y</item>
+            <item>beta</item>
+            <item>bezout</item>
+            <item>bffac</item>
+            <item>bfhzeta</item>
+            <item>bfloat</item>
+            <item>bfloatp</item>
+            <item>bfpsi</item>
+            <item>bfpsi0</item>
+            <item>bfzeta</item>
+            <item>biconected_components</item>
+            <item>bimetric</item>
+            <item>binomial</item>
+            <item>bipartition</item>
+            <item>block</item>
+            <item>blockmatrixp</item>
+            <item>bode_gain</item>
+            <item>bode_phase</item>
+            <item>bothcoef</item>
+            <item>box</item>
+            <item>boxplot</item>
+            <item>break</item>
+            <item>bug_report</item>
+            <item>build_info</item>
+            <item>buildq</item>
+            <item>burn</item>
+            <item>cabs</item>
+            <item>canform</item>
+            <item>canten</item>
+            <item>cardinality</item>
+            <item>carg</item>
+            <item>cartan</item>
+            <item>cartesian_product</item>
+            <item>catch</item>
+            <item>cbffac</item>
+            <item>cdf_bernoulli</item>
+            <item>cdf_beta</item>
+            <item>cdf_binomial</item>
+            <item>cdf_cauchy</item>
+            <item>cdf_chi2</item>
+            <item>cdf_continuous_uniform</item>
+            <item>cdf_discrete_uniform</item>
+            <item>cdf_exp</item>
+            <item>cdf_f</item>
+            <item>cdf_gamma</item>
+            <item>cdf_geometric</item>
+            <item>cdf_gumbel</item>
+            <item>cdf_hypergeometric</item>
+            <item>cdf_laplace</item>
+            <item>cdf_logistic</item>
+            <item>cdf_lognormal</item>
+            <item>cdf_negative_binomial</item>
+            <item>cdf_normal</item>
+            <item>cdf_pareto</item>
+            <item>cdf_poisson</item>
+            <item>cdf_rank_sum</item>
+            <item>cdf_rayleigh</item>
+            <item>cdf_signed_rank</item>
+            <item>cdf_student_t</item>
+            <item>cdf_weibull</item>
+            <item>cdisplay</item>
+            <item>ceiling</item>
+            <item>central_moment</item>
+            <item>cequal</item>
+            <item>cequalignore</item>
+            <item>cf</item>
+            <item>cfdisrep</item>
+            <item>cfexpand</item>
+            <item>cgeodesic</item>
+            <item>cgreaterp</item>
+            <item>cgreaterpignore</item>
+            <item>changename</item>
+            <item>changevar</item>
+            <item>chaosgame</item>
+            <item>charat</item>
+            <item>charfun</item>
+            <item>charfun2</item>
+            <item>charlist</item>
+            <item>charp</item>
+            <item>charpoly</item>
+            <item>chebyshev_t</item>
+            <item>chebyshev_u</item>
+            <item>checkdiv</item>
+            <item>check_overlaps</item>
+            <item>cholesky</item>
+            <item>christof</item>
+            <item>chromatic_index</item>
+            <item>chromatic_number</item>
+            <item>cint</item>
+            <item>circulant_graph</item>
+            <item>clear_edge_weight</item>
+            <item>clear_rules</item>
+            <item>clear_vertex_label</item>
+            <item>clebsch_graph</item>
+            <item>clessp</item>
+            <item>clesspignore</item>
+            <item>close</item>
+            <item>closefile</item>
+            <item>cmetric</item>
+            <item>coeff</item>
+            <item>coefmatrix</item>
+            <item>cograd</item>
+            <item>col</item>
+            <item>collapse</item>
+            <item>collectterms</item>
+            <item>columnop</item>
+            <item>columnspace</item>
+            <item>columnswap</item>
+            <item>columnvector</item>
+            <item>combination</item>
+            <item>combine</item>
+            <item>comp2pui</item>
+            <item>compare</item>
+            <item>compfile</item>
+            <item>compile</item>
+            <item>compile_file</item>
+            <item>complement_graph</item>
+            <item>complete_bipartite_graph</item>
+            <item>complete_graph</item>
+            <item>components</item>
+            <item>concan</item>
+            <item>concat</item>
+            <item>conjugate</item>
+            <item>conmetderiv</item>
+            <item>connected_components</item>
+            <item>connect_vertices</item>
+            <item>cons</item>
+            <item>constantp</item>
+            <item>constituent</item>
+            <item>cont2part</item>
+            <item>content</item>
+            <item>continuous_freq</item>
+            <item>contortion</item>
+            <item>contour_plot</item>
+            <item>contract</item>
+            <item>contract_edge</item>
+            <item>contragrad</item>
+            <item>contrib_ode</item>
+            <item>convert</item>
+            <item>coord</item>
+            <item>copy</item>
+            <item>copy_graph</item>
+            <item>copylist</item>
+            <item>copymatrix</item>
+            <item>cor</item>
+            <item>cos</item>
+            <item>cosh</item>
+            <item>cot</item>
+            <item>coth</item>
+            <item>cov</item>
+            <item>cov1</item>
+            <item>covdiff</item>
+            <item>covect</item>
+            <item>covers</item>
+            <item>create_graph</item>
+            <item>create_list</item>
+            <item>csc</item>
+            <item>csch</item>
+            <item>csetup</item>
+            <item>cspline</item>
+            <item>ctaylor</item>
+            <item>ct_coordsys</item>
+            <item>ctransform</item>
+            <item>ctranspose</item>
+            <item>cube_graph</item>
+            <item>cunlisp</item>
+            <item>cv</item>
+            <item>cycle_digraph</item>
+            <item>cycle_graph</item>
+            <item>dblint</item>
+            <item>deactivate</item>
+            <item>declare</item>
+            <item>declare_translated</item>
+            <item>declare_weight</item>
+            <item>decsym</item>
+            <item>defcon</item>
+            <item>define</item>
+            <item>define_variable</item>
+            <item>defint</item>
+            <item>defmatch</item>
+            <item>defrule</item>
+            <item>deftaylor</item>
+            <item>degree_sequence</item>
+            <item>del</item>
+            <item>delete</item>
+            <item>deleten</item>
+            <item>delta</item>
+            <item>demo</item>
+            <item>demoivre</item>
+            <item>denom</item>
+            <item>depends</item>
+            <item>derivdegree</item>
+            <item>derivlist</item>
+            <item>describe</item>
+            <item>desolve</item>
+            <item>determinant</item>
+            <item>dgauss_a</item>
+            <item>dgauss_b</item>
+            <item>dgeev</item>
+            <item>dgesvd</item>
+            <item>diag</item>
+            <item>diagmatrix</item>
+            <item>diag_matrix</item>
+            <item>diagmatrixp</item>
+            <item>diameter</item>
+            <item>diff</item>
+            <item>digitcharp</item>
+            <item>dimacs_export</item>
+            <item>dimacs_import</item>
+            <item>dimension</item>
+            <item>direct</item>
+            <item>discrete_freq</item>
+            <item>disjoin</item>
+            <item>disjointp</item>
+            <item>disolate</item>
+            <item>disp</item>
+            <item>dispcon</item>
+            <item>dispform</item>
+            <item>dispfun</item>
+            <item>dispJordan</item>
+            <item>display</item>
+            <item>disprule</item>
+            <item>dispterms</item>
+            <item>distrib</item>
+            <item>divide</item>
+            <item>divisors</item>
+            <item>divsum</item>
+            <item>dkummer_m</item>
+            <item>dkummer_u</item>
+            <item>dlange</item>
+            <item>dodecahedron_graph</item>
+            <item>dotproduct</item>
+            <item>dotsimp</item>
+            <item>dpart</item>
+            <item>draw</item>
+            <item>draw2d</item>
+            <item>draw3d</item>
+            <item>draw_graph</item>
+            <item>dscalar</item>
+            <item>echelon</item>
+            <item>edge_coloring</item>
+            <item>edges</item>
+            <item>eigens_by_jacobi</item>
+            <item>eigenvalues</item>
+            <item>eigenvectors</item>
+            <item>eighth</item>
+            <item>einstein</item>
+            <item>eivals</item>
+            <item>eivects</item>
+            <item>elapsed_real_time</item>
+            <item>elapsed_run_time</item>
+            <item>ele2comp</item>
+            <item>ele2polynome</item>
+            <item>ele2pui</item>
+            <item>elem</item>
+            <item>elementp</item>
+            <item>eliminate</item>
+            <item>elliptic_e</item>
+            <item>elliptic_ec</item>
+            <item>elliptic_eu</item>
+            <item>elliptic_f</item>
+            <item>elliptic_kc</item>
+            <item>elliptic_pi</item>
+            <item>ematrix</item>
+            <item>empty_graph</item>
+            <item>emptyp</item>
+            <item>endcons</item>
+            <item>entermatrix</item>
+            <item>entertensor</item>
+            <item>entier</item>
+            <item>equal</item>
+            <item>equalp</item>
+            <item>equiv_classes</item>
+            <item>erf</item>
+            <item>errcatch</item>
+            <item>error</item>
+            <item>errormsg</item>
+            <item>euler</item>
+            <item>ev</item>
+            <item>eval_string</item>
+            <item>evenp</item>
+            <item>every</item>
+            <item>evolution</item>
+            <item>evolution2d</item>
+            <item>evundiff</item>
+            <item>example</item>
+            <item>exp</item>
+            <item>expand</item>
+            <item>expandwrt</item>
+            <item>expandwrt_factored</item>
+            <item>explose</item>
+            <item>exponentialize</item>
+            <item>express</item>
+            <item>expt</item>
+            <item>exsec</item>
+            <item>extdiff</item>
+            <item>extract_linear_equations</item>
+            <item>extremal_subset</item>
+            <item>ezgcd</item>
+            <item>f90</item>
+            <item>facsum</item>
+            <item>factcomb</item>
+            <item>factor</item>
+            <item>factorfacsum</item>
+            <item>factorial</item>
+            <item>factorout</item>
+            <item>factorsum</item>
+            <item>facts</item>
+            <item>fast_central_elements</item>
+            <item>fast_linsolve</item>
+            <item>fasttimes</item>
+            <item>featurep</item>
+            <item>fft</item>
+            <item>fib</item>
+            <item>fibtophi</item>
+            <item>fifth</item>
+            <item>filename_merge</item>
+            <item>file_search</item>
+            <item>file_type</item>
+            <item>fillarray</item>
+            <item>findde</item>
+            <item>find_root</item>
+            <item>first</item>
+            <item>fix</item>
+            <item>flatten</item>
+            <item>flength</item>
+            <item>float</item>
+            <item>floatnump</item>
+            <item>floor</item>
+            <item>flower_snark</item>
+            <item>flush</item>
+            <item>flush1deriv</item>
+            <item>flushd</item>
+            <item>flushnd</item>
+            <item>forget</item>
+            <item>fortran</item>
+            <item>fourcos</item>
+            <item>fourexpand</item>
+            <item>fourier</item>
+            <item>fourint</item>
+            <item>fourintcos</item>
+            <item>fourintsin</item>
+            <item>foursimp</item>
+            <item>foursin</item>
+            <item>fourth</item>
+            <item>fposition</item>
+            <item>frame_bracket</item>
+            <item>freeof</item>
+            <item>freshline</item>
+            <item>from_adjacency_matrix</item>
+            <item>frucht_graph</item>
+            <item>full_listify</item>
+            <item>fullmap</item>
+            <item>fullmapl</item>
+            <item>fullratsimp</item>
+            <item>fullratsubst</item>
+            <item>fullsetify</item>
+            <item>funcsolve</item>
+            <item>fundef</item>
+            <item>funmake</item>
+            <item>funp</item>
+            <item>gamma</item>
+            <item>gauss_a</item>
+            <item>gauss_b</item>
+            <item>gaussprob</item>
+            <item>gcd</item>
+            <item>gcdex</item>
+            <item>gcdivide</item>
+            <item>gcfac</item>
+            <item>gcfactor</item>
+            <item>gd</item>
+            <item>genfact</item>
+            <item>gen_laguerre</item>
+            <item>genmatrix</item>
+            <item>geometric</item>
+            <item>geometric_mean</item>
+            <item>geosum</item>
+            <item>get</item>
+            <item>get_edge_weight</item>
+            <item>get_lu_factors</item>
+            <item>get_pixel</item>
+            <item>get_vertex_label</item>
+            <item>gfactor</item>
+            <item>gfactorsum</item>
+            <item>ggf</item>
+            <item>girth</item>
+            <item>global_variances</item>
+            <item>gnuplot_close</item>
+            <item>gnuplot_replot</item>
+            <item>gnuplot_reset</item>
+            <item>gnuplot_restart</item>
+            <item>gnuplot_start</item>
+            <item>go</item>
+            <item>Gosper</item>
+            <item>GosperSum</item>
+            <item>gradef</item>
+            <item>gramschmidt</item>
+            <item>graph6_decode</item>
+            <item>graph6_encode</item>
+            <item>graph6_export</item>
+            <item>graph6_import</item>
+            <item>graph_center</item>
+            <item>graph_charpoly</item>
+            <item>graph_eigenvalues</item>
+            <item>graph_order</item>
+            <item>graph_periphery</item>
+            <item>graph_product</item>
+            <item>graph_size</item>
+            <item>graph_union</item>
+            <item>grid_graph</item>
+            <item>grind</item>
+            <item>grobner_basis</item>
+            <item>grotzch_graph</item>
+            <item>hamilton_cycle</item>
+            <item>hamilton_path</item>
+            <item>hankel</item>
+            <item>harmonic</item>
+            <item>harmonic_mean</item>
+            <item>hav</item>
+            <item>heawood_graph</item>
+            <item>hermite</item>
+            <item>hessian</item>
+            <item>hilbert_matrix</item>
+            <item>hipow</item>
+            <item>histogram</item>
+            <item>hodge</item>
+            <item>horner</item>
+            <item>ic1</item>
+            <item>ic2</item>
+            <item>ic_convert</item>
+            <item>ichr1</item>
+            <item>ichr2</item>
+            <item>icosahedron_graph</item>
+            <item>icurvature</item>
+            <item>ident</item>
+            <item>identfor</item>
+            <item>identity</item>
+            <item>idiff</item>
+            <item>idim</item>
+            <item>idummy</item>
+            <item>ieqn</item>
+            <item>ifactors</item>
+            <item>iframes</item>
+            <item>ifs</item>
+            <item>ift</item>
+            <item>igeodesic_coords</item>
+            <item>ilt</item>
+            <item>imagpart</item>
+            <item>imetric</item>
+            <item>implicit_derivative</item>
+            <item>implicit_plot</item>
+            <item>indexed_tensor</item>
+            <item>indices</item>
+            <item>induced_subgraph</item>
+            <item>inferencep</item>
+            <item>inference_result</item>
+            <item>infix</item>
+            <item>init_atensor</item>
+            <item>init_ctensor</item>
+            <item>in_neighbors</item>
+            <item>innerproduct</item>
+            <item>inpart</item>
+            <item>inprod</item>
+            <item>inrt</item>
+            <item>integerp</item>
+            <item>integer_partitions</item>
+            <item>integrate</item>
+            <item>intersect</item>
+            <item>intersection</item>
+            <item>intervalp</item>
+            <item>intopois</item>
+            <item>intosum</item>
+            <item>invariant1</item>
+            <item>invariant2</item>
+            <item>inverse_jacobi_cd</item>
+            <item>inverse_jacobi_cn</item>
+            <item>inverse_jacobi_cs</item>
+            <item>inverse_jacobi_dc</item>
+            <item>inverse_jacobi_dn</item>
+            <item>inverse_jacobi_ds</item>
+            <item>inverse_jacobi_nc</item>
+            <item>inverse_jacobi_nd</item>
+            <item>inverse_jacobi_ns</item>
+            <item>inverse_jacobi_sc</item>
+            <item>inverse_jacobi_sd</item>
+            <item>inverse_jacobi_sn</item>
+            <item>invert</item>
+            <item>invert_by_lu</item>
+            <item>inv_mod</item>
+            <item>is</item>
+            <item>is_biconnected</item>
+            <item>is_bipartite</item>
+            <item>is_connected</item>
+            <item>is_digraph</item>
+            <item>is_edge_in_graph</item>
+            <item>is_graph</item>
+            <item>is_graph_or_digraph</item>
+            <item>ishow</item>
+            <item>is_isomorphic</item>
+            <item>isolate</item>
+            <item>isomorphism</item>
+            <item>is_planar</item>
+            <item>isqrt</item>
+            <item>is_sconnected</item>
+            <item>is_tree</item>
+            <item>is_vertex_in_graph</item>
+            <item>items_inference</item>
+            <item>jacobi</item>
+            <item>jacobian</item>
+            <item>jacobi_cd</item>
+            <item>jacobi_cn</item>
+            <item>jacobi_cs</item>
+            <item>jacobi_dc</item>
+            <item>jacobi_dn</item>
+            <item>jacobi_ds</item>
+            <item>jacobi_nc</item>
+            <item>jacobi_nd</item>
+            <item>jacobi_ns</item>
+            <item>jacobi_p</item>
+            <item>jacobi_sc</item>
+            <item>jacobi_sd</item>
+            <item>jacobi_sn</item>
+            <item>JF</item>
+            <item>join</item>
+            <item>jordan</item>
+            <item>julia</item>
+            <item>kdels</item>
+            <item>kdelta</item>
+            <item>kill</item>
+            <item>killcontext</item>
+            <item>kostka</item>
+            <item>kron_delta</item>
+            <item>kronecker_product</item>
+            <item>kummer_m</item>
+            <item>kummer_u</item>
+            <item>kurtosis</item>
+            <item>kurtosis_bernoulli</item>
+            <item>kurtosis_beta</item>
+            <item>kurtosis_binomial</item>
+            <item>kurtosis_chi2</item>
+            <item>kurtosis_continuous_uniform</item>
+            <item>kurtosis_discrete_uniform</item>
+            <item>kurtosis_exp</item>
+            <item>kurtosis_f</item>
+            <item>kurtosis_gamma</item>
+            <item>kurtosis_geometric</item>
+            <item>kurtosis_gumbel</item>
+            <item>kurtosis_hypergeometric</item>
+            <item>kurtosis_laplace</item>
+            <item>kurtosis_logistic</item>
+            <item>kurtosis_lognormal</item>
+            <item>kurtosis_negative_binomial</item>
+            <item>kurtosis_normal</item>
+            <item>kurtosis_pareto</item>
+            <item>kurtosis_poisson</item>
+            <item>kurtosis_rayleigh</item>
+            <item>kurtosis_student_t</item>
+            <item>kurtosis_weibull</item>
+            <item>labels</item>
+            <item>lagrange</item>
+            <item>laguerre</item>
+            <item>lambda</item>
+            <item>laplace</item>
+            <item>laplacian_matrix</item>
+            <item>last</item>
+            <item>lbfgs</item>
+            <item>lc2kdt</item>
+            <item>lcharp</item>
+            <item>lc_l</item>
+            <item>lcm</item>
+            <item>lc_u</item>
+            <item>ldefint</item>
+            <item>ldisp</item>
+            <item>ldisplay</item>
+            <item>legendre_p</item>
+            <item>legendre_q</item>
+            <item>leinstein</item>
+            <item>length</item>
+            <item>let</item>
+            <item>letrules</item>
+            <item>letsimp</item>
+            <item>levi_civita</item>
+            <item>lfreeof</item>
+            <item>lgtreillis</item>
+            <item>lhs</item>
+            <item>li</item>
+            <item>liediff</item>
+            <item>limit</item>
+            <item>Lindstedt</item>
+            <item>linear</item>
+            <item>linearinterpol</item>
+            <item>linear_program</item>
+            <item>line_graph</item>
+            <item>linsolve</item>
+            <item>listarray</item>
+            <item>list_correlations</item>
+            <item>listify</item>
+            <item>list_nc_monomials</item>
+            <item>listoftens</item>
+            <item>listofvars</item>
+            <item>listp</item>
+            <item>lmax</item>
+            <item>lmin</item>
+            <item>load</item>
+            <item>loadfile</item>
+            <item>local</item>
+            <item>locate_matrix_entry</item>
+            <item>log</item>
+            <item>logand</item>
+            <item>logarc</item>
+            <item>logcontract</item>
+            <item>logor</item>
+            <item>logxor</item>
+            <item>lopow</item>
+            <item>lorentz_gauge</item>
+            <item>lowercasep</item>
+            <item>lpart</item>
+            <item>lratsubst</item>
+            <item>lreduce</item>
+            <item>lriemann</item>
+            <item>lsquares_estimates</item>
+            <item>lsquares_estimates_approximate</item>
+            <item>lsquares_estimates_exact</item>
+            <item>lsquares_mse</item>
+            <item>lsquares_residual_mse</item>
+            <item>lsquares_residuals</item>
+            <item>lsum</item>
+            <item>ltreillis</item>
+            <item>lu_backsub</item>
+            <item>lu_factor</item>
+            <item>macroexpand</item>
+            <item>macroexpand1</item>
+            <item>make_array</item>
+            <item>makebox</item>
+            <item>makefact</item>
+            <item>makegamma</item>
+            <item>make_level_picture</item>
+            <item>makelist</item>
+            <item>makeOrders</item>
+            <item>make_poly_continent</item>
+            <item>make_poly_country</item>
+            <item>make_polygon</item>
+            <item>make_random_state</item>
+            <item>make_rgb_picture</item>
+            <item>makeset</item>
+            <item>make_transform</item>
+            <item>mandelbrot</item>
+            <item>map</item>
+            <item>mapatom</item>
+            <item>maplist</item>
+            <item>matchdeclare</item>
+            <item>matchfix</item>
+            <item>mat_cond</item>
+            <item>mat_fullunblocker</item>
+            <item>mat_function</item>
+            <item>mat_norm</item>
+            <item>matrix</item>
+            <item>matrixmap</item>
+            <item>matrixp</item>
+            <item>matrix_size</item>
+            <item>mattrace</item>
+            <item>mat_trace</item>
+            <item>mat_unblocker</item>
+            <item>max</item>
+            <item>max_clique</item>
+            <item>max_degree</item>
+            <item>max_flow</item>
+            <item>maxi</item>
+            <item>maximize_lp</item>
+            <item>max_independent_set</item>
+            <item>max_matching</item>
+            <item>maybe</item>
+            <item>mean</item>
+            <item>mean_bernoulli</item>
+            <item>mean_beta</item>
+            <item>mean_binomial</item>
+            <item>mean_chi2</item>
+            <item>mean_continuous_uniform</item>
+            <item>mean_deviation</item>
+            <item>mean_discrete_uniform</item>
+            <item>mean_exp</item>
+            <item>mean_f</item>
+            <item>mean_gamma</item>
+            <item>mean_geometric</item>
+            <item>mean_gumbel</item>
+            <item>mean_hypergeometric</item>
+            <item>mean_laplace</item>
+            <item>mean_logistic</item>
+            <item>mean_lognormal</item>
+            <item>mean_negative_binomial</item>
+            <item>mean_normal</item>
+            <item>mean_pareto</item>
+            <item>mean_poisson</item>
+            <item>mean_rayleigh</item>
+            <item>mean_student_t</item>
+            <item>mean_weibull</item>
+            <item>median</item>
+            <item>median_deviation</item>
+            <item>member</item>
+            <item>metricexpandall</item>
+            <item>min</item>
+            <item>min_degree</item>
+            <item>minfactorial</item>
+            <item>mini</item>
+            <item>minimalPoly</item>
+            <item>minimize_lp</item>
+            <item>minimum_spanning_tree</item>
+            <item>minor</item>
+            <item>mnewton</item>
+            <item>mod</item>
+            <item>mode_declare</item>
+            <item>mode_identity</item>
+            <item>ModeMatrix</item>
+            <item>moebius</item>
+            <item>mon2schur</item>
+            <item>mono</item>
+            <item>monomial_dimensions</item>
+            <item>multi_elem</item>
+            <item>multinomial</item>
+            <item>multinomial_coeff</item>
+            <item>multi_orbit</item>
+            <item>multi_pui</item>
+            <item>multsym</item>
+            <item>multthru</item>
+            <item>mycielski_graph</item>
+            <item>nary</item>
+            <item>nc_degree</item>
+            <item>ncexpt</item>
+            <item>ncharpoly</item>
+            <item>negative_picture</item>
+            <item>neighbors</item>
+            <item>newcontext</item>
+            <item>newdet</item>
+            <item>new_graph</item>
+            <item>newline</item>
+            <item>newton</item>
+            <item>next_prime</item>
+            <item>niceindices</item>
+            <item>ninth</item>
+            <item>noncentral_moment</item>
+            <item>nonmetricity</item>
+            <item>nonnegintegerp</item>
+            <item>nonscalarp</item>
+            <item>nonzeroandfreeof</item>
+            <item>notequal</item>
+            <item>nounify</item>
+            <item>nptetrad</item>
+            <item>nroots</item>
+            <item>nterms</item>
+            <item>ntermst</item>
+            <item>nthroot</item>
+            <item>nullity</item>
+            <item>nullspace</item>
+            <item>num</item>
+            <item>numbered_boundaries</item>
+            <item>numberp</item>
+            <item>num_distinct_partitions</item>
+            <item>numerval</item>
+            <item>numfactor</item>
+            <item>num_partitions</item>
+            <item>nusum</item>
+            <item>odd_girth</item>
+            <item>oddp</item>
+            <item>ode2</item>
+            <item>ode_check</item>
+            <item>odelin</item>
+            <item>op</item>
+            <item>opena</item>
+            <item>openr</item>
+            <item>openw</item>
+            <item>operatorp</item>
+            <item>opsubst</item>
+            <item>optimize</item>
+            <item>orbit</item>
+            <item>orbits</item>
+            <item>ordergreat</item>
+            <item>ordergreatp</item>
+            <item>orderless</item>
+            <item>orderlessp</item>
+            <item>orthogonal_complement</item>
+            <item>orthopoly_recur</item>
+            <item>orthopoly_weight</item>
+            <item>outermap</item>
+            <item>out_neighbors</item>
+            <item>outofpois</item>
+            <item>pade</item>
+            <item>parGosper</item>
+            <item>parse_string</item>
+            <item>part</item>
+            <item>part2cont</item>
+            <item>partfrac</item>
+            <item>partition</item>
+            <item>partition_set</item>
+            <item>partpol</item>
+            <item>path_digraph</item>
+            <item>path_graph</item>
+            <item>pdf_bernoulli</item>
+            <item>pdf_beta</item>
+            <item>pdf_binomial</item>
+            <item>pdf_cauchy</item>
+            <item>pdf_chi2</item>
+            <item>pdf_continuous_uniform</item>
+            <item>pdf_discrete_uniform</item>
+            <item>pdf_exp</item>
+            <item>pdf_f</item>
+            <item>pdf_gamma</item>
+            <item>pdf_geometric</item>
+            <item>pdf_gumbel</item>
+            <item>pdf_hypergeometric</item>
+            <item>pdf_laplace</item>
+            <item>pdf_logistic</item>
+            <item>pdf_lognormal</item>
+            <item>pdf_negative_binomial</item>
+            <item>pdf_normal</item>
+            <item>pdf_pareto</item>
+            <item>pdf_poisson</item>
+            <item>pdf_rank_sum</item>
+            <item>pdf_rayleigh</item>
+            <item>pdf_signed_rank</item>
+            <item>pdf_student_t</item>
+            <item>pdf_weibull</item>
+            <item>pearson_skewness</item>
+            <item>permanent</item>
+            <item>permut</item>
+            <item>permutation</item>
+            <item>permutations</item>
+            <item>petersen_graph</item>
+            <item>petrov</item>
+            <item>pickapart</item>
+            <item>picture_equalp</item>
+            <item>picturep</item>
+            <item>piechart</item>
+            <item>planar_embedding</item>
+            <item>playback</item>
+            <item>plog</item>
+            <item>plot2d</item>
+            <item>plot3d</item>
+            <item>plotdf</item>
+            <item>plsquares</item>
+            <item>pochhammer</item>
+            <item>poisdiff</item>
+            <item>poisexpt</item>
+            <item>poisint</item>
+            <item>poismap</item>
+            <item>poisplus</item>
+            <item>poissimp</item>
+            <item>poissubst</item>
+            <item>poistimes</item>
+            <item>poistrim</item>
+            <item>polarform</item>
+            <item>polartorect</item>
+            <item>poly_add</item>
+            <item>poly_buchberger</item>
+            <item>poly_buchberger_criterion</item>
+            <item>poly_colon_ideal</item>
+            <item>poly_content</item>
+            <item>polydecomp</item>
+            <item>poly_depends_p</item>
+            <item>poly_elimination_ideal</item>
+            <item>poly_exact_divide</item>
+            <item>poly_expand</item>
+            <item>poly_expt</item>
+            <item>poly_gcd</item>
+            <item>poly_grobner</item>
+            <item>poly_grobner_equal</item>
+            <item>poly_grobner_member</item>
+            <item>poly_grobner_subsetp</item>
+            <item>poly_ideal_intersection</item>
+            <item>poly_ideal_polysaturation</item>
+            <item>poly_ideal_polysaturation1</item>
+            <item>poly_ideal_saturation</item>
+            <item>poly_ideal_saturation1</item>
+            <item>poly_lcm</item>
+            <item>poly_minimization</item>
+            <item>polymod</item>
+            <item>poly_multiply</item>
+            <item>polynome2ele</item>
+            <item>polynomialp</item>
+            <item>poly_normal_form</item>
+            <item>poly_normalize</item>
+            <item>poly_normalize_list</item>
+            <item>poly_polysaturation_extension</item>
+            <item>poly_primitive_part</item>
+            <item>poly_pseudo_divide</item>
+            <item>poly_reduced_grobner</item>
+            <item>poly_reduction</item>
+            <item>poly_saturation_extension</item>
+            <item>poly_s_polynomial</item>
+            <item>poly_subtract</item>
+            <item>polytocompanion</item>
+            <item>potential</item>
+            <item>power_mod</item>
+            <item>powers</item>
+            <item>powerseries</item>
+            <item>powerset</item>
+            <item>prev_prime</item>
+            <item>primep</item>
+            <item>print</item>
+            <item>printf</item>
+            <item>print_graph</item>
+            <item>printpois</item>
+            <item>printprops</item>
+            <item>prodrac</item>
+            <item>product</item>
+            <item>properties</item>
+            <item>propvars</item>
+            <item>psi</item>
+            <item>ptriangularize</item>
+            <item>pui</item>
+            <item>pui2comp</item>
+            <item>pui2ele</item>
+            <item>pui2polynome</item>
+            <item>pui_direct</item>
+            <item>puireduc</item>
+            <item>put</item>
+            <item>qput</item>
+            <item>qrange</item>
+            <item>quad_qag</item>
+            <item>quad_qagi</item>
+            <item>quad_qags</item>
+            <item>quad_qawc</item>
+            <item>quad_qawf</item>
+            <item>quad_qawo</item>
+            <item>quad_qaws</item>
+            <item>quantile</item>
+            <item>quantile_bernoulli</item>
+            <item>quantile_beta</item>
+            <item>quantile_binomial</item>
+            <item>quantile_cauchy</item>
+            <item>quantile_chi2</item>
+            <item>quantile_continuous_uniform</item>
+            <item>quantile_discrete_uniform</item>
+            <item>quantile_exp</item>
+            <item>quantile_f</item>
+            <item>quantile_gamma</item>
+            <item>quantile_geometric</item>
+            <item>quantile_gumbel</item>
+            <item>quantile_hypergeometric</item>
+            <item>quantile_laplace</item>
+            <item>quantile_logistic</item>
+            <item>quantile_lognormal</item>
+            <item>quantile_negative_binomial</item>
+            <item>quantile_normal</item>
+            <item>quantile_pareto</item>
+            <item>quantile_poisson</item>
+            <item>quantile_rayleigh</item>
+            <item>quantile_student_t</item>
+            <item>quantile_weibull</item>
+            <item>quartile_skewness</item>
+            <item>quit</item>
+            <item>qunit</item>
+            <item>quotient</item>
+            <item>radcan</item>
+            <item>radius</item>
+            <item>random</item>
+            <item>random_bernoulli</item>
+            <item>random_beta</item>
+            <item>random_binomial</item>
+            <item>random_cauchy</item>
+            <item>random_chi2</item>
+            <item>random_continuous_uniform</item>
+            <item>random_digraph</item>
+            <item>random_discrete_uniform</item>
+            <item>random_exp</item>
+            <item>random_f</item>
+            <item>random_gamma</item>
+            <item>random_geometric</item>
+            <item>random_graph</item>
+            <item>random_graph1</item>
+            <item>random_gumbel</item>
+            <item>random_hypergeometric</item>
+            <item>random_laplace</item>
+            <item>random_logistic</item>
+            <item>random_lognormal</item>
+            <item>random_negative_binomial</item>
+            <item>random_network</item>
+            <item>random_normal</item>
+            <item>random_pareto</item>
+            <item>random_permutation</item>
+            <item>random_poisson</item>
+            <item>random_rayleigh</item>
+            <item>random_regular_graph</item>
+            <item>random_student_t</item>
+            <item>random_tournament</item>
+            <item>random_tree</item>
+            <item>random_weibull</item>
+            <item>range</item>
+            <item>rank</item>
+            <item>rat</item>
+            <item>ratcoef</item>
+            <item>ratdenom</item>
+            <item>ratdiff</item>
+            <item>ratdisrep</item>
+            <item>ratexpand</item>
+            <item>rational</item>
+            <item>rationalize</item>
+            <item>ratnumer</item>
+            <item>ratnump</item>
+            <item>ratp</item>
+            <item>ratsimp</item>
+            <item>ratsubst</item>
+            <item>ratvars</item>
+            <item>ratweight</item>
+            <item>read</item>
+            <item>read_hashed_array</item>
+            <item>readline</item>
+            <item>read_lisp_array</item>
+            <item>read_list</item>
+            <item>read_matrix</item>
+            <item>read_maxima_array</item>
+            <item>read_nested_list</item>
+            <item>readonly</item>
+            <item>read_xpm</item>
+            <item>realpart</item>
+            <item>realroots</item>
+            <item>rearray</item>
+            <item>rectform</item>
+            <item>recttopolar</item>
+            <item>rediff</item>
+            <item>reduce_consts</item>
+            <item>reduce_order</item>
+            <item>region_boundaries</item>
+            <item>rem</item>
+            <item>remainder</item>
+            <item>remarray</item>
+            <item>rembox</item>
+            <item>remcomps</item>
+            <item>remcon</item>
+            <item>remcoord</item>
+            <item>remfun</item>
+            <item>remfunction</item>
+            <item>remlet</item>
+            <item>remove</item>
+            <item>remove_edge</item>
+            <item>remove_vertex</item>
+            <item>rempart</item>
+            <item>remrule</item>
+            <item>remsym</item>
+            <item>remvalue</item>
+            <item>rename</item>
+            <item>reset</item>
+            <item>residue</item>
+            <item>resolvante</item>
+            <item>resolvante_alternee1</item>
+            <item>resolvante_bipartite</item>
+            <item>resolvante_diedrale</item>
+            <item>resolvante_klein</item>
+            <item>resolvante_klein3</item>
+            <item>resolvante_produit_sym</item>
+            <item>resolvante_unitaire</item>
+            <item>resolvante_vierer</item>
+            <item>rest</item>
+            <item>resultant</item>
+            <item>return</item>
+            <item>reveal</item>
+            <item>reverse</item>
+            <item>revert</item>
+            <item>revert2</item>
+            <item>rgb2level</item>
+            <item>rhs</item>
+            <item>ricci</item>
+            <item>riemann</item>
+            <item>rinvariant</item>
+            <item>risch</item>
+            <item>rk</item>
+            <item>rncombine</item>
+            <item>romberg</item>
+            <item>room</item>
+            <item>rootscontract</item>
+            <item>row</item>
+            <item>rowop</item>
+            <item>rowswap</item>
+            <item>rreduce</item>
+            <item>run_testsuite</item>
+            <item>save</item>
+            <item>scalarp</item>
+            <item>scaled_bessel_i</item>
+            <item>scaled_bessel_i0</item>
+            <item>scaled_bessel_i1</item>
+            <item>scalefactors</item>
+            <item>scanmap</item>
+            <item>scatterplot</item>
+            <item>schur2comp</item>
+            <item>sconcat</item>
+            <item>scopy</item>
+            <item>scsimp</item>
+            <item>scurvature</item>
+            <item>sdowncase</item>
+            <item>sec</item>
+            <item>sech</item>
+            <item>second</item>
+            <item>sequal</item>
+            <item>sequalignore</item>
+            <item>setdifference</item>
+            <item>set_edge_weight</item>
+            <item>setelmx</item>
+            <item>setequalp</item>
+            <item>setify</item>
+            <item>setp</item>
+            <item>set_partitions</item>
+            <item>set_plot_option</item>
+            <item>set_random_state</item>
+            <item>setunits</item>
+            <item>setup_autoload</item>
+            <item>set_up_dot_simplifications</item>
+            <item>set_vertex_label</item>
+            <item>seventh</item>
+            <item>sexplode</item>
+            <item>sf</item>
+            <item>shortest_path</item>
+            <item>show</item>
+            <item>showcomps</item>
+            <item>showratvars</item>
+            <item>sign</item>
+            <item>signum</item>
+            <item>similaritytransform</item>
+            <item>simple_linear_regression</item>
+            <item>simplify_sum</item>
+            <item>simplode</item>
+            <item>simpmetderiv</item>
+            <item>simtran</item>
+            <item>sin</item>
+            <item>sinh</item>
+            <item>sinsert</item>
+            <item>sinvertcase</item>
+            <item>sixth</item>
+            <item>skewness</item>
+            <item>skewness_bernoulli</item>
+            <item>skewness_beta</item>
+            <item>skewness_binomial</item>
+            <item>skewness_chi2</item>
+            <item>skewness_continuous_uniform</item>
+            <item>skewness_discrete_uniform</item>
+            <item>skewness_exp</item>
+            <item>skewness_f</item>
+            <item>skewness_gamma</item>
+            <item>skewness_geometric</item>
+            <item>skewness_gumbel</item>
+            <item>skewness_hypergeometric</item>
+            <item>skewness_laplace</item>
+            <item>skewness_logistic</item>
+            <item>skewness_lognormal</item>
+            <item>skewness_negative_binomial</item>
+            <item>skewness_normal</item>
+            <item>skewness_pareto</item>
+            <item>skewness_poisson</item>
+            <item>skewness_rayleigh</item>
+            <item>skewness_student_t</item>
+            <item>skewness_weibull</item>
+            <item>slength</item>
+            <item>smake</item>
+            <item>smismatch</item>
+            <item>solve</item>
+            <item>solve_rec</item>
+            <item>solve_rec_rat</item>
+            <item>some</item>
+            <item>somrac</item>
+            <item>sort</item>
+            <item>sparse6_decode</item>
+            <item>sparse6_encode</item>
+            <item>sparse6_export</item>
+            <item>sparse6_import</item>
+            <item>specint</item>
+            <item>spherical_bessel_j</item>
+            <item>spherical_bessel_y</item>
+            <item>spherical_hankel1</item>
+            <item>spherical_hankel2</item>
+            <item>spherical_harmonic</item>
+            <item>splice</item>
+            <item>split</item>
+            <item>sposition</item>
+            <item>sprint</item>
+            <item>sqfr</item>
+            <item>sqrt</item>
+            <item>sqrtdenest</item>
+            <item>sremove</item>
+            <item>sremovefirst</item>
+            <item>sreverse</item>
+            <item>ssearch</item>
+            <item>ssort</item>
+            <item>sstatus</item>
+            <item>ssubst</item>
+            <item>ssubstfirst</item>
+            <item>staircase</item>
+            <item>status</item>
+            <item>std</item>
+            <item>std1</item>
+            <item>std_bernoulli</item>
+            <item>std_beta</item>
+            <item>std_binomial</item>
+            <item>std_chi2</item>
+            <item>std_continuous_uniform</item>
+            <item>std_discrete_uniform</item>
+            <item>std_exp</item>
+            <item>std_f</item>
+            <item>std_gamma</item>
+            <item>std_geometric</item>
+            <item>std_gumbel</item>
+            <item>std_hypergeometric</item>
+            <item>std_laplace</item>
+            <item>std_logistic</item>
+            <item>std_lognormal</item>
+            <item>std_negative_binomial</item>
+            <item>std_normal</item>
+            <item>std_pareto</item>
+            <item>std_poisson</item>
+            <item>std_rayleigh</item>
+            <item>std_student_t</item>
+            <item>std_weibull</item>
+            <item>stirling</item>
+            <item>stirling1</item>
+            <item>stirling2</item>
+            <item>strim</item>
+            <item>striml</item>
+            <item>strimr</item>
+            <item>string</item>
+            <item>stringout</item>
+            <item>stringp</item>
+            <item>strong_components</item>
+            <item>sublis</item>
+            <item>sublist</item>
+            <item>sublist_indices</item>
+            <item>submatrix</item>
+            <item>subsample</item>
+            <item>subset</item>
+            <item>subsetp</item>
+            <item>subst</item>
+            <item>substinpart</item>
+            <item>substpart</item>
+            <item>substring</item>
+            <item>subvar</item>
+            <item>subvarp</item>
+            <item>sum</item>
+            <item>sumcontract</item>
+            <item>summand_to_rec</item>
+            <item>supcase</item>
+            <item>supcontext</item>
+            <item>symbolp</item>
+            <item>symmdifference</item>
+            <item>symmetricp</item>
+            <item>system</item>
+            <item>take_channel</item>
+            <item>take_inference</item>
+            <item>tan</item>
+            <item>tanh</item>
+            <item>taylor</item>
+            <item>taylorinfo</item>
+            <item>taylorp</item>
+            <item>taylor_simplifier</item>
+            <item>taytorat</item>
+            <item>tcl_output</item>
+            <item>tcontract</item>
+            <item>tellrat</item>
+            <item>tellsimp</item>
+            <item>tellsimpafter</item>
+            <item>tentex</item>
+            <item>tenth</item>
+            <item>test_mean</item>
+            <item>test_means_difference</item>
+            <item>test_normality</item>
+            <item>test_rank_sum</item>
+            <item>test_sign</item>
+            <item>test_signed_rank</item>
+            <item>test_variance</item>
+            <item>test_variance_ratio</item>
+            <item>tex</item>
+            <item>texput</item>
+            <item>%th</item>
+            <item>third</item>
+            <item>throw</item>
+            <item>time</item>
+            <item>timedate</item>
+            <item>timer</item>
+            <item>timer_info</item>
+            <item>tldefint</item>
+            <item>tlimit</item>
+            <item>todd_coxeter</item>
+            <item>toeplitz</item>
+            <item>tokens</item>
+            <item>to_lisp</item>
+            <item>topological_sort</item>
+            <item>totaldisrep</item>
+            <item>totalfourier</item>
+            <item>totient</item>
+            <item>tpartpol</item>
+            <item>trace</item>
+            <item>tracematrix</item>
+            <item>trace_options</item>
+            <item>translate</item>
+            <item>translate_file</item>
+            <item>transpose</item>
+            <item>tree_reduce</item>
+            <item>treillis</item>
+            <item>treinat</item>
+            <item>triangularize</item>
+            <item>trigexpand</item>
+            <item>trigrat</item>
+            <item>trigreduce</item>
+            <item>trigsimp</item>
+            <item>trunc</item>
+            <item>tr_warnings_get</item>
+            <item>ueivects</item>
+            <item>uforget</item>
+            <item>ultraspherical</item>
+            <item>underlying_graph</item>
+            <item>undiff</item>
+            <item>union</item>
+            <item>unique</item>
+            <item>uniteigenvectors</item>
+            <item>unit_step</item>
+            <item>unitvector</item>
+            <item>unknown</item>
+            <item>unorder</item>
+            <item>unsum</item>
+            <item>untellrat</item>
+            <item>untimer</item>
+            <item>untrace</item>
+            <item>uppercasep</item>
+            <item>uricci</item>
+            <item>uriemann</item>
+            <item>uvect</item>
+            <item>vandermonde_matrix</item>
+            <item>var</item>
+            <item>var1</item>
+            <item>var_bernoulli</item>
+            <item>var_beta</item>
+            <item>var_binomial</item>
+            <item>var_chi2</item>
+            <item>var_continuous_uniform</item>
+            <item>var_discrete_uniform</item>
+            <item>var_exp</item>
+            <item>var_f</item>
+            <item>var_gamma</item>
+            <item>var_geometric</item>
+            <item>var_gumbel</item>
+            <item>var_hypergeometric</item>
+            <item>var_laplace</item>
+            <item>var_logistic</item>
+            <item>var_lognormal</item>
+            <item>var_negative_binomial</item>
+            <item>var_normal</item>
+            <item>var_pareto</item>
+            <item>var_poisson</item>
+            <item>var_rayleigh</item>
+            <item>var_student_t</item>
+            <item>var_weibull</item>
+            <item>vectorpotential</item>
+            <item>vectorsimp</item>
+            <item>verbify</item>
+            <item>vers</item>
+            <item>vertex_coloring</item>
+            <item>vertex_degree</item>
+            <item>vertex_distance</item>
+            <item>vertex_eccentricity</item>
+            <item>vertex_in_degree</item>
+            <item>vertex_out_degree</item>
+            <item>vertices</item>
+            <item>vertices_to_cycle</item>
+            <item>vertices_to_path</item>
+            <item>weyl</item>
+            <item>wheel_graph</item>
+            <item>with_stdout</item>
+            <item>write_data</item>
+            <item>writefile</item>
+            <item>wronskian</item>
+            <item>xgraph_curves</item>
+            <item>xreduce</item>
+            <item>xthru</item>
+            <item>Zeilberger</item>
+            <item>zeroequiv</item>
+            <item>zerofor</item>
+            <item>zeromatrix</item>
+            <item>zeromatrixp</item>
+            <item>zeta</item>
+            <item>zlange</item>
+        </list>
+
+        <list name="MaximaVariable">
+            <item>_</item>
+            <item>__</item>
+            <item>%</item>
+            <item>%%</item>
+            <item>absboxchar</item>
+            <item>activecontexts</item>
+            <item>additive</item>
+            <item>algebraic</item>
+            <item>algepsilon</item>
+            <item>algexact</item>
+            <item>aliases</item>
+            <item>all_dotsimp_denoms</item>
+            <item>allbut</item>
+            <item>allsym</item>
+            <item>arrays</item>
+            <item>askexp</item>
+            <item>assume_pos</item>
+            <item>assume_pos_pred</item>
+            <item>assumescalar</item>
+            <item>atomgrad</item>
+            <item>backsubst</item>
+            <item>berlefact</item>
+            <item>besselexpand</item>
+            <item>bftorat</item>
+            <item>bftrunc</item>
+            <item>boxchar</item>
+            <item>breakup</item>
+            <item>cauchysum</item>
+            <item>cflength</item>
+            <item>cframe_flag</item>
+            <item>cnonmet_flag</item>
+            <item>context</item>
+            <item>contexts</item>
+            <item>cosnpiflag</item>
+            <item>ctaypov</item>
+            <item>ctaypt</item>
+            <item>ctayswitch</item>
+            <item>ctayvar</item>
+            <item>ct_coords</item>
+            <item>ctorsion_flag</item>
+            <item>ctrgsimp</item>
+            <item>current_let_rule_package</item>
+            <item>debugmode</item>
+            <item>default_let_rule_package</item>
+            <item>demoivre</item>
+            <item>dependencies</item>
+            <item>derivabbrev</item>
+            <item>derivsubst</item>
+            <item>detout</item>
+            <item>diagmetric</item>
+            <item>dim</item>
+            <item>dispflag</item>
+            <item>display2d</item>
+            <item>display_format_internal</item>
+            <item>doallmxops</item>
+            <item>domain</item>
+            <item>domxexpt</item>
+            <item>domxmxops</item>
+            <item>domxnctimes</item>
+            <item>dontfactor</item>
+            <item>doscmxops</item>
+            <item>doscmxplus</item>
+            <item>dot0nscsimp</item>
+            <item>dot0simp</item>
+            <item>dot1simp</item>
+            <item>dotassoc</item>
+            <item>dotconstrules</item>
+            <item>dotdistrib</item>
+            <item>dotexptsimp</item>
+            <item>dotident</item>
+            <item>dotscrules</item>
+            <item>draw_graph_program</item>
+            <item>%edispflag</item>
+            <item>%emode</item>
+            <item>%enumer</item>
+            <item>epsilon_lp</item>
+            <item>erfflag</item>
+            <item>error</item>
+            <item>error_size</item>
+            <item>error_syms</item>
+            <item>%e_to_numlog</item>
+            <item>evflag</item>
+            <item>evfun</item>
+            <item>expandwrt_denom</item>
+            <item>expon</item>
+            <item>exponentialize</item>
+            <item>expop</item>
+            <item>exptdispflag</item>
+            <item>exptisolate</item>
+            <item>exptsubst</item>
+            <item>facexpand</item>
+            <item>factlim</item>
+            <item>factorflag</item>
+            <item>file_output_append</item>
+            <item>file_search_demo</item>
+            <item>file_search_lisp</item>
+            <item>file_search_maxima</item>
+            <item>find_root_abs</item>
+            <item>find_root_error</item>
+            <item>find_root_rel</item>
+            <item>flipflag</item>
+            <item>float2bf</item>
+            <item>fortindent</item>
+            <item>fortspaces</item>
+            <item>fpprec</item>
+            <item>fpprintprec</item>
+            <item>functions</item>
+            <item>gammalim</item>
+            <item>gdet</item>
+            <item>genindex</item>
+            <item>gensumnum</item>
+            <item>GGFCFMAX</item>
+            <item>GGFINFINITY</item>
+            <item>globalsolve</item>
+            <item>gradefs</item>
+            <item>grind</item>
+            <item>halfangles</item>
+            <item>%iargs</item>
+            <item>ibase</item>
+            <item>icounter</item>
+            <item>idummyx</item>
+            <item>ieqnprint</item>
+            <item>iframe_bracket_form</item>
+            <item>igeowedge_flag</item>
+            <item>imetric</item>
+            <item>inchar</item>
+            <item>infeval</item>
+            <item>inflag</item>
+            <item>infolists</item>
+            <item>in_netmath</item>
+            <item>integrate_use_rootsof</item>
+            <item>integration_constant</item>
+            <item>integration_constant_counter</item>
+            <item>intfaclim</item>
+            <item>isolate_wrt_times</item>
+            <item>keepfloat</item>
+            <item>labels</item>
+            <item>letrat</item>
+            <item>let_rule_packages</item>
+            <item>lhospitallim</item>
+            <item>limsubst</item>
+            <item>linechar</item>
+            <item>linel</item>
+            <item>linenum</item>
+            <item>linsolve_params</item>
+            <item>linsolvewarn</item>
+            <item>lispdisp</item>
+            <item>listarith</item>
+            <item>listconstvars</item>
+            <item>listdummyvars</item>
+            <item>lmxchar</item>
+            <item>loadprint</item>
+            <item>logabs</item>
+            <item>logarc</item>
+            <item>logconcoeffp</item>
+            <item>logexpand</item>
+            <item>lognegint</item>
+            <item>lognumer</item>
+            <item>logsimp</item>
+            <item>m1pbranch</item>
+            <item>macroexpansion</item>
+            <item>maperror</item>
+            <item>mapprint</item>
+            <item>matrix_element_add</item>
+            <item>matrix_element_mult</item>
+            <item>matrix_element_transpose</item>
+            <item>maxapplydepth</item>
+            <item>maxapplyheight</item>
+            <item>maxima_tempdir</item>
+            <item>maxima_userdir</item>
+            <item>maxnegex</item>
+            <item>maxposex</item>
+            <item>maxpsifracdenom</item>
+            <item>maxpsifracnum</item>
+            <item>maxpsinegint</item>
+            <item>maxpsiposint</item>
+            <item>maxtayorder</item>
+            <item>method</item>
+            <item>mode_check_errorp</item>
+            <item>mode_checkp</item>
+            <item>mode_check_warnp</item>
+            <item>modulus</item>
+            <item>multiplicities</item>
+            <item>myoptions</item>
+            <item>negdistrib</item>
+            <item>negsumdispflag</item>
+            <item>newtonepsilon</item>
+            <item>newtonmaxiter</item>
+            <item>niceindicespref</item>
+            <item>nolabels</item>
+            <item>nonegative_lp</item>
+            <item>noundisp</item>
+            <item>obase</item>
+            <item>opproperties</item>
+            <item>opsubst</item>
+            <item>optimprefix</item>
+            <item>optionset</item>
+            <item>outchar</item>
+            <item>packagefile</item>
+            <item>partswitch</item>
+            <item>pfeformat</item>
+            <item>%piargs</item>
+            <item>piece</item>
+            <item>plot_options</item>
+            <item>poislim</item>
+            <item>poly_coefficient_ring</item>
+            <item>poly_elimination_order</item>
+            <item>poly_grobner_algorithm</item>
+            <item>poly_grobner_debug</item>
+            <item>poly_monomial_order</item>
+            <item>poly_primary_elimination_order</item>
+            <item>poly_return_term_list</item>
+            <item>poly_secondary_elimination_order</item>
+            <item>poly_top_reduction_only</item>
+            <item>powerdisp</item>
+            <item>prederror</item>
+            <item>primep_number_of_tests</item>
+            <item>product_use_gamma</item>
+            <item>programmode</item>
+            <item>prompt</item>
+            <item>psexpand</item>
+            <item>radexpand</item>
+            <item>radsubstflag</item>
+            <item>random_beta_algorithm</item>
+            <item>random_binomial_algorithm</item>
+            <item>random_chi2_algorithm</item>
+            <item>random_exp_algorithm</item>
+            <item>random_f_algorithm</item>
+            <item>random_gamma_algorithm</item>
+            <item>random_geometric_algorithm</item>
+            <item>random_hypergeometric_algorithm</item>
+            <item>random_negative_binomial_algorithm</item>
+            <item>random_normal_algorithm</item>
+            <item>random_poisson_algorithm</item>
+            <item>random_student_t_algorithm</item>
+            <item>ratalgdenom</item>
+            <item>ratchristof</item>
+            <item>ratdenomdivide</item>
+            <item>rateinstein</item>
+            <item>ratepsilon</item>
+            <item>ratexpand</item>
+            <item>ratfac</item>
+            <item>ratmx</item>
+            <item>ratprint</item>
+            <item>ratriemann</item>
+            <item>ratsimpexpons</item>
+            <item>ratvars</item>
+            <item>ratweights</item>
+            <item>ratweyl</item>
+            <item>ratwtlvl</item>
+            <item>realonly</item>
+            <item>refcheck</item>
+            <item>rmxchar</item>
+            <item>%rnum_list</item>
+            <item>rombergabs</item>
+            <item>rombergit</item>
+            <item>rombergmin</item>
+            <item>rombergtol</item>
+            <item>rootsconmode</item>
+            <item>rootsepsilon</item>
+            <item>savedef</item>
+            <item>savefactors</item>
+            <item>scalarmatrixp</item>
+            <item>setcheck</item>
+            <item>setcheckbreak</item>
+            <item>setval</item>
+            <item>showtime</item>
+            <item>simplify_products</item>
+            <item>simpsum</item>
+            <item>sinnpiflag</item>
+            <item>solvedecomposes</item>
+            <item>solveexplicit</item>
+            <item>solvefactors</item>
+            <item>solve_inconsistent_error</item>
+            <item>solvenullwarn</item>
+            <item>solveradcan</item>
+            <item>solvetrigwarn</item>
+            <item>sparse</item>
+            <item>sqrtdispflag</item>
+            <item>stardisp</item>
+            <item>stats_numer</item>
+            <item>stringdisp</item>
+            <item>sublis_apply_lambda</item>
+            <item>sumexpand</item>
+            <item>sumsplitfact</item>
+            <item>taylordepth</item>
+            <item>taylor_logexpand</item>
+            <item>taylor_order_coefficients</item>
+            <item>taylor_truncate_polynomials</item>
+            <item>tensorkill</item>
+            <item>testsuite_files</item>
+            <item>timer_devalue</item>
+            <item>tlimswitch</item>
+            <item>transcompile</item>
+            <item>transrun</item>
+            <item>tr_array_as_ref</item>
+            <item>tr_bound_function_applyp</item>
+            <item>tr_file_tty_messagesp</item>
+            <item>tr_float_can_branch_complex</item>
+            <item>tr_function_call_default</item>
+            <item>trigexpandplus</item>
+            <item>trigexpandtimes</item>
+            <item>triginverses</item>
+            <item>trigsign</item>
+            <item>tr_numer</item>
+            <item>tr_optimize_max_loop</item>
+            <item>tr_semicompile</item>
+            <item>tr_state_vars</item>
+            <item>tr_warn_bad_function_calls</item>
+            <item>tr_warn_fexpr</item>
+            <item>tr_warn_meval</item>
+            <item>tr_warn_mode</item>
+            <item>tr_warn_undeclared</item>
+            <item>tr_warn_undefined_variable</item>
+            <item>tr_windy</item>
+            <item>ttyoff</item>
+            <item>use_fast_arrays</item>
+            <item>values</item>
+            <item>vect_cross</item>
+            <item>verbose</item>
+            <item>zerobern</item>
+            <item>zeta%pi</item>
+        </list>
+
+<!-- Should quoted symbols be highlighted? (Now they aren't) -->
+
+        <contexts>
+            <context attribute="Normal Text" lineEndContext="#pop" name="Normal Text" >
+                <keyword attribute="Function" String="MaximaFunction"/>
+                <keyword attribute="Variable" String="MaximaVariable"/>
+                <keyword attribute="Keyword" String="MaximaKeyword"/>
+                <DetectChar attribute="String" context="String" char="&quot;"/>
+                <Detect2Chars attribute="Comment" context="Comment" char="/" char1="*" beginRegion="comment"/>
+                <RegExpr attribute="Label" String="[a-zA-Z_][a-zA-Z0-9%_]*"/>
+                <RegExpr attribute="Float" String="[-+]?\d+\.\d*([BbDdEeSs][-+]?\d+)?"/>
+                <RegExpr attribute="Float" String="[-+]?\.\d+([BbDdEeSs][-+]?\d+)?"/>
+                <RegExpr attribute="Float" String="[-+]?\d+[BbDdEeSs][-+]?\d+"/>
+                <RegExpr attribute="Integer" String="[-+]?\d+"/>
+                <DetectChar attribute="Quote" char="'"/>
+            </context>
+            <context attribute="String" lineEndContext="#stay" name="String" >
+                <DetectChar attribute="String" context="#pop" char="&quot;"/>
+            </context>
+
+            <context attribute="Comment" lineEndContext="#stay" name="Comment">
+                <keyword attribute="Special" String="SpecialComment"/>
+                <DetectSpaces/>
+                <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="comment"/>
+            </context>
+        </contexts>
+
+        <itemDatas>
+            <itemData name="Normal Text" defStyleNum="dsNormal"/>
+            <itemData name="Keyword" defStyleNum="dsKeyword" bold="true"/>
+            <itemData name="Variable" defStyleNum="dsVariable" italic="true"/>
+            <itemData name="String" defStyleNum="dsString"/>
+            <itemData name="Function" defStyleNum="dsFunction"/>
+            <itemData name="Label" defStyleNum="dsConstant"/>
+            <itemData name="Integer" defStyleNum="dsDecVal"/>
+            <itemData name="Float" defStyleNum="dsFloat"/>
+            <itemData name="Comment" defStyleNum="dsComment"/>
+            <itemData name="Quote" defStyleNum="dsDocumentation" bold="true"/>
+            <itemData name="Special" defStyleNum="dsSpecialString" bold="true" />
+        </itemDatas>
+
+    </highlighting>
+
+    <general>
+        <comments>
+            <comment name="multiLine" start="/*" end="*/"/>
+        </comments>
+        <keywords casesensitive="true" weakDeliminator="%" additionalDeliminator="@#"/>
+    </general>
+
+</language>
diff --git a/xml/mediawiki.xml b/xml/mediawiki.xml
new file mode 100644
--- /dev/null
+++ b/xml/mediawiki.xml
@@ -0,0 +1,623 @@
+<?xml version = '1.0' encoding = 'UTF-8'?>
+<!DOCTYPE language SYSTEM "language.dtd" [
+  <!ENTITY url          "(http:|https:|ftp:|mailto:)[^]| ]*(?=$|[]|\s])">
+  <!ENTITY htmlTagName  "(?![0-9])[\w_:][\w.:_-]*">
+  <!ENTITY htmlEntity   "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&htmlTagName;);">
+  <!ENTITY wikiLinkWithDescription "\[\[[^]|]*\|[^]]*\]\]">
+  <!ENTITY wikiLinkWithoutDescription "\[\[[^]|]*\]\]">
+]>
+<language name="MediaWiki" section="Markup" version="4" kateversion="3.4" extensions="*.mediawiki" mimetype="" license="FDL" >
+  <highlighting>
+    <contexts>
+      <context attribute="Normal" lineEndContext="#stay" name="normal" >
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
+        <RegExpr String="[=]{5,5}(?!=)" context="Section5" attribute="Section" column="0" />
+        <RegExpr String="[=]{4,4}(?!=)" context="Section4" attribute="Section" column="0" />
+        <RegExpr String="[=]{3,3}(?!=)" context="Section3" attribute="Section" column="0" />
+        <RegExpr String="[=]{2,2}(?!=)" context="Section2" attribute="Section" column="0" />
+        <RegExpr String="[~]{3,4}" attribute="WikiTag" context="#stay" />
+        <DetectChar char=";" attribute="WikiTag" context="DefinitionListHeader" column="0" />
+        <IncludeRules context="FindListItem" />
+        <IncludeRules context="FindUrl" />
+        <IncludeRules context="FindTextDecorations" />
+        <IncludeRules context="FindTable" />
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="WikiTag" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <RegExpr String="[\s]" context="Unformatted" column="0" />
+      </context>
+      <context name="TableHeader" attribute="Normal" lineEndContext="TableContent" >
+        <Detect2Chars char="{" char1="|" attribute="WikiTag" beginRegion="table" />
+        <IncludeRules context="FindHtmlStartTagAttributes" />
+      </context>
+      <context name="TableContent" attribute="Normal" lineEndContext="#stay">
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" />
+        <RegExpr String="[=]{5,5}(?!=)" context="Section5" attribute="Section" column="0" />
+        <RegExpr String="[=]{4,4}(?!=)" context="Section4" attribute="Section" column="0" />
+        <RegExpr String="[=]{3,3}(?!=)" context="Section3" attribute="Section" column="0" />
+        <RegExpr String="[=]{2,2}(?!=)" context="Section2" attribute="Section" column="0" />
+        <DetectChar char=";" attribute="WikiTag" context="DefinitionListHeader" column="0" />
+        <IncludeRules context="FindListItem" />
+        <IncludeRules context="FindUrl" />
+        <IncludeRules context="FindTextDecorations" />
+        <IncludeRules context="FindTable" />
+        <Detect2Chars char="|" char1="}" column="0" attribute="WikiTag" context="#pop#pop" endRegion="table" />
+        <Detect2Chars char="|" char1="-" column="0" attribute="WikiTag" />
+        <DetectChar char="|" attribute="WikiTag" context="#stay"/>
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="WikiTag" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <RegExpr String="[\s]" context="Unformatted" column="0" />
+        <RegExpr String="[~]{3,4}" attribute="WikiTag" context="#stay" />
+        <RegExpr String="[-]{4,}" attribute="WikiTag" context="#stay" />
+        <DetectChar char="!" attribute="WikiTag" context="#stay" column="0" />
+      </context>
+      <context attribute="Section" lineEndContext="#pop" name="Section5" >
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
+        <RegExpr String="[~]{3,4}" attribute="WikiTag" context="#stay" />
+        <IncludeRules context="FindUrl" />
+        <IncludeRules context="FindTextDecorationsInHeader" />
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <RegExpr String="={6,} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="={5,5} *$" context="#pop" attribute="Section" />
+        <RegExpr String="={1,4} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="={1,4} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="=*[^=]+$" context="#pop" attribute="Normal" />
+      </context>
+      <context attribute="Section" lineEndContext="#pop" name="Section4" >
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
+        <RegExpr String="[~]{3,4}" attribute="WikiTag" context="#stay" />
+        <IncludeRules context="FindUrl" />
+        <IncludeRules context="FindTextDecorationsInHeader" />
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <RegExpr String="={5,} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="={4,4} *$" context="#pop" attribute="Section" />
+        <RegExpr String="={1,3} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="=*[^=]+$" context="#pop" attribute="Normal" />
+      </context>
+      <context attribute="Section" lineEndContext="#pop" name="Section3" >
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
+        <RegExpr String="[~]{3,4}" attribute="WikiTag" context="#stay" />
+        <IncludeRules context="FindUrl" />
+        <IncludeRules context="FindTextDecorationsInHeader" />
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <RegExpr String="={4,} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="={3,3} *$" context="#pop" attribute="Section" />
+        <RegExpr String="={1,2} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="=*[^=]+$" context="#pop" attribute="Normal" />
+      </context>
+      <context attribute="Section" lineEndContext="#pop" name="Section2" >
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
+        <RegExpr String="[~]{3,4}" attribute="WikiTag" context="#stay" />
+        <IncludeRules context="FindUrl" />
+        <IncludeRules context="FindTextDecorationsInHeader" />
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <RegExpr String="={3,} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="={2,2} *$" context="#pop" attribute="Section" />
+        <RegExpr String="={1,1} *$" context="#pop" attribute="Normal" />
+        <RegExpr String="=*[^=]+$" context="#pop" attribute="Normal" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="comment" >
+        <StringDetect String="--&gt;" context="#pop" attribute="Comment" endRegion="comment" />
+      </context>
+      <context attribute="Link" lineEndContext="#stay" name="DelimitedURL" >
+        <DetectChar char="]" context="#pop" attribute="WikiTag" />
+        <DetectChar char="[" context="#stay" attribute="WikiTag" />
+        <RegExpr String="&url;" context="DelimitedUrlLink" lookAhead="true" />
+        <DetectChar char=" " context="URLTag" attribute="WikiTag" />
+      </context>
+      <context attribute="Link" lineEndContext="#stay" name="DelimitedUrlLink" >
+        <IncludeRules context="FindTemplate" />
+        <DetectChar char=" " context="#pop" lookAhead="true" />
+        <DetectChar char="]" context="#pop" lookAhead="true" />
+      </context>
+
+      <context attribute="Link" lineEndContext="#pop" name="LooseURL" >
+        <IncludeRules context="FindTemplate" />
+        <DetectChar char=" " context="#pop" attribute="WikiTag" />
+      </context>
+      <context attribute="Link" lineEndContext="#pop" name="LooseURLWithinTemplate" >
+        <IncludeRules context="FindTemplate" />
+        <Detect2Chars char="}" char1="}" context="#pop" lookAhead="true" />
+        <DetectChar char=" " context="#pop" attribute="WikiTag" />
+      </context>
+
+      <context attribute="Normal" lineEndContext="#stay" name="URLTag" >
+        <IncludeRules context="FindTextDecorations" />
+        <IncludeRules context="FindTemplate" />
+        <DetectChar char="]" context="#pop" lookAhead="true" />
+      </context>
+
+      <context name="WikiLinkWithoutDescriptionRules" attribute="Normal" lineEndContext="#stay" >
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindHtmlEntities" />
+        <Detect2Chars char="[" char1="[" attribute="WikiTag" />
+        <Detect2Chars char="]" char1="]" context="#pop" attribute="WikiTag" />
+      </context>
+      <context name="WikiLinkWithDescriptionRules" attribute="Normal" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+        <DetectChar char="#" attribute="WikiTag" />
+      </context>
+      <context name="WikiLink" attribute="Link" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
+        <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescription" />
+      </context>
+      <context name="WikiLinkBoldWithDescription" attribute="Link" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
+        <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionBold" />
+      </context>
+      <context name="WikiLinkBoldWithoutDescription" attribute="LinkBold" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+        <DetectChar char="#" attribute="WikiTagBold" />
+      </context>
+      <context name="WikiLinkItalicWithDescription" attribute="Link" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
+        <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionItalic" />
+      </context>
+      <context name="WikiLinkItalicWithoutDescription" attribute="LinkItalic" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+        <DetectChar char="#" attribute="WikiTagItalic" />
+      </context>
+      <context name="WikiLinkUnderlinedWithDescription" attribute="Link" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
+        <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionUnderlined" />
+      </context>
+      <context name="WikiLinkUnderlinedWithoutDescription" attribute="LinkUnderlined" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+        <DetectChar char="#" attribute="WikiTagUnderlined" />
+      </context>
+      <context name="WikiLinkBoldItalicWithDescription" attribute="Link" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
+        <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionBoldItalic" />
+      </context>
+      <context name="WikiLinkBoldItalicWithoutDescription" attribute="LinkBoldItalic" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+        <DetectChar char="#" attribute="WikiTagBoldItalic" />
+      </context>
+      <context name="WikiLinkBoldUnderlinedWithDescription" attribute="Link" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
+        <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionBoldUnderlined" />
+      </context>
+      <context name="WikiLinkBoldUnderlinedWithoutDescription" attribute="LinkBoldUnderlined" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+        <DetectChar char="#" attribute="WikiTagBoldUnderlined" />
+      </context>
+      <context name="WikiLinkItalicUnderlinedWithDescription" attribute="Link" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
+        <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionItalicUnderlined" />
+      </context>
+      <context name="WikiLinkItalicUnderlinedWithoutDescription" attribute="LinkItalicUnderlined" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+        <DetectChar char="#" attribute="WikiTagItalicUnderlined" />
+      </context>
+      <context name="WikiLinkBoldItalicUnderlinedWithDescription" attribute="Link" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkWithDescriptionRules" />
+        <DetectChar char="|" attribute="WikiTag" context="WikiLinkDescriptionBoldItalicUnderlined" />
+      </context>
+      <context name="WikiLinkBoldItalicUnderlinedWithoutDescription" attribute="LinkBoldItalicUnderlined" lineEndContext="#stay" >
+        <DetectChar char="#" attribute="WikiTagBoldItalicUnderlined" />
+        <IncludeRules context="WikiLinkWithoutDescriptionRules" />
+      </context>
+
+      <context name="WikiLinkDescriptionRules" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindHtmlEntities" />
+        <Detect2Chars char="]" char1="]" context="#pop" attribute="WikiTag" lookAhead="true" />
+      </context>
+      <context name="WikiLinkDescription" attribute="Normal" lineEndContext="#stay">
+        <IncludeRules context="WikiLinkDescriptionRules" />
+        <IncludeRules context="FindTextDecorations" />
+      </context>
+      <context name="WikiLinkDescriptionBold" attribute="Bold" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkDescriptionRules" />
+        <StringDetect String="''" context="BoldItalic" attribute="WikiTag" />
+        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldUnderlined" />
+      </context>
+      <context name="WikiLinkDescriptionItalic" attribute="Italic" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkDescriptionRules" />
+        <StringDetect String="'''" attribute="WikiTag" context="ItalicBold" />
+        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="ItalicUnderlined" />
+      </context>
+      <context name="WikiLinkDescriptionUnderlined" attribute="Underlined" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkDescriptionRules" />
+        <StringDetect String="'''" context="UnderlinedBold" attribute="WikiTag" />
+        <StringDetect String="''" context="UnderlinedItalic" attribute="WikiTag" />
+      </context>
+      <context name="WikiLinkDescriptionBoldItalic" attribute="BoldItalic" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkDescriptionRules" />
+        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
+      </context>
+      <context name="WikiLinkDescriptionBoldUnderlined" attribute="BoldUnderlined" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkDescriptionRules" />
+        <StringDetect String="''" context="BoldUnderlinedItalic" attribute="WikiTag" />
+      </context>
+      <context name="WikiLinkDescriptionItalicUnderlined" attribute="ItalicUnderlined" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkDescriptionRules" />
+        <StringDetect String="'''" context="ItalicUnderlinedBold" attribute="WikiTag" />
+      </context>
+      <context name="WikiLinkDescriptionBoldItalicUnderlined" attribute="BoldItalicUnderlined" lineEndContext="#stay" >
+        <IncludeRules context="WikiLinkDescriptionRules" />
+      </context>
+
+      <context attribute="TemplateName" lineEndContext="#stay" name="Template" >
+        <StringDetect String="|" context="TemplateParameterSlot" attribute="WikiTag" />
+        <Detect2Chars char="}" char1="}" context="#pop" attribute="WikiTag" endRegion="template" />
+      </context>
+      <context attribute="Normal" lineEndContext="#stay" name="TemplateParameterSlot" >
+        <Detect2Chars char="}" char1="}" context="#pop" attribute="WikiTag" lookAhead="true" />
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
+        <RegExpr String="[~]{3,4}" attribute="WikiTag" context="#stay" />
+        <IncludeRules context="FindListItem" />
+        <IncludeRules context="FindUrlWithinTemplate" />
+        <IncludeRules context="FindTextDecorations" />
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <StringDetect String="|" context="#pop" attribute="WikiTag" lookAhead="true" />
+        <RegExpr String="[^{}|=]+(?=[=])" attribute="Parameter" context="TemplateParameterSlotEqual" />
+      </context>
+      <context attribute="Normal" lineEndContext="#stay" name="TemplateParameterSlotEqual" >
+        <Detect2Chars char="}" char1="}" context="#pop" attribute="WikiTag" lookAhead="true" />
+        <StringDetect String="|" context="#pop" attribute="WikiTag" lookAhead="true" />
+        <StringDetect String="=" context="TemplateParameterSlotValue" attribute="WikiTag" />
+      </context>
+      <context attribute="Normal" lineEndContext="#stay" name="TemplateParameterSlotValue" >
+        <StringDetect String="&lt;!--" context="comment" attribute="Comment" beginRegion="comment" />
+        <RegExpr String="[~]{3,4}" attribute="WikiTag" context="#stay" />
+        <IncludeRules context="FindListItem" />
+        <IncludeRules context="FindUrlWithinTemplate" />
+        <IncludeRules context="FindTextDecorations" />
+        <StringDetect String="{{{" context="TemplateParameter" attribute="WikiTag" />
+        <IncludeRules context="FindTemplate" />
+        <IncludeRules context="FindWikiLink" />
+        <IncludeRules context="FindHtmlEntities" />
+        <StringDetect String="&lt;nowiki&gt;" context="NoWiki" attribute="HtmlTag" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+        <IncludeRules context="FindSyntaxHighlightingHtmlElement" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <Detect2Chars char="}" char1="}" context="#pop" attribute="WikiTag" lookAhead="true" />
+        <StringDetect String="|" context="#pop" attribute="WikiTag" lookAhead="true" />
+      </context>
+      <context attribute="Parameter" lineEndContext="#stay" name="TemplateParameter" >
+        <StringDetect String="}}}" context="#pop" attribute="WikiTag" />
+      </context>
+      <context attribute="NoWiki" lineEndContext="#stay" name="NoWiki" >
+        <RegExpr String="&lt;!--[^-]*--&gt;" attribute="NoWiki" />
+        <StringDetect String="&lt;/nowiki&gt;" context="#pop" attribute="HtmlTag" />
+        <RegExpr String="[&lt;][^&gt;]+[&gt;]" attribute="HtmlTag" context="#stay" />
+        <StringDetect String="&lt;pre&gt;" context="Pre" attribute="HtmlTag" />
+      </context>
+      <context attribute="Unformatted" lineEndContext="#pop" name="Unformatted" />
+      <context attribute="NoWiki" lineEndContext="#stay" name="Pre" >
+        <StringDetect String="&lt;/pre&gt;" context="#pop" attribute="HtmlTag" />
+      </context>
+
+
+
+      <!-- <source> and <syntaxhighlight> tags. -->
+
+      <context name="SourceStartTag" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="(^|\s+)lang\=(&quot;javascript&quot;|&apos;javascript&apos;)" context="JavaScriptSourceStartTag" lookAhead="true" />
+        <DetectChar attribute="HtmlTag" context="UnsupportedLanguageSourceStartTag" char="&gt;" lookAhead="true" />
+        <IncludeRules context="FindHtmlStartTagAttributes" />
+      </context>
+      <context name="SyntaxHighlightStartTag" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="(^|\s+)lang\=(&quot;javascript&quot;|&apos;javascript&apos;)" context="JavaScriptSyntaxHighlightStartTag" lookAhead="true" />
+        <DetectChar attribute="HtmlTag" context="UnsupportedLanguageSyntaxHighlightStartTag" char="&gt;" lookAhead="true" />
+        <IncludeRules context="FindHtmlStartTagAttributes" />
+      </context>
+
+
+      <context name="UnsupportedLanguageSourceStartTag" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="HtmlTag" context="UnsupportedLanguageSourceContent" char="&gt;" />
+        <IncludeRules context="FindHtmlStartTagAttributes" />
+      </context>
+      <context name="UnsupportedLanguageSyntaxHighlightStartTag" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="HtmlTag" context="UnsupportedLanguageSyntaxHighlightContent" char="&gt;" />
+        <IncludeRules context="FindHtmlStartTagAttributes" />
+      </context>
+
+      <context name="JavaScriptSourceStartTag" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="HtmlTag" context="JavaScriptSourceContent" char="&gt;" />
+        <IncludeRules context="FindHtmlStartTagAttributes" />
+      </context>
+      <context name="JavaScriptSyntaxHighlightStartTag" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="HtmlTag" context="JavaScriptSyntaxHighlightContent" char="&gt;" />
+        <IncludeRules context="FindHtmlStartTagAttributes" />
+      </context>
+
+
+      <context name="UnsupportedLanguageSourceContent" attribute="NoWiki" lineEndContext="#stay">
+        <IncludeRules context="SourceEnd" />
+      </context>
+      <context name="UnsupportedLanguageSyntaxHighlightContent" attribute="NoWiki" lineEndContext="#stay">
+        <IncludeRules context="SyntaxHighlightEnd" />
+      </context>
+
+      <context name="JavaScriptSourceContent" attribute="NoWiki" lineEndContext="#stay">
+        <IncludeRules context="SourceEnd" />
+        <IncludeRules context="Normal##JavaScript" />
+      </context>
+      <context name="JavaScriptSyntaxHighlightContent" attribute="NoWiki" lineEndContext="#stay">
+        <StringDetect String="&lt;/syntaxhighlight&gt;" context="#pop#pop#pop" attribute="HtmlTag" />
+        <IncludeRules context="SyntaxHighlightEnd" />
+        <IncludeRules context="Normal##JavaScript" />
+      </context>
+
+
+      <context name="SourceEnd" attribute="Normal" lineEndContext="#stay">
+        <StringDetect String="&lt;/source&gt;" context="#pop#pop#pop" attribute="HtmlTag" />
+      </context>
+      <context name="SyntaxHighlightEnd" attribute="Normal" lineEndContext="#stay">
+        <StringDetect String="&lt;/syntaxhighlight&gt;" context="#pop#pop#pop" attribute="HtmlTag" />
+      </context>
+
+
+      <context name="HtmlAttribute" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="HtmlAttribute" context="HtmlValue" char="=" />
+        <RegExpr attribute="Error" context="#stay" String="\S" />
+      </context>
+      <context name="HtmlValue" attribute="Normal" lineEndContext="#stay">
+        <DetectChar attribute="HtmlValue" context="ValueWithDoubleQuotes" char="&quot;" />
+        <DetectChar attribute="HtmlValue" context="ValueWithSingleQuotes" char="&apos;" />
+        <RegExpr attribute="Error" context="#stay" String="\S" />
+      </context>
+      <context name="ValueWithDoubleQuotes" attribute="HtmlValue" lineEndContext="#stay">
+        <DetectChar attribute="HtmlValue" context="#pop#pop#pop" char="&quot;" />
+        <IncludeRules context="FindHtmlEntities" />
+      </context>
+      <context name="ValueWithSingleQuotes" attribute="HtmlValue" lineEndContext="#stay">
+        <DetectChar attribute="HtmlValue" context="#pop#pop#pop" char="&apos;" />
+        <IncludeRules context="FindHtmlEntities" />
+      </context>
+
+
+
+      <context attribute="DefinitionListHeader" lineEndContext="#pop" name="DefinitionListHeader" >
+        <DetectChar char=":" context="#pop" attribute="WikiTag" />
+      </context>
+      <context attribute="Bold" lineEndContext="#pop" name="Bold" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="''" context="BoldItalic" attribute="WikiTag" />
+        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldUnderlined" />
+        <IncludeRules context="FindWikiLinkBeingBold" />
+      </context>
+      <context attribute="Italic" lineEndContext="#pop" name="Italic" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="'''" attribute="WikiTag" context="ItalicBold" />
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="ItalicUnderlined" />
+        <IncludeRules context="FindWikiLinkBeingItalic" />
+      </context>
+      <context attribute="Underlined" name="Underlined" lineEndContext="#stay" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="'''" context="UnderlinedBold" attribute="WikiTag" />
+        <StringDetect String="''" context="UnderlinedItalic" attribute="WikiTag" />
+        <RegExpr String="&lt;/u *&gt;" context="#pop" attribute="HtmlTag" />
+        <IncludeRules context="FindWikiLinkBeingUnderlined" />
+      </context>
+      <context name="BoldItalic" attribute="BoldItalic" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalic" />
+      </context>
+      <context name="ItalicBold" attribute="BoldItalic" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="BoldItalicUnderlined" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalic" />
+      </context>
+      <context name="BoldUnderlined" attribute="BoldUnderlined" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <RegExpr String="&lt;/u *&gt;" context="#pop" attribute="HtmlTag" />
+        <StringDetect String="''" context="BoldUnderlinedItalic" attribute="WikiTag" />
+        <IncludeRules context="FindWikiLinkBeingBoldUnderlined" />
+      </context>
+      <context name="UnderlinedBold" attribute="BoldUnderlined" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="''" context="BoldUnderlinedItalic" attribute="WikiTag" />
+        <IncludeRules context="FindWikiLinkBeingBoldUnderlined" />
+      </context>
+      <context name="ItalicUnderlined" attribute="ItalicUnderlined" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <RegExpr String="&lt;/u *&gt;" context="#pop" attribute="HtmlTag" />
+        <StringDetect String="'''" context="ItalicUnderlinedBold" attribute="WikiTag" />
+        <IncludeRules context="FindWikiLinkBeingItalicUnderlined" />
+      </context>
+      <context name="UnderlinedItalic" attribute="ItalicUnderlined" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <StringDetect String="'''" context="ItalicUnderlinedBold" attribute="WikiTag" />
+        <IncludeRules context="FindWikiLinkBeingItalicUnderlined" />
+      </context>
+      <context name="BoldItalicUnderlined" attribute="BoldItalicUnderlined" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <RegExpr String="&lt;/u *&gt;" context="#pop" attribute="HtmlTag" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
+      </context>
+      <context name="BoldUnderlinedItalic" attribute="BoldItalicUnderlined" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="''" context="#pop" attribute="WikiTag" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
+      </context>
+      <context name="ItalicUnderlinedBold" attribute="BoldItalicUnderlined" lineEndContext="#pop" >
+        <IncludeRules context="FindTemplate" />
+        <StringDetect String="'''" context="#pop" attribute="WikiTag" />
+        <IncludeRules context="FindWikiLinkBeingBoldItalicUnderlined" />
+      </context>
+
+      <!-- Contexts for inclusion. -->
+
+      <context name="FindHtmlEntities" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&htmlEntity;" attribute="HtmlEntity" />
+      </context>
+
+      <context name="FindHtmlStartTagAttributes" attribute="Normal" lineEndContext="#stay">
+        <RegExpr attribute="HtmlAttribute" context="HtmlAttribute" String="^&htmlTagName;" />
+        <RegExpr attribute="HtmlAttribute" context="HtmlAttribute" String="\s+&htmlTagName;" />
+        <RegExpr attribute="Error" context="#stay" String="\S" />
+      </context>
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindListItem" >
+        <RegExpr String="[*#;:\s]*[*#:]+" attribute="WikiTag" context="#stay" column="0" />
+      </context>
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindSyntaxHighlightingHtmlElement" >
+        <RegExpr String="&lt;source(?=\s)" context="SourceStartTag" attribute="HtmlTag" />
+        <RegExpr String="&lt;syntaxhighlight(?=\s)" context="SyntaxHighlightStartTag" attribute="HtmlTag" />
+      </context>
+
+      <context name="FindTable" attribute="Normal" lineEndContext="#stay">
+        <Detect2Chars char="{" char1="|" column="0" context="TableHeader"  lookAhead="true" />
+      </context>
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindTemplate" >
+        <Detect2Chars char="{" char1="{" context="Template" attribute="WikiTag" beginRegion="template" />
+      </context>
+
+      <context name="FindTextDecorations" attribute="Normal" lineEndContext="#stay">
+        <StringDetect String="'''" attribute="WikiTag" context="Bold" />
+        <StringDetect String="''" attribute="WikiTag" context="Italic" />
+        <RegExpr String="&lt;u *&gt;" attribute="HtmlTag" context="Underlined" />
+      </context>
+      <context attribute="Normal" lineEndContext="#stay" name="FindTextDecorationsInHeader" >
+        <StringDetect String="'''" attribute="WikiTag" context="Bold" />
+        <StringDetect String="''" attribute="WikiTag" context="BoldItalic" />
+      </context>
+
+      <context attribute="Normal" lineEndContext="#stay" name="FindUrl" >
+        <RegExpr String="\[&url;" attribute="WikiTag" context="DelimitedURL" lookAhead="true" />
+        <RegExpr String="&url;" attribute="URL" context="LooseURL" lookAhead="true" />
+      </context>
+      <context attribute="Normal" lineEndContext="#stay" name="FindUrlWithinTemplate" >
+        <RegExpr String="\[&url;" attribute="WikiTag" context="DelimitedURL" lookAhead="true" />
+        <RegExpr String="&url;" attribute="URL" context="LooseURLWithinTemplate" lookAhead="true" />
+      </context>
+
+      <context name="FindWikiLink" attribute="Normal" lineEndContext="#stay">
+        <Detect2Chars char="[" char1="[" attribute="WikiTag" context="WikiLink" />
+      </context>
+      <context name="FindWikiLinkBeingBold" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldWithDescription" lookAhead="true" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldWithoutDescription" lookAhead="true" />
+      </context>
+      <context name="FindWikiLinkBeingItalic" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkItalicWithDescription" lookAhead="true" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkItalicWithoutDescription" lookAhead="true" />
+      </context>
+      <context name="FindWikiLinkBeingUnderlined" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkUnderlinedWithDescription" lookAhead="true" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkUnderlinedWithoutDescription" lookAhead="true" />
+      </context>
+      <context name="FindWikiLinkBeingBoldItalic" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldItalicWithDescription" lookAhead="true" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldItalicWithoutDescription" lookAhead="true" />
+      </context>
+      <context name="FindWikiLinkBeingBoldUnderlined" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldUnderlinedWithDescription" lookAhead="true" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldUnderlinedWithoutDescription" lookAhead="true" />
+      </context>
+      <context name="FindWikiLinkBeingItalicUnderlined" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkItalicUnderlinedWithDescription" lookAhead="true" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkItalicUnderlinedWithoutDescription" lookAhead="true" />
+      </context>
+      <context name="FindWikiLinkBeingBoldItalicUnderlined" attribute="Normal" lineEndContext="#stay">
+        <RegExpr String="&wikiLinkWithDescription;" context="WikiLinkBoldItalicUnderlinedWithDescription" lookAhead="true" />
+        <RegExpr String="&wikiLinkWithoutDescription;" context="WikiLinkBoldItalicUnderlinedWithoutDescription" lookAhead="true" />
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal" defStyleNum="dsNormal" />
+      <itemData name="Link" defStyleNum="dsOthers" />
+      <itemData name="LinkBold" defStyleNum="dsOthers" bold="true" />
+      <itemData name="LinkItalic" defStyleNum="dsOthers" italic="true" />
+      <itemData name="LinkUnderlined" defStyleNum="dsOthers" underline="true" />
+      <itemData name="LinkBoldItalic" defStyleNum="dsOthers" bold="true" italic="true" />
+      <itemData name="LinkBoldUnderlined" defStyleNum="dsOthers" bold="true" underline="true" />
+      <itemData name="LinkItalicUnderlined" defStyleNum="dsOthers" italic="true" underline="true" />
+      <itemData name="LinkBoldItalicUnderlined" defStyleNum="dsOthers" bold="true" italic="true" underline="true" />
+      <itemData name="URL" defStyleNum="dsOthers" />
+      <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="Section" defStyleNum="dsKeyword" />
+      <itemData name="DefinitionListHeader" defStyleNum="dsKeyword" />
+      <itemData name="HtmlEntity" defStyleNum="dsDecVal" />
+      <itemData name="HtmlTag" defStyleNum="dsKeyword" />
+      <itemData name="WikiTag" defStyleNum="dsDecVal" bold="true" />
+      <itemData name="WikiTagBold" defStyleNum="dsDecVal" bold="true" />
+      <itemData name="WikiTagItalic" defStyleNum="dsDecVal" bold="true" italic="true" />
+      <itemData name="WikiTagUnderlined" defStyleNum="dsDecVal" bold="true" underline="true" />
+      <itemData name="WikiTagBoldItalic" defStyleNum="dsDecVal" bold="true" italic="true" />
+      <itemData name="WikiTagBoldUnderlined" defStyleNum="dsDecVal" bold="true" underline="true" />
+      <itemData name="WikiTagItalicUnderlined" defStyleNum="dsDecVal" bold="true" italic="true" underline="true" />
+      <itemData name="WikiTagBoldItalicUnderlined" defStyleNum="dsDecVal" bold="true" italic="true" underline="true" />
+      <itemData name="Error" defStyleNum="dsError" />
+      <itemData name="NoWiki" defStyleNum="dsNormal" />
+      <itemData name="Unformatted" defStyleNum="dsNormal" />
+      <itemData name="Parameter" defStyleNum="dsNormal" bold="true" />
+      <itemData name="TemplateName" defStyleNum="dsOthers" bold="true" />
+      <itemData name="Bold" defStyleNum="dsNormal" bold="true" />
+      <itemData name="Italic" defStyleNum="dsNormal" italic="true" />
+      <itemData name="Underlined" defStyleNum="dsNormal" underline="true" />
+      <itemData name="BoldItalic" defStyleNum="dsNormal" bold="true" italic="true" />
+      <itemData name="BoldUnderlined" defStyleNum="dsNormal" bold="true" underline="true" />
+      <itemData name="ItalicUnderlined" defStyleNum="dsNormal" italic="true" underline="true" />
+      <itemData name="BoldItalicUnderlined" defStyleNum="dsNormal" bold="true" italic="true" underline="true" />
+      <itemData name="HtmlAttribute" defStyleNum="dsOthers" spellChecking="false" />
+      <itemData name="HtmlValue" defStyleNum="dsString" spellChecking="false" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment end="//-->" start="&lt;!--" name="multiLine" />
+    </comments>
+    <keywords casesensitive="0" />
+    <indentation mode="normal" />
+  </general>
+</language>
diff --git a/xml/metafont.xml b/xml/metafont.xml
new file mode 100644
--- /dev/null
+++ b/xml/metafont.xml
@@ -0,0 +1,1009 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+The lists of keywords of this file are borrowed from the VIM syntax 
+files mp.vim and mf.vim
+We have moved some keywords for consistency
+-->
+
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Metapost/Metafont" section="Markup" version="1" kateversion="2.4"
+extensions="*.mp;*.mps;*.mpost;*.mf" mimetype="text/x-metapost" 
+author="Yedvilun (yedvilun@gmail.com)" license="LGPL">
+  <highlighting>
+    <!--Here are some listing from mf.vim-->
+    <!--Metafont 'primitives' as defined in chapter 25 of 'The METAFONTbook'-->
+    <!--Page 210: 'boolean expressions'-->
+    <list name="mfBoolExp">
+      <item>true</item>
+
+      <item>false</item>
+      <item>known</item>
+      <item>unknown</item>
+      <item>odd</item>
+      <item>charexists</item>
+      <item>not</item>
+
+      <item>and</item>
+      <item>or</item>
+    </list>
+
+    <!--Page 210: 'numeric expression'-->
+    <list name="mfNumExp">
+      <item>normaldeviate</item>
+      <item>length</item>
+
+      <item>ASCII</item>
+      <item>oct</item>
+      <item>hex</item>
+      <item>angle</item>
+      <item>turningnumber</item>
+      <item>totalweight</item>
+
+      <item>directiontime</item>
+      <item>xpart</item>
+      <item>ypart</item>
+      <item>xxpart</item>
+      <item>xypart</item>
+      <item>yxpart</item>
+
+      <item>yypart</item>
+      <item>sqrt</item>
+      <item>sind</item>
+      <item>cosd</item>
+      <item>mlog</item>
+      <item>mexp</item>
+
+      <item>floor</item>
+      <item>uniformdeviate</item>
+      <item>abs</item>
+      <item>div</item>
+      <item>dotprod</item>
+      <item>max</item>
+
+      <item>min</item>
+      <item>mod</item>
+      <item>ceiling</item>
+    </list>
+
+    <!--Page 211: 'internal quantities'-->
+    <list name="mfInternal">
+      <item>tracingtitles</item>
+
+      <item>tracingequations</item>
+      <item>tracingcapsules</item>
+      <item>tracingchoices</item>
+      <item>tracingspecs</item>
+      <item>tracingpens</item>
+      <item>tracingcommands</item>
+
+      <item>tracingrestores</item>
+      <item>tracingmacros</item>
+      <item>tracingedges</item>
+      <item>tracingoutput</item>
+      <item>tracingonline</item>
+      <item>tracingstats</item>
+
+      <item>pausing</item>
+      <item>showstopping</item>
+      <item>fontmaking</item>
+      <item>proofing</item>
+      <item>turningcheck</item>
+      <item>warningcheck</item>
+
+      <item>smoothing</item>
+      <item>autorounding</item>
+      <item>granularity</item>
+      <item>fillin</item>
+      <item>year</item>
+      <item>month</item>
+
+      <item>day</item>
+      <item>time</item>
+      <item>charcode</item>
+      <item>charext</item>
+      <item>charwd</item>
+      <item>charht</item>
+
+      <item>chardp</item>
+      <item>charic</item>
+      <item>chardx</item>
+      <item>chardy</item>
+      <item>designsize</item>
+      <item>hppp</item>
+
+      <item>vppp</item>
+      <item>xoffset</item>
+      <item>yoffset</item>
+      <item>boundarychar</item>
+    </list>
+
+    <!--Page 212: 'pair expressions'-->
+
+    <list name="mfPairExp">
+      <item>point</item>
+      <item>of</item>
+      <item>precontrol</item>
+      <item>postcontrol</item>
+      <item>penoffset</item>
+
+      <item>rotated</item>
+      <item>scaled</item>
+      <item>shifted</item>
+      <item>slanted</item>
+      <item>transformed</item>
+      <item>xscaled</item>
+
+      <item>yscaled</item>
+      <item>zscaled</item>
+    </list>
+
+    <!--Page 213: 'path expressions'-->
+    <list name="mfPathExp">
+      <item>makepath</item>
+      <item>reverse</item>
+
+      <item>subpath</item>
+      <item>curl</item>
+      <item>tension</item>
+      <item>atleast</item>
+      <item>controls</item>
+      <item>cycle</item>
+
+    </list>
+
+    <!--Page 214: 'pen expressions'-->
+    <list name="mfPenExp">
+      <item>nullpen</item>
+      <item>pencircle</item>
+      <item>makepen</item>
+    </list>
+
+    <!--Page 214: 'picture expressions'-->
+    <list name="mfPicExp">
+      <item>nullpicture</item>
+    </list>
+
+    <!--Page 214: 'string expressions'-->
+    <list name="mfStringExp">
+      <item>jobname</item>
+
+      <item>readstring</item>
+      <item>str</item>
+      <item>char</item>
+      <item>decimal</item>
+      <item>substring</item>
+    </list>
+
+    <!--Page 217: 'commands and statements'-->
+    <list name="mfCommand">
+      <item>end</item>
+      <item>dump</item>
+      <item>save</item>
+      <item>interim</item>
+
+      <item>newinternal</item>
+      <item>randomseed</item>
+      <item>let</item>
+      <item>delimiters</item>
+      <item>outer</item>
+      <item>everyjob</item>
+
+      <item>show</item>
+      <item>showvariable</item>
+      <item>showtoken</item>
+      <item>showdependencies</item>
+      <item>showstats</item>
+      <item>message</item>
+
+      <item>errmessage</item>
+      <item>errhelp</item>
+      <item>batchmode</item>
+      <item>nonstopmode</item>
+      <item>scrollmode</item>
+      <item>errorstopmode</item>
+
+      <item>addto</item>
+      <item>also</item>
+      <item>contour</item>
+      <item>doublepath</item>
+      <item>withpen</item>
+      <item>withweight</item>
+
+      <item>cull</item>
+      <item>keeping</item>
+      <item>dropping</item>
+      <item>display</item>
+      <item>inwindow</item>
+      <item>openwindow</item>
+
+      <item>at</item>
+      <item>from</item>
+      <item>to</item>
+      <item>shipout</item>
+      <item>special</item>
+      <item>numspecial</item>
+
+    </list>
+
+    <!--Page 56: 'types'-->
+    <list name="mfType">
+      <item>boolean</item>
+      <item>numeric</item>
+      <item>pair</item>
+      <item>path</item>
+
+      <item>pen</item>
+      <item>picture</item>
+      <item>string</item>
+      <item>transform</item>
+    </list>
+
+    <!--Page 155: 'grouping'-->
+
+<!--     <list name="mfStatement"> -->
+<!--       <item>begingroup</item> -->
+<!--       <item>endgroup</item> -->
+<!--     </list> -->
+
+    <!--Page 165: 'definitions'-->
+    <list name="mfDefinition">
+<!--       <item>enddef</item> -->
+<!--       <item>def</item> -->
+      <item>expr</item>
+      <item>suffix</item>
+
+      <item>text</item>
+      <item>primary</item>
+      <item>secondary</item>
+      <item>tertiary</item>
+<!--       <item>vardef</item> -->
+      <item>primarydef</item>
+      <item>secondarydef</item>
+
+      <item>tertiarydef</item>
+    </list>
+
+    <!--Page 169: 'conditions and loops'-->
+    <list name="mfCondition">
+<!--       <item>if</item> -->
+<!--       <item>fi</item> -->
+      <item>else</item>
+      <item>elseif</item>
+
+<!--       <item>endfor</item> -->
+<!--       <item>for</item> -->
+<!--       <item>forsuffixes</item> -->
+<!--       <item>forever</item> -->
+      <item>step</item>
+      <item>until</item>
+      <item>upto</item>
+      <item>exitif</item>
+    </list>
+
+    <!--Other primitives listed in the index-->
+    <list name="mfPrimitive">
+      <item>charlist</item>
+      <item>endinput</item>
+      <item>expandafter</item>
+      <item>extensible</item>
+
+      <item>fontdimen</item>
+      <item>headerbyte</item>
+      <item>inner</item>
+      <item>input</item>
+      <item>intersectiontimes</item>
+      <item>kern</item>
+
+      <item>ligtable</item>
+      <item>quote</item>
+      <item>scantokens</item>
+      <item>skipto</item>
+    </list>
+
+    <!--Keywords defined by plain.mf-->
+
+    <list name="mfMacro">
+<!--       <item>abs</item> -->
+      <item>addto_currentpicture</item>
+      <item>aspect_ratio</item>
+      <item>base_name</item>
+      <item>base_version</item>
+<!--       <item>beginchar</item> -->
+      <item>blacker</item>
+
+      <item>blankpicture</item>
+      <item>bot</item>
+      <item>bye</item>
+      <item>byte</item>
+      <item>capsule_def</item>
+<!--       <item>ceiling</item> -->
+      <item>change_width</item>
+
+      <item>clear_pen_memory</item>
+      <item>clearit</item>
+      <item>clearpen</item>
+      <item>clearxy</item>
+      <item>counterclockwise</item>
+      <item>culldraw</item>
+
+      <item>cullit</item>
+      <item>currentpen</item>
+      <item>currentpen_path</item>
+      <item>currentpicture</item>
+      <item>currenttransform</item>
+      <item>currentwindow</item>
+
+      <item>cutdraw</item>
+      <item>cutoff</item>
+      <item>d</item>
+      <item>decr</item>
+      <item>define_blacker_pixels</item>
+      <item>define_corrected_pixels</item>
+
+      <item>define_good_x_pixels</item>
+      <item>define_good_y_pixels</item>
+      <item>define_horizontal_corrected_pixels</item>
+      <item>define_pixels</item>
+      <item>define_whole_blacker_pixels</item>
+      <item>define_whole_pixels</item>
+
+      <item>define_whole_vertical_blacker_pixels</item>
+      <item>define_whole_vertical_pixels</item>
+      <item>dir</item>
+      <item>direction</item>
+      <item>directionpoint</item>
+      <item>displaying</item>
+
+      <item>ditto</item>
+<!--       <item>div</item> -->
+<!--       <item>dotprod</item> -->
+      <item>down</item>
+      <item>downto</item>
+      <item>draw</item>
+      <item>drawdot</item>
+
+<!--       <item>endchar</item> -->
+      <item>eps</item>
+      <item>epsilon</item>
+<!--       <item>extra_beginchar</item> -->
+<!--       <item>extra_endchar</item> -->
+      <item>extra_setup</item>
+      <item>erase</item>
+      <item>exitunless</item>
+
+      <item>fill</item>
+      <item>filldraw</item>
+      <item>fix_units</item>
+      <item>flex</item>
+      <item>font_coding_scheme</item>
+      <item>font_extra_space</item>
+
+      <item>font_identifier</item>
+      <item>font_normal_shrink</item>
+      <item>font_normal_space</item>
+      <item>font_normal_stretch</item>
+      <item>font_quad</item>
+      <item>font_setup</item>
+
+      <item>font_size</item>
+      <item>font_slant</item>
+      <item>font_x_height</item>
+      <item>fullcircle</item>
+      <item>generate</item>
+      <item>gfcorners</item>
+
+      <item>gobble</item>
+      <item>gobbled</item>
+      <item>grayfont</item>
+      <item>h</item>
+      <item>halfcircle</item>
+      <item>hide</item>
+
+      <item>hround</item>
+      <item>identity</item>
+      <item>image_rules</item>
+      <item>incr</item>
+      <item>infinity</item>
+      <item>interact</item>
+
+      <item>interpath</item>
+      <item>intersectionpoint</item>
+      <item>inverse</item>
+      <item>italcorr</item>
+      <item>join_radius</item>
+      <item>killtext</item>
+
+      <item>labelfont</item>
+      <item>labels</item>
+      <item>left</item>
+      <item>lft</item>
+      <item>localfont</item>
+      <item>loggingall</item>
+
+      <item>lowres</item>
+      <item>lowres_fix</item>
+      <item>mag</item>
+      <item>magstep</item>
+      <item>makebox</item>
+      <item>makegrid</item>
+
+      <item>makelabel</item>
+      <item>maketicks</item>
+<!--       <item>max</item> -->
+<!--       <item>min</item> -->
+<!--       <item>mod</item> -->
+      <item>mode</item>
+      <item>mode_def</item>
+      <item>mode_name</item>
+
+      <item>mode_setup</item>
+      <item>nodisplays</item>
+      <item>notransforms</item>
+      <item>number_of_modes</item>
+      <item>numtok</item>
+      <item>o_correction</item>
+
+      <item>openit</item>
+      <item>origin</item>
+      <item>pen_bot</item>
+      <item>pen_lft</item>
+      <item>pen_rt</item>
+      <item>pen_top</item>
+
+      <item>penlabels</item>
+      <item>penpos</item>
+      <item>penrazor</item>
+      <item>penspeck</item>
+      <item>pensquare</item>
+      <item>penstroke</item>
+
+      <item>pickup</item>
+      <item>pixels_per_inch</item>
+      <item>proof</item>
+      <item>proofoffset</item>
+      <item>proofrule</item>
+      <item>proofrulethickness</item>
+
+      <item>quartercircle</item>
+      <item>range</item>
+      <item>reflectedabout</item>
+      <item>relax</item>
+      <item>right</item>
+      <item>rotatedabout</item>
+
+      <item>rotatedaround</item>
+      <item>round</item>
+      <item>rt</item>
+      <item>rulepen</item>
+      <item>savepen</item>
+      <item>screenchars</item>
+
+      <item>screen_rows</item>
+      <item>screen_cols</item>
+      <item>screenrule</item>
+      <item>screenstrokes</item>
+      <item>shipit</item>
+      <item>showit</item>
+
+      <item>slantfont</item>
+      <item>smode</item>
+      <item>smoke</item>
+      <item>softjoin</item>
+      <item>solve</item>
+      <item>stop</item>
+
+      <item>superellipse</item>
+      <item>takepower</item>
+      <item>tensepath</item>
+      <item>titlefont</item>
+      <item>tolerance</item>
+      <item>top</item>
+
+      <item>tracingall</item>
+      <item>tracingnone</item>
+      <item>undraw</item>
+      <item>undrawdot</item>
+      <item>unfill</item>
+      <item>unfilldraw</item>
+
+      <item>unitpixel</item>
+      <item>unitsquare</item>
+      <item>unitvector</item>
+      <item>up</item>
+      <item>upto</item>
+      <item>vround</item>
+
+      <item>w</item>
+      <item>whatever</item>
+<!--       <item>beginlogochar</item> -->
+    </list>
+
+    <!--Here are some listing from mp.vim-->
+    <!--MetaPost primitives not found in Metafont-->
+    <list name="mpInternal">
+      <item>bluepart</item>
+
+      <item>clip</item>
+      <item>color</item>
+      <item>dashed</item>
+      <item>fontsize</item>
+      <item>greenpart</item>
+      <item>infont</item>
+
+      <item>linecap</item>
+      <item>linejoin</item>
+      <item>llcorner</item>
+      <item>lrcorner</item>
+      <item>miterlimit</item>
+      <item>mpxbreak</item>
+
+      <item>prologues</item>
+      <item>redpart</item>
+      <item>setbounds</item>
+      <item>tracinglostchars</item>
+      <item>truecorners</item>
+      <item>ulcorner</item>
+
+      <item>urcorner</item>
+      <item>withcolor</item>
+    </list>
+
+    <!--Metafont primitives not found in MetaPost-->
+    <list name="notDefined">
+      <item>autorounding</item>
+      <item>chardx</item>
+
+      <item>chardy</item>
+      <item>fillin</item>
+      <item>granularity</item>
+      <item>hppp</item>
+      <item>proofing</item>
+      <item>smoothing</item>
+
+      <item>tracingedges</item>
+      <item>tracingpens</item>
+      <item>turningcheck</item>
+      <item>vppp</item>
+      <item>xoffset</item>
+      <item>yoffset</item>
+
+    </list>
+
+    <!--Keywords defined by plain.mp-->
+    <list name="mpMacro">
+      <item>ahangle</item>
+      <item>ahlength</item>
+      <item>background</item>
+      <item>bbox</item>
+
+      <item>bboxmargin</item>
+<!--       <item>beginfig</item> -->
+      <item>beveled</item>
+      <item>black</item>
+      <item>blue</item>
+      <item>buildcycle</item>
+      <item>butt</item>
+
+      <item>center</item>
+      <item>cutafter</item>
+      <item>cutbefore</item>
+      <item>cuttings</item>
+      <item>dashpattern</item>
+      <item>defaultfont</item>
+
+      <item>defaultpen</item>
+      <item>defaultscale</item>
+      <item>dotlabel</item>
+      <item>dotlabels</item>
+      <item>drawarrow</item>
+      <item>drawdblarrow</item>
+
+      <item>drawoptions</item>
+<!--       <item>endfig</item> -->
+      <item>evenly</item>
+<!--       <item>extra_beginfig</item> -->
+<!--       <item>extra_endfig</item> -->
+      <item>green</item>
+      <item>label</item>
+      <item>labeloffset</item>
+
+      <item>mitered</item>
+      <item>red</item>
+      <item>rounded</item>
+      <item>squared</item>
+      <item>thelabel</item>
+      <item>white</item>
+
+      <item>base_name</item>
+      <item>base_version</item>
+      <item>upto</item>
+      <item>downto</item>
+      <item>exitunless</item>
+      <item>relax</item>
+
+      <item>gobble</item>
+      <item>gobbled</item>
+      <item>interact</item>
+      <item>loggingall</item>
+      <item>tracingall</item>
+      <item>tracingnone</item>
+
+      <item>eps</item>
+      <item>epsilon</item>
+      <item>infinity</item>
+      <item>right</item>
+      <item>left</item>
+      <item>up</item>
+
+      <item>down</item>
+      <item>origin</item>
+      <item>quartercircle</item>
+      <item>halfcircle</item>
+      <item>fullcircle</item>
+      <item>unitsquare</item>
+
+      <item>identity</item>
+      <item>blankpicture</item>
+      <item>withdots</item>
+      <item>ditto</item>
+      <item>EOF</item>
+      <item>pensquare</item>
+
+      <item>penrazor</item>
+      <item>penspeck</item>
+      <item>whatever</item>
+<!--       <item>abs</item> -->
+      <item>round</item>
+<!--       <item>ceiling</item> -->
+      <item>byte</item>
+
+      <item>dir</item>
+      <item>unitvector</item>
+      <item>inverse</item>
+      <item>counterclockwise</item>
+      <item>tensepath</item>
+<!--       <item>mod</item> -->
+<!--       <item>div</item> -->
+
+<!--       <item>dotprod</item> -->
+      <item>takepower</item>
+      <item>direction</item>
+      <item>directionpoint</item>
+      <item>intersectionpoint</item>
+      <item>softjoin</item>
+      <item>incr</item>
+
+      <item>decr</item>
+      <item>reflectedabout</item>
+      <item>rotatedaround</item>
+      <item>rotatedabout</item>
+<!--       <item>min</item> -->
+<!--       <item>max</item> -->
+      <item>flex</item>
+
+      <item>superellipse</item>
+      <item>interpath</item>
+      <item>magstep</item>
+      <item>currentpen</item>
+      <item>currentpen_path</item>
+      <item>currentpicture</item>
+
+      <item>fill</item>
+      <item>draw</item>
+      <item>filldraw</item>
+      <item>drawdot</item>
+      <item>unfill</item>
+      <item>undraw</item>
+
+      <item>unfilldraw</item>
+      <item>undrawdot</item>
+      <item>erase</item>
+      <item>cutdraw</item>
+      <item>image</item>
+      <item>pickup</item>
+
+      <item>numeric_pickup</item>
+      <item>pen_lft</item>
+      <item>pen_rt</item>
+      <item>pen_top</item>
+      <item>pen_bot</item>
+      <item>savepen</item>
+
+      <item>clearpen</item>
+      <item>clear_pen_memory</item>
+      <item>lft</item>
+      <item>rt</item>
+      <item>top</item>
+      <item>bot</item>
+
+      <item>ulft</item>
+      <item>urt</item>
+      <item>llft</item>
+      <item>lrt</item>
+      <item>penpos</item>
+      <item>penstroke</item>
+
+      <item>arrowhead</item>
+      <item>makelabel</item>
+      <item>labels</item>
+      <item>penlabel</item>
+      <item>range</item>
+      <item>numtok</item>
+
+      <item>thru</item>
+      <item>clearxy</item>
+      <item>clearit</item>
+      <item>clearpen</item>
+      <item>pickup</item>
+      <item>shipit</item>
+
+      <item>bye</item>
+      <item>hide</item>
+      <item>stop</item>
+      <item>solve</item>
+<!--       <item>beginchar</item> -->
+      <item>blacker</item>
+      <item>capsule_def</item>
+
+      <item>change_width</item>
+      <item>define_blacker_pixels</item>
+      <item>define_corrected_pixels</item>
+      <item>define_good_x_pixels</item>
+      <item>define_good_y_pixels</item>
+      <item>define_horizontal_corrected_pixels</item>
+
+      <item>define_pixels</item>
+      <item>define_whole_blacker_pixels</item>
+      <item>define_whole_vertical_blacker_pixels</item>
+      <item>define_whole_vertical_pixels</item>
+<!--       <item>endchar</item> -->
+<!--       <item>extra_beginchar</item> -->
+<!--       <item>extra_endchar</item> -->
+      <item>extra_setup</item>
+
+      <item>font_coding_scheme</item>
+      <item>font_extra_space</item>
+      <item>font_identifier</item>
+      <item>font_normal_shrink</item>
+      <item>font_normal_space</item>
+      <item>font_normal_stretch</item>
+
+      <item>font_quad</item>
+      <item>font_size</item>
+      <item>font_slant</item>
+      <item>font_x_height</item>
+      <item>italcorr</item>
+      <item>labelfont</item>
+
+      <item>makebox</item>
+      <item>makegrid</item>
+      <item>maketicks</item>
+      <item>mode_def</item>
+      <item>mode_setup</item>
+      <item>o_correction</item>
+
+      <item>proofrule</item>
+      <item>proofrulethickness</item>
+      <item>rulepen</item>
+      <item>smode</item>
+      <item>cullit</item>
+      <item>currenttransform</item>
+
+      <item>gfcorners</item>
+      <item>grayfont</item>
+      <item>hround</item>
+      <item>imagerules</item>
+      <item>lowres_fix</item>
+      <item>nodisplays</item>
+
+      <item>notransforms</item>
+      <item>openit</item>
+      <item>proofoffset</item>
+      <item>screenchars</item>
+      <item>screenrule</item>
+      <item>screenstrokes</item>
+
+      <item>showit</item>
+      <item>slantfont</item>
+      <item>titlefont</item>
+      <item>unitpixel</item>
+      <item>vround</item>
+      <item>circmargin</item>
+
+      <item>defaultdx</item>
+      <item>defaultdy</item>
+      <item>boxit</item>
+      <item>boxjoin</item>
+      <item>bpath</item>
+      <item>circleit</item>
+
+      <item>drawboxed</item>
+      <item>drawboxes</item>
+      <item>drawunboxed</item>
+      <item>fixpos</item>
+      <item>fixsize</item>
+      <item>pic</item>
+
+    </list>
+
+    <!--We put all the delimiters here. They will be treated apart, for code folding-->
+    <list name="EnvDelimiters">
+      <item>beginchar</item>
+      <item>endchar</item>
+      <item>extra_beginchar</item>
+      <item>extra_endchar</item>
+
+      <item>beginlogochar</item>
+      <item>beginfig</item>
+      <item>endfig</item>
+      <item>extra_beginfig</item>
+      <item>extra_endfig</item>
+    </list>
+
+    <contexts>
+      <context name="Normal Text"    attribute="Normal Text" lineEndContext="#stay">
+        <keyword String="mfBoolExp"  attribute="BoolExp" context="#stay"/>
+        <keyword String="mfNumExp"   attribute="NumExp" context="#stay"/>
+        <keyword String="mfInternal" attribute="Statement" context="#stay"/>
+        <keyword String="mfPairExp"  attribute="Statement" context="#stay"/>
+        <keyword String="mfPathExp"  attribute="Statement" context="#stay"/>
+        <keyword String="mfPenExp"   attribute="Statement" context="#stay"/>
+
+        <keyword String="mfPicExp"   attribute="Statement" context="#stay"/>
+        <keyword String="mfStringExp" attribute="Statement" context="#stay"/>
+        <keyword String="mfCommand"  attribute="Statement" context="#stay"/>
+        <keyword String="mfType"     attribute="Type" context="#stay"/>
+        <keyword String="mfStatement" attribute="Statement" context="#stay"/>
+        <keyword String="mfDefinition" attribute="Statement" context="#stay"/>
+        <keyword String="mfCondition" attribute="Conditional" context="#stay"/>
+        <keyword String="mfPrimitive" attribute="Statement" context="#stay"/>
+        <keyword String="mfMacro"    attribute="Macro" context="#stay"/>
+
+        <keyword String="mpInternal" attribute="Statement" context="#stay"/>
+        <keyword String="mpMacro"    attribute="Macro" context="#stay"/>
+
+        <DetectChar char="%" attribute="Comment" context="Comment"/>
+        <DetectChar char='"' attribute="String" context="string" beginRegion="String"/>
+        <RegExpr String="(\+|\-|\*|\/|\=|\:\=)" attribute="Operator" context="#stay"/>
+        <Detect2Chars char="." char1="." attribute="Operator" context="#stay"/>
+
+        <HlCOct attribute="Octal"/>
+        <HlCHex attribute="Hex"/>
+
+        <Float attribute="Float"/>
+        <Int attribute="Decimal"/>
+
+        <!--Metafont lengths-->
+        <RegExpr String="\b(bp|cc|cm|dd|in|mm|pc|pt)\b" attribute="Float" context="#stay"/>
+        <RegExpr String="\b-?\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\b" attribute="Float" context="#stay"/>
+        <RegExpr String="\b-?\.\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\b" attribute="Float" context="#stay"/>
+        <RegExpr String="\b-?\d+\.\d+(bp|cc|cm|dd|in|mm|pc|pt)#?\b" attribute="Float" context="#stay"/>
+
+        <!--Metafont coordinates, points, pathes-->
+
+        <RegExpr String="\b[xy]\d(\w|\')*" attribute="Variable" context="#stay"/>
+        <RegExpr String="\bz\d(\w|\')*" attribute="Variable" context="#stay"/>
+        <RegExpr String="\bp\d(\w|\')*" attribute="Variable" context="#stay"/>
+
+        <!--Special characters-->
+        <DetectChar char="$" attribute="Special" context="#stay"/>
+
+        <!--MetaPost has TeX inserts for typeset labels verbatimtex, btex, and etex will be treated as keywords-->
+        <RegExpr String="\b(verbatimtex|btex)\b" insensitive="1" attribute="Identifier" context="TeXMode" beginRegion="TeXblock"/>
+
+        <!--Here are some delimiters with code folding-->
+        <RegExpr String="\bbegin(group|fig|char)\b" insensitive="1" attribute="Identifier" context="#stay" beginRegion="block"/>
+        <RegExpr String="\bend(group|fig|char)\b" insensitive="1" attribute="Identifier" context="#stay" endRegion="block"/>
+
+        <RegExpr String="\bextra_begin(group|fig|char)\b" insensitive="1" attribute="Identifier" context="#stay" beginRegion="block"/>
+        <RegExpr String="\bextra_end(group|fig|char)\b" insensitive="1" attribute="Identifier" context="#stay" endRegion="block"/>
+
+        <RegExpr String="\b(def|vardef)\b" insensitive="1" attribute="Identifier" context="#stay" beginRegion="defblock"/>
+        <RegExpr String="\benddef\b" insensitive="1" attribute="Identifier" context="#stay" endRegion="defblock"/>
+
+        <RegExpr String="\bif\b" insensitive="1" attribute="Conditional" context="#stay" beginRegion="ifblock"/>
+        <RegExpr String="\bfi\b" insensitive="1" attribute="Conditional" context="#stay" endRegion="ifblock"/>
+        <RegExpr String="\b(for|forsuffixes|forever)\b" insensitive="1" attribute="Conditional" context="#stay" beginRegion="forblock"/>
+        <RegExpr String="\bendfor\b" insensitive="1" attribute="Conditional" context="#stay" endRegion="forblock"/>
+
+      </context>
+
+      <context name="string" attribute="String" lineEndContext="#stay">
+        <DetectIdentifier/>
+        <Detect2Chars char="\" char1='"' attribute="String" context="#stay"/>
+
+        <Detect2Chars char="\" char1="\" attribute="String" context="#stay"/>
+        <DetectChar char='"' attribute="String" context="#pop" endRegion="String"/>
+      </context>
+
+      <!--TeX mode : we just define generic TeX commands-->
+      <!--syntax from highlighting file latex.xml-->
+      <context name="TeXMode" attribute="Tex" lineEndContext="#stay">
+        <DetectChar char="\" attribute="Keyword" context="ContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="MathMode" beginRegion="mathMode" />
+
+        <StringDetect String="\(" attribute="Math" context="MathMode" beginRegion="mathMode" />
+        <RegExpr String="\betex\b" insensitive="1" attribute="Identifier" context="#pop" endRegion="TeXblock"/>
+      </context>
+      <context name="ContrSeq" attribute="Keyword" lineEndContext="#pop">
+        <StringDetect String="verb*" attribute="Keyword" context="Verb"/>
+        <RegExpr String="verb(?=[^a-zA-Z])" attribute="Keyword" context="Verb"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z]+(\+?|\*{0,3})" attribute="Keyword" context="#pop"/>
+        <RegExpr String="[^a-zA-Z]" attribute="Keyword" context="#pop" />
+
+      </context>
+      <context name="ToEndOfLine" attribute="Normal Text" lineEndContext="#pop">
+      </context>
+      <context name="Verb" attribute="Verbatim" lineEndContext="#pop#pop" >
+        <RegExpr String="(.)" attribute="Normal Text" dynamic="true" context="VerbEnd" />
+      </context>
+      <context name="VerbEnd" attribute="Verbatim" lineEndContext="#pop#pop#pop" dynamic="true" >
+        <StringDetect String="%1" attribute="Normal Text" context="#pop#pop#pop" dynamic="true" />
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+
+        <RegExpr String="[^%1\xd7]*" attribute="Verbatim" context="#stay" dynamic="true" />
+      </context>
+
+      <!-- math mode: starting with $ or \( -->
+      <context name="MathMode" attribute="Math" lineEndContext="#stay">
+        <StringDetect String="$$" attribute="Error" context="#stay" />
+        <DetectChar char="\" attribute="Keyword Mathmode" context="MathContrSeq"/>
+        <DetectChar char="$" attribute="Math" context="#pop" endRegion="mathMode" />
+        <Detect2Chars char="\" char1=")" attribute="Math" context="#pop" endRegion="mathMode" />
+
+        <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" />
+      </context>
+      <context name="MathContrSeq" attribute="Keyword Mathmode" lineEndContext="#pop">
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+        <RegExpr String="[a-zA-Z]+\*?" attribute="Keyword Mathmode" context="#pop"/>
+        <RegExpr String="[^a-zA-Z]" attribute="Keyword Mathmode" context="#pop" /> 
+      </context>
+
+      <!-- comment -->
+      <context name="Comment" attribute="Comment" lineEndContext="#pop">
+
+        <RegExpr String="(FIXME|TODO):?" attribute="Alert" context="#stay"/>
+        <DetectChar char="&#xd7;" attribute="Bullet" context="#stay"/>
+      </context>
+
+</contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Keyword" defStyleNum="dsNormal" color="#800000" selColor="#60FFFF" bold="0" italic="0"/>
+      <itemData name="Keyword Mathmode" defStyleNum="dsNormal" color="#606000" selColor="#FFD0FF" bold="0" italic="0"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+
+      <itemData name="Error" defStyleNum="dsAlert"/>
+      <itemData name="Math" defStyleNum="dsNormal" color="#00A000" selColor="#FF40FF"  bold="0" italic="0"/>
+      <itemData name="TeX" defStyleNum="dsNormal"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="Alert" defStyleNum="dsAlert"/>
+      <itemData name="Macro"  defStyleNum="dsKeyword" color="#770000" selColor="#99FFFF" bold="0" italic="0"/>
+      <itemData name="Operator" defStyleNum="dsKeyword" color="#244CFF" bold="0"/>
+      <itemData name="Special" defStyleNum="dsKeyword" color="#008000" bold="0"/>
+      <itemData name="Conditional" defStyleNum="dsKeyword"/>
+
+      <itemData name="Statement" defStyleNum="dsNormal" color="#0000FF" selColor="#FFFF00" bold="0" italic="0"/>
+      <itemData name="BoolExp" defStyleNum="dsKeyword" italic="1" bold="0" color="#AA00AA" selColor="#FFFF00"/>
+      <itemData name="NumExp" defStyleNum="dsFunction"/>
+      <itemData name="Variable" defStyleNum="dsKeyword" color="#550022"/>
+      <itemData name="Identifier" defStyleNum="dsKeyword"/>
+      <itemData name="Type" defStyleNum="dsDataType"/>
+      <itemData name="Decimal" defStyleNum="dsDecVal"/>
+      <itemData name="Octal" defStyleNum="dsBaseN"/>
+      <itemData name="Hex" defStyleNum="dsBaseN"/>
+
+      <itemData name="Float" defStyleNum="dsFloat"/>
+ </itemDatas>
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="%"/>
+    </comments>
+    <keywords casesensitive="0" />
+
+  </general>
+</language>
+
diff --git a/xml/mips.xml b/xml/mips.xml
new file mode 100644
--- /dev/null
+++ b/xml/mips.xml
@@ -0,0 +1,359 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="MIPS Assembler" version="3" kateversion="2.4" section="Assembler" extensions="*.s;" mimetype="text/x-mips" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="-1">
+  <highlighting>
+    <list name="type">
+      <item>.align</item>
+      <item>.ascii</item>
+      <item>.asciiz</item>
+      <item>.byte</item>
+      <item>.double</item>
+      <item>.extern</item>
+      <item>.float</item>
+      <item>.globl</item>
+      <item>.half</item>
+      <item>.sdata</item>
+      <item>.set</item>
+      <item>.space</item>
+      <item>.word</item>
+    </list>
+    <list name="section">
+      <item>.data</item>
+      <item>.kdata</item>
+      <item>.ktext</item>
+      <item>.text</item>
+    </list>
+    <list name="hardware">
+      <item>abs.d</item>
+      <item>abs.s</item>
+      <item>add</item>
+      <item>add.d</item>
+      <item>add.s</item>
+      <item>addi</item>
+      <item>addiu</item>
+      <item>addu</item>
+      <item>and</item>
+      <item>andi</item>
+      <item>bc0f</item>
+      <item>bc0t</item>
+      <item>bc1f</item>
+      <item>bc1t</item>
+      <item>bc2f</item>
+      <item>bc2t</item>
+      <item>bc3f</item>
+      <item>bc3t</item>
+      <item>beq</item>
+      <item>bgez</item>
+      <item>bgezal</item>
+      <item>bgtz</item>
+      <item>blez</item>
+      <item>bltz</item>
+      <item>bltzal</item>
+      <item>bne</item>
+      <item>break</item>
+      <item>c.eq.d</item>
+      <item>c.eq.s</item>
+      <item>c.seq.s</item>
+      <item>c.seq.d</item>
+      <item>c.ueq.s</item>
+      <item>c.ueq.d</item>
+      <item>c.olt.d</item>
+      <item>c.olt.s</item>
+      <item>c.ole.d</item>
+      <item>c.ole.s</item>
+      <item>c.ult.d</item>
+      <item>c.ult.s</item>
+      <item>c.ule.d</item>
+      <item>c.ule.s</item>
+      <item>c.le.d</item>
+      <item>c.le.s</item>
+      <item>c.lt.d</item>
+      <item>c.lt.s</item>
+      <item>c.un.s</item>
+      <item>c.un.d</item>
+      <item>cvt.d.s</item>
+      <item>cvt.d.w</item>
+      <item>cvt.s.d</item>
+      <item>cvt.s.w</item>
+      <item>cvt.w.d</item>
+      <item>cvt.w.s</item>
+      <item>div.d</item>
+      <item>div.s</item>
+      <item>j</item>
+      <item>jal</item>
+      <item>jalr</item>
+      <item>jr</item>
+      <item>lb</item>
+      <item>lbu</item>
+      <item>lh</item>
+      <item>lhu</item>
+      <item>lui</item>
+      <item>lw</item>
+      <item>lwc0</item>
+      <item>lwc1</item>
+      <item>lwc2</item>
+      <item>lwc3</item>
+      <item>lwl</item>
+      <item>lwr</item>
+      <item>mfc0</item>
+      <item>mfc1</item>
+      <item>mfc2</item>
+      <item>mfc3</item>
+      <item>mfhi</item>
+      <item>mflo</item>
+      <item>mtc0</item>
+      <item>mtc1</item>
+      <item>mtc2</item>
+      <item>mtc3</item>
+      <item>mthi</item>
+      <item>mtlo</item>
+      <item>mul.d</item>
+      <item>mul.s</item>
+      <item>mult</item>
+      <item>multu</item>
+      <item>nor</item>
+      <item>or</item>
+      <item>ori</item>
+      <item>rfe</item>
+      <item>sb</item>
+      <item>sh</item>
+      <item>sw</item>
+      <item>swcl</item>
+      <item>swl</item>
+      <item>swr</item>
+      <item>sll</item>
+      <item>sllv</item>
+      <item>slt</item>
+      <item>slti</item>
+      <item>sltiu</item>
+      <item>sra</item>
+      <item>srav</item>
+      <item>srl</item>
+      <item>srlv</item>
+      <item>sub</item>
+      <item>sub.d</item>
+      <item>sub.s</item>
+      <item>subu</item>
+      <item>sw</item>
+      <item>swc0</item>
+      <item>swc1</item>
+      <item>swc2</item>
+      <item>swc3</item>
+      <item>swl</item>
+      <item>swr</item>
+      <item>syscall</item>
+      <item>xor</item>
+      <item>xori</item>
+    </list>
+    <list name="pseudo">
+      <item>abs</item>
+      <item>b</item>
+      <item>beqz</item>
+      <item>bge</item>
+      <item>bgeu</item>
+      <item>bgt</item>
+      <item>bgtu</item>
+      <item>ble</item>
+      <item>bleu</item>
+      <item>blt</item>
+      <item>bltu</item>
+      <item>bnez</item>
+      <item>div</item>
+      <item>divu</item>
+      <item>l.d</item>
+      <item>l.s</item>
+      <item>la</item>
+      <item>ld</item>
+      <item>li</item>
+      <item>li.d</item>
+      <item>li.s</item>
+      <item>mfc0.d</item>
+      <item>mfc1.d</item>
+      <item>mfc2.d</item>
+      <item>mfc3.d</item>
+      <item>mov.d</item>
+      <item>mov.s</item>
+      <item>move</item>
+      <item>mul</item>
+      <item>mulo</item>
+      <item>mulou</item>
+      <item>neg</item>
+      <item>neg.d</item>
+      <item>neg.s</item>
+      <item>negu</item>
+      <item>nop</item>
+      <item>not</item>
+      <item>rem</item>
+      <item>remu</item>
+      <item>rol</item>
+      <item>ror</item>
+      <item>s.d</item>
+      <item>s.s</item>
+      <item>sd</item>
+      <item>seq</item>
+      <item>sge</item>
+      <item>sgeu</item>
+      <item>sgt</item>
+      <item>sgtu</item>
+      <item>sle</item>
+      <item>sleu</item>
+      <item>sne</item>
+      <item>ulh</item>
+      <item>ulhu</item>
+      <item>ulw</item>
+      <item>ush</item>
+      <item>usw</item>
+    </list>
+    <list name="register1">
+      <item>$0</item>
+      <item>$1</item>
+      <item>$2</item>
+      <item>$3</item>
+      <item>$4</item>
+      <item>$5</item>
+      <item>$6</item>
+      <item>$7</item>
+      <item>$8</item>
+      <item>$9</item>
+      <item>$10</item>
+      <item>$11</item>
+      <item>$12</item>
+      <item>$13</item>
+      <item>$14</item>
+      <item>$15</item>
+      <item>$16</item>
+      <item>$17</item>
+      <item>$18</item>
+      <item>$19</item>
+      <item>$20</item>
+      <item>$21</item>
+      <item>$22</item>
+      <item>$23</item>
+      <item>$24</item>
+      <item>$25</item>
+      <item>$26</item>
+      <item>$27</item>
+      <item>$28</item>
+      <item>$29</item>
+      <item>$30</item>
+      <item>$31</item>
+      <item>$zero</item>
+      <item>$t0</item>
+      <item>$t1</item>
+      <item>$t2</item>
+      <item>$t3</item>
+      <item>$t4</item>
+      <item>$t5</item>
+      <item>$t6</item>
+      <item>$t7</item>
+      <item>$t8</item>
+      <item>$t9</item>
+    </list>
+    <list name="register2">
+      <item>$v0</item>
+      <item>$v1</item>
+      <item>$a0</item>
+      <item>$a1</item>
+      <item>$a2</item>
+      <item>$a3</item>
+      <item>$k0</item>
+      <item>$k1</item>
+      <item>$at</item>
+      <item>$gp</item>
+      <item>$sp</item>
+      <item>$fp</item>
+      <item>$s0</item>
+      <item>$s1</item>
+      <item>$s2</item>
+      <item>$s3</item>
+      <item>$s4</item>
+      <item>$s5</item>
+      <item>$s6</item>
+      <item>$s7</item>
+      <item>$ra</item>
+    </list>
+    <list name="fp">
+      <item>$f0</item>
+      <item>$f1</item>
+      <item>$f2</item>
+      <item>$f3</item>
+      <item>$f4</item>
+      <item>$f5</item>
+      <item>$f6</item>
+      <item>$f7</item>
+      <item>$f8</item>
+      <item>$f9</item>
+      <item>$f10</item>
+      <item>$f11</item>
+      <item>$f12</item>
+      <item>$f13</item>
+      <item>$f14</item>
+      <item>$f15</item>
+      <item>$f16</item>
+      <item>$f17</item>
+      <item>$f18</item>
+      <item>$f19</item>
+      <item>$f20</item>
+      <item>$f21</item>
+      <item>$f22</item>
+      <item>$f23</item>
+      <item>$f24</item>
+      <item>$f25</item>
+      <item>$f26</item>
+      <item>$f27</item>
+      <item>$f28</item>
+      <item>$f29</item>
+      <item>$f30</item>
+      <item>$f31</item>
+    </list>
+    <contexts>
+      <context name="normal" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Hardware Instruction" context="#stay" String="hardware"/>
+        <keyword attribute="Pseudo Instruction" context="#stay" String="pseudo"/>
+        <keyword attribute="Other Register" context="#stay" String="register1"/>
+        <keyword attribute="Main Register" context="#stay" String="register2"/>
+        <keyword attribute="Floating Point Register" context="#stay" String="fp"/>
+        <keyword attribute="Type" context="#stay" String="section"/>
+        <keyword attribute="Section" context="#stay" String="type"/>
+        <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="region" firstNonSpace="true"/>
+        <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="region" firstNonSpace="true"/>
+        <RegExpr attribute="Comment" context="#stay" String="#.*$" />
+        <RegExpr attribute="Label" context="#stay" String="[\w_\.]+:" firstNonSpace="true"/>
+        <DetectChar attribute="String" context="string" char="&quot;" />
+        <Float attribute="Float" context="#stay"/>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+      </context>
+      <context name="string" attribute="String" lineEndContext="#stay" >
+        <RegExpr attribute="Char" context="#stay" String="\\." />
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Hardware Instruction" defStyleNum="dsKeyword" />
+      <itemData name="Pseudo Instruction" defStyleNum="dsFunction"/>
+      <itemData name="Other Register" defStyleNum="dsDataType" color="#0000ff"/>
+      <itemData name="Main Register" defStyleNum="dsDataType"/>
+      <itemData name="Floating Point Register" defStyleNum="dsFloat"/>
+      <itemData name="Section" defStyleNum="dsDataType"/>
+      <itemData name="Type" defStyleNum="dsKeyword"/>
+      <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="Char" defStyleNum="dsChar" />
+      <itemData name="String" defStyleNum="dsString" />
+      <itemData name="Label" defStyleNum="dsOthers" />
+      <itemData name="Decimal" defStyleNum="dsDecVal"/>
+      <itemData name="Octal" defStyleNum="dsBaseN"/>
+      <itemData name="Hex" defStyleNum="dsBaseN"/>
+      <itemData name="Float" defStyleNum="dsFloat"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" />
+    </comments>
+    <keywords casesensitive="0" weakDeliminator="."/>
+  </general>
+</language>
diff --git a/xml/modelines.xml b/xml/modelines.xml
new file mode 100644
--- /dev/null
+++ b/xml/modelines.xml
@@ -0,0 +1,194 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+    <!ENTITY space " ">
+    <!ENTITY end "&#59;">
+]>
+<!--
+  Copyright (c) 2012-2014 by Alex Turbov (i.zaufi@gmail.com)
+  -->
+<language name="Modelines"
+          version="3"
+          kateversion="5.0"
+          section="Other"
+          extensions=""
+          mimetype=""
+          author="Alex Turbov (i.zaufi@gmail.com)"
+          license="LGPL"
+          hidden="true"
+          priority="5">
+<!--
+  The main purpose of this file is to be included into other syntax files.
+
+  NOTE Default colors are set to 'Comment', so if u don't want to highight it,
+  just leave colors as is...
+
+  TODO Support for other modelines? emacs/vim??
+-->
+<highlighting>
+  <list name="ModelineStartKeyword">
+    <item>kate:</item>
+  </list>
+
+  <list name="Booleans">
+    <item>auto-brackets</item>
+    <!-- NOTE Deprecated -->
+<!--     <item>auto-insert-doxygen</item> -->
+    <item>automatic-spell-checking</item>                 <!-- NOTE Since KDE 4.?? -->
+    <item>backspace-indents</item>
+    <item>block-selection</item>
+    <item>bookmark-sorting</item>
+    <item>bom</item>
+    <item>byte-order-marker</item>
+    <item>dynamic-word-wrap</item>
+    <item>folding-markers</item>
+    <item>folding-preview</item>                          <!-- Since KTextEditor 5.24 -->
+    <item>icon-border</item>
+    <item>indent-pasted-text</item>                       <!-- Since KDE 4.11 -->
+    <item>keep-extra-spaces</item>
+    <item>line-numbers</item>
+    <item>newline-at-eof</item>                           <!-- Since KDE 4.9 -->
+    <item>overwrite-mode</item>
+    <item>persistent-selection</item>
+    <!-- NOTE Deprecated since KDE 4.10 -->
+    <!-- <item>remove-trailing-space</item> -->
+    <item>replace-tabs-save</item>
+    <item>replace-tabs</item>
+    <item>replace-trailing-space-save</item>
+    <item>smart-home</item>
+    <item>scrollbar-minimap</item>                         <!-- Since KTextEditor 5.24 -->
+    <item>scrollbar-preview</item>                         <!-- Since KTextEditor 5.24 -->
+    <item>space-indent</item>
+    <item>show-tabs</item>
+    <item>show-trailing-spaces</item>                     <!-- NOTE Since KDE 4.?? -->
+    <item>tab-indents</item>
+    <item>word-wrap</item>
+    <item>wrap-cursor</item>
+  </list>
+
+  <list name="True">
+    <item>on</item>
+    <item>true</item>
+    <item>1</item>
+  </list>
+
+  <list name="False">
+    <item>off</item>
+    <item>false</item>
+    <item>0</item>
+  </list>
+
+  <list name="Integrals">
+    <item>auto-center-lines</item>
+    <item>font-size</item>
+    <item>indent-mode</item>
+    <item>indent-width</item>
+    <item>tab-width</item>
+    <item>undo-steps</item>
+    <item>word-wrap-column</item>
+  </list>
+
+  <list name="Strings">
+    <item>background-color</item>
+    <item>bracket-highlight-color</item>
+    <item>current-line-color</item>
+    <item>default-dictionary</item>
+    <item>encoding</item>                                 <!-- NOTE Since KDE 4.?? -->
+    <item>eol</item>                                      <!-- Valid settings are unix, mac and dos -->
+    <item>end-of-line</item>                              <!-- Valid settings are unix, mac and dos -->
+    <item>font</item>
+    <item>hl</item>
+    <item>icon-bar-color</item>
+    <item>mode</item>                                     <!-- NOTE Since KDE 4.?? -->
+    <item>scheme</item>
+    <item>selection-color</item>
+    <item>syntax</item>
+    <item>word-wrap-marker-color</item>
+  </list>
+
+  <list name="RemoveSpaces">
+    <item>remove-trailing-spaces</item>
+  </list>
+
+  <list name="RemoveSpacesOptions">
+    <item>0</item>
+    <item>-</item>
+    <item>none</item>
+
+    <item>modified</item>
+    <item>mod</item>
+    <item>+</item>
+    <item>1</item>
+
+    <item>all</item>
+    <item>*</item>
+    <item>2</item>
+  </list>
+
+  <contexts>
+    <context name="Normal" attribute="Comment" lineEndContext="#pop">
+      <DetectSpaces />
+      <keyword String="ModelineStartKeyword" context="Modeline" attribute="Keyword" />
+      <RegExpr String="kate-(mimetype|wildcard)\(.*\):" context="Modeline" attribute="Keyword" />
+      <LineContinue context="#pop" />
+    </context>
+
+    <context name="Modeline" attribute="Comment" lineEndContext="#pop">
+      <DetectSpaces />
+      <keyword String="Booleans" context="Booleans" attribute="Variable" />
+      <keyword String="Integrals" context="Integrals" attribute="Variable" />
+      <keyword String="Strings" context="Strings" attribute="Variable" />
+      <keyword String="RemoveSpaces" context="RemoveSpaces" attribute="Variable" />
+      <LineContinue context="#pop" />
+    </context>
+
+    <context name="Booleans" attribute="Comment" lineEndContext="#pop">
+      <DetectSpaces />
+      <keyword String="True" attribute="Option ON" context="#stay" />
+      <keyword String="False" attribute="Option OFF" context="#stay" />
+      <DetectChar char="&end;" context="#pop" attribute="Variable" />
+      <LineContinue context="#pop" />
+    </context>
+
+    <context name="Integrals" attribute="Comment" lineEndContext="#pop">
+      <DetectSpaces />
+      <Int attribute="Number" context="#stay" />
+      <DetectChar char="&end;" context="#pop" attribute="Variable" />
+      <LineContinue context="#pop" />
+    </context>
+
+    <context name="Strings" attribute="String" lineEndContext="#pop">
+      <DetectSpaces />
+      <RegExpr String="[^&end;&space;]" context="#stay" />
+      <DetectChar char="&end;" context="#pop" attribute="Variable" />
+      <LineContinue context="#pop" />
+    </context>
+
+    <context name="RemoveSpaces" attribute="Comment" lineEndContext="#pop">
+      <DetectSpaces />
+      <keyword String="RemoveSpacesOptions" attribute="Value" context="#pop" />
+      <DetectChar char="&end;" context="#pop" attribute="Variable" />
+      <LineContinue context="#pop" />
+    </context>
+
+  </contexts>
+
+  <itemDatas>
+    <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />
+    <itemData name="Keyword" defStyleNum="dsAnnotation" spellChecking="false" />
+    <itemData name="Variable" defStyleNum="dsCommentVar" spellChecking="false" />
+    <itemData name="Number" defStyleNum="dsDecVal" spellChecking="false" />
+    <itemData name="String" defStyleNum="dsString" spellChecking="false" />
+    <itemData name="Value" defStyleNum="dsOthers" spellChecking="false" />
+    <itemData name="Option ON" defStyleNum="dsOthers" spellChecking="false" />
+    <itemData name="Option OFF" defStyleNum="dsOthers" spellChecking="false" />
+  </itemDatas>
+
+</highlighting>
+
+<general>
+  <keywords casesensitive="1" weakDeliminator=":-" />
+</general>
+
+</language>
+<!-- kate: indent-width 2; -->
diff --git a/xml/modula-2.xml b/xml/modula-2.xml
new file mode 100644
--- /dev/null
+++ b/xml/modula-2.xml
@@ -0,0 +1,188 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Modula-2" version="2" kateversion="2.2" section="Sources" extensions="*.mod;*.def;*.mi;*.md" mimetype="text/x-modula-2">
+  <highlighting>
+    <list name="directives">
+      <item>ASSEMBLER</item>
+      <item>ALLOCATE</item>
+      <item>DEALLOCATE</item>
+      <item>SIZE</item>
+      <item>Write</item>
+      <item>WriteString</item>
+      <item>WriteCard</item>
+      <item>WriteLn</item>
+      <item>WriteBf</item>
+      <item>WriteInt</item>
+      <item>WriteReal</item>
+      <item>WriteLongReal</item>
+      <item>Read</item>
+      <item>ReadString</item>
+      <item>ReadCard</item>
+      <item>ReadInt</item>
+      <item>ReadReal</item>
+      <item>ReadLongReal</item>
+      <item>Open</item>
+      <item>Close</item>
+      <item>OpenInput</item>
+      <item>OpenOutput</item>
+      <item>Accessible</item>
+      <item>Erase</item>
+      <item>EOF</item>
+      <item>Done</item>
+      <item>EmptyString</item>
+      <item>Assign</item>
+      <item>Append</item>
+      <item>Length</item>
+      <item>StrEq</item>
+      <item>Copy</item>
+      <item>Concat</item>
+      <item>pos</item>
+      <item>Delete</item>
+      <item>Insert</item>
+      <item>compare</item>
+      <item>CAPS</item>
+      <item>PutBf</item>
+      <item>GetArgs</item>
+      <item>GetEnv</item>
+      <item>ResetClock</item>
+      <item>UserTime</item>
+      <item>SystemTime</item>
+      <item>GetChar</item>
+      <item>GetInt</item>
+      <item>GetCard</item>
+      <item>GetString</item>
+      <item>GetReal</item>
+      <item>GetLongReal</item>
+      <item>PutChar</item>
+      <item>PutInt</item>
+      <item>PutCard</item>
+      <item>PutString</item>
+      <item>PutReal</item>
+      <item>PutLongReal</item>
+      <item>PutLn</item>
+    </list>
+    <list name="keywords">
+      <item>AND</item>
+      <item>ARRAY</item>
+      <item>ASM</item>
+      <item>BEGIN</item>
+      <item>CASE</item>
+      <item>CONST</item>
+      <item>DIV</item>
+      <item>DO</item>
+      <item>ELSE</item>
+      <item>ELSIF</item>
+      <item>END</item>
+      <item>FOR</item>
+      <item>IF</item>
+      <item>IMPLEMENTATION</item>
+      <item>IN</item>
+      <item>SET</item>
+      <item>INCL</item>
+      <item>EXCL</item>
+      <item>ABS</item>
+      <item>BITSET</item>
+      <item>CAP</item>
+      <item>CHR</item>
+      <item>DEC</item>
+      <item>HALT</item>
+      <item>HIGH</item>
+      <item>INC</item>
+      <item>MAX</item>
+      <item>MIN</item>
+      <item>ODD</item>
+      <item>ORD</item>
+      <item>PROC</item>
+      <item>TRUNC</item>
+      <item>VAL</item>
+      <item>MOD</item>
+      <item>NIL</item>
+      <item>NOT</item>
+      <item>OF</item>
+      <item>OR</item>
+      <item>PROCEDURE</item>
+      <item>MODULE</item>
+      <item>DEFINITION</item>
+      <item>RECORD</item>
+      <item>REPEAT</item>
+      <item>THEN</item>
+      <item>TO</item>
+      <item>TYPE</item>
+      <item>UNTIL</item>
+      <item>LOOP</item>
+      <item>VAR</item>
+      <item>WHILE</item>
+      <item>WITH</item>
+      <item>EXIT</item>
+      <item>FALSE</item>
+      <item>TRUE</item>
+      <item>BY</item>
+      <item>FROM</item>
+      <item>IMPORT</item>
+      <item>EXPORT</item>
+      <item>QUALIFIED</item>
+      <item>RETURN</item>
+      <item>NEWPROCESS</item>
+      <item>TRANSFER</item>
+      <item>IOTRANSFER</item>
+      <item>FOREIGN</item>
+    </list>
+    <list name="types">
+      <item>INTEGER</item>
+      <item>CARDINAL</item>
+      <item>SHORTINT</item>
+      <item>SHORTCARD</item>
+      <item>LONGINT</item>
+      <item>LONGREAL</item>
+      <item>CHAR</item>
+      <item>BOOLEAN</item>
+      <item>POINTER</item>
+      <item>ADDRESS</item>
+      <item>ADR</item>
+      <item>REAL</item>
+      <item>File</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Directive" context="#stay" String="directives"/>
+        <keyword attribute="Type" context="#stay" String="types"/>
+        <Float attribute="Number" context="#stay"/>
+        <Int attribute="Number" context="#stay"/>
+        <DetectChar attribute="String" context="String1" char="&quot;" />
+        <DetectChar attribute="String" context="String2" char="'" />
+        <StringDetect attribute="Directive" context="Prep1" String="(*$"/>
+        <Detect2Chars attribute="Comment" context="Comment2" char="(" char1="*"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String1">
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String2">
+        <DetectChar attribute="String" context="#pop" char="'" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Comment2">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1=")"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment3" />
+      <context attribute="Directive" lineEndContext="#stay" name="Prep1">
+        <StringDetect attribute="Directive" context="Prep1" String="$*)"/>
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Keyword"     defStyleNum="dsKeyword" />
+      <itemData name="Type"        defStyleNum="dsDataType"/>
+      <itemData name="Number"      defStyleNum="dsDecVal" />
+      <itemData name="String"      defStyleNum="dsString" />
+      <itemData name="Directive"   defStyleNum="dsOthers" />
+      <itemData name="Comment"     defStyleNum="dsComment" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" />
+    <comments>
+      <comment name="multiLine" start="(*" end="*)" />
+    </comments>
+  </general>
+</language>
diff --git a/xml/modula-3.xml b/xml/modula-3.xml
new file mode 100644
--- /dev/null
+++ b/xml/modula-3.xml
@@ -0,0 +1,315 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- author ik Iztok Kobal (iztok.kobal@siol.net) -->
+<!-- followed CM3 documentation (http://www.elegosoft.com/cm3/doc/reference/index.html , chapter Syntax) -->
+<!-- 03.03.2005 ik mailed version 1.00 to Dominik Haumann <dhdev@gmx.de> of kate team -->
+<!-- 04.03.2005 ik mailed version 1.01 with fixed/implemented nested comments to Dominik -->
+<!-- known bug: notation Regexp( [0-9]*\. ) should be not interpreted as neither Integer neither Real -->
+<!-- known bug: notation Regexp ( "  \" " ) is not properly interpreted -->
+<language name="Modula-3" version="1.01" kateversion="2.1" section="Sources" extensions="*.m3;*.i3;*.ig;*.mg;" mimetype="text/x-modula-3" license="LGPL">
+  <highlighting>
+    <list name="keywords">
+<!--      <item> AND </item> -->
+      <item> ANY </item>
+      <item> ARRAY </item>
+      <item> AS </item>
+      <item> BEGIN </item>
+      <item> BITS </item>
+      <item> BRANDED </item>
+      <item> BY </item>
+      <item> CASE </item>
+      <item> CONST </item>
+<!--      <item> DIV </item> -->
+      <item> DO </item>
+      <item> ELSE </item>
+      <item> ELSIF </item>
+      <item> END </item>
+      <item> EVAL </item>
+      <item> EXCEPT </item>
+      <item> EXCEPTION </item>
+      <item> EXIT </item>
+      <item> EXPORTS </item>
+      <item> FINALLY </item>
+      <item> FOR </item>
+      <item> FROM </item>
+      <item> GENERIC </item>
+      <item> IF </item>
+      <item> IMPORT </item>
+<!--      <item> IN </item> -->
+      <item> INTERFACE </item>
+      <item> LOCK </item>
+      <item> LOOP </item>
+      <item> METHODS </item>
+<!--      <item> MOD </item> -->
+      <item> MODULE </item>
+<!--      <item> NOT </item> -->
+      <item> OBJECT </item>
+      <item> OF </item>
+<!--      <item> OR </item> -->
+      <item> OVERRIDES </item>
+      <item> PROCEDURE </item>
+      <item> RAISE </item>
+      <item> RAISES </item>
+      <item> READONLY </item>
+      <item> RECORD </item>
+      <item> REF </item>
+      <item> REPEAT </item>
+      <item> RETURN </item>
+      <item> REVEAL </item>
+      <item> ROOT </item>
+      <item> SET </item>
+      <item> THEN </item>
+      <item> TO </item>
+      <item> TRY </item>
+      <item> TYPE </item>
+      <item> TYPECASE </item>
+      <item> UNSAFE </item>
+      <item> UNTIL </item>
+      <item> UNTRACED </item>
+      <item> VALUE </item>
+      <item> VAR </item>
+      <item> WHILE </item>
+      <item> WITH </item>
+    </list>
+    <list name="operators">
+      <item> AND </item> 
+      <item> DIV </item> 
+      <item> IN </item> 
+      <item> MOD </item>
+      <item> NOT </item>
+      <item> OR </item>
+      <item> + </item>
+      <item> &lt; </item>
+      <item> # </item>
+      <item> = </item>
+      <item> ; </item>
+      <item> .. </item>
+      <item> : </item>
+      <item> - </item>
+      <item> &gt; </item>
+      <item> { </item>
+      <item> } </item>
+      <item> | </item>
+      <item> := </item>
+      <item> &lt;: </item>
+      <item> * </item>
+      <item> &lt;= </item>
+      <item> ( </item>
+      <item> ) </item>
+      <item> ^ </item>
+      <item> , </item>
+      <item> =&gt; </item>
+      <item> / </item>
+      <item> &gt;= </item>
+      <item> [ </item>
+      <item> ] </item>
+      <item> . </item>
+      <item> &amp; </item>
+    </list>
+    <list name="types">
+      <item> ADDRESS </item>
+      <item> BOOLEAN </item>
+      <item> CARDINAL </item>
+      <item> CHAR </item>
+      <item> EXTENDED </item>
+      <item> INTEGER </item>
+      <item> LONGREAL </item>
+      <item> MUTEX </item>
+      <item> NULL </item>
+      <item> REAL </item>
+      <item> REFANY </item>
+      <item> T </item>
+      <item> TEXT </item>
+    </list>
+    <list name="constants">
+      <item> FALSE </item>
+      <item> NIL </item>
+      <item> TRUE </item>
+    </list>
+    <list name="pervasives">
+      <item> ABS </item>
+      <item> ADR </item>
+      <item> ADRSIZE </item>
+      <item> BITSIZE </item>
+      <item> BYTESIZE </item>
+      <item> CEILING </item>
+      <item> DEC </item>
+      <item> DISPOSE </item>
+      <item> FIRST </item>
+      <item> FLOAT </item>
+      <item> FLOOR </item>
+      <item> INC </item>
+      <item> ISTYPE </item>
+      <item> LAST </item>
+      <item> LOOPHOLE </item>
+      <item> MAX </item>
+      <item> MIN </item>
+      <item> NARROW </item>
+      <item> NEW </item>
+      <item> NUMBER </item>
+      <item> ORD </item>
+      <item> ROUND </item>
+      <item> SUBARRAY </item>
+      <item> TRUNC </item>
+      <item> TYPECODE </item>
+      <item> VAL </item>
+    </list>
+    <list name="stdlibs">
+      <item> Text </item>
+      <item> Text.Length </item>
+      <item> Text.Empty </item>
+      <item> Text.Equal </item>
+      <item> Text.Compare </item>
+      <item> Text.Cat </item>
+      <item> Text.Sub </item>
+      <item> Text.Hash </item>
+      <item> Text.HasWideChar </item>
+      <item> Text.GetChar </item>
+      <item> Text.GetWideChar </item>
+      <item> Text.SetChars </item>
+      <item> Text.SetWideChars </item>
+      <item> Text.FromChars </item>
+      <item> Text.FromWideChars </item>
+      <item> Text.FindChar </item>
+      <item> Text.FindWideChar </item>
+      <item> Text.FindCharR </item>
+      <item> Text.FindWideCharR </item>
+      <item> Fmt </item>
+      <item> Fmt.Bool </item>
+      <item> Fmt.Char </item>
+      <item> Fmt.Int </item>
+      <item> Fmt.Unsigned </item>
+      <item> Fmt.Real </item>
+      <item> Fmt.LongReal </item>
+      <item> Fmt.Extended </item>
+      <item> Fmt.Pad </item>
+      <item> Fmt.F </item>
+      <item> Fmt.FN </item>
+      <item> Scan </item>
+      <item> Scan.Bool </item>
+      <item> Scan.Int </item>
+      <item> Scan.Unsigned </item>
+      <item> Scan.Real </item>
+      <item> Scan.LongReal </item>
+      <item> Scan.Extended </item>
+      <item> IO </item>
+      <item> IO.Put </item>
+      <item> IO.PutChar </item>
+      <item> IO.PutWideChar </item>
+      <item> IO.PutInt </item>
+      <item> IO.PutReal </item>
+      <item> IO.EOF </item>
+      <item> IO.GetLine </item>
+      <item> IO.GetChar </item>
+      <item> IO.GetWideChar </item>
+      <item> IO.GetInt </item>
+      <item> IO.GetReal </item>
+      <item> IO.OpenRead </item>
+      <item> IO.OpenWrite </item>
+      <item> Rd </item>
+      <item> Rd.GetChar </item>
+      <item> Rd.GetWideChar </item>
+      <item> Rd.EOF </item>
+      <item> Rd.UnGetChar </item>
+      <item> Rd.CharsReady </item>
+      <item> Rd.GetSub </item>
+      <item> Rd.GetWideSub </item>
+      <item> Rd.GetSubLine </item>
+      <item> Rd.GetWideSubLine </item>
+      <item> Rd.GetText </item>
+      <item> Rd.GetWideText </item>
+      <item> Rd.GetLine </item>
+      <item> Rd.GetWideLine </item>
+      <item> Rd.Seek </item>
+      <item> Rd.Close </item>
+      <item> Rd.Index </item>
+      <item> Rd.Length </item>
+      <item> Rd.Intermittend </item>
+      <item> Rd.Seekable </item>
+      <item> Rd.Closed </item>
+      <item> Wr </item>
+      <item> Wr.PutChar </item>
+      <item> Wr.PutWideChar </item>
+      <item> Wr.PutText </item>
+      <item> Wr.PutWideText </item>
+      <item> Wr.PutString </item>
+      <item> Wr.PutWideString </item>
+      <item> Wr.Seek </item>
+      <item> Wr.Flush </item>
+      <item> Wr.Close </item>
+      <item> Wr.Length </item>
+      <item> Wr.Index </item>
+      <item> Wr.Seekable </item>
+      <item> Wr.Closed </item>
+      <item> Wr.Buffered </item>
+      <item> Lex </item>
+      <item> Lex.Scan </item>
+      <item> Lex.Skip </item>
+      <item> Lex.Match </item>
+      <item> Lex.Bool </item>
+      <item> Lex.Int </item>
+      <item> Lex.Unsigned </item>
+      <item> Lex.Real </item>
+      <item> Lex.LongReal </item>
+      <item> Lex.Extended </item>
+      <item> Params </item>
+      <item> Params.Count </item>
+      <item> Params.Get </item>
+      <item> Env </item>
+      <item> Env.Count </item>
+      <item> Env.Get </item>
+      <item> Env.GetNth </item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr attribute="Keyword" context="#stay" String="PROCEDURE[\s].*\(" beginRegion="Proc"/>
+        <RegExpr attribute="Keyword" context="#stay" String="END\s*[A-Za-z][A-Za-z0-9_]*\;" endRegion="Proc"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(RECORD|OBJECT|TRY|WHILE|FOR|REPEAT|LOOP|IF|CASE|WITH)\b" beginRegion="Block"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(END;|END)\b" endRegion="Block"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Operator" context="#stay" String="operators"/>
+        <keyword attribute="Type" context="#stay" String="types"/>
+        <keyword attribute="Constant" context="#stay" String="constants"/>
+        <keyword attribute="Pervasive" context="#stay" String="pervasives"/>
+        <keyword attribute="StdLib" context="#stay" String="stdlibs"/>
+        <RegExpr attribute="Real" context="#stay" String="\b[\+|\-]{0,1}[0-9]{1,}\.[0-9]{1,}([E|e|D|d|X|x][\+|\-]{0,1}[0-9]{1,}){0,1}\b"/>
+        <RegExpr attribute="Integer" context="#stay" String="\b([\+|\-]{0,1}[0-9]{1,}|([2-9]|1[0-6])\_[0-9A-Fa-f]{1,})\b"/>
+        <DetectChar attribute="String" context="String1" char="&quot;"/>
+        <RegExpr attribute="Char" context="#stay" String="\'(.|\\[ntrf\\'&quot;]|\\[0-7]{3})\'"/>
+        <Detect2Chars attribute="Pragma" context="Prep1" char="&lt;" char1="*"/>
+        <Detect2Chars attribute="Comment" context="Comment2" char="(" char1="*" beginRegion="Comment"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String1">
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Comment2">
+        <Detect2Chars attribute="Comment" context="Comment2" char="(" char1="*" beginRegion="Comment"/>
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1=")" endRegion="Comment"/>
+      </context>
+      <context attribute="Pragma" lineEndContext="#stay" name="Prep1">
+        <Detect2Chars attribute="Pragma" context="#pop" char="*" char1="&gt;"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Operator" defStyleNum="dsKeyword"/>
+      <itemData name="Type" defStyleNum="dsDataType"/>
+      <itemData name="Integer" defStyleNum="dsBaseN"/>
+      <itemData name="Real" defStyleNum="dsFloat"/>
+      <itemData name="Constant" defStyleNum="dsDecVal"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="Char" defStyleNum="dsChar"/>
+      <itemData name="Pervasive" defStyleNum="dsFunction"/>
+      <itemData name="StdLib" defStyleNum="dsFunction"/>
+      <itemData name="Comment" defStyleNum="dsComment" bold="0" italic="1"/>
+      <itemData name="Pragma" defStyleNum="dsOthers" bold="0" italic="1"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" weakDeliminator="."/>
+    <comments>
+      <comment name="multiLine" start="(*" end="*)"/>
+    </comments>
+  </general>
+</language>
diff --git a/xml/monobasic.xml b/xml/monobasic.xml
new file mode 100644
--- /dev/null
+++ b/xml/monobasic.xml
@@ -0,0 +1,216 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<!--
+    Mono Basic syntax
+
+    Created: Davide Bettio <davide.bettio@kdemail.net>
+    Date: 09/09/2005
+    Version: 1.01
+    License: GNU General Public License
+-->
+
+<language name="MonoBasic" section="Sources" version="3" kateversion="2.3" extensions="*.vb" mimetype="" author="Davide Bettio (davide.bettio@kdemail.net)" license="GPL">
+  <highlighting>
+     <list name="keywords">
+        <item>Option</item>
+	<item>Explicit</item>
+	<item>Strict</item>
+	<item>Imports</item>
+	<item>Inherits</item>
+	<item>As</item>
+	<item>New</item>
+	<item>Dim</item>
+	<item>Redim</item>
+	<item>Private</item>
+	<item>Friend</item>
+	<item>Public</item>
+	<item>Const</item>
+	<item>ReadOnly</item>
+	<item>WriteOnly</item>
+	<item>Default</item>
+	<item>Shared</item>
+	<item>Shadows</item>
+	<item>Protected</item>
+	<item>Overloads</item>
+	<item>Overrides</item>
+	<item>NotOverridable</item>
+	<item>NotInheritable</item>
+	<item>MustInherit</item>
+	<item>MustOverride</item>
+	<item>MyBase</item>
+	<item>MyClass</item>
+	<item>Me</item>
+	<item>Delegate</item>
+	<item>Catch</item>
+	<item>Finaly</item>
+	<item>When</item>
+	<item>Throw</item>
+	<item>To</item>
+	<item>Step</item>
+	<item>Then</item>
+	<item>Else</item>
+	<item>True</item>
+	<item>False</item>
+	<item>Nothing</item>
+	<item>Call</item>
+	<item>ByVal</item>
+	<item>ByRef</item>
+	<item>Optional</item>
+	<item>ParamArray</item>
+	<item>Return</item>
+	<item>Declare</item>
+	<item>WithEvents</item>
+	<item>Event</item>
+	<item>RaiseEvent</item>
+	<item>AddHandler</item>
+	<item>And</item>
+	<item>Or</item>
+	<item>Not</item>
+	<item>Xor</item>
+	<item>AndAlso</item>
+	<item>OrElse</item>
+	<item>Goto</item>
+	<item>On</item>
+	<item>Error</item>
+	<item>Resume</item>
+      </list>
+
+      <list name="types">
+	<item>Boolean</item>
+	<item>Char</item>
+	<item>String</item>
+	<item>Integer</item>
+	<item>Long</item>
+	<item>Double</item>
+	<item>Object</item>
+	<item>Exception</item>
+	<item>Date</item>
+	<item>DateTime</item>
+	<item>Int16</item>
+	<item>Int32</item>
+	<item>Int64</item>
+	<item>ParamArray</item>
+	<item>TimeSpan</item>
+	<item>Byte</item>
+	<item>Decimal</item>
+	<item>IntPtr</item>
+	<item>Single</item>
+	<item>Guid</item>
+      </list>
+
+      <contexts>
+	<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+	   <keyword attribute="Keyword" context="#stay" String="keywords"/>
+	   <keyword attribute="Type" context="#stay" String="types"/>
+	   <DetectChar attribute="String" context="String" char="&quot;"/>
+	   <DetectChar attribute="Comment" context="Comment" char="'" />
+
+	   <!-- Namespace -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Namespace)([\s]|$)"  insensitive="true" beginRegion="Namespace1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Namespace.*$" insensitive="true" endRegion="Namespace1"/>
+
+	   <!-- Module -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Module)([\s]|$)"  insensitive="true" beginRegion="Module1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Module.*$" insensitive="true" endRegion="Module1"/>
+
+	   <!-- Class -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Class)([\s]|$)"  insensitive="true" beginRegion="Class1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Class.*$" insensitive="true" endRegion="Class1"/>
+
+	   <!-- Interface -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Interface)([\s]|$)"  insensitive="true" beginRegion="Interface1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Interface.*$" insensitive="true" endRegion="Interface1"/>
+
+	   <!-- Structure -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Structure)([\s]|$)"  insensitive="true" beginRegion="Structure1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Structure.*$" insensitive="true" endRegion="Structure1"/>
+	
+	   <!-- Enum -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Enum)([\s]|$)"  insensitive="true" beginRegion="Enum1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Enum.*$" insensitive="true" endRegion="Enum1"/>
+	
+	   <!-- Property -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Property)([\s]|$)"  insensitive="true" beginRegion="Property1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Property.*$" insensitive="true" endRegion="Property1"/>
+
+	   <!-- Get -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Get)([\s]|$)"  insensitive="true" beginRegion="Get1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Get.*$" insensitive="true" endRegion="Get1"/>
+
+	   <!-- Set -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Set)([\s]|$)"  insensitive="true" beginRegion="Set1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Set.*$" insensitive="true" endRegion="Set1"/>
+
+	   <!-- Sub -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Sub)([.\s]|$)"  insensitive="true" beginRegion="Sub1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Sub.*$" insensitive="true" endRegion="Sub1"/>
+           <RegExpr attribute="Keyword" context="#stay" String="Exit.Sub.*$" insensitive="true"/>
+
+	   <!-- Function -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Function)([\s]|$)"  insensitive="true" beginRegion="Function1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Function.*$" insensitive="true" endRegion="Function1"/>
+           <RegExpr attribute="Keyword" context="#stay" String="Exit.Function.*$" insensitive="true"/>
+
+	   <!-- Try -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Try)([\s]|$)"  insensitive="true" beginRegion="Try1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Try.*$" insensitive="true" endRegion="Try1"/>
+
+	   <!-- If -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(If)([\s]|$)"  insensitive="true" beginRegion="If1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.If.*$" insensitive="true" endRegion="If1"/>
+
+	   <!-- Select case -->
+	   <RegExpr attribute="Keyword" context="#stay" String="Select.Case.*$"  insensitive="true" beginRegion="SelectCase1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.Select.*$" insensitive="true" endRegion="SelectCase1"/>
+	
+	   <!-- For -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(For)([\s]|$)"  insensitive="true" beginRegion="For1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Next)([\s]|$)" insensitive="true" endRegion="For1"/>
+	
+	   <!-- Do Loop -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Do)([\s]|$)"  insensitive="true" beginRegion="DoLoop1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(Loop)([\s]|$)" insensitive="true" endRegion="DoLoop1"/>
+
+	   <!-- While -->
+	   <RegExpr attribute="Keyword" context="#stay" String="\b(While)([\s]|$)"  insensitive="true" beginRegion="While1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="End.While.*$" insensitive="true" endRegion="While1"/>
+	   <RegExpr attribute="Keyword" context="#stay" String="Exit.While.*$" insensitive="true"/>
+	   
+	   <!-- #Region -->
+	   <RegExpr attribute="Preprocessor" context="#stay" String="#Region.*$"  insensitive="true" beginRegion="Region1"/>
+	   <RegExpr attribute="Preprocessor" context="#stay" String="#End.Region.*$" insensitive="true" endRegion="Region1"/>
+
+	   <!-- #If -->
+	   <RegExpr attribute="Preprocessor" context="#stay" String="#If.*$"  insensitive="true" beginRegion="PreprocessorIf1"/>
+	   <RegExpr attribute="Preprocessor" context="#stay" String="#End.If.*$" insensitive="true" endRegion="PreprocessorIf1"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#pop" name="String">
+         <LineContinue attribute="String" context="#pop"/>
+	 <HlCStringChar attribute="String Char" context="#stay"/>
+         <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+
+      <context name="Comment" attribute="Comment" lineEndContext="#pop"/>
+    </contexts>
+
+    <itemDatas>
+       <itemData name="Normal Text" defStyleNum="dsNormal"/>
+       <itemData name="Keyword" defStyleNum="dsKeyword" color="#000080" bold="0"/>
+       <itemData name="Type" defStyleNum="dsDataType" color="#000080" bold="0"/>
+       <itemData name="String" defStyleNum="dsString" color="#800000"/>
+       <itemData name="String Char" defStyleNum="dsSpecialChar"/>
+       <itemData name="Preprocessor" defStyleNum="dsOthers" color="#008000"/>
+       <itemData name="Comment" defStyleNum="dsComment" color="#008000"/>
+    </itemDatas>
+
+   </highlighting>
+	
+   <general>
+      <keywords casesensitive="0"/>
+      <comments>
+         <comment name="singleLine" start="'"/>
+      </comments>
+   </general>
+</language>
diff --git a/xml/nasm.xml b/xml/nasm.xml
new file mode 100644
--- /dev/null
+++ b/xml/nasm.xml
@@ -0,0 +1,893 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+  NASM Intel x86 assembly syntax
+
+  Created: Nicola Gigante <nicola.gigante@gmail.com>
+    Changes: Bogdan Drozdowski (bogdandr@op.pl)
+  Version: 1.3
+             Lyle Putnam (lcputnam@gmail.com)
+  Version: 1.4
+
+Changes from 1.0:
+  15/01/2006: version 1.1
+    Added the rol instruction (bytewise rotate left) to the keywords list.
+  17/01/2006: version 1.2
+    Remade the list of instructions directly from the nasm documentation.
+  22/04/2006: version 1.3 from Bogdan Drozdowski (bogdandr@op.pl):
+    Removed duplicates form the instruction list and made it alphabetical.
+    Added new instructions (some SSE* and 64-bit, NASM may not know all of them).
+    Corrections in register list and a few new ones (not 64-bit).
+    Changed regexes for hex, octal and bin numbers. Now words like
+      "change" and "blah" will NOT have the "ch" and "ah" coloured.
+  24/07/2011: Version 1.4 from Lyle Putnam (lcputnam@gmail.com):
+    The above change to fix the regex for hex numbers was incorrect on Kate
+    3.6.2. Fixed.
+
+  GNU GENERAL PUBLIC LICENCE
+
+This program, including associated files, is free software.  You may
+distribute it and/or modify it under the terms of the GNU General Public
+License as published by the Free Software Foundation; either Version 2 of
+the license, or (at your option) any later version.
+
+This program is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
+or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License
+for more details.
+
+You should have received a copy of the GNU General Public License along
+with this program; if not, write to the Free Software Foundation, Inc.,
+51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+-->
+<language name="Intel x86 (NASM)" section="Assembler" version="3" kateversion="2.3" extensions="*.asm" mimetype="" author="Nicola Gigante (nicola.gigante@gmail.com)" license="GPLv2+">
+  <highlighting>
+    <list name="registers">
+      <!-- General purpose registers -->
+      <item>eax</item>
+      <item>ax</item>
+      <item>ah</item>
+      <item>al</item>
+      <item>ebx</item>
+      <item>bx</item>
+      <item>bh</item>
+      <item>bl</item>
+      <item>ecx</item>
+      <item>cx</item>
+      <item>ch</item>
+      <item>cl</item>
+      <item>edx</item>
+      <item>dx</item>
+      <item>dh</item>
+      <item>dl</item>
+      <item>ebp</item>
+      <item>bp</item>
+      <item>esi</item>
+      <item>si</item>
+      <item>edi</item>
+      <item>di</item>
+      <!--
+      <item>eip</item>
+      <item>ip</item>
+      -->
+      <item>esp</item>
+      <item>sp</item>
+      <!-- Segmentation registers -->
+      <item>cs</item>
+      <item>ds</item>
+      <item>es</item>
+      <item>fs</item>
+      <item>gs</item>
+      <item>ss</item>
+      <!-- Control registers -->
+      <item>cr0</item>
+      <!--<item>cr1</item>-->
+      <item>cr2</item>
+      <item>cr3</item>
+      <item>cr4</item>
+      <!-- Debug registers -->
+      <item>dr0</item>
+      <item>dr1</item>
+      <item>dr2</item>
+      <item>dr3</item>
+      <item>dr6</item>
+      <item>dr7</item>
+      <!-- x87 FPU Registers -->
+      <item>st</item>
+      <!-- MMX registers -->
+      <item>mm0</item>
+      <item>mm1</item>
+      <item>mm2</item>
+      <item>mm3</item>
+      <item>mm4</item>
+      <item>mm5</item>
+      <item>mm6</item>
+      <item>mm7</item>
+      <!-- XMM registers -->
+      <item>xmm0</item>
+      <item>xmm1</item>
+      <item>xmm2</item>
+      <item>xmm3</item>
+      <item>xmm4</item>
+      <item>xmm5</item>
+      <item>xmm6</item>
+      <item>xmm7</item>
+    </list>
+    <list name="instructions">
+      <item>aaa</item>
+      <item>aad</item>
+      <item>aam</item>
+      <item>aas</item>
+      <item>adc</item>
+      <item>add</item>
+      <item>addpd</item>
+      <item>addps</item>
+      <item>addsd</item>
+      <item>addss</item>
+      <item>addsubpd</item>
+      <item>addsubps</item>
+      <item>and</item>
+      <item>andnpd</item>
+      <item>andnps</item>
+      <item>andpd</item>
+      <item>andps</item>
+      <item>arpl</item>
+      <item>bound</item>
+      <item>bsf</item>
+      <item>bsr</item>
+      <item>bswap</item>
+      <item>bt</item>
+      <item>btc</item>
+      <item>btr</item>
+      <item>bts</item>
+      <item>call</item>
+      <item>cbw</item>
+      <item>cwde</item>
+      <item>cwd</item>
+      <item>cdq</item>
+      <item>cdqe</item>
+      <item>cqo</item>
+      <item>clc</item>
+      <item>cld</item>
+      <item>clgi</item>
+      <item>cli</item>
+      <item>clts</item>
+      <item>clflush</item>
+      <item>cmc</item>
+      <item>cmova</item>
+      <item>cmovae</item>
+      <item>cmovb</item>
+      <item>cmovbe</item>
+      <item>cmovc</item>
+      <item>cmove</item>
+      <item>cmovg</item>
+      <item>cmovge</item>
+      <item>cmovl</item>
+      <item>cmovle</item>
+      <item>cmovna</item>
+      <item>cmovnae</item>
+      <item>cmovnb</item>
+      <item>cmovnbe</item>
+      <item>cmovnc</item>
+      <item>cmovne</item>
+      <item>cmovng</item>
+      <item>cmovnge</item>
+      <item>cmovnl</item>
+      <item>cmovnle</item>
+      <item>cmovno</item>
+      <item>cmovnp</item>
+      <item>cmovns</item>
+      <item>cmovnz</item>
+      <item>cmovo</item>
+      <item>cmovp</item>
+      <item>cmovpe</item>
+      <item>cmovpo</item>
+      <item>cmovs</item>
+      <item>cmovz</item>
+      <item>cmp</item>
+      <item>cmpeqpd</item>
+      <item>cmpeqps</item>
+      <item>cmpeqsd</item>
+      <item>cmpeqss</item>
+      <item>cmplepd</item>
+      <item>cmpleps</item>
+      <item>cmplesd</item>
+      <item>cmpless</item>
+      <item>cmpltpd</item>
+      <item>cmpltps</item>
+      <item>cmpltsd</item>
+      <item>cmpltss</item>
+      <item>cmpneqpd</item>
+      <item>cmpneqps</item>
+      <item>cmpneqsd</item>
+      <item>cmpneqss</item>
+      <item>cmpnlepd</item>
+      <item>cmpnleps</item>
+      <item>cmpnlesd</item>
+      <item>cmpnless</item>
+      <item>cmpnltpd</item>
+      <item>cmpnltps</item>
+      <item>cmpnltsd</item>
+      <item>cmpnltss</item>
+      <item>cmpordpd</item>
+      <item>cmpordps</item>
+      <item>cmpordsd</item>
+      <item>cmpordss</item>
+      <item>cmppd</item>
+      <item>cmpps</item>
+      <item>cmps</item>
+      <item>cmpsb</item>
+      <item>cmpsd</item>
+      <item>cmpss</item>
+      <item>cmpsw</item>
+      <item>cmpunordpd</item>
+      <item>cmpunordps</item>
+      <item>cmpunordsd</item>
+      <item>cmpunordss</item>
+      <item>cmpxchg</item>
+      <item>cmpxchg486</item>
+      <item>cmpxchg8b</item>
+      <item>cmpxchg16b</item>
+      <item>comisd</item>
+      <item>comiss</item>
+      <item>cpuid</item>
+      <item>cvtdq2pd</item>
+      <item>cvtdq2ps</item>
+      <item>cvtpd2dq</item>
+      <item>cvtpd2pi</item>
+      <item>cvtpd2ps</item>
+      <item>cvtpi2pd</item>
+      <item>cvtpi2ps</item>
+      <item>cvtps2dq</item>
+      <item>cvtps2pd</item>
+      <item>cvtps2pi</item>
+      <item>cvtsd2si</item>
+      <item>cvtsd2ss</item>
+      <item>cvtsi2sd</item>
+      <item>cvtsi2ss</item>
+      <item>cvtss2sd</item>
+      <item>cvtss2si</item>
+      <item>cvttpd2dq</item>
+      <item>cvttpd2pi</item>
+      <item>cvttps2dq</item>
+      <item>cvttps2pi</item>
+      <item>cvttsd2si</item>
+      <item>cvttss2si</item>
+      <item>daa</item>
+      <item>das</item>
+      <item>dec</item>
+      <item>div</item>
+      <item>divpd</item>
+      <item>divps</item>
+      <item>divsd</item>
+      <item>divss</item>
+      <item>emms</item>
+      <item>enter</item>
+      <item>f2xm1</item>
+      <item>fabs</item>
+      <item>fadd</item>
+      <item>faddp</item>
+      <item>fbld</item>
+      <item>fbstp</item>
+      <item>fchs</item>
+      <item>fclex</item>
+      <item>fnclex</item>
+      <item>fcmovb</item>
+      <item>fcmovbe</item>
+      <item>fcmove</item>
+      <item>fcmovnb</item>
+      <item>fcmovnbe</item>
+      <item>fcmovne</item>
+      <item>fcmovnu</item>
+      <item>fcmovu</item>
+      <item>fcom</item>
+      <item>fcomp</item>
+      <item>fcompp</item>
+      <item>fcomi</item>
+      <item>fcomip</item>
+      <item>fcos</item>
+      <item>fdecstp</item>
+      <item>fdisi</item>
+      <item>feni</item>
+      <item>fdiv</item>
+      <item>fdivr</item>
+      <item>fdivp</item>
+      <item>fdivrp</item>
+      <item>femms</item>
+      <item>ffree</item>
+      <item>ffreep</item>
+      <item>fiadd</item>
+      <item>ficom</item>
+      <item>ficomp</item>
+      <item>fidiv</item>
+      <item>fidivr</item>
+      <item>fild</item>
+      <item>fimul</item>
+      <item>fincstp</item>
+      <item>finit</item>
+      <item>fist</item>
+      <item>fistp</item>
+      <item>fisttp</item>
+      <item>fisub</item>
+      <item>fisubr</item>
+      <item>fld</item>
+      <item>fld1</item>
+      <item>fldl2e</item>
+      <item>fldl2t</item>
+      <item>fldlg2</item>
+      <item>fldln2</item>
+      <item>fldcw</item>
+      <item>fldenv</item>
+      <item>fldpi</item>
+      <item>fldz</item>
+      <item>fmul</item>
+      <item>fmulp</item>
+      <item>fndisi</item>
+      <item>fneni</item>
+      <item>fninit</item>
+      <item>fnop</item>
+      <item>fnsave</item>
+      <item>fnstcw</item>
+      <item>fnstenv</item>
+      <item>fnstsw</item>
+      <item>fnwait</item>
+      <item>fpatan</item>
+      <item>fptan</item>
+      <item>fprem</item>
+      <item>fprem1</item>
+      <item>frndint</item>
+      <item>frstor</item>
+      <item>fsave</item>
+      <item>fscale</item>
+      <item>fsetpm</item>
+      <item>fsin</item>
+      <item>fsincos</item>
+      <item>fsqrt</item>
+      <item>fst</item>
+      <item>fstp</item>
+      <item>fstcw</item>
+      <item>fstenv</item>
+      <item>fstsw</item>
+      <item>fsub</item>
+      <item>fsubr</item>
+      <item>fsubp</item>
+      <item>fsubrp</item>
+      <item>ftst</item>
+      <item>fucom</item>
+      <item>fucomp</item>
+      <item>fucompp</item>
+      <item>fucomi</item>
+      <item>fucomip</item>
+      <item>fwait</item>
+      <item>fxam</item>
+      <item>fxch</item>
+      <item>fxrstor</item>
+      <item>fxsave</item>
+      <item>fxtract</item>
+      <item>fyl2x</item>
+      <item>fyl2xp1</item>
+      <item>haddpd</item>
+      <item>haddps</item>
+      <item>hlt</item>
+      <item>hsubpd</item>
+      <item>hsubps</item>
+      <item>ibts</item>
+      <item>idiv</item>
+      <item>imul</item>
+      <item>in</item>
+      <item>inc</item>
+      <item>ins</item>
+      <item>insb</item>
+      <item>insd</item>
+      <item>insw</item>
+      <item>int</item>
+      <item>int1</item>
+      <item>int3</item>
+      <item>into</item>
+      <item>invd</item>
+      <item>invlpg</item>
+      <item>invlpga</item>
+      <item>iret</item>
+      <item>iretd</item>
+      <item>iretq</item>
+      <item>iretw</item>
+      <item>ja</item>
+      <item>jae</item>
+      <item>jb</item>
+      <item>jbe</item>
+      <item>jc</item>
+      <item>je</item>
+      <item>jg</item>
+      <item>jge</item>
+      <item>jl</item>
+      <item>jle</item>
+      <item>jna</item>
+      <item>jnae</item>
+      <item>jnb</item>
+      <item>jnbe</item>
+      <item>jnc</item>
+      <item>jne</item>
+      <item>jng</item>
+      <item>jnge</item>
+      <item>jnl</item>
+      <item>jnle</item>
+      <item>jno</item>
+      <item>jnp</item>
+      <item>jns</item>
+      <item>jnz</item>
+      <item>jo</item>
+      <item>jp</item>
+      <item>jpe</item>
+      <item>jpo</item>
+      <item>js</item>
+      <item>jz</item>
+      <item>jcxz</item>
+      <item>jecxz</item>
+      <item>jrcxz</item>
+      <item>jmp</item>
+      <item>lahf</item>
+      <item>lar</item>
+      <item>lddqu</item>
+      <item>ldmxcsr</item>
+      <item>lds</item>
+      <item>les</item>
+      <item>lea</item>
+      <item>leave</item>
+      <item>lfence</item>
+      <item>lfs</item>
+      <item>lgdt</item>
+      <item>lgs</item>
+      <item>lidt</item>
+      <item>lldt</item>
+      <item>lmsw</item>
+      <item>loadall</item>
+      <item>loadall286</item>
+      <item>lods</item>
+      <item>lodsb</item>
+      <item>lodsd</item>
+      <item>lodsq</item>
+      <item>lodsw</item>
+      <item>loop</item>
+      <item>loope</item>
+      <item>loopne</item>
+      <item>loopnz</item>
+      <item>loopz</item>
+      <item>lsl</item>
+      <item>lss</item>
+      <item>ltr</item>
+      <item>maskmovdqu</item>
+      <item>maskmovq</item>
+      <item>maxpd</item>
+      <item>maxps</item>
+      <item>maxsd</item>
+      <item>maxss</item>
+      <item>mfence</item>
+      <item>minpd</item>
+      <item>minps</item>
+      <item>minsd</item>
+      <item>minss</item>
+      <item>monitor</item>
+      <item>mov</item>
+      <item>movapd</item>
+      <item>movaps</item>
+      <item>movd</item>
+      <item>movddup</item>
+      <item>movdq2q</item>
+      <item>movdqa</item>
+      <item>movdqu</item>
+      <item>movhlps</item>
+      <item>movhpd</item>
+      <item>movhps</item>
+      <item>movlhps</item>
+      <item>movlpd</item>
+      <item>movlps</item>
+      <item>movmskpd</item>
+      <item>movmskps</item>
+      <item>movntdq</item>
+      <item>movnti</item>
+      <item>movntpd</item>
+      <item>movntps</item>
+      <item>movntq</item>
+      <item>movq</item>
+      <item>movq2dq</item>
+      <item>movs</item>
+      <item>movsb</item>
+      <item>movsd</item>
+      <item>movshdup</item>
+      <item>movsldup</item>
+      <item>movsq</item>
+      <item>movss</item>
+      <item>movsx</item>
+      <item>movsxd</item>
+      <item>movsw</item>
+      <item>movupd</item>
+      <item>movups</item>
+      <item>movzx</item>
+      <item>mul</item>
+      <item>mulpd</item>
+      <item>mulps</item>
+      <item>mulsd</item>
+      <item>mulss</item>
+      <item>mwait</item>
+      <item>neg</item>
+      <item>nop</item>
+      <item>not</item>
+      <item>or</item>
+      <item>orpd</item>
+      <item>orps</item>
+      <item>out</item>
+      <item>outs</item>
+      <item>outsb</item>
+      <item>outsw</item>
+      <item>outsd</item>
+      <item>packssdw</item>
+      <item>packsswb</item>
+      <item>packuswb</item>
+      <item>paddb</item>
+      <item>paddd</item>
+      <item>paddq</item>
+      <item>paddsb</item>
+      <item>paddsw</item>
+      <item>paddusb</item>
+      <item>paddusw</item>
+      <item>paddw</item>
+      <item>pand</item>
+      <item>pandn</item>
+      <item>pause</item>
+      <item>pavgb</item>
+      <item>pavgusb</item>
+      <item>pavgw</item>
+      <item>pcmpeqb</item>
+      <item>pcmpeqw</item>
+      <item>pcmpeqd</item>
+      <item>pcmpgtb</item>
+      <item>pcmpgtw</item>
+      <item>pcmpgtd</item>
+      <item>pdistib</item>
+      <item>pextrw</item>
+      <item>pf2id</item>
+      <item>pf2iw</item>
+      <item>pfacc</item>
+      <item>pfadd</item>
+      <item>pfcmpeq</item>
+      <item>pfcmpge</item>
+      <item>pfcmpgt</item>
+      <item>pfmax</item>
+      <item>pfmin</item>
+      <item>pfmul</item>
+      <item>pfnacc</item>
+      <item>pfpnacc</item>
+      <item>pfrcp</item>
+      <item>pfrcpit1</item>
+      <item>pfrcpit2</item>
+      <item>pfrsqit1</item>
+      <item>pfrsqrt</item>
+      <item>pfsub</item>
+      <item>pfsubr</item>
+      <item>pi2fd</item>
+      <item>pi2fw</item>
+      <item>pinsrw</item>
+      <item>pmachriw</item>
+      <item>pmaddwd</item>
+      <item>pmagw</item>
+      <item>pmaxsw</item>
+      <item>pmaxub</item>
+      <item>pminsw</item>
+      <item>pminub</item>
+      <item>pmovmskb</item>
+      <item>pmulhrw</item>
+      <item>pmulhuw</item>
+      <item>pmulhw</item>
+      <item>pmullw</item>
+      <item>pmuludq</item>
+      <item>pmvgezb</item>
+      <item>pmvlzb</item>
+      <item>pmvnzb</item>
+      <item>pmvzb</item>
+      <item>pop</item>
+      <item>popa</item>
+      <item>popaw</item>
+      <item>popad</item>
+      <item>popf</item>
+      <item>popfw</item>
+      <item>popfd</item>
+      <item>popfq</item>
+      <item>por</item>
+      <item>prefetch</item>
+      <item>prefetchnta</item>
+      <item>prefetcht0</item>
+      <item>prefetcht1</item>
+      <item>prefetcht2</item>
+      <item>prefetchw</item>
+      <item>psadbw</item>
+      <item>pshufd</item>
+      <item>pshufhw</item>
+      <item>pshuflw</item>
+      <item>pshufw</item>
+      <item>pslld</item>
+      <item>pslldq</item>
+      <item>psllq</item>
+      <item>psllw</item>
+      <item>psrad</item>
+      <item>psraw</item>
+      <item>psrld</item>
+      <item>psrldq</item>
+      <item>psrlq</item>
+      <item>psrlw</item>
+      <item>psubb</item>
+      <item>psubd</item>
+      <item>psubq</item>
+      <item>psubsb</item>
+      <item>psubsiw</item>
+      <item>psubsw</item>
+      <item>psubusb</item>
+      <item>psubusw</item>
+      <item>psubw</item>
+      <item>pswapd</item>
+      <item>punpckhbw</item>
+      <item>punpckhdq</item>
+      <item>punpckhqdq</item>
+      <item>punpckhwd</item>
+      <item>punpcklbw</item>
+      <item>punpckldq</item>
+      <item>punpcklqdq</item>
+      <item>punpcklwd</item>
+      <item>push</item>
+      <item>pusha</item>
+      <item>pushad</item>
+      <item>pushaw</item>
+      <item>pushf</item>
+      <item>pushfd</item>
+      <item>pushfq</item>
+      <item>pushfw</item>
+      <item>pxor</item>
+      <item>rcl</item>
+      <item>rcr</item>
+      <item>rcpps</item>
+      <item>rcpss</item>
+      <item>rdmsr</item>
+      <item>rdpmc</item>
+      <item>rdshr</item>
+      <item>rdtsc</item>
+      <item>rdtscp</item>
+      <item>ret</item>
+      <item>retf</item>
+      <item>retn</item>
+      <item>rol</item>
+      <item>ror</item>
+      <item>rsdc</item>
+      <item>rsldt</item>
+      <item>rsm</item>
+      <item>rsqrtps</item>
+      <item>rsqrtss</item>
+      <item>rsts</item>
+      <item>sahf</item>
+      <item>sal</item>
+      <item>sar</item>
+      <item>salc</item>
+      <item>sbb</item>
+      <item>scas</item>
+      <item>scasb</item>
+      <item>scasd</item>
+      <item>scasq</item>
+      <item>scasw</item>
+      <item>seta</item>
+      <item>setae</item>
+      <item>setb</item>
+      <item>setbe</item>
+      <item>setc</item>
+      <item>sete</item>
+      <item>setg</item>
+      <item>setge</item>
+      <item>setl</item>
+      <item>setle</item>
+      <item>setna</item>
+      <item>setnae</item>
+      <item>setnb</item>
+      <item>setnbe</item>
+      <item>setnc</item>
+      <item>setne</item>
+      <item>setng</item>
+      <item>setnge</item>
+      <item>setnl</item>
+      <item>setnle</item>
+      <item>setno</item>
+      <item>setnp</item>
+      <item>setns</item>
+      <item>setnz</item>
+      <item>seto</item>
+      <item>setp</item>
+      <item>setpe</item>
+      <item>setpo</item>
+      <item>sets</item>
+      <item>setz</item>
+      <item>sfence</item>
+      <item>sgdt</item>
+      <item>shl</item>
+      <item>shld</item>
+      <item>shr</item>
+      <item>shrd</item>
+      <item>shufpd</item>
+      <item>shufps</item>
+      <item>sidt</item>
+      <item>skinit</item>
+      <item>sldt</item>
+      <item>smi</item>
+      <item>smint</item>
+      <item>smintold</item>
+      <item>smsw</item>
+      <item>sqrtpd</item>
+      <item>sqrtps</item>
+      <item>sqrtsd</item>
+      <item>sqrtss</item>
+      <item>stc</item>
+      <item>std</item>
+      <item>stgi</item>
+      <item>sti</item>
+      <item>stmxcsr</item>
+      <item>stos</item>
+      <item>stosb</item>
+      <item>stosd</item>
+      <item>stosq</item>
+      <item>stosw</item>
+      <item>str</item>
+      <item>sub</item>
+      <item>subpd</item>
+      <item>subps</item>
+      <item>subsd</item>
+      <item>subss</item>
+      <item>svdc</item>
+      <item>svldt</item>
+      <item>svts</item>
+      <item>swapgs</item>
+      <item>syscall</item>
+      <item>sysenter</item>
+      <item>sysexit</item>
+      <item>sysret</item>
+      <item>test</item>
+      <item>ucomisd</item>
+      <item>ucomiss</item>
+      <item>ud0</item>
+      <item>ud1</item>
+      <item>ud2</item>
+      <item>umov</item>
+      <item>unpckhpd</item>
+      <item>unpckhps</item>
+      <item>unpcklpd</item>
+      <item>unpcklps</item>
+      <item>verr</item>
+      <item>verw</item>
+      <item>vmload</item>
+      <item>vmmcall</item>
+      <item>vmrun</item>
+      <item>vmsave</item>
+      <item>wait</item>
+      <item>wbinvd</item>
+      <item>wrmsr</item>
+      <item>wrshr</item>
+      <item>xadd</item>
+      <item>xbts</item>
+      <item>xchg</item>
+      <item>xlat</item>
+      <item>xlatb</item>
+      <item>xor</item>
+      <item>xorpd</item>
+      <item>xorps</item>
+    </list>
+    <list name="Data">
+      <!-- repeat some data declaration -->
+      <item>times</item>
+      <!-- constants -->
+      <item>equ</item>
+      <!-- Initialized data -->
+      <item>db</item>
+      <item>dw</item>
+      <item>dd</item>
+      <item>dq</item>
+      <item>dt</item>
+      <!-- Uninitialized data -->
+      <item>resb</item>
+      <item>resw</item>
+      <item>resd</item>
+      <item>resq</item>
+      <item>rest</item>
+      <!-- binary file include -->
+      <item>incbin</item>
+      <!-- operand size -->
+      <item>byte</item>
+      <item>word</item>
+      <item>dword</item>
+      <item>qword</item>
+      <item>short</item>
+      <item>ptr</item>
+    </list>
+    <list name="NASM Keywords">
+      <!-- NASM directives -->
+      <item>absolute</item>
+      <item>bits</item>
+      <item>common</item>
+      <item>extern</item>
+      <item>global</item>
+      <item>org</item>
+      <item>section</item>
+      <item>seg</item>
+      <item>segment</item>
+      <item>strict</item>
+      <item>use16</item>
+      <item>use32</item>
+      <item>wrt</item>
+      <!-- NASM standard macros -->
+      <item>struc</item>
+      <item>endstruc</item>
+      <item>istruc</item>
+      <item>at</item>
+      <item>iend</item>
+      <item>align</item>
+      <item>alignb</item>
+
+      <item>__SECT__</item>
+      <item>__NASM_MAJOR__</item>
+      <item>__NASM_MINOR__</item>
+      <item>__NASM_SUBMINOR__</item>
+      <item>___NASM_PATCHLEVEL__</item>
+      <item>__NASM_VERSION_ID__</item>
+      <item>__NASM_VER__</item>
+      <item>__FILE__</item>
+      <item>__LINE__</item>
+    </list>
+    <contexts>
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Registers" context="#stay" String="registers"/>
+        <keyword attribute="Data" context="#stay" String="Data"/>
+        <keyword attribute="Instructions" context="#stay" String="instructions"/>
+        <keyword attribute="NASM Keywords" context="#stay" String="NASM Keywords"/>
+        <DetectChar attribute="Comment" context="Comment" char=";"/>
+        <DetectChar attribute="Preprocessor" context="Preprocessor" char="%"/>
+        <AnyChar attribute="String" context="String" String="&quot;'"/>
+        <RegExpr attribute="Label" context="#stay" String="^\s*[A-Za-z0-9_.$]+:"/>
+        <!-- Conditional instructions -->
+        <RegExpr attribute="Instructions" context="#stay" String="(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)"/>
+        <!-- The NASM's CPU directive -->
+        <RegExpr attribute="NASM Keywords" context="#stay" String="cpu (pentium|ppro|p2|p3|katmai|p4|willamette|prescott|ia64)*"/>
+        <!-- hexadecimal numbers -->
+        <RegExpr attribute="BaseN" context="#stay" insensitive="true" String="(^|[ \t,]+)((\$|0x){1}[0-9]+[a-f0-9]*|[0-9]+[a-f0-9]*h)([ \t,]+|$)"/>
+        <!-- octal and binary numbers -->
+        <RegExpr attribute="BaseN" context="#stay" insensitive="true" String="(^|[ \t,]+)([0-7]+(q|o)|[01]+b)([ \t,]+|$)"/>
+        <DetectChar attribute="Number" context="#stay" char="$"/>
+        <HlCOct attribute="BaseN" context="#stay"/>
+        <HlCHex attribute="BaseN" context="#stay"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Number" context="#stay"/>
+        <HlCChar attribute="Char" context="#stay"/>
+      </context>
+      <context name="Comment" attribute="Comment" lineEndContext="#pop"/>
+      <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>
+      <context name="String" attribute="String" lineEndContext="#pop">
+        <AnyChar attribute="String" context="#pop" String="&quot;'"/>
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Registers" defStyleNum="dsKeyword"/>
+      <itemData name="Instructions" defStyleNum="dsKeyword"/>
+      <itemData name="NASM Keywords" defStyleNum="dsKeyword"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Label" defStyleNum="dsFunction"/>
+      <itemData name="Data" defStyleNum="dsDataType"/>
+      <itemData name="BaseN" defStyleNum="dsBaseN"/>
+      <itemData name="Float" defStyleNum="dsFloat"/>
+      <itemData name="Number" defStyleNum="dsDecVal"/>
+      <itemData name="Char" defStyleNum="dsChar"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="Preprocessor" defStyleNum="dsOthers"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="0"/>
+    <comments>
+      <comment name="singleLine" start=";"/>
+    </comments>
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/noweb.xml b/xml/noweb.xml
new file mode 100644
--- /dev/null
+++ b/xml/noweb.xml
@@ -0,0 +1,52 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="noweb" version="2" kateversion="2.4" section="Sources" extensions="*.w;*.nw" author="Scott Collins (scc@scottcollins.net)">
+<!-- 
+#########################################################################
+# First version added to repository was 0.4, added as 1.0 .
+#
+# Article about this highlighter:
+#   http://scottcollins.net/articles/Kate.html
+# 
+# Indirect source file:
+#   http://scottcollins.net/articles/Kate.w
+# 
+# Command used for extraction:
+#   $ notangle Kate.w -R"noweb.xml" > syntax/data/noweb.xml
+#########################################################################
+-->
+  <highlighting>
+    <contexts>
+      <context name="RawDocumentation" attribute="Prose" lineEndContext="#stay">
+        <RegExpr String="^&lt;&lt;.*&gt;&gt;=$" attribute="SectionName" context="CodeSection" beginRegion="CodeSection" />
+        <Detect2Chars char="@" char1="[" context="#stay" />
+        <Detect2Chars char="[" char1="[" attribute="Punctuation" context="CodeQuote" />
+        <IncludeRules context="##HTML" includeAttrib="true" />
+      </context>
+      <context name="CodeQuote" attribute="Code" lineEndContext="#stay">
+        <Detect2Chars char="@" char1="]" context="#stay" />
+        <RegExpr String="\]\](?!\])" minimal="true" attribute="Punctuation" context="#pop" />
+        <IncludeRules context="SectionNames" />
+        <IncludeRules context="##C++" includeAttrib="true" />
+      </context>
+      <context name="CodeSection" attribute="Code" lineEndContext="#stay">
+        <RegExpr String="^@$" attribute="Punctuation" context="RawDocumentation" endRegion="CodeSection" />
+        <RegExpr String="^@(?=[\s%])" attribute="Punctuation" context="RawDocumentation" endRegion="CodeSection" />
+        <RegExpr String="^&lt;&lt;.*&gt;&gt;=$" context="RawDocumentation" lookAhead="true" endRegion="CodeSection" />
+        <IncludeRules context="SectionNames" />
+        <IncludeRules context="##C++" includeAttrib="true" />
+      </context>
+      <context name="SectionNames" attribute="Prose" lineEndContext="#stay">
+        <RegExpr String="@&lt;&lt;" context="#stay" />
+        <RegExpr String="&lt;&lt;.*[^@]&gt;&gt;(?!=)" minimal="true" attribute="SectionName" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Prose"        defStyleNum="dsNormal" />
+      <itemData name="Code"         defStyleNum="dsNormal" />
+      <itemData name="Punctuation"  defStyleNum="dsRegionMarker" bold="true" />
+      <itemData name="SectionName"  defStyleNum="dsRegionMarker" italic="true" />
+    </itemDatas>
+  </highlighting>
+</language>
+
diff --git a/xml/objectivec.xml b/xml/objectivec.xml
new file mode 100644
--- /dev/null
+++ b/xml/objectivec.xml
@@ -0,0 +1,128 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Objective-C" version="2" kateversion="5.0" section="Sources" extensions="*.m;*.h" mimetype="text/x-objc-src;text/x-c-hdr">
+  <highlighting>
+    <list name="keywords">
+      <item>break</item>
+      <item>case</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>do</item>
+      <item>else</item>
+      <item>enum</item>
+      <item>extern</item>
+      <item>for</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>return</item>
+      <item>sizeof</item>
+      <item>struct</item>
+      <item>switch</item>
+      <item>typedef</item>
+      <item>union</item>
+      <item>while</item>
+      <item>@class</item>
+      <item>@defs</item>
+      <item>@encode</item>
+      <item>@end</item>
+      <item>@implementation</item>
+      <item>@interface</item>
+      <item>@private</item>
+      <item>@protected</item>
+      <item>@protocol</item>
+      <item>@public</item>
+      <item>@selector</item>
+      <item>self</item>
+      <item>super</item>
+    </list>
+    <list name="types">
+      <item>auto</item>
+      <item>char</item>
+      <item>const</item>
+      <item>double</item>
+      <item>float</item>
+      <item>int</item>
+      <item>long</item>
+      <item>register</item>
+      <item>short</item>
+      <item>signed</item>
+      <item>static</item>
+      <item>unsigned</item>
+      <item>void</item>
+      <item>volatile</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Default">
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay" >
+          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="^#"/>
+        <Detect2Chars attribute="String" context="String" char="@" char1="&quot;" />
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SingleLineComment"/>
+      <context attribute="Comment" lineEndContext="#stay" name="MultiLineComment">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/"/>
+      </context>
+      <context attribute="Preprocessor" lineEndContext="Default" name="Preprocessor">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="MultiLineCommentPrep" char="/" char1="*"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="MultiLineCommentPrep">
+        <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword"  defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Data Type"  defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Decimal"  defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Octal"  defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex"  defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"  defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Char"  defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="String"  defStyleNum="dsString"/>
+      <itemData name="String Char"  defStyleNum="dsSpecialChar" spellChecking="false"/>
+      <itemData name="Comment"  defStyleNum="dsComment"/>
+      <itemData name="Symbol"  defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Preprocessor"  defStyleNum="dsPreprocessor" spellChecking="false"/>
+      <itemData name="Prep. Lib"  defStyleNum="dsImport" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/objectivecpp.xml b/xml/objectivecpp.xml
new file mode 100644
--- /dev/null
+++ b/xml/objectivecpp.xml
@@ -0,0 +1,318 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Objective-C++" version="2" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objcpp-src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su">
+  <highlighting>
+    <list name="keywords">
+      <item>break</item>
+      <item>case</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>do</item>
+      <item>else</item>
+      <item>enum</item>
+      <item>extern</item>
+      <item>for</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>return</item>
+      <item>sizeof</item>
+      <item>struct</item>
+      <item>switch</item>
+      <item>typedef</item>
+      <item>union</item>
+      <item>while</item>
+      <item>@class</item>
+      <item>@defs</item>
+      <item>@encode</item>
+      <item>@end</item>
+      <item>@implementation</item>
+      <item>@interface</item>
+      <item>@private</item>
+      <item>@protected</item>
+      <item>@protocol</item>
+      <item>@public</item>
+      <item>@selector</item>
+      <item>self</item>
+      <item>super</item>
+      
+      <item>asm</item>
+      <item>catch</item>
+      <item>class</item>
+      <item>const_cast</item>
+      <item>delete</item>
+      <item>dynamic_cast</item>
+      <item>explicit</item>
+      <item>export</item>
+      <item>false</item>
+      <item>friend</item>
+      <item>inline</item>
+      <item>namespace</item>
+      <item>new</item>
+      <item>operator</item>
+      <item>private</item>
+      <item>protected</item>
+      <item>public</item>
+      <item>qobject_cast</item>
+      <item>reinterpret_cast</item>
+      <item>static_cast</item>
+      <item>template</item>
+      <item>this</item>
+      <item>throw</item>
+      <item>true</item>
+      <item>try</item>
+      <item>typeid</item>
+      <item>type_info</item>
+      <item>typename</item>
+      <item>using</item>
+      <item>virtual</item>
+
+      <item>and</item>
+      <item>and_eq</item>
+      <item>bad_cast</item>
+      <item>bad_typeid</item>
+      <item>bitand</item>
+      <item>bitor</item>
+      <item>compl</item>
+      <item>not</item>
+      <item>not_eq</item>
+      <item>or</item>
+      <item>or_eq</item>
+      <item>xor</item>
+      <item>xor_eq</item>
+    </list>
+    <list name="extensions">
+      <item>K_DCOP</item>
+      <item>SLOT</item>
+      <item>SIGNAL</item>
+      <item>Q_CLASSINFO</item>
+      <item>Q_ENUMS</item>
+      <item>Q_EXPORT</item>
+      <item>Q_OBJECT</item>
+      <item>Q_OVERRIDE</item>
+      <item>Q_PROPERTY</item>
+      <item>Q_SETS</item>
+      <item>Q_SIGNALS</item>
+      <item>Q_SLOTS</item>
+      <item>Q_FOREACH</item>
+      <item>Q_DECLARE_FLAGS</item>
+      <item>Q_INIT_RESOURCE</item>
+      <item>Q_CLEANUP_RESOURCE</item>
+      <item>Q_GLOBAL_STATIC</item>
+      <item>Q_GLOBAL_STATIC_WITH_ARGS</item>
+      <item>Q_DECLARE_INTERFACE</item>
+      <item>Q_DECLARE_TYPEINFO</item>
+      <item>Q_DECLARE_SHARED</item>
+      <item>Q_DECLARE_FLAGS</item>
+      <item>Q_DECLARE_OPERATORS_FOR_FLAGS</item>
+      <item>Q_FOREVER</item>
+      <item>Q_DECLARE_PRIVATE</item>
+      <item>Q_DECLARE_PUBLIC</item>
+      <item>Q_D</item>
+      <item>Q_Q</item>
+      <item>Q_DISABLE_COPY</item>
+      <item>Q_INTERFACES</item>
+      <item>Q_FLAGS</item>
+      <item>Q_SCRIPTABLE</item>
+      <item>Q_INVOKABLE</item>
+      <item>Q_GADGET</item>
+      <item>Q_ARG</item>
+      <item>Q_RETURN_ARG</item>
+      <item>Q_ASSERT</item>
+      <item>Q_ASSERT_X</item>
+      <item>TRUE</item>
+      <item>FALSE</item>
+      <item>connect</item>
+      <item>disconnect</item>
+      <item>emit</item>
+      <item>signals</item>
+      <item>slots</item>
+      <item>foreach</item>
+      <item>forever</item>
+    </list>
+    <list name="types">
+      <item>auto</item>
+      <item>char</item>
+      <item>const</item>
+      <item>double</item>
+      <item>float</item>
+      <item>int</item>
+      <item>long</item>
+      <item>register</item>
+      <item>short</item>
+      <item>signed</item>
+      <item>static</item>
+      <item>unsigned</item>
+      <item>void</item>
+      <item>volatile</item>
+      
+      <item>bool</item>
+      <item>mutable</item>
+      <item>uchar</item>
+      <item>uint</item>
+      <item>int8_t</item>
+      <item>int16_t</item>
+      <item>int32_t</item>
+      <item>int64_t</item>
+      <item>uint8_t</item>
+      <item>uint16_t</item>
+      <item>uint32_t</item>
+      <item>uint64_t</item>
+      <item>wchar_t</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Default">
+        <DetectSpaces />
+        <RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0" beginRegion="Outscoped" firstNonSpace="true" />
+        <DetectChar attribute="Preprocessor" context="Preprocessor" char="#" firstNonSpace="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
+        
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+        
+        <DetectIdentifier />
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay" >
+          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*"/>
+
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="^#"/>
+        <Detect2Chars attribute="String" context="String" char="@" char1="&quot;" />
+        
+        <keyword attribute="Extensions" context="#stay" String="extensions" />
+
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]{|}~^&#59;"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="SingleLineComment"/>
+      <context attribute="Comment" lineEndContext="#stay" name="MultiLineComment">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/"/>
+      </context>
+      <context attribute="Preprocessor" lineEndContext="Default" name="Preprocessor">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="MultiLineCommentPrep" char="/" char1="*"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="MultiLineCommentPrep">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop#pop" char="*" char1="/"/>
+        <DetectIdentifier />
+      </context>
+      
+      
+      
+      <!-- from c++ -->
+      
+      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
+      </context>
+      
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+      
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <DetectSpaces />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+      
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <RegExpr attribute="Preprocessor" context="Define" String="define.*((?=\\))"/>
+        <RegExpr attribute="Preprocessor" context="#stay" String="define.*"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="MultiLineCommentPrep" char="/" char1="*"/>
+      </context>
+      
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+      </context>
+      
+      <context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="Outscoped" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="#\s*(endif|else|elif)" endRegion="Outscoped" firstNonSpace="true" />
+      </context>
+      
+      <context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="Outscoped" firstNonSpace="true"/>
+        <RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="Outscoped" firstNonSpace="true"/>
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"   defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword"       defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Extensions"    defStyleNum="dsExtension" spellChecking="false"/>
+      <itemData name="Data Type"     defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Decimal"       defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Octal"         defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex"           defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"         defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Char"          defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="String"        defStyleNum="dsString"/>
+      <itemData name="String Char"   defStyleNum="dsSpecialChar" spellChecking="false"/>
+      <itemData name="Comment"       defStyleNum="dsComment"/>
+      <itemData name="Symbol"        defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Preprocessor"  defStyleNum="dsPreprocessor" spellChecking="false"/>
+      <itemData name="Prep. Lib"     defStyleNum="dsImport" spellChecking="false"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
+    </itemDatas>
+  </highlighting>
+  
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/ocaml.xml b/xml/ocaml.xml
new file mode 100644
--- /dev/null
+++ b/xml/ocaml.xml
@@ -0,0 +1,624 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!-- Kate syntax highlighting for Objective Caml version 4.02 in the standard and revised syntaxes, with Ocamldoc comments. -->
+
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+<!-- Regular expresion constants: -->
+<!ENTITY LOWER  "a-z\300-\326\330-\337">         <!-- Lowercase Latin-1 letters. -->
+<!ENTITY UPPER  "A-Z\340-\366\370-\377">         <!-- Uppercase Latin-1 letters. -->
+<!ENTITY LETTER "&LOWER;&UPPER;">                <!-- All Latin-1 letters. -->
+<!ENTITY LIDENT "[&LOWER;_][&LETTER;0-9_']*">    <!-- Lowercase OCaml identifiers. -->
+<!ENTITY UIDENT "`?[&UPPER;][&LETTER;0-9_']*">   <!-- Uppercase OCaml identifiers. -->
+<!ENTITY IDENT  "`?[&LETTER;][&LETTER;0-9_']*">  <!-- All OCaml identifiers. -->
+<!ENTITY ESC    "(\\[ntbr'&quot;\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. -->
+<!ENTITY DEC    "[0-9][0-9_]*">                                     <!-- Decimal digits with underscores. -->
+]>
+<language name="Objective Caml"
+          extensions="*.ml;*.mli"
+          mimetype="text/x-ocaml"
+          section="Sources"
+          version="6"
+          priority="10"
+          kateversion="2.4"
+          author="Glyn Webster (glynwebster@orcon.net.nz) and Vincent Hugot (vincent.hugot@gmail.com)"
+          license="LGPL" >
+
+  <highlighting>
+    <list name="qtest keywords">
+      <item>in</item>
+      <item>as</item>
+      <item>forall</item>
+    </list>
+    <list name="Keywords">
+      <item>and</item>
+      <item>as</item>
+      <item>assert</item>
+      <item>asr</item>
+      <item>begin</item>
+      <item>class</item>
+      <item>closed</item>
+      <item>constraint</item>
+      <item>do</item>
+      <item>done</item>
+      <item>downto</item>
+      <item>else</item>
+      <item>end</item>
+      <item>exception</item>
+      <item>external</item>
+      <item>false</item>
+      <item>for</item>
+      <item>fun</item>
+      <item>function</item>
+      <item>functor</item>
+      <item>if</item>
+      <item>in</item>
+      <item>include</item>
+      <item>inherit</item>
+      <item>land</item>
+      <item>lazy</item>
+      <item>let</item>
+      <item>lor</item>
+      <item>lsl</item>
+      <item>lsr</item>
+      <item>lxor</item>
+      <item>match</item>
+      <item>method</item>
+      <item>mod</item>
+      <item>module</item>
+      <item>mutable</item>
+      <item>new</item>
+      <item>nonrec</item>
+      <item>object</item>
+      <item>of</item>
+      <item>open</item>
+      <item>or</item>
+      <item>parser</item>
+      <item>private</item>
+      <item>rec</item>
+      <item>sig</item>
+      <item>struct</item>
+      <item>then</item>
+      <item>to</item>
+      <item>true</item>
+      <item>try</item>
+      <item>type</item>
+      <item>val</item>
+      <item>virtual</item>
+      <item>when</item>
+      <item>while</item>
+      <item>with</item>
+    </list>
+
+    <!-- Revised Syntax keywords are highlighted as identifiers by default. -->
+    <!-- Change their highlighting colour to match the standard keywords    -->
+    <!-- if you intend to use the Camlp4 Revised Syntax.                    -->
+    <list name="Revised Syntax Keywords">
+      <item>declare</item>
+      <item>value</item>
+      <item>where</item>
+    </list>
+
+    <list name="Pervasive Functions">
+      <item>abs</item>
+      <item>abs_float</item>
+      <item>acos</item>
+      <item>asin</item>
+      <item>at_exit</item>
+      <item>atan</item>
+      <item>atan2</item>
+      <item>bool_of_string</item>
+      <item>ceil</item>
+      <item>char_of_int</item>
+      <item>classify_float</item>
+      <item>close_in</item>
+      <item>close_in_noerr</item>
+      <item>close_out</item>
+      <item>close_out_noerr</item>
+      <item>compare</item>
+      <item>copysign</item>
+      <item>cos</item>
+      <item>cosh</item>
+      <item>decr</item>
+      <item>do_at_exit</item>
+      <item>epsilon_float</item>
+      <item>exp</item>
+      <item>expm1</item>
+      <item>float</item>
+      <item>float_of_int</item>
+      <item>float_of_string</item>
+      <item>floor</item>
+      <item>flush</item>
+      <item>flush_all</item>
+      <item>format_of_string</item>
+      <item>frexp</item>
+      <item>fst</item>
+      <item>hypot</item>
+      <item>ignore</item>
+      <item>in_channel_length</item>
+      <item>incr</item>
+      <item>infinity</item>
+      <item>input</item>
+      <item>input_binary_int</item>
+      <item>input_byte</item>
+      <item>input_char</item>
+      <item>input_line</item>
+      <item>input_value</item>
+      <item>int_of_char</item>
+      <item>int_of_float</item>
+      <item>int_of_string</item>
+      <item>ldexp</item>
+      <item>lnot</item>
+      <item>log</item>
+      <item>log10</item>
+      <item>log1p</item>
+      <item>max</item>
+      <item>max_float</item>
+      <item>max_int</item>
+      <item>min</item>
+      <item>min_float</item>
+      <item>min_int</item>
+      <item>mod_float</item>
+      <item>modf</item>
+      <item>nan</item>
+      <item>neg_infinity</item>
+      <item>not</item>
+      <item>open_in</item>
+      <item>open_in_bin</item>
+      <item>open_in_gen</item>
+      <item>open_out</item>
+      <item>open_out_bin</item>
+      <item>open_out_gen</item>
+      <item>out_channel_length</item>
+      <item>output</item>
+      <item>output_binary_int</item>
+      <item>output_byte</item>
+      <item>output_bytes</item>
+      <item>output_char</item>
+      <item>output_string</item>
+      <item>output_substring</item>
+      <item>output_value</item>
+      <item>pos_in</item>
+      <item>pos_out</item>
+      <item>pred</item>
+      <item>prerr_bytes</item>
+      <item>prerr_char</item>
+      <item>prerr_endline</item>
+      <item>prerr_float</item>
+      <item>prerr_int</item>
+      <item>prerr_newline</item>
+      <item>prerr_string</item>
+      <item>print_bytes</item>
+      <item>print_char</item>
+      <item>print_endline</item>
+      <item>print_float</item>
+      <item>print_int</item>
+      <item>print_newline</item>
+      <item>print_string</item>
+      <item>read_float</item>
+      <item>read_int</item>
+      <item>read_line</item>
+      <item>really_input</item>
+      <item>really_input_string</item>
+      <item>ref</item>
+      <item>seek_in</item>
+      <item>seek_out</item>
+      <item>set_binary_mode_in</item>
+      <item>set_binary_mode_out</item>
+      <item>sin</item>
+      <item>sinh</item>
+      <item>snd</item>
+      <item>sqrt</item>
+      <item>stderr</item>
+      <item>stdin</item>
+      <item>stdout</item>
+      <item>string_of_bool</item>
+      <item>string_of_float</item>
+      <item>string_of_format</item>
+      <item>string_of_int</item>
+      <item>succ</item>
+      <item>tan</item>
+      <item>tanh</item>
+      <item>truncate</item>
+      <item>unsafe_really_input</item>
+      <item>valid_float_lexem</item>
+    </list>
+
+    <!-- These pervasive functions control program flow,    -->
+    <!-- so some people like to highlight them as keywords: -->
+    <list name="Flow Control Functions">
+      <item>exit</item>
+      <item>failwith</item>
+      <item>invalid_arg</item>
+      <item>raise</item>
+      <item>raise_notrace</item>
+    </list>
+
+    <list name="Pervasive Types">
+      <item>array</item>
+      <item>bool</item>
+      <item>bytes</item>
+      <item>char</item>
+      <item>exn</item>
+      <item>float</item>
+      <item>format4</item>
+      <item>format6</item>
+      <item>fpclass</item>
+      <item>in_channel</item>
+      <item>int</item>
+      <item>int32</item>
+      <item>int64</item>
+      <item>lazy_t</item>
+      <item>list</item>
+      <item>nativeint</item>
+      <item>open_flag</item>
+      <item>option</item>
+      <item>out_channel</item>
+      <item>real</item>
+      <item>ref</item>
+      <item>string</item>
+      <item>unit</item>
+    </list>
+
+    <list name="Pervasive Variant Tags">
+      <item>FP_infinite</item>
+      <item>FP_nan</item>
+      <item>FP_normal</item>
+      <item>FP_subnormal</item>
+      <item>FP_zero</item>
+      <item>None</item>
+      <item>Open_append</item>
+      <item>Open_binary</item>
+      <item>Open_creat</item>
+      <item>Open_excl</item>
+      <item>Open_nonblock</item>
+      <item>Open_rdonly</item>
+      <item>Open_text</item>
+      <item>Open_trunc</item>
+      <item>Open_wronly</item>
+      <item>Some</item>
+    </list>
+
+    <list name="Pervasive Exceptions">
+      <item>Assert_failure</item>
+      <item>Division_by_zero</item>
+      <item>End_of_file</item>
+      <item>Exit</item>
+      <item>Failure</item>
+      <item>Invalid_argument</item>
+      <item>Match_failure</item>
+      <item>Not_found</item>
+      <item>Out_of_memory</item>
+      <item>Stack_overflow</item>
+      <item>Sys_blocked_io</item>
+      <item>Sys_error</item>
+      <item>Undefined_recursive_module</item>
+    </list>
+
+    <list name="Standard Library Modules">
+      <item>Arg</item>
+      <item>Array</item>
+      <item>ArrayLabels</item>
+      <item>Buffer</item>
+      <item>Bytes</item>
+      <item>Callback</item>
+      <item>Char</item>
+      <item>Complex</item>
+      <item>Digest</item>
+      <item>Ephemeron</item>
+      <item>Filename</item>
+      <item>Format</item>
+      <item>Gc</item>
+      <item>Genlex</item>
+      <item>Hashtbl</item>
+      <item>Int32</item>
+      <item>Int64</item>
+      <item>Lazy</item>
+      <item>Lexing</item>
+      <item>List</item>
+      <item>ListLabels</item>
+      <item>Map</item>
+      <item>Marshal</item>
+      <item>MoreLabels</item>
+      <item>Nativeint</item>
+      <item>Oo</item>
+      <item>Parsing</item>
+      <item>Printexc</item>
+      <item>Printf</item>
+      <item>Queue</item>
+      <item>Random</item>
+      <item>Scanf</item>
+      <item>Set</item>
+      <item>Sort</item>
+      <item>Spacetime</item>
+      <item>Stack</item>
+      <item>StdLabels</item>
+      <item>Stream</item>
+      <item>String</item>
+      <item>StringLabels</item>
+      <item>Sys</item>
+      <item>Uchar</item>
+      <item>Weak</item>
+    </list>
+
+    <contexts>
+
+      <context name="Code" lineEndContext="#stay" attribute="Operator">
+
+        <!-- ] and ]} close code samples in Ocamldoc, so -->
+        <!-- nested [ ] and { } brackets have to be allowed for: -->
+        <DetectChar char="[" context="Nested Code 1" attribute="Operator" />
+        <DetectChar char="{" context="Nested Code 2" attribute="Operator" />
+
+        <!-- Comments. -->
+        <!-- A (** begins a special comment with Ocamldoc documentation markup. -->
+        <StringDetect String="(**)"      context="#stay"    attribute="Comment" />
+        <StringDetect String="(**"       context="Ocamldoc" attribute="Comment" beginRegion="comment" />
+        <RegExpr String="\(\*\$(T|Q|R|=)"       context="qtest header" attribute="qtest body style" beginRegion="comment" />
+        <Detect2Chars char="(" char1="*" context="Comment"  attribute="Comment" beginRegion="comment" />
+
+        <!-- Interpreter directives. -->
+        <!-- (These are lines where the first symbol is a '#' followed by an identifier. -->
+        <!-- Such lines could also be part of a method call split over two lines but     -->
+        <!-- it's unlikey anyone would code like that.)                                  -->
+        <RegExpr String="#&IDENT;.*$" context="#stay" firstNonSpace="true" attribute="Directive"/>
+
+        <!-- String, character and Camlp4 "quotation" constants.              -->
+        <!-- Note: If you must modify the pattern for characters be precise:  -->
+        <!-- single quotes have several meanings in Ocaml.                    -->
+        <DetectChar char="&quot;" context="String" attribute="String" />
+        <RegExpr String="'(&ESC;|[^'])'" context="#stay" attribute="Character" />
+        <Detect2Chars char="&lt;" char1="&lt;" context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
+        <RegExpr String="&lt;:&IDENT;&lt;" context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
+
+        <!-- Identifiers and keywords. -->
+        <keyword String="Keywords"                 context="#stay" attribute="Keyword" />
+        <keyword String="Revised Syntax Keywords"  context="#stay" attribute="Revised Syntax Keyword" />
+        <keyword String="Flow Control Functions"      context="#stay" attribute="Flow Control Functions" />
+        <keyword String="Pervasive Functions"      context="#stay" attribute="Pervasive Functions" />
+        <keyword String="Pervasive Types"          context="#stay" attribute="Pervasive Types" />
+        <keyword String="Pervasive Exceptions"     context="#stay" attribute="Pervasive Exceptions" />
+        <keyword String="Pervasive Variant Tags"   context="#stay" attribute="Pervasive Variant Tags" />
+        <keyword String="Standard Library Modules" context="#stay" attribute="Standard Library Modules" />
+        <RegExpr String="&LIDENT;"                 context="#stay" attribute="Lowercase Identifier" />
+        <RegExpr String="&UIDENT;"                 context="#stay" attribute="Uppercase Identifier" />
+
+        <!-- Numeric constants. -->
+        <!-- Note that they may contain underscores. -->
+        <RegExpr String="-?0[xX][0-9A-Fa-f_]+" context="#stay" attribute="Hexadecimal" />
+        <RegExpr String="-?0[oO][0-7_]+" context="#stay" attribute="Octal" />
+        <RegExpr String="-?0[bB][01_]+" context="#stay" attribute="Binary" />
+        <RegExpr String="-?&DEC;(\.&DEC;([eE][-+]?&DEC;)?|[eE][-+]?&DEC;)" context="#stay" attribute="Float" />
+        <RegExpr String="-?&DEC;" context="#stay" attribute="Decimal" />
+
+        <IncludeRules context="Unmatched Closing Brackets" />
+      </context>
+
+      <context name="Nested Code 1" lineEndContext="#stay" attribute="Operator">
+        <DetectChar char="]" context="#pop" attribute="Operator" />
+        <IncludeRules context="Code" includeAttrib="true" />
+      </context>
+
+      <context name="Nested Code 2" lineEndContext="#stay" attribute="Operator">
+        <DetectChar char="}" context="#pop" attribute="Operator" />
+        <IncludeRules context="Code" includeAttrib="true" />
+      </context>
+
+      <context name="String" lineEndContext="#stay" attribute="String">
+        <DetectChar char="&quot;" context="#pop" attribute="String" />
+        <RegExpr String="&ESC;" context="#stay" attribute="Escaped Characters" />
+        <!-- A backslash at the end of a line in a string indicates  -->
+        <!-- that the string will continue on the next line:         -->
+        <RegExpr String="\\$" context="#stay" attribute="Escaped Characters" />
+      </context>
+
+      <context name="qtest header" lineEndContext="qtest" attribute="Operator">
+        <keyword String="qtest keywords"  attribute="Keyword" />
+        <DetectChar char="&amp;" context="qtest param" attribute="qtest param style" />
+        <RegExpr String="&LIDENT;" context="#stay" attribute="qtest header style"/>
+      </context>
+
+      <context name="qtest param" lineEndContext="qtest" attribute="qtest param style">
+      </context>
+
+      <context name="qtest" lineEndContext="#stay" attribute="qtest body style">
+        <Detect2Chars char="*" char1=')' context="#pop" attribute="qtest body style" endRegion="comment" />
+        <IncludeRules context="Code" includeAttrib="true" />
+      </context>
+
+      <context name="Comment" lineEndContext="#stay" attribute="Comment">
+        <Detect2Chars char="*" char1=")" context="#pop" attribute="Comment" endRegion="comment"  />
+        <!-- Support for nested comments: -->
+        <Detect2Chars char="(" char1="*" context="Comment" attribute="Comment" beginRegion="comment" />
+        <!-- Strings in Ocaml comments must be well-formed: -->
+        <DetectChar char="&quot;" context="String in Comment" attribute="String in Comment" />
+      </context>
+
+      <context name="String in Comment" lineEndContext="#stay" attribute="String in Comment">
+        <DetectChar char="&quot;" context="#pop" attribute="String in Comment" />
+        <IncludeRules context="String" />
+      </context>
+
+      <!-- Camlp4 Quotations. These are source code literals used by the Campl4 preprocessor.           -->
+      <!-- The only escapes allowed in a Camlp4 quotation are for the quotation start and stop symbols. -->
+      <context name="Camlp4 Quotation" lineEndContext="#stay" attribute="Camlp4 Quotation">
+        <Detect2Chars char="&gt;" char1="&gt;"     context="#pop"             attribute="Camlp4 Quotation" />
+        <Detect2Chars char="&lt;" char1="&lt;"     context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
+        <RegExpr String="&lt;:&IDENT;&lt;"         context="Camlp4 Quotation" attribute="Camlp4 Quotation" />
+        <RegExpr String="\\(\\|&gt;&gt;|&lt;&lt;)" context="#stay"            attribute="Escaped Characters" />
+        <RegExpr String="\\&lt;:&IDENT;&lt;"       context="#stay"            attribute="Escaped Characters" />
+      </context>
+
+    <!-- Ocamldoc - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+      <context name="Ocamldoc" lineEndContext="#stay" attribute="Ocamldoc Text">
+        <Detect2Chars char="*" char1=")" context="#pop" attribute="Comment" endRegion="comment" />
+
+        <!-- A backslash escapes markup characters: -->
+        <RegExpr String="\\." context="#stay" attribute="Escaped Characters" />
+
+        <!-- Support for nested comments and strings: -->
+        <StringDetect String="(**)"      context="#stay"    attribute="Comment" />
+        <StringDetect String="(**"       context="Ocamldoc" attribute="Comment" beginRegion="comment" />
+        <Detect2Chars char="(" char1="*" context="Comment"  attribute="Comment" beginRegion="comment" />
+
+        <!-- Strings in Ocaml comments must be well-formed: -->
+        <DetectChar char="&quot;" context="String in Comment" attribute="String in Comment" />
+
+        <!-- Nested Markup: -->
+        <DetectChar   char="["                   context="Ocamldoc Code"         attribute="Ocamldoc Markup" />
+        <Detect2Chars char="{" char1="["         context="Ocamldoc Preformatted" attribute="Ocamldoc Markup" />
+        <Detect2Chars char="{" char1="%"         context="Ocamldoc LaTeX"        attribute="Ocamldoc Markup" />
+        <Detect2Chars char="{" char1="^"         context="Nested Ocamldoc"       attribute="Ocamldoc Markup" />
+        <RegExpr String="[{]v(\s|$)"             context="Ocamldoc Verbatim"     attribute="Ocamldoc Markup" />
+        <RegExpr String="[{]b(\s|$)"             context="Ocamldoc Bold"         attribute="Ocamldoc Markup" />
+        <RegExpr String="[{]i(\s|$)"             context="Ocamldoc Italic"       attribute="Ocamldoc Markup" />
+        <RegExpr String="[{]e(\s|$)"             context="Ocamldoc Emphasised"   attribute="Ocamldoc Markup" />
+        <RegExpr String="[{][0-9]+(:&IDENT;)?\s" context="Ocamldoc Heading"      attribute="Ocamldoc Markup" />
+        <RegExpr String="[{][{]:&IDENT;[}]"      context="Ocamldoc Link"         attribute="Ocamldoc Markup" />
+        <RegExpr String="[{]!([a-z]+:)?"         context="Ocamldoc References"   attribute="Ocamldoc Markup" />
+        <RegExpr String="[{]&IDENT;(\s|$)"       context="Nested Ocamldoc"       attribute="Ocamldoc Markup" />
+
+        <RegExpr String="@see\s*(&lt;[^&gt;]*&gt;|&quot;[^&quot;]*&quot;|'[^']*')" context="#stay" attribute="Ocamldoc Markup" />
+        <RegExpr String="@(param|raise)\s*" context="Ocamldoc Identifier" attribute="Ocamldoc Markup" />
+        <RegExpr String="@(author|before|deprecated|return|since|version)" context="#stay" attribute="Ocamldoc Markup" />
+        <RegExpr String="@&IDENT;" context="#stay" attribute="Ocamldoc Custom Tag" />
+
+
+
+        <!-- A dash at the start of a line is a bullet point. -->
+        <RegExpr String="^[ &#009;]*-\s" context="#stay"  attribute="Ocamldoc Markup" />
+
+        <IncludeRules context="Unmatched Closing Brackets" />
+      </context>
+
+      <context name="Ocamldoc Code" lineEndContext="#stay" attribute="Operator">
+        <DetectChar char="]" context="#pop" attribute="Ocamldoc Markup" />
+        <IncludeRules context="Code" includeAttrib="true" />
+      </context>
+
+      <context name="Ocamldoc Preformatted" lineEndContext="#stay" attribute="Operator">
+        <Detect2Chars char="]" char1="}" context="#pop" attribute="Ocamldoc Markup" />
+        <IncludeRules context="Code" includeAttrib="true" />
+      </context>
+
+      <context name="Ocamldoc Verbatim" lineEndContext="#stay" attribute="Ocamldoc Text">
+        <Detect2Chars char="v" char1="}" context="#pop" attribute="Ocamldoc Markup" />
+      </context>
+
+      <context name="Ocamldoc LaTeX" lineEndContext="#stay" attribute="Ocamldoc LaTeX">
+        <Detect2Chars char="%" char1="}" context="#pop" attribute="Ocamldoc Markup" />
+        <IncludeRules context="##LaTeX" />
+      </context>
+
+      <!-- A single qualified Ocaml identifier, perhaps preceeded by whitespace. } -->
+      <context name="Ocamldoc Identifier" lineEndContext="#stay" attribute="Mismatched Brackets">
+        <RegExpr      String="&IDENT;(\.&IDENT;)*" context="#pop" attribute="Ocamldoc Link"  />
+        <Detect2Chars char="*" char1=")"           context="#pop" attribute="Mismatched Brackets" />
+        <DetectSpaces />
+      </context>
+
+      <context name="Nested Ocamldoc" lineEndContext="#stay" attribute="Operator">
+        <DetectChar   char="}"           context="#pop" attribute="Ocamldoc Markup" />
+        <Detect2Chars char="*" char1=")" context="#pop" attribute="Mismatched Brackets" />
+        <IncludeRules context="Ocamldoc" includeAttrib="true" />
+      </context>
+
+      <context name="Ocamldoc Bold" lineEndContext="#stay" attribute="Ocamldoc Bold">
+        <IncludeRules context="Nested Ocamldoc" />
+      </context>
+
+      <context name="Ocamldoc Italic" lineEndContext="#stay" attribute="Ocamldoc Italic">
+        <IncludeRules context="Nested Ocamldoc" />
+      </context>
+
+      <context name="Ocamldoc Emphasised" lineEndContext="#stay" attribute="Ocamldoc Emphasised">
+        <IncludeRules context="Nested Ocamldoc" />
+      </context>
+
+      <context name="Ocamldoc Heading" lineEndContext="#stay" attribute="Ocamldoc Heading">
+        <IncludeRules context="Nested Ocamldoc" />
+      </context>
+
+      <context name="Ocamldoc Link" lineEndContext="#stay" attribute="Ocamldoc Link">
+        <IncludeRules context="Nested Ocamldoc" />
+      </context>
+
+      <!-- A list of qualified Ocaml identifiers, seperated by whitespace and ending with a } -->
+      <context name="Ocamldoc References" lineEndContext="#stay" attribute="Mismatched Brackets">
+        <DetectChar   char="}"                     context="#pop"  attribute="Ocamldoc Markup"  />
+        <Detect2Chars char="*" char1=")"           context="#pop"  attribute="Mismatched Brackets" />
+        <RegExpr      String="&IDENT;(\.&IDENT;)*" context="#stay" attribute="Ocamldoc Link"  />
+        <DetectSpaces                              context="#stay" attribute="Ocamldoc Markup" />
+      </context>
+
+      <!-- Unmatched closing brackets- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -->
+
+      <context name="Unmatched Closing Brackets"  lineEndContext="#stay" attribute="Operator">
+        <Detect2Chars char="*" char1=")" context="#pop"  attribute="Mismatched Brackets" />
+        <Detect2Chars char="v" char1="}" context="#stay" attribute="Mismatched Brackets" />
+        <Detect2Chars char="]" char1="}" context="#stay" attribute="Mismatched Brackets" />
+        <Detect2Chars char="%" char1="}" context="#stay" attribute="Mismatched Brackets" />
+        <DetectChar   char="]"           context="#stay" attribute="Mismatched Brackets" />
+        <DetectChar   char="}"           context="#stay" attribute="Mismatched Brackets" />
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Operator"                defStyleNum="dsNormal"   />
+      <itemData name="Keyword"                 defStyleNum="dsKeyword"  />
+      <itemData name="Revised Syntax Keyword"  defStyleNum="dsNormal"   />
+      <itemData name="Lowercase Identifier"    defStyleNum="dsNormal"   />
+      <itemData name="Uppercase Identifier"    defStyleNum="dsNormal"   italic="true" />
+
+      <!-- Lowercase pervasive identifiers: -->
+      <itemData name="Flow Control Functions"   defStyleNum="dsDataType" />
+      <itemData name="Pervasive Functions"      defStyleNum="dsDataType" />
+      <itemData name="Pervasive Types"          defStyleNum="dsDataType" />
+
+      <!-- Uppercase pervasive identifiers: -->
+      <itemData name="Pervasive Exceptions"     defStyleNum="dsDataType" italic="true" />
+      <itemData name="Pervasive Variant Tags"   defStyleNum="dsDataType" italic="true" />
+      <itemData name="Standard Library Modules" defStyleNum="dsDataType" italic="true" />
+
+      <itemData name="Decimal"                 defStyleNum="dsDecVal"   />
+      <itemData name="Hexadecimal"             defStyleNum="dsBaseN"    />
+      <itemData name="Octal"                   defStyleNum="dsBaseN"    />
+      <itemData name="Binary"                  defStyleNum="dsBaseN"    />
+      <itemData name="Float"                   defStyleNum="dsFloat"    />
+
+      <itemData name="Character"               defStyleNum="dsChar"     />
+      <itemData name="String"                  defStyleNum="dsString"   />
+      <itemData name="Camlp4 Quotation"        defStyleNum="dsString"   />
+      <itemData name="Escaped Characters"      defStyleNum="dsChar"     />
+
+      <itemData name="Directive"               defStyleNum="dsOthers"   />
+
+      <itemData name="Comment"                 defStyleNum="dsComment"  />
+      <itemData name="String in Comment"       defStyleNum="dsComment"  bold="true" />
+      <itemData name="Mismatched Brackets"     defStyleNum="dsError"    />
+
+      <itemData name="Ocamldoc Markup"         defStyleNum="dsOthers"   />
+      <itemData name="Ocamldoc Text"           defStyleNum="dsComment"  italic="false" />
+      <itemData name="Ocamldoc Bold"           defStyleNum="dsComment"  italic="false" bold="true" />
+      <itemData name="Ocamldoc Italic"         defStyleNum="dsComment"  italic="true"  bold="false" />
+      <itemData name="Ocamldoc Emphasised"     defStyleNum="dsComment"  italic="true"  bold="true" />
+      <itemData name="Ocamldoc Heading"        defStyleNum="dsComment"  italic="false" bold="true" underline="true" />
+      <itemData name="Ocamldoc Link"           defStyleNum="dsComment"  italic="false" underline="true" color="#0000ff" />
+      <itemData name="Ocamldoc LaTeX"          defStyleNum="dsComment"  italic="false" />
+      <itemData name="Ocamldoc Custom Tag"     defStyleNum="dsOthers"   italic="true"  />
+
+      <itemData name="qtest header style"     defStyleNum="dsNormal"  backgroundColor="#FFEBE0" />
+      <itemData name="qtest param style"      defStyleNum="dsNormal"  italic="true" color="#7788FF" />
+      <!-- backgroundColor="#EEEEFF" -->
+      <itemData name="qtest body style"       defStyleNum="dsNormal"  bold="true" backgroundColor="#D6FFEB" />
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <keywords casesensitive="true" />
+    <comments>
+      <comment name="multiLine" start="(*" end="*)" region ="comment" />
+    </comments>
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/octave.xml b/xml/octave.xml
new file mode 100644
--- /dev/null
+++ b/xml/octave.xml
@@ -0,0 +1,2219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+  ====================================================================
+  Octave syntax highlighting file for the KDE editors Kate and Kwrite
+  ====================================================================
+      based on Octave 2.1.64
+      function and variable list obtained by dispatch_help()'s output
+
+  Change log:
+  16-Dec-04  Created from Matlab and Scilab files.
+
+  Author: Federico Zenith, Norwegian University of Science and Technology
+  Thanks to Luis Silvestre for previous version and suggestions
+-->
+
+
+<language name="Octave" version="2" kateversion="3.4" section="Scientific" extensions="*.octave;*.m;*.M" mimetype="text/octave" casesensitive="1" license="GPL" author="Luis Silvestre and Federico Zenith">
+
+  <highlighting>
+
+    <!-- Reserved keywords in Octave -->
+    <list name="keywords">
+      <item>all_va_args</item>
+      <item>break</item>
+      <item>case</item>
+      <item>continue</item>
+      <item>else</item>
+      <item>elseif</item>
+      <item>end_unwind_protect</item>
+      <item>global</item>
+      <item>gplot</item>
+      <item>gsplot</item>
+      <item>otherwise</item>
+      <item>persistent</item>
+      <item>replot</item>
+      <item>return</item>
+      <item>static</item>
+      <item>until</item>
+      <item>unwind_protect</item>
+      <item>unwind_protect_cleanup</item>
+      <item>varargin</item>
+      <item>varargout</item>
+    </list>
+
+    <list name="builtin">
+      <item>argv</item>
+      <item>e</item>
+      <item>eps</item>
+      <item>false</item>
+      <item>F_DUPFD</item>
+      <item>F_GETFD</item>
+      <item>F_GETFL</item>
+      <item>filesep</item>
+      <item>F_SETFD</item>
+      <item>F_SETFL</item>
+      <item>i</item>
+      <item>I</item>
+      <item>inf</item>
+      <item>Inf</item>
+      <item>j</item>
+      <item>J</item>
+      <item>NA</item>
+      <item>nan</item>
+      <item>NaN</item>
+      <item>O_APPEND</item>
+      <item>O_ASYNC</item>
+      <item>O_CREAT</item>
+      <item>OCTAVE_HOME</item>
+      <item>OCTAVE_VERSION</item>
+      <item>O_EXCL</item>
+      <item>O_NONBLOCK</item>
+      <item>O_RDONLY</item>
+      <item>O_RDWR</item>
+      <item>O_SYNC</item>
+      <item>O_TRUNC</item>
+      <item>O_WRONLY</item>
+      <item>pi</item>
+      <item>program_invocation_name</item>
+      <item>program_name</item>
+      <item>P_tmpdir</item>
+      <item>realmax</item>
+      <item>realmin</item>
+      <item>SEEK_CUR</item>
+      <item>SEEK_END</item>
+      <item>SEEK_SET</item>
+      <item>SIG</item>
+      <item>stderr</item>
+      <item>stdin</item>
+      <item>stdout</item>
+      <item>true</item>
+      <item>ans</item>
+      <item>automatic_replot</item>
+      <item>beep_on_error</item>
+      <item>completion_append_char</item>
+      <item>crash_dumps_octave_core</item>
+      <item>current_script_file_name</item>
+      <item>debug_on_error</item>
+      <item>debug_on_interrupt</item>
+      <item>debug_on_warning</item>
+      <item>debug_symtab_lookups</item>
+      <item>DEFAULT_EXEC_PATH</item>
+      <item>DEFAULT_LOADPATH</item>
+      <item>default_save_format</item>
+      <item>echo_executing_commands</item>
+      <item>EDITOR</item>
+      <item>EXEC_PATH</item>
+      <item>FFTW_WISDOM_PROGRAM</item>
+      <item>fixed_point_format</item>
+      <item>gnuplot_binary</item>
+      <item>gnuplot_command_axes</item>
+      <item>gnuplot_command_end</item>
+      <item>gnuplot_command_plot</item>
+      <item>gnuplot_command_replot</item>
+      <item>gnuplot_command_splot</item>
+      <item>gnuplot_command_title</item>
+      <item>gnuplot_command_using</item>
+      <item>gnuplot_command_with</item>
+      <item>gnuplot_has_frames</item>
+      <item>history_file</item>
+      <item>history_size</item>
+      <item>ignore_function_time_stamp</item>
+      <item>IMAGEPATH</item>
+      <item>INFO_FILE</item>
+      <item>INFO_PROGRAM</item>
+      <item>__kluge_procbuf_delay__</item>
+      <item>LOADPATH</item>
+      <item>MAKEINFO_PROGRAM</item>
+      <item>max_recursion_depth</item>
+      <item>octave_core_file_format</item>
+      <item>octave_core_file_limit</item>
+      <item>octave_core_file_name</item>
+      <item>output_max_field_width</item>
+      <item>output_precision</item>
+      <item>page_output_immediately</item>
+      <item>PAGER</item>
+      <item>page_screen_output</item>
+      <item>print_answer_id_name</item>
+      <item>print_empty_dimensions</item>
+      <item>print_rhs_assign_val</item>
+      <item>PS1</item>
+      <item>PS2</item>
+      <item>PS4</item>
+      <item>save_header_format_string</item>
+      <item>save_precision</item>
+      <item>saving_history</item>
+      <item>sighup_dumps_octave_core</item>
+      <item>sigterm_dumps_octave_core</item>
+      <item>silent_functions</item>
+      <item>split_long_rows</item>
+      <item>string_fill_char</item>
+      <item>struct_levels_to_print</item>
+      <item>suppress_verbose_help_message</item>
+      <item>variables_can_hide_functions</item>
+      <item>warn_assign_as_truth_value</item>
+      <item>warn_divide_by_zero</item>
+      <item>warn_empty_list_elements</item>
+      <item>warn_fortran_indexing</item>
+      <item>warn_function_name_clash</item>
+      <item>warn_future_time_stamp</item>
+      <item>warn_imag_to_real</item>
+      <item>warn_matlab_incompatible</item>
+      <item>warn_missing_semicolon</item>
+      <item>warn_neg_dim_as_zero</item>
+      <item>warn_num_to_str</item>
+      <item>warn_precedence_change</item>
+      <item>warn_reload_forces_clear</item>
+      <item>warn_resize_on_range_error</item>
+      <item>warn_separator_insert</item>
+      <item>warn_single_quote_string</item>
+      <item>warn_str_to_num</item>
+      <item>warn_undefined_return_values</item>
+      <item>warn_variable_switch_label</item>
+      <item>whos_line_format</item>
+    </list>
+    
+    <list name="commands">
+      <item>casesen</item>
+      <item>cd</item>
+      <item>chdir</item>
+      <item>clear</item>
+      <item>dbclear</item>
+      <item>dbstatus</item>
+      <item>dbstop</item>
+      <item>dbtype</item>
+      <item>dbwhere</item>
+      <item>diary</item>
+      <item>echo</item>
+      <item>edit_history</item>
+      <item>__end__</item>
+      <item>format</item>
+      <item>gset</item>
+      <item>gshow</item>
+      <item>help</item>
+      <item>history</item>
+      <item>hold</item>
+      <item>iskeyword</item>
+      <item>isvarname</item>
+      <item>load</item>
+      <item>ls</item>
+      <item>mark_as_command</item>
+      <item>mislocked</item>
+      <item>mlock</item>
+      <item>more</item>
+      <item>munlock</item>
+      <item>run_history</item>
+      <item>save</item>
+      <item>set</item>
+      <item>show</item>
+      <item>type</item>
+      <item>unmark_command</item>
+      <item>which</item>
+      <item>who</item>
+      <item>whos</item>
+    </list>
+    
+    <list name="functions">
+      <item>abs</item>
+      <item>acos</item>
+      <item>acosh</item>
+      <item>all</item>
+      <item>angle</item>
+      <item>any</item>
+      <item>append</item>
+      <item>arg</item>
+      <item>argnames</item>
+      <item>asin</item>
+      <item>asinh</item>
+      <item>assignin</item>
+      <item>atan</item>
+      <item>atan2</item>
+      <item>atanh</item>
+      <item>atexit</item>
+      <item>bitand</item>
+      <item>bitmax</item>
+      <item>bitor</item>
+      <item>bitshift</item>
+      <item>bitxor</item>
+      <item>casesen</item>
+      <item>cat</item>
+      <item>cd</item>
+      <item>ceil</item>
+      <item>cell</item>
+      <item>cell2struct</item>
+      <item>cellstr</item>
+      <item>char</item>
+      <item>chdir</item>
+      <item>class</item>
+      <item>clc</item>
+      <item>clear</item>
+      <item>clearplot</item>
+      <item>clg</item>
+      <item>closeplot</item>
+      <item>completion_matches</item>
+      <item>conj</item>
+      <item>conv</item>
+      <item>convmtx</item>
+      <item>cos</item>
+      <item>cosh</item>
+      <item>cumprod</item>
+      <item>cumsum</item>
+      <item>dbclear</item>
+      <item>dbstatus</item>
+      <item>dbstop</item>
+      <item>dbtype</item>
+      <item>dbwhere</item>
+      <item>deconv</item>
+      <item>det</item>
+      <item>dftmtx</item>
+      <item>diag</item>
+      <item>diary</item>
+      <item>disp</item>
+      <item>document</item>
+      <item>do_string_escapes</item>
+      <item>double</item>
+      <item>dup2</item>
+      <item>echo</item>
+      <item>edit_history</item>
+      <item>__end__</item>
+      <item>erf</item>
+      <item>erfc</item>
+      <item>ERRNO</item>
+      <item>error</item>
+      <item>__error_text__</item>
+      <item>error_text</item>
+      <item>eval</item>
+      <item>evalin</item>
+      <item>exec</item>
+      <item>exist</item>
+      <item>exit</item>
+      <item>exp</item>
+      <item>eye</item>
+      <item>fclose</item>
+      <item>fcntl</item>
+      <item>fdisp</item>
+      <item>feof</item>
+      <item>ferror</item>
+      <item>feval</item>
+      <item>fflush</item>
+      <item>fft</item>
+      <item>fgetl</item>
+      <item>fgets</item>
+      <item>fieldnames</item>
+      <item>file_in_loadpath</item>
+      <item>file_in_path</item>
+      <item>filter</item>
+      <item>find</item>
+      <item>find_first_of_in_loadpath</item>
+      <item>finite</item>
+      <item>fix</item>
+      <item>floor</item>
+      <item>fmod</item>
+      <item>fnmatch</item>
+      <item>fopen</item>
+      <item>fork</item>
+      <item>format</item>
+      <item>formula</item>
+      <item>fprintf</item>
+      <item>fputs</item>
+      <item>fread</item>
+      <item>freport</item>
+      <item>frewind</item>
+      <item>fscanf</item>
+      <item>fseek</item>
+      <item>ftell</item>
+      <item>func2str</item>
+      <item>functions</item>
+      <item>fwrite</item>
+      <item>gamma</item>
+      <item>gammaln</item>
+      <item>getegid</item>
+      <item>getenv</item>
+      <item>geteuid</item>
+      <item>getgid</item>
+      <item>getpgrp</item>
+      <item>getpid</item>
+      <item>getppid</item>
+      <item>getuid</item>
+      <item>glob</item>
+      <item>graw</item>
+      <item>gset</item>
+      <item>gshow</item>
+      <item>help</item>
+      <item>history</item>
+      <item>hold</item>
+      <item>home</item>
+      <item>horzcat</item>
+      <item>ifft</item>
+      <item>imag</item>
+      <item>inline</item>
+      <item>input</item>
+      <item>input_event_hook</item>
+      <item>int16</item>
+      <item>int32</item>
+      <item>int64</item>
+      <item>int8</item>
+      <item>intmax</item>
+      <item>intmin</item>
+      <item>inv</item>
+      <item>inverse</item>
+      <item>ipermute</item>
+      <item>isalnum</item>
+      <item>isalpha</item>
+      <item>isascii</item>
+      <item>isbool</item>
+      <item>iscell</item>
+      <item>iscellstr</item>
+      <item>ischar</item>
+      <item>iscntrl</item>
+      <item>iscomplex</item>
+      <item>isdigit</item>
+      <item>isempty</item>
+      <item>isfield</item>
+      <item>isfinite</item>
+      <item>isglobal</item>
+      <item>isgraph</item>
+      <item>ishold</item>
+      <item>isieee</item>
+      <item>isinf</item>
+      <item>iskeyword</item>
+      <item>islist</item>
+      <item>islogical</item>
+      <item>islower</item>
+      <item>ismatrix</item>
+      <item>isna</item>
+      <item>isnan</item>
+      <item>is_nan_or_na</item>
+      <item>isnumeric</item>
+      <item>isprint</item>
+      <item>ispunct</item>
+      <item>isreal</item>
+      <item>isspace</item>
+      <item>isstream</item>
+      <item>isstreamoff</item>
+      <item>isstruct</item>
+      <item>isupper</item>
+      <item>isvarname</item>
+      <item>isxdigit</item>
+      <item>kbhit</item>
+      <item>keyboard</item>
+      <item>kill</item>
+      <item>lasterr</item>
+      <item>lastwarn</item>
+      <item>length</item>
+      <item>lgamma</item>
+      <item>link</item>
+      <item>linspace</item>
+      <item>list</item>
+      <item>load</item>
+      <item>log</item>
+      <item>log10</item>
+      <item>ls</item>
+      <item>lstat</item>
+      <item>lu</item>
+      <item>mark_as_command</item>
+      <item>mislocked</item>
+      <item>mkdir</item>
+      <item>mkfifo</item>
+      <item>mkstemp</item>
+      <item>mlock</item>
+      <item>more</item>
+      <item>munlock</item>
+      <item>nargin</item>
+      <item>nargout</item>
+      <item>native_float_format</item>
+      <item>ndims</item>
+      <item>nth</item>
+      <item>numel</item>
+      <item>octave_config_info</item>
+      <item>octave_tmp_file_name</item>
+      <item>ones</item>
+      <item>pause</item>
+      <item>pclose</item>
+      <item>permute</item>
+      <item>pipe</item>
+      <item>popen</item>
+      <item>printf</item>
+      <item>__print_symbol_info__</item>
+      <item>__print_symtab_info__</item>
+      <item>prod</item>
+      <item>purge_tmp_files</item>
+      <item>putenv</item>
+      <item>puts</item>
+      <item>pwd</item>
+      <item>quit</item>
+      <item>rank</item>
+      <item>readdir</item>
+      <item>readlink</item>
+      <item>read_readline_init_file</item>
+      <item>real</item>
+      <item>rehash</item>
+      <item>rename</item>
+      <item>reshape</item>
+      <item>reverse</item>
+      <item>rmdir</item>
+      <item>rmfield</item>
+      <item>roots</item>
+      <item>round</item>
+      <item>run_history</item>
+      <item>save</item>
+      <item>scanf</item>
+      <item>set</item>
+      <item>shell_cmd</item>
+      <item>show</item>
+      <item>sign</item>
+      <item>sin</item>
+      <item>sinh</item>
+      <item>size</item>
+      <item>sizeof</item>
+      <item>sleep</item>
+      <item>sort</item>
+      <item>source</item>
+      <item>splice</item>
+      <item>sprintf</item>
+      <item>sqrt</item>
+      <item>squeeze</item>
+      <item>sscanf</item>
+      <item>stat</item>
+      <item>str2func</item>
+      <item>streamoff</item>
+      <item>struct</item>
+      <item>struct2cell</item>
+      <item>sum</item>
+      <item>sumsq</item>
+      <item>symlink</item>
+      <item>system</item>
+      <item>tan</item>
+      <item>tanh</item>
+      <item>tilde_expand</item>
+      <item>tmpfile</item>
+      <item>tmpnam</item>
+      <item>toascii</item>
+      <item>__token_count__</item>
+      <item>tolower</item>
+      <item>toupper</item>
+      <item>type</item>
+      <item>typeinfo</item>
+      <item>uint16</item>
+      <item>uint32</item>
+      <item>uint64</item>
+      <item>uint8</item>
+      <item>umask</item>
+      <item>undo_string_escapes</item>
+      <item>unlink</item>
+      <item>unmark_command</item>
+      <item>usage</item>
+      <item>usleep</item>
+      <item>va_arg</item>
+      <item>va_start</item>
+      <item>vectorize</item>
+      <item>vertcat</item>
+      <item>vr_val</item>
+      <item>waitpid</item>
+      <item>warning</item>
+      <item>warranty</item>
+      <item>which</item>
+      <item>who</item>
+      <item>whos</item>
+      <item>zeros</item>
+      <item>airy</item>
+      <item>balance</item>
+      <item>besselh</item>
+      <item>besseli</item>
+      <item>besselj</item>
+      <item>besselk</item>
+      <item>bessely</item>
+      <item>betainc</item>
+      <item>chol</item>
+      <item>colloc</item>
+      <item>daspk</item>
+      <item>daspk_options</item>
+      <item>dasrt</item>
+      <item>dasrt_options</item>
+      <item>dassl</item>
+      <item>dassl_options</item>
+      <item>det</item>
+      <item>eig</item>
+      <item>endgrent</item>
+      <item>endpwent</item>
+      <item>expm</item>
+      <item>fft</item>
+      <item>fft2</item>
+      <item>fftn</item>
+      <item>fftw_wisdom</item>
+      <item>filter</item>
+      <item>find</item>
+      <item>fsolve</item>
+      <item>fsolve_options</item>
+      <item>gammainc</item>
+      <item>gcd</item>
+      <item>getgrent</item>
+      <item>getgrgid</item>
+      <item>getgrnam</item>
+      <item>getpwent</item>
+      <item>getpwnam</item>
+      <item>getpwuid</item>
+      <item>getrusage</item>
+      <item>givens</item>
+      <item>gmtime</item>
+      <item>hess</item>
+      <item>ifft</item>
+      <item>ifft2</item>
+      <item>ifftn</item>
+      <item>inv</item>
+      <item>inverse</item>
+      <item>kron</item>
+      <item>localtime</item>
+      <item>lpsolve</item>
+      <item>lpsolve_options</item>
+      <item>lsode</item>
+      <item>lsode_options</item>
+      <item>lu</item>
+      <item>max</item>
+      <item>min</item>
+      <item>minmax</item>
+      <item>mktime</item>
+      <item>odessa</item>
+      <item>odessa_options</item>
+      <item>pinv</item>
+      <item>qr</item>
+      <item>quad</item>
+      <item>quad_options</item>
+      <item>qz</item>
+      <item>rand</item>
+      <item>randn</item>
+      <item>schur</item>
+      <item>setgrent</item>
+      <item>setpwent</item>
+      <item>sort</item>
+      <item>sqrtm</item>
+      <item>strftime</item>
+      <item>strptime</item>
+      <item>svd</item>
+      <item>syl</item>
+      <item>time</item>
+      <item>abcddim</item>
+      <item>__abcddims__</item>
+      <item>acot</item>
+      <item>acoth</item>
+      <item>acsc</item>
+      <item>acsch</item>
+      <item>analdemo</item>
+      <item>anova</item>
+      <item>arch_fit</item>
+      <item>arch_rnd</item>
+      <item>arch_test</item>
+      <item>are</item>
+      <item>arma_rnd</item>
+      <item>asctime</item>
+      <item>asec</item>
+      <item>asech</item>
+      <item>autocor</item>
+      <item>autocov</item>
+      <item>autoreg_matrix</item>
+      <item>axis</item>
+      <item>axis2dlim</item>
+      <item>__axis_label__</item>
+      <item>bar</item>
+      <item>bartlett</item>
+      <item>bartlett_test</item>
+      <item>base2dec</item>
+      <item>bddemo</item>
+      <item>beep</item>
+      <item>bessel</item>
+      <item>beta</item>
+      <item>beta_cdf</item>
+      <item>betai</item>
+      <item>beta_inv</item>
+      <item>beta_pdf</item>
+      <item>beta_rnd</item>
+      <item>bin2dec</item>
+      <item>bincoeff</item>
+      <item>binomial_cdf</item>
+      <item>binomial_inv</item>
+      <item>binomial_pdf</item>
+      <item>binomial_rnd</item>
+      <item>bitcmp</item>
+      <item>bitget</item>
+      <item>bitset</item>
+      <item>blackman</item>
+      <item>blanks</item>
+      <item>bode</item>
+      <item>bode_bounds</item>
+      <item>__bodquist__</item>
+      <item>bottom_title</item>
+      <item>bug_report</item>
+      <item>buildssic</item>
+      <item>c2d</item>
+      <item>cart2pol</item>
+      <item>cart2sph</item>
+      <item>cauchy_cdf</item>
+      <item>cauchy_inv</item>
+      <item>cauchy_pdf</item>
+      <item>cauchy_rnd</item>
+      <item>cellidx</item>
+      <item>center</item>
+      <item>chisquare_cdf</item>
+      <item>chisquare_inv</item>
+      <item>chisquare_pdf</item>
+      <item>chisquare_rnd</item>
+      <item>chisquare_test_homogeneity</item>
+      <item>chisquare_test_independence</item>
+      <item>circshift</item>
+      <item>clock</item>
+      <item>cloglog</item>
+      <item>close</item>
+      <item>colormap</item>
+      <item>columns</item>
+      <item>com2str</item>
+      <item>comma</item>
+      <item>common_size</item>
+      <item>commutation_matrix</item>
+      <item>compan</item>
+      <item>complement</item>
+      <item>computer</item>
+      <item>cond</item>
+      <item>contour</item>
+      <item>controldemo</item>
+      <item>conv</item>
+      <item>cor</item>
+      <item>corrcoef</item>
+      <item>cor_test</item>
+      <item>cot</item>
+      <item>coth</item>
+      <item>cov</item>
+      <item>cputime</item>
+      <item>create_set</item>
+      <item>cross</item>
+      <item>csc</item>
+      <item>csch</item>
+      <item>ctime</item>
+      <item>ctrb</item>
+      <item>cut</item>
+      <item>d2c</item>
+      <item>damp</item>
+      <item>dare</item>
+      <item>date</item>
+      <item>dcgain</item>
+      <item>deal</item>
+      <item>deblank</item>
+      <item>dec2base</item>
+      <item>dec2bin</item>
+      <item>dec2hex</item>
+      <item>deconv</item>
+      <item>delete</item>
+      <item>DEMOcontrol</item>
+      <item>demoquat</item>
+      <item>detrend</item>
+      <item>dezero</item>
+      <item>dgkfdemo</item>
+      <item>dgram</item>
+      <item>dhinfdemo</item>
+      <item>diff</item>
+      <item>diffpara</item>
+      <item>dir</item>
+      <item>discrete_cdf</item>
+      <item>discrete_inv</item>
+      <item>discrete_pdf</item>
+      <item>discrete_rnd</item>
+      <item>dkalman</item>
+      <item>dlqe</item>
+      <item>dlqg</item>
+      <item>dlqr</item>
+      <item>dlyap</item>
+      <item>dmr2d</item>
+      <item>dmult</item>
+      <item>dot</item>
+      <item>dre</item>
+      <item>dump_prefs</item>
+      <item>duplication_matrix</item>
+      <item>durbinlevinson</item>
+      <item>empirical_cdf</item>
+      <item>empirical_inv</item>
+      <item>empirical_pdf</item>
+      <item>empirical_rnd</item>
+      <item>erfinv</item>
+      <item>__errcomm__</item>
+      <item>errorbar</item>
+      <item>__errplot__</item>
+      <item>etime</item>
+      <item>exponential_cdf</item>
+      <item>exponential_inv</item>
+      <item>exponential_pdf</item>
+      <item>exponential_rnd</item>
+      <item>f_cdf</item>
+      <item>fftconv</item>
+      <item>fftfilt</item>
+      <item>fftshift</item>
+      <item>figure</item>
+      <item>fileparts</item>
+      <item>findstr</item>
+      <item>f_inv</item>
+      <item>fir2sys</item>
+      <item>flipdim</item>
+      <item>fliplr</item>
+      <item>flipud</item>
+      <item>flops</item>
+      <item>f_pdf</item>
+      <item>fractdiff</item>
+      <item>frdemo</item>
+      <item>freqchkw</item>
+      <item>__freqresp__</item>
+      <item>freqz</item>
+      <item>freqz_plot</item>
+      <item>f_rnd</item>
+      <item>f_test_regression</item>
+      <item>fullfile</item>
+      <item>fv</item>
+      <item>fvl</item>
+      <item>gamma_cdf</item>
+      <item>gammai</item>
+      <item>gamma_inv</item>
+      <item>gamma_pdf</item>
+      <item>gamma_rnd</item>
+      <item>geometric_cdf</item>
+      <item>geometric_inv</item>
+      <item>geometric_pdf</item>
+      <item>geometric_rnd</item>
+      <item>gls</item>
+      <item>gram</item>
+      <item>gray</item>
+      <item>gray2ind</item>
+      <item>grid</item>
+      <item>h2norm</item>
+      <item>h2syn</item>
+      <item>hamming</item>
+      <item>hankel</item>
+      <item>hanning</item>
+      <item>hex2dec</item>
+      <item>hilb</item>
+      <item>hinf_ctr</item>
+      <item>hinfdemo</item>
+      <item>hinfnorm</item>
+      <item>hinfsyn</item>
+      <item>hinfsyn_chk</item>
+      <item>hinfsyn_ric</item>
+      <item>hist</item>
+      <item>hotelling_test</item>
+      <item>hotelling_test_2</item>
+      <item>housh</item>
+      <item>hsv2rgb</item>
+      <item>hurst</item>
+      <item>hypergeometric_cdf</item>
+      <item>hypergeometric_inv</item>
+      <item>hypergeometric_pdf</item>
+      <item>hypergeometric_rnd</item>
+      <item>image</item>
+      <item>imagesc</item>
+      <item>impulse</item>
+      <item>imshow</item>
+      <item>ind2gray</item>
+      <item>ind2rgb</item>
+      <item>ind2sub</item>
+      <item>index</item>
+      <item>int2str</item>
+      <item>intersection</item>
+      <item>invhilb</item>
+      <item>iqr</item>
+      <item>irr</item>
+      <item>isa</item>
+      <item>is_abcd</item>
+      <item>is_bool</item>
+      <item>is_complex</item>
+      <item>is_controllable</item>
+      <item>isdefinite</item>
+      <item>is_detectable</item>
+      <item>is_dgkf</item>
+      <item>is_digital</item>
+      <item>is_duplicate_entry</item>
+      <item>is_global</item>
+      <item>is_leap_year</item>
+      <item>isletter</item>
+      <item>is_list</item>
+      <item>is_matrix</item>
+      <item>is_observable</item>
+      <item>ispc</item>
+      <item>is_sample</item>
+      <item>is_scalar</item>
+      <item>isscalar</item>
+      <item>is_signal_list</item>
+      <item>is_siso</item>
+      <item>is_square</item>
+      <item>issquare</item>
+      <item>is_stabilizable</item>
+      <item>is_stable</item>
+      <item>isstr</item>
+      <item>is_stream</item>
+      <item>is_struct</item>
+      <item>is_symmetric</item>
+      <item>issymmetric</item>
+      <item>isunix</item>
+      <item>is_vector</item>
+      <item>isvector</item>
+      <item>jet707</item>
+      <item>kendall</item>
+      <item>kolmogorov_smirnov_cdf</item>
+      <item>kolmogorov_smirnov_test</item>
+      <item>kolmogorov_smirnov_test_2</item>
+      <item>kruskal_wallis_test</item>
+      <item>krylov</item>
+      <item>krylovb</item>
+      <item>kurtosis</item>
+      <item>laplace_cdf</item>
+      <item>laplace_inv</item>
+      <item>laplace_pdf</item>
+      <item>laplace_rnd</item>
+      <item>lcm</item>
+      <item>lin2mu</item>
+      <item>listidx</item>
+      <item>list_primes</item>
+      <item>loadaudio</item>
+      <item>loadimage</item>
+      <item>log2</item>
+      <item>logical</item>
+      <item>logistic_cdf</item>
+      <item>logistic_inv</item>
+      <item>logistic_pdf</item>
+      <item>logistic_regression</item>
+      <item>logistic_regression_derivatives</item>
+      <item>logistic_regression_likelihood</item>
+      <item>logistic_rnd</item>
+      <item>logit</item>
+      <item>loglog</item>
+      <item>loglogerr</item>
+      <item>logm</item>
+      <item>lognormal_cdf</item>
+      <item>lognormal_inv</item>
+      <item>lognormal_pdf</item>
+      <item>lognormal_rnd</item>
+      <item>logspace</item>
+      <item>lower</item>
+      <item>lqe</item>
+      <item>lqg</item>
+      <item>lqr</item>
+      <item>lsim</item>
+      <item>ltifr</item>
+      <item>lyap</item>
+      <item>mahalanobis</item>
+      <item>manova</item>
+      <item>mcnemar_test</item>
+      <item>mean</item>
+      <item>meansq</item>
+      <item>median</item>
+      <item>menu</item>
+      <item>mesh</item>
+      <item>meshdom</item>
+      <item>meshgrid</item>
+      <item>minfo</item>
+      <item>mod</item>
+      <item>moddemo</item>
+      <item>moment</item>
+      <item>mplot</item>
+      <item>mu2lin</item>
+      <item>multiplot</item>
+      <item>nargchk</item>
+      <item>nextpow2</item>
+      <item>nichols</item>
+      <item>norm</item>
+      <item>normal_cdf</item>
+      <item>normal_inv</item>
+      <item>normal_pdf</item>
+      <item>normal_rnd</item>
+      <item>not</item>
+      <item>nper</item>
+      <item>npv</item>
+      <item>ntsc2rgb</item>
+      <item>null</item>
+      <item>num2str</item>
+      <item>nyquist</item>
+      <item>obsv</item>
+      <item>ocean</item>
+      <item>ols</item>
+      <item>oneplot</item>
+      <item>ord2</item>
+      <item>orth</item>
+      <item>__outlist__</item>
+      <item>pack</item>
+      <item>packedform</item>
+      <item>packsys</item>
+      <item>parallel</item>
+      <item>paren</item>
+      <item>pascal_cdf</item>
+      <item>pascal_inv</item>
+      <item>pascal_pdf</item>
+      <item>pascal_rnd</item>
+      <item>path</item>
+      <item>periodogram</item>
+      <item>perror</item>
+      <item>place</item>
+      <item>playaudio</item>
+      <item>plot</item>
+      <item>plot_border</item>
+      <item>__plr__</item>
+      <item>__plr1__</item>
+      <item>__plr2__</item>
+      <item>__plt__</item>
+      <item>__plt1__</item>
+      <item>__plt2__</item>
+      <item>__plt2mm__</item>
+      <item>__plt2mv__</item>
+      <item>__plt2ss__</item>
+      <item>__plt2vm__</item>
+      <item>__plt2vv__</item>
+      <item>__pltopt__</item>
+      <item>__pltopt1__</item>
+      <item>pmt</item>
+      <item>poisson_cdf</item>
+      <item>poisson_inv</item>
+      <item>poisson_pdf</item>
+      <item>poisson_rnd</item>
+      <item>pol2cart</item>
+      <item>polar</item>
+      <item>poly</item>
+      <item>polyder</item>
+      <item>polyderiv</item>
+      <item>polyfit</item>
+      <item>polyinteg</item>
+      <item>polyout</item>
+      <item>polyreduce</item>
+      <item>polyval</item>
+      <item>polyvalm</item>
+      <item>popen2</item>
+      <item>postpad</item>
+      <item>pow2</item>
+      <item>ppplot</item>
+      <item>prepad</item>
+      <item>probit</item>
+      <item>prompt</item>
+      <item>prop_test_2</item>
+      <item>pv</item>
+      <item>pvl</item>
+      <item>pzmap</item>
+      <item>qconj</item>
+      <item>qcoordinate_plot</item>
+      <item>qderiv</item>
+      <item>qderivmat</item>
+      <item>qinv</item>
+      <item>qmult</item>
+      <item>qqplot</item>
+      <item>qtrans</item>
+      <item>qtransv</item>
+      <item>qtransvmat</item>
+      <item>quaternion</item>
+      <item>qzhess</item>
+      <item>qzval</item>
+      <item>randperm</item>
+      <item>range</item>
+      <item>rank</item>
+      <item>ranks</item>
+      <item>rate</item>
+      <item>record</item>
+      <item>rectangle_lw</item>
+      <item>rectangle_sw</item>
+      <item>rem</item>
+      <item>repmat</item>
+      <item>residue</item>
+      <item>rgb2hsv</item>
+      <item>rgb2ind</item>
+      <item>rgb2ntsc</item>
+      <item>rindex</item>
+      <item>rldemo</item>
+      <item>rlocus</item>
+      <item>roots</item>
+      <item>rot90</item>
+      <item>rotdim</item>
+      <item>rotg</item>
+      <item>rows</item>
+      <item>run_cmd</item>
+      <item>run_count</item>
+      <item>run_test</item>
+      <item>saveaudio</item>
+      <item>saveimage</item>
+      <item>sec</item>
+      <item>sech</item>
+      <item>semicolon</item>
+      <item>semilogx</item>
+      <item>semilogxerr</item>
+      <item>semilogy</item>
+      <item>semilogyerr</item>
+      <item>series</item>
+      <item>setaudio</item>
+      <item>setstr</item>
+      <item>shg</item>
+      <item>shift</item>
+      <item>shiftdim</item>
+      <item>sign_test</item>
+      <item>sinc</item>
+      <item>sinetone</item>
+      <item>sinewave</item>
+      <item>skewness</item>
+      <item>sombrero</item>
+      <item>sortcom</item>
+      <item>spearman</item>
+      <item>spectral_adf</item>
+      <item>spectral_xdf</item>
+      <item>spencer</item>
+      <item>sph2cart</item>
+      <item>split</item>
+      <item>ss</item>
+      <item>ss2sys</item>
+      <item>ss2tf</item>
+      <item>ss2zp</item>
+      <item>stairs</item>
+      <item>starp</item>
+      <item>statistics</item>
+      <item>std</item>
+      <item>stdnormal_cdf</item>
+      <item>stdnormal_inv</item>
+      <item>stdnormal_pdf</item>
+      <item>stdnormal_rnd</item>
+      <item>step</item>
+      <item>__stepimp__</item>
+      <item>stft</item>
+      <item>str2mat</item>
+      <item>str2num</item>
+      <item>strappend</item>
+      <item>strcat</item>
+      <item>strcmp</item>
+      <item>strerror</item>
+      <item>strjust</item>
+      <item>strrep</item>
+      <item>struct_contains</item>
+      <item>struct_elements</item>
+      <item>studentize</item>
+      <item>sub2ind</item>
+      <item>subplot</item>
+      <item>substr</item>
+      <item>subwindow</item>
+      <item>swap</item>
+      <item>swapcols</item>
+      <item>swaprows</item>
+      <item>sylvester_matrix</item>
+      <item>synthesis</item>
+      <item>sys2fir</item>
+      <item>sys2ss</item>
+      <item>sys2tf</item>
+      <item>sys2zp</item>
+      <item>sysadd</item>
+      <item>sysappend</item>
+      <item>syschnames</item>
+      <item>__syschnamesl__</item>
+      <item>syschtsam</item>
+      <item>__sysconcat__</item>
+      <item>sysconnect</item>
+      <item>syscont</item>
+      <item>__syscont_disc__</item>
+      <item>__sysdefioname__</item>
+      <item>__sysdefstname__</item>
+      <item>sysdimensions</item>
+      <item>sysdisc</item>
+      <item>sysdup</item>
+      <item>sysgetsignals</item>
+      <item>sysgettsam</item>
+      <item>sysgettype</item>
+      <item>sysgroup</item>
+      <item>__sysgroupn__</item>
+      <item>sysidx</item>
+      <item>sysmin</item>
+      <item>sysmult</item>
+      <item>sysout</item>
+      <item>sysprune</item>
+      <item>sysreorder</item>
+      <item>sysrepdemo</item>
+      <item>sysscale</item>
+      <item>syssetsignals</item>
+      <item>syssub</item>
+      <item>sysupdate</item>
+      <item>table</item>
+      <item>t_cdf</item>
+      <item>tempdir</item>
+      <item>tempname</item>
+      <item>texas_lotto</item>
+      <item>tf</item>
+      <item>tf2ss</item>
+      <item>tf2sys</item>
+      <item>__tf2sysl__</item>
+      <item>tf2zp</item>
+      <item>__tfl__</item>
+      <item>tfout</item>
+      <item>tic</item>
+      <item>t_inv</item>
+      <item>title</item>
+      <item>toc</item>
+      <item>toeplitz</item>
+      <item>top_title</item>
+      <item>t_pdf</item>
+      <item>trace</item>
+      <item>triangle_lw</item>
+      <item>triangle_sw</item>
+      <item>tril</item>
+      <item>triu</item>
+      <item>t_rnd</item>
+      <item>t_test</item>
+      <item>t_test_2</item>
+      <item>t_test_regression</item>
+      <item>tzero</item>
+      <item>tzero2</item>
+      <item>ugain</item>
+      <item>uniform_cdf</item>
+      <item>uniform_inv</item>
+      <item>uniform_pdf</item>
+      <item>uniform_rnd</item>
+      <item>union</item>
+      <item>unix</item>
+      <item>unpacksys</item>
+      <item>unwrap</item>
+      <item>upper</item>
+      <item>u_test</item>
+      <item>values</item>
+      <item>vander</item>
+      <item>var</item>
+      <item>var_test</item>
+      <item>vec</item>
+      <item>vech</item>
+      <item>version</item>
+      <item>vol</item>
+      <item>weibull_cdf</item>
+      <item>weibull_inv</item>
+      <item>weibull_pdf</item>
+      <item>weibull_rnd</item>
+      <item>welch_test</item>
+      <item>wgt1o</item>
+      <item>wiener_rnd</item>
+      <item>wilcoxon_test</item>
+      <item>xlabel</item>
+      <item>xor</item>
+      <item>ylabel</item>
+      <item>yulewalker</item>
+      <item>zgfmul</item>
+      <item>zgfslv</item>
+      <item>zginit</item>
+      <item>__zgpbal__</item>
+      <item>zgreduce</item>
+      <item>zgrownorm</item>
+      <item>zgscal</item>
+      <item>zgsgiv</item>
+      <item>zgshsr</item>
+      <item>zlabel</item>
+      <item>zp</item>
+      <item>zp2ss</item>
+      <item>__zp2ssg2__</item>
+      <item>zp2sys</item>
+      <item>zp2tf</item>
+      <item>zpout</item>
+      <item>z_test</item>
+      <item>z_test_2</item>
+    </list>
+    
+    <list name="forge">
+      <item>airy_Ai</item>
+      <item>airy_Ai_deriv</item>
+      <item>airy_Ai_deriv_scaled</item>
+      <item>airy_Ai_scaled</item>
+      <item>airy_Bi</item>
+      <item>airy_Bi_deriv</item>
+      <item>airy_Bi_deriv_scaled</item>
+      <item>airy_Bi_scaled</item>
+      <item>airy_zero_Ai</item>
+      <item>airy_zero_Ai_deriv</item>
+      <item>airy_zero_Bi</item>
+      <item>airy_zero_Bi_deriv</item>
+      <item>atanint</item>
+      <item>bchdeco</item>
+      <item>bchenco</item>
+      <item>bessel_il_scaled</item>
+      <item>bessel_In</item>
+      <item>bessel_In_scaled</item>
+      <item>bessel_Inu</item>
+      <item>bessel_Inu_scaled</item>
+      <item>bessel_jl</item>
+      <item>bessel_Jn</item>
+      <item>bessel_Jnu</item>
+      <item>bessel_kl_scaled</item>
+      <item>bessel_Kn</item>
+      <item>bessel_Kn_scaled</item>
+      <item>bessel_Knu</item>
+      <item>bessel_Knu_scaled</item>
+      <item>bessel_lnKnu</item>
+      <item>bessel_yl</item>
+      <item>bessel_Yn</item>
+      <item>bessel_Ynu</item>
+      <item>bessel_zero_J0</item>
+      <item>bessel_zero_J1</item>
+      <item>beta_gsl</item>
+      <item>bfgsmin</item>
+      <item>bisectionstep</item>
+      <item>builtin</item>
+      <item>bwfill</item>
+      <item>bwlabel</item>
+      <item>cell2csv</item>
+      <item>celleval</item>
+      <item>Chi</item>
+      <item>chol</item>
+      <item>Ci</item>
+      <item>clausen</item>
+      <item>conicalP_0</item>
+      <item>conicalP_1</item>
+      <item>conicalP_half</item>
+      <item>conicalP_mhalf</item>
+      <item>conv2</item>
+      <item>cordflt2</item>
+      <item>coupling_3j</item>
+      <item>coupling_6j</item>
+      <item>coupling_9j</item>
+      <item>csv2cell</item>
+      <item>csvconcat</item>
+      <item>csvexplode</item>
+      <item>cyclgen</item>
+      <item>cyclpoly</item>
+      <item>dawson</item>
+      <item>debye_1</item>
+      <item>debye_2</item>
+      <item>debye_3</item>
+      <item>debye_4</item>
+      <item>deref</item>
+      <item>dispatch</item>
+      <item>dispatch_help</item>
+      <item>display_fixed_operations</item>
+      <item>dlmread</item>
+      <item>ellint_Ecomp</item>
+      <item>ellint_Kcomp</item>
+      <item>ellipj</item>
+      <item>erfc_gsl</item>
+      <item>erf_gsl</item>
+      <item>erf_Q</item>
+      <item>erf_Z</item>
+      <item>_errcore</item>
+      <item>eta</item>
+      <item>eta_int</item>
+      <item>expint_3</item>
+      <item>expint_E1</item>
+      <item>expint_E2</item>
+      <item>expint_Ei</item>
+      <item>expm1</item>
+      <item>exp_mult</item>
+      <item>exprel</item>
+      <item>exprel_2</item>
+      <item>exprel_n</item>
+      <item>fabs</item>
+      <item>fangle</item>
+      <item>farg</item>
+      <item>fatan2</item>
+      <item>fceil</item>
+      <item>fconj</item>
+      <item>fcos</item>
+      <item>fcosh</item>
+      <item>fcumprod</item>
+      <item>fcumsum</item>
+      <item>fdiag</item>
+      <item>fermi_dirac_3half</item>
+      <item>fermi_dirac_half</item>
+      <item>fermi_dirac_inc_0</item>
+      <item>fermi_dirac_int</item>
+      <item>fermi_dirac_mhalf</item>
+      <item>fexp</item>
+      <item>ffloor</item>
+      <item>fimag</item>
+      <item>finitedifference</item>
+      <item>fixed</item>
+      <item>flog</item>
+      <item>flog10</item>
+      <item>fprod</item>
+      <item>freal</item>
+      <item>freshape</item>
+      <item>fround</item>
+      <item>fsin</item>
+      <item>fsinh</item>
+      <item>fsqrt</item>
+      <item>fsum</item>
+      <item>fsumsq</item>
+      <item>ftan</item>
+      <item>ftanh</item>
+      <item>full</item>
+      <item>gamma_gsl</item>
+      <item>gamma_inc</item>
+      <item>gamma_inc_P</item>
+      <item>gamma_inc_Q</item>
+      <item>gammainv_gsl</item>
+      <item>gammastar</item>
+      <item>gdet</item>
+      <item>gdiag</item>
+      <item>gexp</item>
+      <item>gf</item>
+      <item>gfilter</item>
+      <item>_gfweight</item>
+      <item>ginv</item>
+      <item>ginverse</item>
+      <item>glog</item>
+      <item>glu</item>
+      <item>gpick</item>
+      <item>gprod</item>
+      <item>grab</item>
+      <item>grank</item>
+      <item>graycomatrix</item>
+      <item>__grcla__</item>
+      <item>__grclf__</item>
+      <item>__grcmd__</item>
+      <item>greshape</item>
+      <item>__grexit__</item>
+      <item>__grfigure__</item>
+      <item>__grgetstat__</item>
+      <item>__grhold__</item>
+      <item>__grinit__</item>
+      <item>__grishold__</item>
+      <item>__grnewset__</item>
+      <item>__grsetgraph__</item>
+      <item>gsl_sf</item>
+      <item>gsqrt</item>
+      <item>gsum</item>
+      <item>gsumsq</item>
+      <item>gtext</item>
+      <item>gzoom</item>
+      <item>hazard</item>
+      <item>houghtf</item>
+      <item>hyperg_0F1</item>
+      <item>hzeta</item>
+      <item>is_complex_sparse</item>
+      <item>isfixed</item>
+      <item>isgalois</item>
+      <item>isprimitive</item>
+      <item>is_real_sparse</item>
+      <item>is_sparse</item>
+      <item>jpgread</item>
+      <item>jpgwrite</item>
+      <item>lambert_W0</item>
+      <item>lambert_Wm1</item>
+      <item>legendre_Pl</item>
+      <item>legendre_Plm</item>
+      <item>legendre_Ql</item>
+      <item>legendre_sphPlm</item>
+      <item>legendre_sphPlm_array</item>
+      <item>leval</item>
+      <item>listen</item>
+      <item>lnbeta</item>
+      <item>lncosh</item>
+      <item>lngamma_gsl</item>
+      <item>lnpoch</item>
+      <item>lnsinh</item>
+      <item>log_1plusx</item>
+      <item>log_1plusx_mx</item>
+      <item>log_erfc</item>
+      <item>lp</item>
+      <item>make_sparse</item>
+      <item>mark_for_deletion</item>
+      <item>medfilt1</item>
+      <item>newtonstep</item>
+      <item>nnz</item>
+      <item>numgradient</item>
+      <item>numhessian</item>
+      <item>pchip_deriv</item>
+      <item>pngread</item>
+      <item>pngwrite</item>
+      <item>poch</item>
+      <item>pochrel</item>
+      <item>pretty</item>
+      <item>primpoly</item>
+      <item>psi</item>
+      <item>psi_1_int</item>
+      <item>psi_1piy</item>
+      <item>psi_n</item>
+      <item>rand</item>
+      <item>rande</item>
+      <item>randn</item>
+      <item>randp</item>
+      <item>regexp</item>
+      <item>remez</item>
+      <item>reset_fixed_operations</item>
+      <item>rotate_scale</item>
+      <item>rsdec</item>
+      <item>rsenc</item>
+      <item>samin</item>
+      <item>SBBacksub</item>
+      <item>SBEig</item>
+      <item>SBFactor</item>
+      <item>SBProd</item>
+      <item>SBSolve</item>
+      <item>Shi</item>
+      <item>Si</item>
+      <item>sinc_gsl</item>
+      <item>spabs</item>
+      <item>sparse</item>
+      <item>spfind</item>
+      <item>spimag</item>
+      <item>spinv</item>
+      <item>splu</item>
+      <item>spreal</item>
+      <item>SymBand</item>
+      <item>synchrotron_1</item>
+      <item>synchrotron_2</item>
+      <item>syndtable</item>
+      <item>taylorcoeff</item>
+      <item>transport_2</item>
+      <item>transport_3</item>
+      <item>transport_4</item>
+      <item>transport_5</item>
+      <item>trisolve</item>
+      <item>waitbar</item>
+      <item>xmlread</item>
+      <item>zeta</item>
+      <item>zeta_int</item>
+      <item>aar</item>
+      <item>aarmam</item>
+      <item>ac2poly</item>
+      <item>ac2rc</item>
+      <item>acorf</item>
+      <item>acovf</item>
+      <item>addpath</item>
+      <item>ademodce</item>
+      <item>adim</item>
+      <item>adsmax</item>
+      <item>amodce</item>
+      <item>anderson_darling_cdf</item>
+      <item>anderson_darling_test</item>
+      <item>anovan</item>
+      <item>apkconst</item>
+      <item>append_save</item>
+      <item>applylut</item>
+      <item>ar2poly</item>
+      <item>ar2rc</item>
+      <item>arburg</item>
+      <item>arcext</item>
+      <item>arfit2</item>
+      <item>ar_spa</item>
+      <item>aryule</item>
+      <item>assert</item>
+      <item>au</item>
+      <item>aucapture</item>
+      <item>auload</item>
+      <item>auplot</item>
+      <item>aurecord</item>
+      <item>ausave</item>
+      <item>autumn</item>
+      <item>average_moments</item>
+      <item>awgn</item>
+      <item>azimuth</item>
+      <item>BandToFull</item>
+      <item>BandToSparse</item>
+      <item>base64encode</item>
+      <item>battery</item>
+      <item>bchpoly</item>
+      <item>bestblk</item>
+      <item>best_dir</item>
+      <item>best_dir_cov</item>
+      <item>betaln</item>
+      <item>bfgs</item>
+      <item>bfgsmin_example</item>
+      <item>bi2de</item>
+      <item>biacovf</item>
+      <item>bilinear</item>
+      <item>bisdemo</item>
+      <item>bispec</item>
+      <item>biterr</item>
+      <item>blkdiag</item>
+      <item>blkproc</item>
+      <item>bmpwrite</item>
+      <item>bone</item>
+      <item>bound_convex</item>
+      <item>boxcar</item>
+      <item>boxplot</item>
+      <item>brighten</item>
+      <item>bs_gradient</item>
+      <item>butter</item>
+      <item>buttord</item>
+      <item>bwborder</item>
+      <item>bweuler</item>
+      <item>bwlabel</item>
+      <item>bwmorph</item>
+      <item>bwselect</item>
+      <item>calendar</item>
+      <item>cceps</item>
+      <item>cdiff</item>
+      <item>cellstr</item>
+      <item>char</item>
+      <item>cheb</item>
+      <item>cheb1ord</item>
+      <item>cheb2ord</item>
+      <item>chebwin</item>
+      <item>cheby1</item>
+      <item>cheby2</item>
+      <item>chirp</item>
+      <item>clf</item>
+      <item>clip</item>
+      <item>cmpermute</item>
+      <item>cmunique</item>
+      <item>cohere</item>
+      <item>col2im</item>
+      <item>colfilt</item>
+      <item>colorgradient</item>
+      <item>comms</item>
+      <item>compand</item>
+      <item>complex</item>
+      <item>concat</item>
+      <item>conndef</item>
+      <item>content</item>
+      <item>contents</item>
+      <item>Contents</item>
+      <item>contourf</item>
+      <item>convhull</item>
+      <item>convmtx</item>
+      <item>cool</item>
+      <item>copper</item>
+      <item>corr2</item>
+      <item>cosets</item>
+      <item>count</item>
+      <item>covm</item>
+      <item>cplxpair</item>
+      <item>cquadnd</item>
+      <item>create_lookup_table</item>
+      <item>crule</item>
+      <item>crule2d</item>
+      <item>crule2dgen</item>
+      <item>csape</item>
+      <item>csapi</item>
+      <item>csd</item>
+      <item>csvread</item>
+      <item>csvwrite</item>
+      <item>ctranspose</item>
+      <item>cumtrapz</item>
+      <item>czt</item>
+      <item>d2_min</item>
+      <item>datenum</item>
+      <item>datestr</item>
+      <item>datevec</item>
+      <item>dct</item>
+      <item>dct2</item>
+      <item>dctmtx</item>
+      <item>de2bi</item>
+      <item>deal</item>
+      <item>decimate</item>
+      <item>decode</item>
+      <item>deg2rad</item>
+      <item>del2</item>
+      <item>delaunay</item>
+      <item>delaunay3</item>
+      <item>delta_method</item>
+      <item>demo</item>
+      <item>demodmap</item>
+      <item>deriv</item>
+      <item>detrend</item>
+      <item>dfdp</item>
+      <item>dftmtx</item>
+      <item>dhbar</item>
+      <item>dilate</item>
+      <item>dispatch</item>
+      <item>distance</item>
+      <item>dlmread</item>
+      <item>dlmwrite</item>
+      <item>dos</item>
+      <item>double</item>
+      <item>drawnow</item>
+      <item>durlev</item>
+      <item>dxfwrite</item>
+      <item>edge</item>
+      <item>edit</item>
+      <item>ellip</item>
+      <item>ellipdemo</item>
+      <item>ellipj</item>
+      <item>ellipke</item>
+      <item>ellipord</item>
+      <item>__ellip_ws</item>
+      <item>__ellip_ws_min</item>
+      <item>encode</item>
+      <item>eomday</item>
+      <item>erode</item>
+      <item>example</item>
+      <item>ExampleEigenValues</item>
+      <item>ExampleGenEigenValues</item>
+      <item>expdemo</item>
+      <item>expfit</item>
+      <item>eyediagram</item>
+      <item>factor</item>
+      <item>factorial</item>
+      <item>fail</item>
+      <item>fcnchk</item>
+      <item>feedback</item>
+      <item>fem_test</item>
+      <item>ff2n</item>
+      <item>fftconv2</item>
+      <item>fieldnames</item>
+      <item>fill</item>
+      <item>fill3</item>
+      <item>filter2</item>
+      <item>filtfilt</item>
+      <item>filtic</item>
+      <item>findsym</item>
+      <item>fir1</item>
+      <item>fir2</item>
+      <item>fixedpoint</item>
+      <item>flag</item>
+      <item>flag_implicit_samplerate</item>
+      <item>flattopwin</item>
+      <item>flix</item>
+      <item>float</item>
+      <item>fmin</item>
+      <item>fminbnd</item>
+      <item>fmins</item>
+      <item>fminunc</item>
+      <item>fnder</item>
+      <item>fnplt</item>
+      <item>fnval</item>
+      <item>fplot</item>
+      <item>freqs</item>
+      <item>freqs_plot</item>
+      <item>fsort</item>
+      <item>fullfact</item>
+      <item>FullToBand</item>
+      <item>funm</item>
+      <item>fzero</item>
+      <item>gammaln</item>
+      <item>gapTest</item>
+      <item>gaussian</item>
+      <item>gausswin</item>
+      <item>gconv</item>
+      <item>gconvmtx</item>
+      <item>gdeconv</item>
+      <item>gdftmtx</item>
+      <item>gen2par</item>
+      <item>geomean</item>
+      <item>getfield</item>
+      <item>getfields</item>
+      <item>gfft</item>
+      <item>gftable</item>
+      <item>gfweight</item>
+      <item>gget</item>
+      <item>gifft</item>
+      <item>ginput</item>
+      <item>gmm_estimate</item>
+      <item>gmm_example</item>
+      <item>gmm_obj</item>
+      <item>gmm_results</item>
+      <item>gmm_variance</item>
+      <item>gmm_variance_inefficient</item>
+      <item>gquad</item>
+      <item>gquad2d</item>
+      <item>gquad2d6</item>
+      <item>gquad2dgen</item>
+      <item>gquad6</item>
+      <item>gquadnd</item>
+      <item>grace_octave_path</item>
+      <item>gradient</item>
+      <item>grayslice</item>
+      <item>grep</item>
+      <item>grid</item>
+      <item>griddata</item>
+      <item>groots</item>
+      <item>grpdelay</item>
+      <item>grule</item>
+      <item>grule2d</item>
+      <item>grule2dgen</item>
+      <item>hadamard</item>
+      <item>hammgen</item>
+      <item>hankel</item>
+      <item>hann</item>
+      <item>harmmean</item>
+      <item>hilbert</item>
+      <item>histeq</item>
+      <item>histfit</item>
+      <item>histo</item>
+      <item>histo2</item>
+      <item>histo3</item>
+      <item>histo4</item>
+      <item>hot</item>
+      <item>hsv</item>
+      <item>hup</item>
+      <item>idct</item>
+      <item>idct2</item>
+      <item>idplot</item>
+      <item>idsim</item>
+      <item>ifftshift</item>
+      <item>im2bw</item>
+      <item>im2col</item>
+      <item>imadjust</item>
+      <item>imginfo</item>
+      <item>imhist</item>
+      <item>imnoise</item>
+      <item>impad</item>
+      <item>impz</item>
+      <item>imread</item>
+      <item>imrotate</item>
+      <item>imshear</item>
+      <item>imtranslate</item>
+      <item>imwrite</item>
+      <item>innerfun</item>
+      <item>inputname</item>
+      <item>interp</item>
+      <item>interp1</item>
+      <item>interp2</item>
+      <item>interpft</item>
+      <item>intersect</item>
+      <item>invest0</item>
+      <item>invest1</item>
+      <item>invfdemo</item>
+      <item>invfreq</item>
+      <item>invfreqs</item>
+      <item>invfreqz</item>
+      <item>inz</item>
+      <item>irsa_act</item>
+      <item>irsa_actcore</item>
+      <item>irsa_check</item>
+      <item>irsa_dft</item>
+      <item>irsa_dftfp</item>
+      <item>irsa_genreal</item>
+      <item>irsa_idft</item>
+      <item>irsa_isregular</item>
+      <item>irsa_jitsp</item>
+      <item>irsa_mdsp</item>
+      <item>irsa_normalize</item>
+      <item>irsa_plotdft</item>
+      <item>irsa_resample</item>
+      <item>irsa_rgenreal</item>
+      <item>isa</item>
+      <item>isbw</item>
+      <item>isdir</item>
+      <item>isequal</item>
+      <item>isfield</item>
+      <item>isgray</item>
+      <item>isind</item>
+      <item>ismember</item>
+      <item>isprime</item>
+      <item>isrgb</item>
+      <item>issparse</item>
+      <item>isunix</item>
+      <item>jet</item>
+      <item>kaiser</item>
+      <item>kaiserord</item>
+      <item>lambertw</item>
+      <item>lattice</item>
+      <item>lauchli</item>
+      <item>leasqr</item>
+      <item>leasqrdemo</item>
+      <item>legend</item>
+      <item>legendre</item>
+      <item>levinson</item>
+      <item>lin2mu</item>
+      <item>line_min</item>
+      <item>lloyds</item>
+      <item>lookup</item>
+      <item>lookup_table</item>
+      <item>lpc</item>
+      <item>lp_test</item>
+      <item>mad</item>
+      <item>magic</item>
+      <item>makelut</item>
+      <item>MakeShears</item>
+      <item>map</item>
+      <item>mat2gray</item>
+      <item>mat2str</item>
+      <item>mdsmax</item>
+      <item>mean2</item>
+      <item>medfilt2</item>
+      <item>meshc</item>
+      <item>minimize</item>
+      <item>minpol</item>
+      <item>mkpp</item>
+      <item>mktheta</item>
+      <item>mle_estimate</item>
+      <item>mle_example</item>
+      <item>mle_obj</item>
+      <item>mle_results</item>
+      <item>mle_variance</item>
+      <item>modmap</item>
+      <item>mu2lin</item>
+      <item>mvaar</item>
+      <item>mvar</item>
+      <item>mvfilter</item>
+      <item>mvfreqz</item>
+      <item>myfeval</item>
+      <item>nanmax</item>
+      <item>nanmean</item>
+      <item>nanmedian</item>
+      <item>nanmin</item>
+      <item>nanstd</item>
+      <item>nansum</item>
+      <item>ncauer</item>
+      <item>nchoosek</item>
+      <item>ncrule</item>
+      <item>ndims</item>
+      <item>nelder_mead_min</item>
+      <item>newmark</item>
+      <item>nlfilter</item>
+      <item>nlnewmark</item>
+      <item>__nlnewmark_fcn__</item>
+      <item>nmsmax</item>
+      <item>nonzeros</item>
+      <item>normplot</item>
+      <item>now</item>
+      <item>nrm</item>
+      <item>nthroot</item>
+      <item>nze</item>
+      <item>OCTAVE_FORGE_VERSION</item>
+      <item>ode23</item>
+      <item>ode45</item>
+      <item>ode78</item>
+      <item>optimset</item>
+      <item>ordfilt2</item>
+      <item>orient</item>
+      <item>pacf</item>
+      <item>padarray</item>
+      <item>parameterize</item>
+      <item>parcor</item>
+      <item>pareto</item>
+      <item>pascal</item>
+      <item>patch</item>
+      <item>pburg</item>
+      <item>pcg</item>
+      <item>pchip</item>
+      <item>pcolor</item>
+      <item>pcr</item>
+      <item>peaks</item>
+      <item>penddot</item>
+      <item>pendulum</item>
+      <item>perms</item>
+      <item>pie</item>
+      <item>pink</item>
+      <item>plot3</item>
+      <item>__plt3__</item>
+      <item>poly2ac</item>
+      <item>poly2ar</item>
+      <item>poly_2_ex</item>
+      <item>poly2mask</item>
+      <item>poly2rc</item>
+      <item>poly2sym</item>
+      <item>poly2th</item>
+      <item>polyarea</item>
+      <item>polyconf</item>
+      <item>polyder</item>
+      <item>polyderiv</item>
+      <item>polygcd</item>
+      <item>polystab</item>
+      <item>__power</item>
+      <item>ppval</item>
+      <item>prctile</item>
+      <item>prettyprint</item>
+      <item>prettyprint_c</item>
+      <item>primes</item>
+      <item>princomp</item>
+      <item>print</item>
+      <item>prism</item>
+      <item>proplan</item>
+      <item>pulstran</item>
+      <item>pwelch</item>
+      <item>pyulear</item>
+      <item>qaskdeco</item>
+      <item>qaskenco</item>
+      <item>qtdecomp</item>
+      <item>qtgetblk</item>
+      <item>qtsetblk</item>
+      <item>quad2dc</item>
+      <item>quad2dcgen</item>
+      <item>quad2dg</item>
+      <item>quad2dggen</item>
+      <item>quadc</item>
+      <item>quadg</item>
+      <item>quadl</item>
+      <item>quadndg</item>
+      <item>quantiz</item>
+      <item>quiver</item>
+      <item>rad2deg</item>
+      <item>rainbow</item>
+      <item>randerr</item>
+      <item>randint</item>
+      <item>randsrc</item>
+      <item>rat</item>
+      <item>rats</item>
+      <item>rc2ac</item>
+      <item>rc2ar</item>
+      <item>rc2poly</item>
+      <item>rceps</item>
+      <item>read_options</item>
+      <item>read_pdb</item>
+      <item>rectpuls</item>
+      <item>resample</item>
+      <item>rgb2gray</item>
+      <item>rk2fixed</item>
+      <item>rk4fixed</item>
+      <item>rk8fixed</item>
+      <item>rmfield</item>
+      <item>rmle</item>
+      <item>rmpath</item>
+      <item>roicolor</item>
+      <item>rosser</item>
+      <item>rotparams</item>
+      <item>rotv</item>
+      <item>rref</item>
+      <item>rsdecof</item>
+      <item>rsencof</item>
+      <item>rsgenpoly</item>
+      <item>samin_example</item>
+      <item>save_vrml</item>
+      <item>sbispec</item>
+      <item>scale_data</item>
+      <item>scatter</item>
+      <item>scatterplot</item>
+      <item>select_3D_points</item>
+      <item>selmo</item>
+      <item>setdiff</item>
+      <item>setfield</item>
+      <item>setfields</item>
+      <item>setxor</item>
+      <item>sftrans</item>
+      <item>sgolay</item>
+      <item>sgolayfilt</item>
+      <item>sinvest1</item>
+      <item>slurp_file</item>
+      <item>sortrows</item>
+      <item>sound</item>
+      <item>soundsc</item>
+      <item>spdiags</item>
+      <item>specgram</item>
+      <item>speed</item>
+      <item>speye</item>
+      <item>spfun</item>
+      <item>sphcat</item>
+      <item>spline</item>
+      <item>splot</item>
+      <item>spones</item>
+      <item>sprand</item>
+      <item>sprandn</item>
+      <item>spring</item>
+      <item>spstats</item>
+      <item>spsum</item>
+      <item>sp_test</item>
+      <item>sptest</item>
+      <item>spvcat</item>
+      <item>spy</item>
+      <item>std2</item>
+      <item>stem</item>
+      <item>str2double</item>
+      <item>strcmpi</item>
+      <item>stretchlim</item>
+      <item>strfind</item>
+      <item>strmatch</item>
+      <item>strncmp</item>
+      <item>strncmpi</item>
+      <item>strsort</item>
+      <item>strtok</item>
+      <item>strtoz</item>
+      <item>struct</item>
+      <item>strvcat</item>
+      <item>summer</item>
+      <item>sumskipnan</item>
+      <item>surf</item>
+      <item>surfc</item>
+      <item>sym2poly</item>
+      <item>symerr</item>
+      <item>symfsolve</item>
+      <item>tabulate</item>
+      <item>tar</item>
+      <item>temp_name</item>
+      <item>test</item>
+      <item>test_d2_min_1</item>
+      <item>test_d2_min_2</item>
+      <item>test_d2_min_3</item>
+      <item>test_ellipj</item>
+      <item>test_fminunc_1</item>
+      <item>testimio</item>
+      <item>test_inline_1</item>
+      <item>test_min_1</item>
+      <item>test_min_2</item>
+      <item>test_min_3</item>
+      <item>test_min_4</item>
+      <item>test_minimize_1</item>
+      <item>test_nelder_mead_min_1</item>
+      <item>test_nelder_mead_min_2</item>
+      <item>test_sncndn</item>
+      <item>test_struct</item>
+      <item>test_vmesh</item>
+      <item>test_vrml_faces</item>
+      <item>test_wpolyfit</item>
+      <item>text</item>
+      <item>textread</item>
+      <item>tf2zp</item>
+      <item>tfe</item>
+      <item>thfm</item>
+      <item>tics</item>
+      <item>toeplitz</item>
+      <item>toggle_grace_use</item>
+      <item>transpose</item>
+      <item>trapz</item>
+      <item>triang</item>
+      <item>tril</item>
+      <item>trimmean</item>
+      <item>tripuls</item>
+      <item>trisolve</item>
+      <item>triu</item>
+      <item>tsademo</item>
+      <item>tsearchdemo</item>
+      <item>ucp</item>
+      <item>uintlut</item>
+      <item>unique</item>
+      <item>unix</item>
+      <item>unmkpp</item>
+      <item>unscale_parameters</item>
+      <item>vec2mat</item>
+      <item>view</item>
+      <item>vmesh</item>
+      <item>voronoi</item>
+      <item>voronoin</item>
+      <item>vrml_arrow</item>
+      <item>vrml_Background</item>
+      <item>vrml_browse</item>
+      <item>vrml_cyl</item>
+      <item>vrml_demo_tutorial_1</item>
+      <item>vrml_demo_tutorial_2</item>
+      <item>vrml_demo_tutorial_3</item>
+      <item>vrml_demo_tutorial_4</item>
+      <item>vrml_ellipsoid</item>
+      <item>vrml_faces</item>
+      <item>vrml_flatten</item>
+      <item>vrml_frame</item>
+      <item>vrml_group</item>
+      <item>vrml_kill</item>
+      <item>vrml_lines</item>
+      <item>vrml_material</item>
+      <item>vrml_parallelogram</item>
+      <item>vrml_PointLight</item>
+      <item>vrml_points</item>
+      <item>vrml_select_points</item>
+      <item>vrml_surf</item>
+      <item>vrml_text</item>
+      <item>vrml_thick_surf</item>
+      <item>vrml_transfo</item>
+      <item>wavread</item>
+      <item>wavwrite</item>
+      <item>weekday</item>
+      <item>wgn</item>
+      <item>white</item>
+      <item>wilkinson</item>
+      <item>winter</item>
+      <item>wpolyfit</item>
+      <item>wpolyfitdemo</item>
+      <item>write_pdb</item>
+      <item>wsolve</item>
+      <item>xcorr</item>
+      <item>xcorr2</item>
+      <item>xcov</item>
+      <item>xlsread</item>
+      <item>xmlwrite</item>
+      <item>y2res</item>
+      <item>zero_count</item>
+      <item>zoom</item>
+      <item>zp2tf</item>
+      <item>zplane</item>
+      <item>zscore</item>
+    </list>
+    
+    <contexts>
+
+      <context name="_normal" attribute="Normal Text" lineEndContext="#stay">
+
+        <!-- Code folding -->
+        <!--TODO: with this implementation, code folding will close a block also with a wrong
+        end*: for istance, for can be closed by endif. This is done because the catchall end 
+        keyword is widely used to close a number of blocks (including if and for).
+        If you have an improvement, please contribute it!-->
+        <RegExpr context="#stay" attribute="Keyword" String="\b(for)\b" beginRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(endfor)\b" endRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(if)\b" beginRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(endif)\b" endRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(do)\b" beginRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(until)\b" endRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(while)\b" beginRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(endwhile)\b" endRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(function)\b" beginRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(endfunction)\b" endRegion="block" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(switch)\b" beginRegion="Switch" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(endswitch)\b" endRegion="Switch" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(try)\b" beginRegion="Try" />
+        <RegExpr context="#stay" attribute="Keyword" String="\b(end_try_catch)\b" endRegion="Try" />
+        <!-- Catchall end keyword -->
+        <RegExpr context="#stay" attribute="Keyword" String="\b(end)\b" endRegion="block" />
+        
+        <!-- Look-ahead for adjoint ' after variable, number literal, closing braces and .' -->
+        <RegExpr context="_adjoint" attribute="Variable" String="[a-zA-Z]\w*(?=')" />
+        <RegExpr context="_adjoint" attribute="Number" String="(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?[ij]?(?=')" />
+        <RegExpr context="_adjoint" attribute="Delimiter" String="[\)\]}](?=')" />
+        <RegExpr context="_adjoint" attribute="Operator" String="\.'(?=')" />
+
+        <!-- If ' is not the adjoint operator, it starts a string or an unterminated string;
+        strings can be also with ", and accept the respective delimiter in them either
+        by doubling it ('', "") or by escaping it (\', \") -->
+        <RegExpr context="#stay" attribute="String" String="'([^'\\]|''|\\'|\\[^'])*'(?=[^']|$)" />
+        <RegExpr context="#stay" attribute="Incomplete String" String="'([^']|''|\\')*" />
+        <RegExpr context="#stay" attribute="String" String="&quot;([^&quot;\\]|&quot;&quot;|\\&quot;|\\[^&quot;])*&quot;(?=[^&quot;]|$)" />
+        <RegExpr context="#stay" attribute="Incomplete String" String="&quot;([^&quot;]|&quot;&quot;|\\&quot;)*" />
+        
+        <!-- Handling of keywords, comments, functions, identifiers, numbers and braces -->
+        <keyword context="#stay" attribute="Keyword" String="keywords" />
+        <keyword context="#stay" attribute="Commands" String="commands" />
+        <keyword context="#stay" attribute="Functions" String="functions" />
+        <keyword context="#stay" attribute="Builtin" String="builtin"/>
+        <keyword context="#stay" attribute="Forge" String="forge" />
+        <RegExpr context="#stay" attribute="Comment" String="[%#].*$" />
+        <RegExpr context="#stay" attribute="Variable" String="[a-zA-Z]\w*" />
+        <RegExpr context="#stay" attribute="Number" String="(\d+(\.\d+)?|\.\d+)([eE][+-]?\d+)?[ij]?" />
+        <AnyChar context="#stay" attribute="Delimiter" String="()[]{}"/>
+              
+        <!-- Three- and two-character operators -->
+        <StringDetect context="#stay" attribute="Operator" String="..."/>
+        <StringDetect context="#stay" attribute="Operator" String="=="/>
+        <StringDetect context="#stay" attribute="Operator" String="~="/>
+        <StringDetect context="#stay" attribute="Operator" String="!="/>
+        <StringDetect context="#stay" attribute="Operator" String="&lt;="/>
+        <StringDetect context="#stay" attribute="Operator" String="&gt;="/>
+        <StringDetect context="#stay" attribute="Operator" String="&lt;&gt;"/>
+        <StringDetect context="#stay" attribute="Operator" String="&amp;&amp;"/>
+        <StringDetect context="#stay" attribute="Operator" String="||"/>
+        <StringDetect context="#stay" attribute="Operator" String="++"/>
+        <StringDetect context="#stay" attribute="Operator" String="--"/>
+        <StringDetect context="#stay" attribute="Operator" String="**"/>
+        <StringDetect context="#stay" attribute="Operator" String=".*"/>
+        <StringDetect context="#stay" attribute="Operator" String=".**"/>
+        <StringDetect context="#stay" attribute="Operator" String=".^"/>
+        <StringDetect context="#stay" attribute="Operator" String="./"/>
+        <StringDetect context="#stay" attribute="Operator" String=".'"/>
+
+        <!-- Single-character operators -->
+        <AnyChar context="#stay" attribute="Operator" String="!&quot;%(*+,/;=>[]|~#&amp;)-:&lt;&gt;\^"/>
+        
+      </context>
+
+
+      <!--Context entered after encountering an ' adjoint operator -->
+      <context name="_adjoint" attribute="Operator" lineEndContext="#pop">
+        <RegExpr context="#pop" attribute="Operator" String="'+" />
+      </context>
+
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Variable" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Operator" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Number" defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Delimiter" defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="String" defStyleNum="dsString" color="#b20000"/>
+      <itemData name="String Char"  defStyleNum="dsChar"/>
+      <itemData name="Incomplete String" defStyleNum="dsChar" color="#a020f0" spellChecking="false"/>
+      <itemData name="Keyword"  defStyleNum="dsNormal" color="#0000ff" spellChecking="false"/>
+      <itemData name="Comment" defStyleNum="dsComment" color="#009900"/>
+      <itemData name="Functions" defStyleNum="dsFunction" color="#0000ff" selColor="#00ff00" bold="1" italic="1" spellChecking="false"/>
+      <itemData name="Forge" defStyleNum="dsFunction" color="#000099" selColor="#009900" bold="1" italic="1" spellChecking="false"/>
+      <itemData name="Builtin" defStyleNum="dsBaseN" color="#b28c00" spellChecking="false"/>
+      <itemData name="Commands" defStyleNum="dsFunction" color="#b28c00" spellChecking="false"/>
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="%" />
+      <comment name="singleLine" start="#" />
+    </comments>
+    <keywords casesensitive="1"/>
+  </general>
+
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/opencl.xml b/xml/opencl.xml
new file mode 100644
--- /dev/null
+++ b/xml/opencl.xml
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="OpenCL" section="Sources"
+          version="2" kateversion="3.4"
+          indenter="cstyle"
+          extensions="*.cl"
+          mimetype="text/x-clsrc"
+          priority="5">
+  <highlighting>
+    <list name="keywords">
+      <item>__constant</item>
+      <item>__global</item>
+      <item>__local</item>
+      <item>__private</item>
+      <item>__kernel</item>
+      <item>__read_only</item>
+      <item>__write_only</item>
+      <item>constant</item>
+      <item>global</item>
+      <item>local</item>
+      <item>private</item>
+      <item>kernel</item>
+      <item>read_only</item>
+      <item>write_only</item>
+      <item>break</item>
+      <item>case</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>do</item>
+      <item>else</item>
+      <item>enum</item>
+      <item>for</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>inline</item>
+      <item>return</item>
+      <item>sizeof</item>
+      <item>struct</item>
+      <item>switch</item>
+      <item>typedef</item>
+      <item>union</item>
+      <item>while</item>
+    </list>
+    <list name="types">
+      <item>bool</item>
+      <item>uchar</item>
+      <item>uchar2</item>
+      <item>uchar3</item>
+      <item>uchar4</item>
+      <item>uchar8</item>
+      <item>uchar16</item>
+      <item>char</item>
+      <item>char2</item>
+      <item>char3</item>
+      <item>char4</item>
+      <item>char8</item>
+      <item>char16</item>
+      <item>const</item>
+      <item>double</item>
+      <item>double2</item>
+      <item>double3</item>
+      <item>double4</item>
+      <item>double8</item>
+      <item>double16</item>
+      <item>event_t</item>
+      <item>float</item>
+      <item>float2</item>
+      <item>float3</item>
+      <item>float4</item>
+      <item>float8</item>
+      <item>float16</item>
+      <item>half</item>
+      <item>half2</item>
+      <item>half3</item>
+      <item>half4</item>
+      <item>half8</item>
+      <item>half16</item>
+      <item>image1d_t</item>
+      <item>image2d_t</item>
+      <item>image3d_t</item>
+      <item>uint</item>
+      <item>uint2</item>
+      <item>uint3</item>
+      <item>uint4</item>
+      <item>uint8</item>
+      <item>uint16</item>
+	  <item>int</item>
+      <item>int2</item>
+      <item>int3</item>
+      <item>int4</item>
+      <item>int8</item>
+      <item>int16</item>
+      <item>ulong</item>
+      <item>ulong2</item>
+      <item>ulong3</item>
+      <item>ulong4</item>
+      <item>ulong8</item>
+      <item>ulong16</item>
+      <item>long</item>
+      <item>long2</item>
+      <item>long3</item>
+      <item>long4</item>
+      <item>long8</item>
+      <item>long16</item>
+      <item>restrict</item>
+      <item>sampler_t</item>
+      <item>ushort</item>
+      <item>ushort2</item>
+      <item>ushort3</item>
+      <item>ushort4</item>
+      <item>ushort8</item>
+      <item>ushort16</item>
+      <item>short</item>
+      <item>short2</item>
+      <item>short3</item>
+      <item>short4</item>
+      <item>short8</item>
+      <item>short16</item>
+      <item>signed</item>
+      <item>static</item>
+      <item>unsigned</item>
+      <item>void</item>
+      <item>volatile</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectSpaces />
+	<RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0\s*$" beginRegion="PP" firstNonSpace="true" />
+        <DetectChar context="AfterHash" char="#" firstNonSpace="true" lookAhead="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//BEGIN" beginRegion="Region1" firstNonSpace="true" />
+        <StringDetect attribute="Region Marker" context="Region Marker" String="//END" endRegion="Region1" firstNonSpace="true" />
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <DetectIdentifier />
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay" >
+          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+
+      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
+        <LineContinue attribute="Comment" context="#stay"/>
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop" name="AfterHash">
+        <!-- define, elif, else, endif, error, if, ifdef, ifndef, include, include_next, line, pragma, undef, warning -->
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*if(?:def|ndef)?(?=\s+\S)" insensitive="true" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*endif" insensitive="true" endRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="Define" String="#\s*define.*((?=\\))" insensitive="true" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s*(?:el(?:se|if)|include(?:_next)?|define|undef|line|error|warning|pragma)" insensitive="true" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="#\s+[0-9]+" insensitive="true" firstNonSpace="true" />
+      </context>
+
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar/Preprocessor" char="/" char1="*" beginRegion="Comment2" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/" />
+      </context>
+
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Define">
+        <LineContinue attribute="Preprocessor" context="#stay"/>
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar/Preprocessor">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment2" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Outscoped" >
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="#\s*el(?:se|if)" firstNonSpace="true" />
+        <RegExpr attribute="Preprocessor" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="PP" firstNonSpace="true" />
+        <RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="PP" firstNonSpace="true" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Decimal"      defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Octal"        defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Hex"          defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"        defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Char"         defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="String Char"  defStyleNum="dsChar"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Preprocessor" defStyleNum="dsOthers" spellChecking="false"/>
+      <itemData name="Prep. Lib"    defStyleNum="dsOthers" spellChecking="false"/> <!--,Qt::darkYellow,Qt::yellow,false,false)); -->
+      <itemData name="Alert"        defStyleNum="dsAlert" spellChecking="false"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
+      <itemData name="Error"        defStyleNum="dsError" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="1" additionalDeliminator="'&quot;" />
+  </general>
+</language>
diff --git a/xml/pascal.xml b/xml/pascal.xml
new file mode 100644
--- /dev/null
+++ b/xml/pascal.xml
@@ -0,0 +1,219 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Pascal"
+          section="Sources" 
+          version="2"
+          kateversion="3.3"
+          extensions="*.p;*.pas;*.pp"
+          mimetype="text/x-pascal" 
+          priority="8"
+	  indenter="pascal"
+          author="Unnamed people and Liu Sizhuang(oldherl@gmail.com)"
+          >
+  <highlighting>
+    <list name="keywords">
+      <item>and</item>
+      <item>array</item>
+      <item>asm</item>
+      <item>case</item>
+      <item>const</item>
+      <item>div</item>
+      <item>do</item>
+      <item>downto</item>
+      <item>else</item>
+      <item>file</item>
+      <item>for</item>
+      <item>function</item>
+      <item>goto</item>
+      <item>if</item>
+      <item>in</item>
+      <item>label</item>
+      <item>mod</item>
+      <item>nil</item>
+      <item>not</item>
+      <item>of</item>
+      <item>operator</item>
+      <item>or</item>
+      <item>packed</item>
+      <item>procedure</item>
+      <item>program</item>
+      <item>record</item>
+      <item>repeat</item>
+      <item>set</item>
+      <item>then</item>
+      <item>to</item>
+      <item>type</item>
+      <item>unit</item>
+      <item>until</item>
+      <item>uses</item>
+      <item>var</item>
+      <item>while</item>
+      <item>with</item>
+      <item>xor</item>
+
+
+      <item>at</item>
+      <item>automated</item>
+      <item>break</item>
+      <item>continue</item>
+      <item>dispinterface</item>
+      <item>dispose</item>
+      <item>exit</item>
+      <item>false</item>
+      <item>finalization</item>
+      <item>initialization</item>
+      <item>library</item>
+      <item>new</item>
+      <item>published</item>
+      <item>resourcestring</item>
+      <item>self</item>
+      <item>true</item>
+    </list>
+    <list name="ISO/Delphi Extended">
+      <item>abstract</item>
+      <item>as</item>
+      <item>bindable</item>
+      <item>constructor</item>
+      <item>destructor</item>
+      <item>except</item>
+      <item>export</item>
+      <item>finally</item>
+      <item>import</item>
+      <item>implementation</item>
+      <item>inherited</item>
+      <item>inline</item>
+      <item>interface</item>
+      <item>is</item>
+      <item>module</item>
+      <item>on</item>
+      <item>only</item>
+      <item>otherwise</item>
+      <item>override</item>
+      <item>private</item>
+      <item>property</item>
+      <item>protected</item>
+      <item>public</item>
+      <item>read</item>
+      <item>qualified</item>
+      <item>raise</item>
+      <item>restricted</item>
+      <item>shl</item>
+      <item>shr</item>
+      <item>threadvar</item>
+      <item>try</item>
+      <item>virtual</item>
+      <item>write</item>
+    </list>
+    <list name="types">
+      <item>Integer</item>
+      <item>Cardinal</item>
+      <item>ShortInt</item>
+      <item>SmallInt</item>
+      <item>LongInt</item>
+      <item>Int64</item>
+      <item>Byte</item>
+      <item>Word</item>
+      <item>LongWord</item>
+      <item>DWord</item>
+      <item>QWord</item>
+      <item>Char</item>
+      <item>AnsiChar</item>
+      <item>WideChar</item>
+      <item>Boolean</item>
+      <item>ByteBool</item>
+      <item>WordBool</item>
+      <item>LongBool</item>
+      <item>Single</item>
+      <item>Double</item>
+      <item>Extended</item>
+      <item>Comp</item>
+      <item>Currency</item>
+      <item>Real</item>
+      <item>Real48</item>
+      <item>String</item>
+      <item>ShortString</item>
+      <item>AnsiString</item>
+      <item>WideString</item>
+      <item>Pointer</item>
+      <item>Variant</item>
+      <item>File</item>
+      <item>Text</item>
+    </list>
+    <list name="attention">
+      <item>FIXME</item>
+      <item>TODO</item>
+      <item>NOTE</item>
+      <item>###</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <RegExpr attribute="Keyword" context="#stay" String="\b(begin|case|record)(?=(\{[^}]*(\}|$)|\(\*.*(\*\)|$))*([\s]|$|//))" insensitive="true" beginRegion="Region1"/>
+        <RegExpr attribute="ISO/Delphi Extended" context="#stay" String="\b((object|class)(?=(\(.*\))?(\{[^}]*(\}|$)|\(\*.*(\*\)|$))*;?([\s]|$|//))|try(?=(\{[^}]*(\}|$)|\(\*.*(\*\)|$))*([\s]|$|//)))" insensitive="true" beginRegion="Region1"/>
+	<RegExpr attribute="Keyword" context="#stay" String="\bend(?=((\{[^}]*(\}|$)|\(\*.*(\*\)|$))*)([.;\s]|$)|//|$)" insensitive="true" endRegion="Region1"/>
+
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="ISO/Delphi Extended" context="#stay" String="ISO/Delphi Extended"/>
+        <keyword attribute="Type" context="#stay" String="types"/>
+        <Float attribute="Number" context="#stay"/>
+	<Int attribute="Number" context="#stay"/>
+	<DetectChar attribute="Hex" context="Hex" char="$" />
+	<DetectChar attribute="String" context="CharNum" char="#" />
+        <DetectChar attribute="String" context="String" char="&apos;" />
+        <StringDetect attribute="Directive" context="Prep1" String="(*$"/>
+        <Detect2Chars attribute="Directive" context="Prep2" char="{" char1="$"/>
+        <DetectChar attribute="Comment" context="Comment1" char="{"            beginRegion="Region2"/>
+        <Detect2Chars attribute="Comment" context="Comment2" char="(" char1="*" beginRegion="Region3"/>
+        <Detect2Chars attribute="Comment" context="Comment3" char="/" char1="/"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="CharNum">
+	      <DetectChar attribute="Hex" context="HexCharNum" char="$" />
+	      <RegExpr String="[^0-9]" context="#pop"/>
+      </context>
+      <context attribute="Hex" lineEndContext="#pop" name="HexCharNum">
+	      <RegExpr String="[^a-fA-F0-9]" context="#pop#pop"/>
+      </context>
+      <context attribute="Hex" lineEndContext="#pop" name="Hex">
+	      <RegExpr String="[^a-fA-F0-9]" context="#pop"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <DetectChar attribute="String" context="#pop" char="&apos;"/>
+      </context>
+      <context attribute="Directive" lineEndContext="#pop" name="Prep1">
+        <Detect2Chars attribute="Directive" context="#pop" char="*" char1=")"/>
+      </context>
+      <context attribute="Directive" lineEndContext="#pop" name="Prep2">
+        <DetectChar attribute="Directive" context="#pop" char="}"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Comment1">
+        <keyword attribute="Alert" context="#stay" String="attention" />
+        <DetectChar attribute="Comment" context="#pop" char="}"              endRegion="Region2"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Comment2">
+        <keyword attribute="Alert" context="#stay" String="attention" />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1=")"   endRegion="Region3"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment3">
+        <keyword attribute="Alert" context="#stay" String="attention" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"  />
+      <itemData name="Hex"         defStyleNum="dsBaseN"   />
+      <itemData name="Keyword"     defStyleNum="dsKeyword" />
+      <itemData name="ISO/Delphi Extended"  defStyleNum="dsKeyword" color="#000080" />
+      <itemData name="Type"  defStyleNum="dsDataType"/>
+      <itemData name="Number"      defStyleNum="dsDecVal" />
+      <itemData name="String"      defStyleNum="dsString" />
+      <itemData name="Directive"   defStyleNum="dsOthers" />
+      <itemData name="Comment"     defStyleNum="dsComment" />
+      <itemData name="Alert"        defStyleNum="dsAlert" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="0" />
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="{" end="}" />
+    </comments>
+  </general>
+</language>
diff --git a/xml/perl.xml b/xml/perl.xml
new file mode 100644
--- /dev/null
+++ b/xml/perl.xml
@@ -0,0 +1,842 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+   This file is part of the KDE project
+   Copyright (C) 2001, 2002, 2003, 2004 Anders Lund <anders@alweb.dk>
+
+   This library is free software; you can redistribute it and/or
+   modify it under the terms of the GNU Library General Public
+   License version 2 as published by the Free Software Foundation.
+
+   This library is distributed in the hope that it will be useful,
+   but WITHOUT ANY WARRANTY; without even the implied warranty of
+   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+   Library General Public License for more details.
+
+   You should have received a copy of the GNU Library General Public License
+   along with this library; see the file COPYING.LIB.  If not, write to
+   the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+   Boston, MA 02110-1301, USA.
+
+   *** NOTICE ***
+   This file is maintained by Anders Lund <anders@alweb.dk>
+   Please do not commit changes without checking with me.
+
+   *** TODO ***
+
+   Work on the comment support in the REPLACEMENT part of s/// - we may support
+   the comment, if the line remainder does not contain the delimiter char.
+
+   Try to support ?PATTERN? (at least in one line, like if "\?(?=.*\?)" matches).
+
+   parse code behind '<<HEREDELIMITER' as code, or at least ignore it, to eol.
+   Requires the ability to pass the delimiter through a context level.
+
+   find a here delimiter like '*END*' (Shell.pm). Requires that when a regex is
+   inserting a dynamic string, it escapes [*(){}$[]
+
+   support for more regex extensions, such as (?>), (?{}), (?(cond)yes|no)
+
+   Enhance tr/// and y/// support.
+-->
+<language name="Perl" version="4" kateversion="2.4" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
+  <highlighting>
+    <list name="keywords">
+      <item>if</item>
+      <item>unless</item>
+      <item>else</item>
+      <item>elsif</item>
+      <item>while</item>
+      <item>until</item>
+      <item>for</item>
+      <item>each</item>
+      <item>foreach</item>
+      <item>next</item>
+      <item>last</item>
+      <item>break</item>
+      <item>continue</item>
+      <item>return</item>
+      <item>my</item>
+      <item>our</item>
+      <item>local</item>
+      <item>state</item>
+      <item>BEGIN</item>
+      <item>END</item>
+      <item>package</item>
+      <item>sub</item>
+      <item>do</item>
+      <item>given</item>
+      <item>when</item>
+      <item>default</item>
+      <item>__END__</item>
+      <item>__DATA__</item>
+      <item>__FILE__</item>
+      <item>__LINE__</item>
+      <item>__PACKAGE__</item>
+    </list>
+    <list name="operators">
+      <item>=</item>
+      <item>!=</item>
+      <item>~=</item>
+      <item>+=</item>
+      <item>-=</item>
+      <item>*=</item>
+      <item>/=</item>
+      <item>**=</item>
+      <item>|=</item>
+      <item>||=</item>
+      <item>//=</item>
+      <item>&amp;=</item>
+      <item>&amp;&amp;=</item>
+      <item>?=</item>
+      <item>+</item>
+      <item>-</item>
+      <item>*</item>
+     <!-- <item>/</item>//-->
+      <item>%</item>
+      <item>||</item>
+      <item>//</item>
+      <item>&amp;&amp;</item>
+      <item>|</item>
+      <item>&amp;</item>
+      <item>&lt;</item>
+      <item>&lt;&lt;</item>
+      <item>&gt;</item>
+      <item>&gt;&gt;</item>
+      <item>^</item>
+      <item>-&gt;</item>
+      <item>=&gt;</item>
+      <item>.</item>
+      <item>,</item>
+      <item>;</item>
+      <item>::</item>
+      <item>\</item>
+      <item>and</item>
+      <item>or</item>
+      <item>not</item>
+      <item>eq</item>
+      <item>ne</item>
+      <item>lt</item>
+      <item>gt</item>
+      <item>le</item>
+      <item>ge</item>
+      <item>cmp</item>
+    </list>
+    <list name="functions">
+      <item>abs</item>
+      <item>accept</item>
+      <item>alarm</item>
+      <item>atan2</item>
+      <item>bind</item>
+      <item>binmode</item>
+      <item>bless</item>
+      <item>caller</item>
+      <item>chdir</item>
+      <item>chmod</item>
+      <item>chomp</item>
+      <item>chop</item>
+      <item>chown</item>
+      <item>chr</item>
+      <item>chroot</item>
+      <item>close</item>
+      <item>closedir</item>
+      <item>connect</item>
+      <item>cos</item>
+      <item>crypt</item>
+      <item>dbmclose</item>
+      <item>dbmopen</item>
+      <item>defined</item>
+      <item>delete</item>
+      <item>die</item>
+      <item>dump</item>
+      <item>endgrent</item>
+      <item>endhostent</item>
+      <item>endnetent</item>
+      <item>endprotoent</item>
+      <item>endpwent</item>
+      <item>endservent</item>
+      <item>eof</item>
+      <item>eval</item>
+      <item>exec</item>
+      <item>exists</item>
+      <item>exit</item>
+      <item>exp</item>
+      <item>fcntl</item>
+      <item>fileno</item>
+      <item>flock</item>
+      <item>fork</item>
+      <item>format</item>
+      <item>formline</item>
+      <item>getc</item>
+      <item>getgrent</item>
+      <item>getgrgid</item>
+      <item>getgrnam</item>
+      <item>gethostbyaddr</item>
+      <item>gethostbyname</item>
+      <item>gethostent</item>
+      <item>getlogin</item>
+      <item>getnetbyaddr</item>
+      <item>getnetbyname</item>
+      <item>getnetent</item>
+      <item>getpeername</item>
+      <item>getpgrp</item>
+      <item>getppid</item>
+      <item>getpriority</item>
+      <item>getprotobyname</item>
+      <item>getprotobynumber</item>
+      <item>getprotoent</item>
+      <item>getpwent</item>
+      <item>getpwnam</item>
+      <item>getpwuid</item>
+      <item>getservbyname</item>
+      <item>getservbyport</item>
+      <item>getservent</item>
+      <item>getsockname</item>
+      <item>getsockopt</item>
+      <item>glob</item>
+      <item>gmtime</item>
+      <item>goto</item>
+      <item>grep</item>
+      <item>hex</item>
+      <item>import</item>
+      <item>index</item>
+      <item>int</item>
+      <item>ioctl</item>
+      <item>join</item>
+      <item>keys</item>
+      <item>kill</item>
+      <item>last</item>
+      <item>lc</item>
+      <item>lcfirst</item>
+      <item>length</item>
+      <item>link</item>
+      <item>listen</item>
+      <item>localtime</item>
+      <item>lock</item>
+      <item>log</item>
+      <item>lstat</item>
+      <item>map</item>
+      <item>mkdir</item>
+      <item>msgctl</item>
+      <item>msgget</item>
+      <item>msgrcv</item>
+      <item>msgsnd</item>
+      <item>no</item>
+      <item>oct</item>
+      <item>open</item>
+      <item>opendir</item>
+      <item>ord</item>
+      <item>pack</item>
+      <item>package</item>
+      <item>pipe</item>
+      <item>pop</item>
+      <item>pos</item>
+      <item>print</item>
+      <item>printf</item>
+      <item>prototype</item>
+      <item>push</item>
+      <item>quotemeta</item>
+      <item>rand</item>
+      <item>read</item>
+      <item>readdir</item>
+      <item>readline</item>
+      <item>readlink</item>
+      <item>recv</item>
+      <item>redo</item>
+      <item>ref</item>
+      <item>rename</item>
+      <item>require</item>
+      <item>reset</item>
+      <item>return</item>
+      <item>reverse</item>
+      <item>rewinddir</item>
+      <item>rindex</item>
+      <item>rmdir</item>
+      <item>scalar</item>
+      <item>seek</item>
+      <item>seekdir</item>
+      <item>select</item>
+      <item>semctl</item>
+      <item>semget</item>
+      <item>semop</item>
+      <item>send</item>
+      <item>setgrent</item>
+      <item>sethostent</item>
+      <item>setnetent</item>
+      <item>setpgrp</item>
+      <item>setpriority</item>
+      <item>setprotoent</item>
+      <item>setpwent</item>
+      <item>setservent</item>
+      <item>setsockopt</item>
+      <item>shift</item>
+      <item>shmctl</item>
+      <item>shmget</item>
+      <item>shmread</item>
+      <item>shmwrite</item>
+      <item>shutdown</item>
+      <item>sin</item>
+      <item>sleep</item>
+      <item>socket</item>
+      <item>socketpair</item>
+      <item>sort</item>
+      <item>splice</item>
+      <item>split</item>
+      <item>sprintf</item>
+      <item>sqrt</item>
+      <item>srand</item>
+      <item>stat</item>
+      <item>study</item>
+      <item>sub</item>
+      <item>substr</item>
+      <item>symlink</item>
+      <item>syscall</item>
+      <item>sysread</item>
+      <item>sysseek</item>
+      <item>system</item>
+      <item>syswrite</item>
+      <item>tell</item>
+      <item>telldir</item>
+      <item>tie</item>
+      <item>time</item>
+      <item>times</item>
+      <item>truncate</item>
+      <item>uc</item>
+      <item>ucfirst</item>
+      <item>umask</item>
+      <item>undef</item>
+      <item>unlink</item>
+      <item>unpack</item>
+      <item>unshift</item>
+      <item>untie</item>
+      <item>use</item>
+      <item>utime</item>
+      <item>values</item>
+      <item>vec</item>
+      <item>wait</item>
+      <item>waitpid</item>
+      <item>wantarray</item>
+      <item>warn</item>
+      <item>write</item>
+    </list>
+    <list name="pragmas">
+      <item>strict</item>
+      <item>english</item>
+      <item>warnings</item>
+      <item>vars</item>
+      <item>subs</item>
+      <item>utf8</item>
+      <item>sigtrap</item>
+      <item>locale</item>
+      <item>open</item>
+      <item>less</item>
+      <item>integer</item>
+      <item>filetest</item>
+      <item>constant</item>
+      <item>bytes</item>
+      <item>diagnostics</item>
+    </list>
+    <contexts>
+      <context name="normal" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="#stay" String="^#!\/.*" />
+        <StringDetect attribute="Keyword" context="data_handle" String="__DATA__" firstNonSpace="true" />
+        <StringDetect attribute="Keyword" context="#stay" String="__END__" firstNonSpace="true"/>
+        <RegExpr attribute="Keyword" context="sub_name_def" String="\bsub\s+" />
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Operator" context="#stay" String="operators" />
+        <keyword attribute="Function" context="#stay" String="functions" />
+        <keyword attribute="Pragma" context="#stay" String="pragmas" />
+        <RegExpr attribute="Pod" context="pod" String="\=\w+(\s|$)" column="0" beginRegion="POD"/>
+        <DetectSpaces />
+        <DetectChar attribute="Comment" context="comment" char="#" />
+
+        <!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->
+        <RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="slash_safe_escape"/>
+        <RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="slash_safe_escape"/>
+        <RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="slash_safe_escape"/>
+        <RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="slash_safe_escape"/>
+        <RegExpr attribute="Decimal" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="slash_safe_escape"/>
+        <Int attribute="Decimal" context="slash_safe_escape" />
+
+        <RegExpr attribute="Normal Text" context="#stay" String="\\([&quot;'])[^\1]" />
+        <Detect2Chars attribute="Normal Text" context="#stay" char="&amp;" char1="'" /><!-- ??? -->
+        <DetectChar attribute="Operator" context="ip_string" char="&quot;" beginRegion="String" />
+        <DetectChar attribute="Operator" context="string" char="'"  beginRegion="String"/>
+        <DetectChar attribute="Operator" context="Backticked" char="`" />
+
+        <RegExpr attribute="Normal Text" context="find_variable" String="(?:[$@]\S|%[\w{]|\*[^\d\*{\$@%=(])" lookAhead="true" />
+
+        <RegExpr attribute="Keyword" context="#stay" String="&lt;[A-Z0-9_]+&gt;" />
+
+        <RegExpr attribute="Operator" context="find_here_document" String="\s*&lt;&lt;(?=\w+|\s*[&quot;'])" beginRegion="HereDocument" />
+
+        <RegExpr attribute="Normal Text" context="#stay" String="\s*\}\s*/{1,2}" endRegion="Block"/>
+        <RegExpr attribute="Normal Text" context="#stay" String="\s*[)\]]\s*/{1,2}" />
+
+        <RegExpr attribute="Function" context="sub_name_def" String="\w+::" />
+        <RegExpr attribute="Normal Text" context="#stay" String="\w+[=]" />
+
+        <RegExpr attribute="Operator" context="find_quoted" String="\bq(?=[qwx]?\s*[^\w\s])" />
+        <RegExpr attribute="Operator" context="find_subst" String="\bs(?=\s*[^\w\s\]})])" />
+        <RegExpr attribute="Operator" context="tr" String="\b(?:tr|y)\s*(?=[^\w\s\]})])" />
+
+        <RegExpr attribute="Operator" context="find_pattern" String="\b(?:m|qr)(?=\s*[^\w\s\]})])" />
+
+        <RegExpr attribute="Normal Text" context="#stay" String="[\w_]+\s*/" />
+        <RegExpr attribute="Normal Text" context="#stay" String="[&lt;&gt;&quot;':]/" />
+        <DetectChar attribute="Operator" context="pattern_slash" char="/" beginRegion="Pattern" />
+        <RegExpr attribute="Operator" context="#stay" String="-[rwxoRWXOeszfdlpSbctugkTBMAC]\b" />
+
+        <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Block" />
+        <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Block" />
+      </context>
+
+      <!-- ====== quoted construct central ===== -->
+      <context name="find_quoted" attribute="Normal Text" lineEndContext="#stay" >
+        <!-- NOTE - qx'not interpolated regex' does not cover newline between "qr" and "'" -->
+        <RegExpr attribute="Operator" context="string_6" String="x\s*(')" beginRegion="String" />
+        <AnyChar attribute="Operator" context="find_qqx" String="qx" />
+        <DetectChar attribute="Operator" context="find_qw" char="w" />
+        <DetectChar attribute="Operator" context="string_2" char="(" beginRegion="String" />
+        <DetectChar attribute="Operator" context="string_3" char="{" beginRegion="String" />
+        <DetectChar attribute="Operator" context="string_4" char="[" beginRegion="String" />
+        <DetectChar attribute="Operator" context="string_5" char="&lt;" beginRegion="String" />
+        <RegExpr attribute="Operator" context="string_6" String="([^a-zA-Z0-9_\s[\]{}()])" beginRegion="String" />
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- q[qwx] # == comment, look for the delim on the next line -->
+      </context>
+      <context name="find_qqx" attribute="Normal Text" lineEndContext="#stay" >
+        <DetectChar attribute="Operator" context="ip_string_2" char="(" beginRegion="String" />
+        <DetectChar attribute="Operator" context="ip_string_3" char="{" beginRegion="String" />
+        <DetectChar attribute="Operator" context="ip_string_4" char="[" beginRegion="String" />
+        <DetectChar attribute="Operator" context="ip_string_5" char="&lt;" beginRegion="String" />
+        <RegExpr attribute="Operator" context="ip_string_6" String="([^a-zA-Z0-9_\s[\]{}()])" beginRegion="String" />
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- q[qwx] # == comment, look for the delim on the next line -->
+      </context>
+      <context name="find_qw" attribute="Normal Text" lineEndContext="#stay" >
+        <DetectChar attribute="Operator" context="quote_word_paren" char="(" beginRegion="Wordlist" />
+        <DetectChar attribute="Operator" context="quote_word_brace" char="{" beginRegion="Wordlist" />
+        <DetectChar attribute="Operator" context="quote_word_bracket" char="[" beginRegion="Wordlist" />
+        <RegExpr attribute="Operator" context="quote_word" String="([^a-zA-Z0-9_\s[\]{}()])" beginRegion="Wordlist" />
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- q[qwx] # == comment, look for the delim on the next line -->
+      </context>
+
+      <!-- ====== Contexts for strings ===== -->
+      <context name="ipstring_internal" attribute="String (interpolated)" lineEndContext="#stay">
+        <DetectIdentifier />
+        <RegExpr attribute="String Special Character" context="#stay" String="\\[UuLlEtnaefr]" />
+        <RegExpr attribute="String (interpolated)" context="#stay" String="\\." />
+        <RegExpr attribute="Normal Text" context="find_variable_unsafe" String="(?:[\$@]\S|%[\w{])" lookAhead="true" />
+      </context>
+      <context name="ip_string" attribute="String (interpolated)" lineEndContext="#stay">
+        <DetectChar attribute="Operator" context="#pop" char="&quot;" endRegion="String"/>
+        <IncludeRules context="ipstring_internal" />
+      </context>
+      <context name="ip_string_2" attribute="String (interpolated)" lineEndContext="#stay">
+        <RangeDetect attribute="String (interpolated)" context="#stay" char="(" char1=")" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char=")" endRegion="String" />
+        <IncludeRules context="ipstring_internal" />
+      </context>
+      <context name="ip_string_3" attribute="String (interpolated)" lineEndContext="#stay">
+        <RangeDetect attribute="String (interpolated)" context="#stay" char="{" char1="}" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char="}" endRegion="String" />
+        <IncludeRules context="ipstring_internal" />
+      </context>
+      <context name="ip_string_4" attribute="String (interpolated)" lineEndContext="#stay">
+        <RangeDetect attribute="String (interpolated)" context="#stay" char="[" char1="]" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char="]" endRegion="String" />
+        <IncludeRules context="ipstring_internal" />
+      </context>
+      <context name="ip_string_5" attribute="String (interpolated)" lineEndContext="#stay">
+        <RangeDetect attribute="String (interpolated)" context="#stay" char="&lt;" char1="&gt;" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char="&gt;" endRegion="String" />
+        <IncludeRules context="ipstring_internal" />
+      </context>
+      <context name="ip_string_6" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="String (interpolated)" context="#stay" String="\\%1" dynamic="true" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char="1" dynamic="true"  endRegion="String"/>
+        <IncludeRules context="ipstring_internal" />
+      </context>
+
+      <context name="string" attribute="String" lineEndContext="#stay">
+        <DetectIdentifier />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="'" />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
+        <DetectChar attribute="Operator" context="#pop" char="'" endRegion="String" />
+      </context>
+      <context name="string_2" attribute="String" lineEndContext="#stay">
+        <DetectIdentifier />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1=")" />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
+        <RangeDetect attribute="String" context="#stay" char="(" char1=")" />
+        <DetectChar attribute="Operator" context="#pop#pop" char=")" endRegion="String" />
+      </context>
+      <context name="string_3" attribute="String" lineEndContext="#stay">
+        <DetectIdentifier />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="}" />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
+        <RangeDetect attribute="String" context="#stay" char="{" char1="}" />
+        <DetectChar attribute="Operator" context="#pop#pop" char="}" endRegion="String" />
+      </context>
+      <context name="string_4" attribute="String" lineEndContext="#stay">
+        <DetectIdentifier />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="]" />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
+        <RangeDetect attribute="String" context="#stay" char="[" char1="]" />
+        <DetectChar attribute="Operator" context="#pop#pop" char="]" endRegion="String" />
+      </context>
+      <context name="string_5" attribute="String" lineEndContext="#stay">
+        <DetectIdentifier />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="&lt;" />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
+        <Detect2Chars attribute="String" context="#stay" char="\" char1="&gt;" />
+        <RangeDetect attribute="String" context="#stay" char="&lt;" char1="&gt;" />
+        <DetectChar attribute="Operator" context="#pop#pop" char="&gt;" endRegion="String" />
+      </context>
+      <context name="string_6" attribute="String" lineEndContext="#stay" dynamic="true">
+        <DetectIdentifier />
+        <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
+        <RegExpr attribute="String Special Character" context="#stay" String="\\%1" dynamic="true"/>
+        <DetectChar attribute="Operator" context="#pop#pop" char="1" dynamic="true" endRegion="String" />
+      </context>
+
+      <!-- ====== contexts for  s/// ====== -->
+      <context name="find_subst" attribute="Normal Text" lineEndContext="#stay" >
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- s # == comment, look for the delim on the next line -->
+        <DetectChar attribute="Operator" context="subst_curlybrace_pattern" char="{" beginRegion="Pattern" />
+        <DetectChar attribute="Operator" context="subst_paren_pattern" char="(" beginRegion="Pattern" />
+        <DetectChar attribute="Operator" context="subst_bracket_pattern" char="[" beginRegion="Pattern" />
+        <DetectChar attribute="Operator" context="subst_sq_pattern" char="'" beginRegion="Pattern" />
+        <RegExpr attribute="Operator" context="subst_slash_pattern" String="([^\w\s[\]{}()])" beginRegion="Pattern" />
+      </context>
+
+      <!-- Fully parse s {} {}.
+           This means that
+           - comments are legal between PATTERN and REPLACEMENT
+           - REPLACEMENT can contain resursive {} blocks -->
+      <context name="subst_curlybrace_pattern" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+        <DetectChar attribute="Operator" context="subst_curlybrace_middle" char="}" endRegion="Pattern" />
+      </context>
+      <context name="subst_curlybrace_middle" attribute="Normal Text" lineEndContext="#stay" >
+        <RegExpr attribute="Comment" context="#stay" String="#.*$" />
+        <DetectChar attribute="Operator" context="subst_curlybrace_replace" char="{" beginRegion="Replacement" />
+      </context>
+      <context name="subst_curlybrace_replace" attribute="String (interpolated)" lineEndContext="#stay">
+        <IncludeRules context="ipstring_internal" />
+        <DetectChar attribute="Normal Text" context="subst_curlybrace_replace_recursive" char="{" beginRegion="Block" />
+        <RegExpr attribute="Operator" context="#pop#pop#pop#pop" String="\}[cegimosx]*" endRegion="Replacement" />
+      </context>
+      <context name="subst_curlybrace_replace_recursive" attribute="String (interpolated)" lineEndContext="#stay" >
+        <DetectChar attribute="String (interpolated)" context="subst_curlybrace_replace_recursive" char="{" beginRegion="Block" />
+        <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="Block" />
+        <IncludeRules context="ipstring_internal" />
+      </context>
+
+      <context name="subst_paren_pattern" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+        <DetectChar attribute="Operator" context="subst_paren_replace" char="}" endRegion="Pattern" />
+      </context>
+      <context name="subst_paren_replace" attribute="String (interpolated)" lineEndContext="#stay">
+        <IncludeRules context="ipstring_internal" />
+        <DetectChar attribute="Operator" context="#stay" char="(" beginRegion="Replacement" />
+        <RegExpr attribute="Operator" context="#pop#pop#pop" String="\)[cegimosx]*" endRegion="Replacement" />
+      </context>
+
+      <context name="subst_bracket_pattern" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+        <DetectChar attribute="Operator" context="subst_bracket_replace" char="]" endRegion="Pattern" />
+      </context>
+      <context name="subst_bracket_replace" attribute="String (interpolated)" lineEndContext="#stay">
+        <IncludeRules context="ipstring_internal" />
+        <DetectChar attribute="Operator" context="#stay" char="[" beginRegion="Replacement" />
+        <RegExpr attribute="Operator" context="#pop#pop#pop" String="\][cegimosx]*" endRegion="Replacement" />
+      </context>
+
+      <context name="subst_slash_pattern" attribute="Pattern" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=%1)" dynamic="true" />
+        <RegExpr attribute="Operator" context="subst_slash_replace" String="(%1)" dynamic="true" endRegion="Pattern" beginRegion="Replacement" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+      </context>
+      <context name="subst_slash_replace" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Operator" context="#pop#pop#pop" String="%1[cegimosx]*" dynamic="true" endRegion="Replacement" />
+        <IncludeRules context="ipstring_internal" />
+
+      </context>
+
+      <context name="subst_sq_pattern" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*$" />
+        <IncludeRules context="regex_pattern_internal" />
+        <DetectChar attribute="Operator" context="subst_sq_replace" char="'" endRegion="Pattern" beginRegion="Pattern" />
+      </context>
+      <context name="subst_sq_replace" attribute="String" lineEndContext="#stay">
+        <RegExpr attribute="Operator" context="#pop#pop#pop" String="'[cegimosx]*" endRegion="Replacement" />
+      </context>
+
+      <context name="tr" attribute="Pattern" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
+        <RegExpr attribute="Pattern" context="#pop" String="\([^)]*\)\s*\(?:[^)]*\)" />
+        <RegExpr attribute="Pattern" context="#pop" String="\{[^}]*\}\s*\{[^}]*\}" />
+        <RegExpr attribute="Pattern" context="#pop" String="\[[^]]*\]\s*\[[^\]]*\]" />
+        <RegExpr attribute="Pattern" context="#pop" String="([^a-zA-Z0-9_\s[\]{}()]).*\1.*\1" minimal="true"/>
+      </context>
+
+      <!-- ====== PATTERNs ====== -->
+      <context name="find_pattern" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="#stay" String="\s+#.*" /><!-- s # == comment, look for the delim on the next line -->
+        <DetectChar attribute="Operator" context="pattern_brace" char="{" beginRegion="Pattern" />
+        <DetectChar attribute="Operator" context="pattern_paren" char="(" beginRegion="Pattern" />
+        <DetectChar attribute="Operator" context="pattern_bracket" char="[" beginRegion="Pattern" />
+        <DetectChar attribute="Operator" context="pattern_sq" char="'" beginRegion="Pattern" />
+        <RegExpr attribute="Operator" context="pattern" String="([^\w\s])" beginRegion="Pattern" />
+      </context>
+      <context name="pattern_slash" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=/)" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+        <RegExpr attribute="Operator" context="#pop" String="/[cgimosx]*" endRegion="Pattern" />
+      </context>
+      <context name="pattern" attribute="Pattern" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=%1)" dynamic="true" />
+        <RegExpr attribute="Operator" context="#pop#pop" String="%1[cgimosx]*" dynamic="true" endRegion="Pattern" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=\\%1)" dynamic="true" />
+      </context>
+      <context name="pattern_brace" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Operator" context="#pop#pop" String="\}[cgimosx]*" endRegion="Pattern" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+      </context>
+      <context name="pattern_bracket" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Operator" context="#pop#pop" String="\][cgimosx]*" endRegion="Pattern" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+      </context>
+      <context name="pattern_paren" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Operator" context="#pop#pop" String="\)[cgimosx]*" endRegion="Pattern" />
+        <IncludeRules context="regex_pattern_internal_ip" />
+      </context>
+      <context name="pattern_sq" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Operator" context="#pop#pop" String="'[cgimosx]*" endRegion="Pattern" />
+        <IncludeRules context="regex_pattern_internal" />
+      </context>
+
+      <!-- rules internal stuff wrt regex patterns -->
+      <context name="regex_pattern_internal_rules_1" attribute="Pattern" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="#stay" String="#.*$" firstNonSpace="true" />
+        <RegExpr attribute="Pattern Character Class" context="#stay" String="\\[anDdSsWw]" />
+        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\[ABbEGLlNUuQdQZz]" />
+        <RegExpr attribute="Special Variable" context="#stay" String="\\[\d]+" />
+        <RegExpr attribute="Pattern" context="#stay" String="\\." />
+      </context>
+      <context name="regex_pattern_internal_rules_2" attribute="Pattern" lineEndContext="#stay">
+        <Detect2Chars attribute="Pattern Internal Operator" context="pat_ext" char="(" char1="?" />
+        <DetectChar attribute="Pattern Internal Operator" context="pat_char_class" char="[" />
+        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="[()?^*+|]" />
+        <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\{[\d, ]+\}" />
+        <DetectChar attribute="Pattern Internal Operator" context="#stay" char="$" />
+        <RegExpr attribute="Comment" context="#stay" String="\s{3,}#.*$" />
+      </context>
+      <context name="regex_pattern_internal" attribute="Pattern" lineEndContext="#stay">
+        <IncludeRules context="regex_pattern_internal_rules_1" />
+        <IncludeRules context="regex_pattern_internal_rules_2" />
+      </context>
+      <context name="regex_pattern_internal_ip" attribute="Pattern" lineEndContext="#stay" >
+        <IncludeRules context="regex_pattern_internal_rules_1" />
+        <!-- NOTE the below means that the special variables $' $], $} and $> are not supported
+             within interpolated PATTERNs (apart from $(, $) and ${ and $| not supported by perl).
+             This is because perl considers
+             s{foo$} {bar} OK as well as s{foo$}} {bar}, and detecting that is a huge work overload
+             for something that is unlikely to happen. -->
+        <RegExpr attribute="Data Type" context="find_variable_unsafe" String="[$@][^]\s{}()|&gt;']" lookAhead="true" />
+        <IncludeRules context="regex_pattern_internal_rules_2" />
+      </context>
+      <context name="pat_ext" attribute="Pattern Internal Operator" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="#pop" String="\#[^)]*" />
+        <RegExpr attribute="Pattern Internal Operator" context="#pop" String="[:=!&gt;&lt;]+" />
+        <DetectChar attribute="Pattern Internal Operator" context="#pop" char=")" />
+      </context>
+      <context name="pat_char_class" attribute="Pattern Character Class" lineEndContext="#stay">
+        <DetectChar attribute="Pattern Internal Operator" context="#stay" char="^" />
+        <Detect2Chars attribute="Pattern Character Class" context="#stay" char="\" char1="\" />
+        <Detect2Chars attribute="Pattern Character Class" context="#stay" char="\" char1="]" />
+        <RegExpr attribute="Pattern Character Class" context="#stay" String="\[:\^?[a-z]+:\]" />
+        <DetectChar attribute="Pattern Internal Operator" context="#pop" char="]" />
+      </context>
+
+      <!-- ====== Variables ====== -->
+      <context name="find_variable" attribute="Data Type" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
+        <RegExpr attribute="Special Variable" context="var_detect" String="\$[0-9]+" />
+        <RegExpr attribute="Special Variable" context="var_detect" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" />
+        <RegExpr attribute="Special Variable" context="var_detect" String="[%\$](?:INC\b|ENV\b|SIG\b)" />
+        <RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]" />
+        <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" />
+        <RegExpr attribute="Data Type" context="var_detect" String="\$+::" />
+        <RegExpr attribute="Special Variable" context="var_detect" String="\$[^a-zA-Z0-9\s{][A-Z]?" />
+        <RegExpr attribute="Data Type" context="var_detect" String="[\$@%]\{[\w_]+\}" />
+        <AnyChar attribute="Data Type" context="var_detect" String="$@%" />
+        <RegExpr attribute="Data Type" context="var_detect" String="\*[a-zA-Z_]+" />
+        <RegExpr attribute="Special Variable" context="#stay" String="\*[^a-zA-Z0-9\s{][A-Z]?" />
+        <!-- this should be a rare case! -->
+        <AnyChar attribute="Operator" context="#pop" String="$@%*" />
+      </context>
+      <!-- This does not check fo a trailing slash, for usage in strings. -->
+      <context name="find_variable_unsafe" attribute="Data Type" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
+        <RegExpr attribute="Special Variable" context="var_detect_unsafe" String="\$[0-9]+" />
+        <RegExpr attribute="Special Variable" context="var_detect_unsafe" String="[@\$](?:[\+\-_]\B|ARGV\b|INC\b)" />
+        <RegExpr attribute="Special Variable" context="var_detect_unsafe" String="[%\$](?:INC\b|ENV\b|SIG\b)" />
+        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$\$[\$\w_]" />
+        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$[#_][\w_]" />
+        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$+::" />
+        <RegExpr attribute="Special Variable" context="#stay" String="\$[^a-zA-Z0-9\s{][A-Z]?" />
+        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]\{[\w_]+\}" />
+        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]" /><!-- AnyChar! -->
+        <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\*\w+" />
+        <AnyChar attribute="Operator" context="#pop" String="$@%*" />
+      </context>
+      <context name="var_detect"  attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+        <IncludeRules context="var_detect_rules" />
+        <IncludeRules context="slash_safe_escape" />
+      </context>
+      <context name="var_detect_unsafe"  attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+        <IncludeRules context="var_detect_rules" />
+      </context>
+      <context name="var_detect_rules" attribute="Data Type" lineEndContext="#pop#pop" >
+        <RegExpr attribute="Data Type" context="#stay" String="[\w_]+" />
+        <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
+        <DetectChar attribute="Operator" context="#stay" char="'" />
+        <Detect2Chars attribute="Normal Text" context="#stay" char="-" char1="&gt;" />
+        <!-- safe with operator / -->
+        <Detect2Chars attribute="Normal Text" context="#stay" char="+" char1="+" />
+        <Detect2Chars attribute="Normal Text" context="#stay" char="-" char1="-" />
+      </context>
+
+
+      <!-- ====== Word lists ====== -->
+      <context name="quote_word" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <DetectSpaces />
+        <DetectIdentifier />
+        <RegExpr attribute="Normal Text" context="#stay" String="\\%1" dynamic="true" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char="1" dynamic="true" endRegion="Wordlist" />
+      </context>
+      <context name="quote_word_paren" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectIdentifier />
+        <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1=")" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char=")" endRegion="Wordlist" />
+      </context>
+      <context name="quote_word_brace" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectIdentifier />
+        <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="}" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char="}" endRegion="Wordlist" />
+      </context>
+      <context name="quote_word_bracket" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectIdentifier />
+        <Detect2Chars attribute="Normal Text" context="#stay" char="\" char1="]" />
+        <DetectChar attribute="Operator" context="#pop#pop#pop" char="]" endRegion="Wordlist" />
+      </context>
+
+      <!-- ====== Here Documents ====== -->
+      <context name="find_here_document" attribute="Normal Text" lineEndContext="#pop" >
+        <RegExpr attribute="Keyword" context="here_document" String="(\w+)\s*;?" />
+        <RegExpr attribute="Keyword" context="here_document" String="\s*&quot;([^&quot;]+)&quot;\s*;?" />
+        <RegExpr attribute="Keyword" context="here_document" String="\s*`([^`]+)`\s*;?" />
+        <RegExpr attribute="Keyword" context="here_document_dumb" String="\s*'([^']+)'\s*;?" />
+      </context>
+      <context name="here_document" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="%1\b" column="0" dynamic="true" endRegion="HereDocument"/>
+        <RegExpr attribute="Keyword" context="here_document" String="\=\s*&lt;&lt;\s*[&quot;']?([A-Z0-9_\-]+)[&quot;']?" beginRegion="HEREDoc" />
+        <IncludeRules context="ipstring_internal" />
+        <DetectSpaces />
+      </context>
+      <context name="here_document_dumb" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="%1" column="0" dynamic="true" endRegion="HereDocument"/>
+        <DetectSpaces />
+        <DetectIdentifier />
+      </context>
+
+      <!-- ====== Misc ====== -->
+      <context name="data_handle" attribute="Data" lineEndContext="#stay">
+        <RegExpr attribute="Pod" context="pod" String="\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s+.*" column="0" beginRegion="POD"/>
+        <StringDetect attribute="Keyword" context="normal" String="__END__" firstNonSpace="true" />
+      </context>
+      <context name="end_handle" attribute="Nothing" lineEndContext="#stay">
+        <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*"/>
+        <StringDetect attribute="Keyword" context="data_handle" String="__DATA__" firstNonSpace="true" />
+      </context>
+
+      <context name="Backticked" attribute="String (interpolated)" lineEndContext="#stay">
+        <IncludeRules context="ipstring_internal"/>
+        <DetectChar attribute="Operator" context="#pop" char="`"/>
+      </context>
+
+      <context name="slash_safe_escape" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="Normal Text" context="#pop" String="\s*\}\s*/{1,2}" endRegion="Block"/>
+        <RegExpr attribute="Normal Text" context="#pop" String="\s*[)\]]?\s*/{1,2}" />
+        <keyword attribute="Keyword" context="#pop" String="keywords" /><!-- wonder why??? -->
+      </context>
+
+      <context name="package_qualified_blank" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Normal Text" context="#pop" String="[\w_]+" />
+      </context>
+
+      <context name="sub_name_def" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="Function" context="#stay" String="\w+" />
+        <RegExpr attribute="Normal Text" context="find_variable" String="\$\S" lookAhead="true" />
+        <RegExpr attribute="Normal Text" context="sub_arg_definition" String="\s*\(" />
+        <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
+      </context>
+
+      <context name="sub_arg_definition" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">
+        <AnyChar attribute="Data Type" context="#stay" String="*$@%" />
+        <AnyChar attribute="Normal Text" context="#stay" String="&amp;\[];" />
+        <DetectChar attribute="Normal Text" context="slash_safe_escape" char=")" />
+      </context>
+
+      <context name="pod" attribute="Pod" lineEndContext="#stay">
+        <DetectSpaces />
+        <DetectIdentifier />
+        <RegExpr attribute="Pod" context="#stay" String="\=(?:head[1-6]|over|back|item|for|begin|end|pod)\s*.*" column="0" beginRegion="POD" endRegion="POD"/>
+        <RegExpr attribute="Pod" context="#pop" String="\=cut.*$" column="0" endRegion="POD"/>
+      </context>
+
+      <context name="comment" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces />
+        <IncludeRules context="##Alerts" />
+        <DetectIdentifier />
+      </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"               defStyleNum="dsNormal" />
+      <itemData name="Keyword"                   defStyleNum="dsKeyword" />
+      <itemData name="Pragma"                    defStyleNum="dsKeyword" />
+      <itemData name="Function"                  defStyleNum="dsFunction" />
+      <itemData name="Operator"                  defStyleNum="dsKeyword" color="#008000"/>
+      <itemData name="Data Type"                 defStyleNum="dsDataType" />
+      <itemData name="Special Variable"          defStyleNum="dsDataType" color="#C00000" selColor="#C00000" bold="0" italic="0" />
+      <itemData name="Decimal"                   defStyleNum="dsDecVal" />
+      <itemData name="Octal"                     defStyleNum="dsBaseN" />
+      <itemData name="Hex"                       defStyleNum="dsBaseN" />
+      <itemData name="Bin"                       defStyleNum="dsBaseN" />
+      <itemData name="Float"                     defStyleNum="dsFloat" />
+      <itemData name="String"                    defStyleNum="dsString" color="#FF6C6C" selColor="#FF6C6C" bold="0" italic="0" />
+      <itemData name="String (interpolated)"     defStyleNum="dsString" />
+      <itemData name="String Special Character"  defStyleNum="dsChar" />
+      <itemData name="Pattern"                   defStyleNum="dsOthers" />
+      <itemData name="Pattern Internal Operator" defStyleNum="dsChar" />
+      <itemData name="Pattern Character Class"   defStyleNum="dsBaseN" />
+      <itemData name="Data"                      defStyleNum="dsNormal" />
+      <itemData name="Comment"                   defStyleNum="dsComment" />
+      <itemData name="Pod"                       defStyleNum="dsComment" />
+      <itemData name="Nothing"                   defStyleNum="dsComment" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" />
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/php.xml b/xml/php.xml
new file mode 100644
--- /dev/null
+++ b/xml/php.xml
@@ -0,0 +1,5709 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+Changes:
+[ Version 1.47 (2015-03-24) ]
+- added support for binary integer literals
+
+[ Version 1.46 (2015-03-02) ]
+- added yield keyword
+
+[ Version 1.43 (2013-10-11) ]
+- added missing constants for sorting
+
+[ Version 1.42 (2010-05-09) ]
+- fix handling of paamayim nekudotayim in ternary / case context, which used to
+  lead to improper region starts
+
+[ Version 1.41 (2009-08-26) ]
+- Add codefolding to heredocs
+
+[ Version 1.40 (2009-08-26) ]
+- Use Javascript, HTML, CSS or MySQL highlighting in heredoc statements with
+  with names like e.g. <<<HTML or <<<EOHTML
+
+  Bug: 118668
+
+[ Version 1.39 (2009-08-18) ]
+- Don't add subcontexts when using the paamayim nekudotayim token.
+
+[ Version 1.38 (2009-07-23) ]
+
+- Add support for alternate block syntax, see bug #103257. (James Sleeman)
+
+[ Version 1.37 (2009-07-18) ]
+
+- Remove folding on open and close php to improve embedded html handling, see bug #103257, #143022. (James Sleeman)
+
+[ Version 1.36 (2009-07-10) ]
+
+- spelling-awareness
+
+[ Version 1.35 (2009-04-08) ]
+
+- fix uppercase <?PHP
+- add missing magic constants
+
+[ Version 1.32 (2007-12-02) ]
+
+- When leaving PHP context, make sure to close all brace regions (braces open a nested phpsource context for this purpose). This is a WORKAROUND for bug #143022 until feature #103257 is available.
+
+[ Version 1.31 (2007-11-29) ]
+
+- Add support for backtick operator. This has basically the same syntax as double quotes, so the two share most rules.
+
+[ Version 1.28 (2006-11-02) ]
+
+- Moved the special method names to a dedicated section (the coloration will default to the coloration of functions, but it can be customized independently, to revert to the previous coloration styles, that is, black, and bold).
+
+[ Version 1.27 (2006-11-01) ]
+
+- Added new special method names, from PHP 5.
+- Moved the special method names to the function list.
+
+[  Version 1.26 (2006-01-26) ]
+
+- Added alternative syntax control structures, and named logical operators ("and", "or", and "xor") (by Nicola Gigante).
+
+-->
+<!DOCTYPE language SYSTEM "language.dtd" [
+  <!ENTITY types "int|integer|bool|boolean|float|double|real|string|array|object">
+]>
+
+<language name="PHP/PHP" indenter="cstyle" version="7" kateversion="3.4" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">
+  <highlighting>
+    <!-- https://secure.php.net/manual/en/reserved.keywords.php -->
+    <list name="control structures">
+      <!-- PHP 5.6 -->
+      <item>case</item>
+      <item>default</item>
+      <item>if</item>
+      <item>else</item>
+      <item>elseif</item>
+      <item>while</item>
+      <item>do</item>
+      <item>for</item>
+      <item>foreach</item>
+      <item>break</item>
+      <item>continue</item>
+      <item>switch</item>
+      <item>return</item>
+      <item>require</item>
+      <item>include</item>
+      <item>endif</item>
+      <item>endwhile</item>
+      <item>endfor</item>
+      <item>endforeach</item>
+      <item>endswitch</item>
+    </list>
+
+    <!-- https://secure.php.net/manual/en/reserved.keywords.php -->
+    <!-- https://secure.php.net/manual/en/reserved.other-reserved-words.php -->
+    <list name="keywords">
+      <!-- PHP 5.6 -->
+      <item>__halt_compiler</item>
+      <item>abstract</item>
+      <item>and</item>
+      <item>array</item>
+      <item>as</item>
+      <item>callable</item>
+      <item>catch</item>
+      <item>class</item>
+      <item>clone</item>
+      <item>const</item>
+      <item>declare</item>
+      <item>die</item>
+      <item>echo</item>
+      <item>empty</item>
+      <item>enddeclare</item>
+      <item>eval</item>
+      <item>exit</item>
+      <item>extends</item>
+      <item>final</item>
+      <item>finally</item>
+      <item>function</item>
+      <item>global</item>
+      <item>goto</item>
+      <item>implements</item>
+      <item>include</item>
+      <item>include_once</item>
+      <item>instanceof</item>
+      <item>insteadof</item>
+      <item>interface</item>
+      <item>isset</item>
+      <item>list</item>
+      <item>namespace</item>
+      <item>new</item>
+      <item>or</item>
+      <item>print</item>
+      <item>private</item>
+      <item>protected</item>
+      <item>public</item>
+      <item>require</item>
+      <item>require_once</item>
+      <item>static</item>
+      <item>throw</item>
+      <item>trait</item>
+      <item>try</item>
+      <item>unset</item>
+      <item>use</item>
+      <item>var</item>
+      <item>xor</item>
+      <item>yield</item>
+
+      <!-- PHP 7.0 -->
+      <item>bool</item>
+      <item>false</item>
+      <item>float</item>
+      <item>int</item>
+      <item>mixed</item>
+      <item>null</item>
+      <item>numeric</item>
+      <item>object</item>
+      <item>resource</item>
+      <item>string</item>
+      <item>true</item>
+
+      <!-- PHP 7.1 -->
+      <item>iterable</item>
+      <item>void</item>
+    </list>
+
+    <!-- https://secure.php.net/manual/en/reserved.keywords.php -->
+    <!-- https://secure.php.net/manual/en/reserved.constants.php -->
+    <list name="constants">
+      <!-- PHP 5.6 (Compile-Time Constants) -->
+      <item>__CLASS__</item>
+      <item>__DIR__</item>
+      <item>__FILE__</item>
+      <item>__FUNCTION__</item>
+      <item>__LINE__</item>
+      <item>__METHOD__</item>
+      <item>__NAMESPACE__</item>
+      <item>__TRAIT__</item>
+
+      <!-- PHP 5.6 (Core Pre-Defined Constants ) -->
+      <item>PHP_VERSION</item>
+      <item>PHP_MAJOR_VERSION</item>
+      <item>PHP_MINOR_VERSION</item>
+      <item>PHP_RELEASE_VERSION</item>
+      <item>PHP_VERSION_ID</item>
+      <item>PHP_EXTRA_VERSION</item>
+      <item>PHP_ZTS</item>
+      <item>PHP_DEBUG</item>
+      <item>PHP_MAXPATHLEN</item>
+      <item>PHP_OS</item>
+      <item>PHP_SAPI</item>
+      <item>PHP_EOL</item>
+      <item>PHP_INT_MAX</item>
+      <item>PHP_INT_SIZE</item>
+      <item>DEFAULT_INCLUDE_PATH</item>
+      <item>PEAR_INSTALL_DIR</item>
+      <item>PEAR_EXTENSION_DIR</item>
+      <item>PHP_EXTENSION_DIR</item>
+      <item>PHP_PREFIX</item>
+      <item>PHP_BINDIR</item>
+      <item>PHP_BINARY</item>
+      <item>PHP_MANDIR</item>
+      <item>PHP_LIBDIR</item>
+      <item>PHP_DATADIR</item>
+      <item>PHP_SYSCONFDIR</item>
+      <item>PHP_LOCALSTATEDIR</item>
+      <item>PHP_CONFIG_FILE_PATH</item>
+      <item>PHP_CONFIG_FILE_SCAN_DIR</item>
+      <item>PHP_SHLIB_SUFFIX</item>
+      <item>PHP_FD_SETSIZE</item>
+      <item>E_ERROR</item>
+      <item>E_WARNING</item>
+      <item>E_PARSE</item>
+      <item>E_NOTICE</item>
+      <item>E_CORE_ERROR</item>
+      <item>E_CORE_WARNING</item>
+      <item>E_COMPILE_ERROR</item>
+      <item>E_COMPILE_WARNING</item>
+      <item>E_USER_ERROR</item>
+      <item>E_USER_WARNING</item>
+      <item>E_USER_NOTICE</item>
+      <item>E_DEPRECATED</item>
+      <item>E_USER_DEPRECATED</item>
+      <item>E_ALL</item>
+      <item>E_STRICT</item>
+      <item>__COMPILER_HALT_OFFSET__</item>
+
+      <!-- PHP 7.0 (Core Pre-Defined Constants) -->
+      <item>PHP_INT_MIN</item>
+
+      <!-- PHP 7.2 (Core Pre-Defined Constants) -->
+      <item>PHP_OS_FAMILY</item>
+      <item>PHP_FLOAT_DIG</item>
+      <item>PHP_FLOAT_EPSILON</item>
+      <item>PHP_FLOAT_MIN</item>
+      <item>PHP_FLOAT_MAX</item>
+
+      <!-- Extensions -->
+      <item>ABDAY_1</item>
+      <item>ABDAY_2</item>
+      <item>ABDAY_3</item>
+      <item>ABDAY_4</item>
+      <item>ABDAY_5</item>
+      <item>ABDAY_6</item>
+      <item>ABDAY_7</item>
+      <item>ABMON_1</item>
+      <item>ABMON_10</item>
+      <item>ABMON_11</item>
+      <item>ABMON_12</item>
+      <item>ABMON_2</item>
+      <item>ABMON_3</item>
+      <item>ABMON_4</item>
+      <item>ABMON_5</item>
+      <item>ABMON_6</item>
+      <item>ABMON_7</item>
+      <item>ABMON_8</item>
+      <item>ABMON_9</item>
+      <item>AF_INET</item>
+      <item>AF_INET6</item>
+      <item>AF_UNIX</item>
+      <item>ALT_DIGITS</item>
+      <item>AM_STR</item>
+      <item>ASSERT_ACTIVE</item>
+      <item>ASSERT_BAIL</item>
+      <item>ASSERT_CALLBACK</item>
+      <item>ASSERT_QUIET_EVAL</item>
+      <item>ASSERT_WARNING</item>
+      <item>CAL_DOW_DAYNO</item>
+      <item>CAL_DOW_LONG</item>
+      <item>CAL_DOW_SHORT</item>
+      <item>CAL_EASTER_ALWAYS_GREGORIAN</item>
+      <item>CAL_EASTER_ALWAYS_JULIAN</item>
+      <item>CAL_EASTER_DEFAULT</item>
+      <item>CAL_EASTER_ROMAN</item>
+      <item>CAL_FRENCH</item>
+      <item>CAL_GREGORIAN</item>
+      <item>CAL_JEWISH</item>
+      <item>CAL_JEWISH_ADD_ALAFIM</item>
+      <item>CAL_JEWISH_ADD_ALAFIM_GERESH</item>
+      <item>CAL_JEWISH_ADD_GERESHAYIM</item>
+      <item>CAL_JULIAN</item>
+      <item>CAL_MONTH_FRENCH</item>
+      <item>CAL_MONTH_GREGORIAN_LONG</item>
+      <item>CAL_MONTH_GREGORIAN_SHORT</item>
+      <item>CAL_MONTH_JEWISH</item>
+      <item>CAL_MONTH_JULIAN_LONG</item>
+      <item>CAL_MONTH_JULIAN_SHORT</item>
+      <item>CAL_NUM_CALS</item>
+      <item>CASE_LOWER</item>
+      <item>CASE_UPPER</item>
+      <item>CHAR_MAX</item>
+      <item>CIT_CALL_TOSTRING</item>
+      <item>CIT_CATCH_GET_CHILD</item>
+      <item>CL_EXPUNGE</item>
+      <item>CODESET</item>
+      <item>CONNECTION_ABORTED</item>
+      <item>CONNECTION_NORMAL</item>
+      <item>CONNECTION_TIMEOUT</item>
+      <item>COUNT_NORMAL</item>
+      <item>COUNT_RECURSIVE</item>
+      <item>CP_MOVE</item>
+      <item>CP_UID</item>
+      <item>CREDITS_ALL</item>
+      <item>CREDITS_DOCS</item>
+      <item>CREDITS_FULLPAGE</item>
+      <item>CREDITS_GENERAL</item>
+      <item>CREDITS_GROUP</item>
+      <item>CREDITS_MODULES</item>
+      <item>CREDITS_QA</item>
+      <item>CREDITS_SAPI</item>
+      <item>CRNCYSTR</item>
+      <item>CRYPT_BLOWFISH</item>
+      <item>CRYPT_EXT_DES</item>
+      <item>CRYPT_MD5</item>
+      <item>CRYPT_SALT_LENGTH</item>
+      <item>CRYPT_STD_DES</item>
+      <item>CURLAUTH_ANY</item>
+      <item>CURLAUTH_ANYSAFE</item>
+      <item>CURLAUTH_BASIC</item>
+      <item>CURLAUTH_DIGEST</item>
+      <item>CURLAUTH_GSSNEGOTIATE</item>
+      <item>CURLAUTH_NTLM</item>
+      <item>CURLCLOSEPOLICY_CALLBACK</item>
+      <item>CURLCLOSEPOLICY_LEAST_RECENTLY_USED</item>
+      <item>CURLCLOSEPOLICY_LEAST_TRAFFIC</item>
+      <item>CURLCLOSEPOLICY_OLDEST</item>
+      <item>CURLCLOSEPOLICY_SLOWEST</item>
+      <item>CURLE_ABORTED_BY_CALLBACK</item>
+      <item>CURLE_BAD_CALLING_ORDER</item>
+      <item>CURLE_BAD_CONTENT_ENCODING</item>
+      <item>CURLE_BAD_FUNCTION_ARGUMENT</item>
+      <item>CURLE_BAD_PASSWORD_ENTERED</item>
+      <item>CURLE_COULDNT_CONNECT</item>
+      <item>CURLE_COULDNT_RESOLVE_HOST</item>
+      <item>CURLE_COULDNT_RESOLVE_PROXY</item>
+      <item>CURLE_FAILED_INIT</item>
+      <item>CURLE_FILE_COULDNT_READ_FILE</item>
+      <item>CURLE_FTP_ACCESS_DENIED</item>
+      <item>CURLE_FTP_BAD_DOWNLOAD_RESUME</item>
+      <item>CURLE_FTP_CANT_GET_HOST</item>
+      <item>CURLE_FTP_CANT_RECONNECT</item>
+      <item>CURLE_FTP_COULDNT_GET_SIZE</item>
+      <item>CURLE_FTP_COULDNT_RETR_FILE</item>
+      <item>CURLE_FTP_COULDNT_SET_ASCII</item>
+      <item>CURLE_FTP_COULDNT_SET_BINARY</item>
+      <item>CURLE_FTP_COULDNT_STOR_FILE</item>
+      <item>CURLE_FTP_COULDNT_USE_REST</item>
+      <item>CURLE_FTP_PORT_FAILED</item>
+      <item>CURLE_FTP_QUOTE_ERROR</item>
+      <item>CURLE_FTP_USER_PASSWORD_INCORRECT</item>
+      <item>CURLE_FTP_WEIRD_227_FORMAT</item>
+      <item>CURLE_FTP_WEIRD_PASS_REPLY</item>
+      <item>CURLE_FTP_WEIRD_PASV_REPLY</item>
+      <item>CURLE_FTP_WEIRD_SERVER_REPLY</item>
+      <item>CURLE_FTP_WEIRD_USER_REPLY</item>
+      <item>CURLE_FTP_WRITE_ERROR</item>
+      <item>CURLE_FUNCTION_NOT_FOUND</item>
+      <item>CURLE_GOT_NOTHING</item>
+      <item>CURLE_HTTP_NOT_FOUND</item>
+      <item>CURLE_HTTP_PORT_FAILED</item>
+      <item>CURLE_HTTP_POST_ERROR</item>
+      <item>CURLE_HTTP_RANGE_ERROR</item>
+      <item>CURLE_LDAP_CANNOT_BIND</item>
+      <item>CURLE_LDAP_SEARCH_FAILED</item>
+      <item>CURLE_LIBRARY_NOT_FOUND</item>
+      <item>CURLE_MALFORMAT_USER</item>
+      <item>CURLE_OBSOLETE</item>
+      <item>CURLE_OK</item>
+      <item>CURLE_OPERATION_TIMEOUTED</item>
+      <item>CURLE_OUT_OF_MEMORY</item>
+      <item>CURLE_PARTIAL_FILE</item>
+      <item>CURLE_READ_ERROR</item>
+      <item>CURLE_RECV_ERROR</item>
+      <item>CURLE_SEND_ERROR</item>
+      <item>CURLE_SHARE_IN_USE</item>
+      <item>CURLE_SSL_CACERT</item>
+      <item>CURLE_SSL_CERTPROBLEM</item>
+      <item>CURLE_SSL_CIPHER</item>
+      <item>CURLE_SSL_CONNECT_ERROR</item>
+      <item>CURLE_SSL_ENGINE_NOTFOUND</item>
+      <item>CURLE_SSL_ENGINE_SETFAILED</item>
+      <item>CURLE_SSL_PEER_CERTIFICATE</item>
+      <item>CURLE_TELNET_OPTION_SYNTAX</item>
+      <item>CURLE_TOO_MANY_REDIRECTS</item>
+      <item>CURLE_UNKNOWN_TELNET_OPTION</item>
+      <item>CURLE_UNSUPPORTED_PROTOCOL</item>
+      <item>CURLE_URL_MALFORMAT</item>
+      <item>CURLE_URL_MALFORMAT_USER</item>
+      <item>CURLE_WRITE_ERROR</item>
+      <item>CURLINFO_CONNECT_TIME</item>
+      <item>CURLINFO_CONTENT_LENGTH_DOWNLOAD</item>
+      <item>CURLINFO_CONTENT_LENGTH_UPLOAD</item>
+      <item>CURLINFO_CONTENT_TYPE</item>
+      <item>CURLINFO_EFFECTIVE_URL</item>
+      <item>CURLINFO_FILETIME</item>
+      <item>CURLINFO_HEADER_OUT</item>
+      <item>CURLINFO_HEADER_SIZE</item>
+      <item>CURLINFO_HTTP_CODE</item>
+      <item>CURLINFO_NAMELOOKUP_TIME</item>
+      <item>CURLINFO_PRETRANSFER_TIME</item>
+      <item>CURLINFO_REDIRECT_COUNT</item>
+      <item>CURLINFO_REDIRECT_TIME</item>
+      <item>CURLINFO_REQUEST_SIZE</item>
+      <item>CURLINFO_SIZE_DOWNLOAD</item>
+      <item>CURLINFO_SIZE_UPLOAD</item>
+      <item>CURLINFO_SPEED_DOWNLOAD</item>
+      <item>CURLINFO_SPEED_UPLOAD</item>
+      <item>CURLINFO_SSL_VERIFYRESULT</item>
+      <item>CURLINFO_STARTTRANSFER_TIME</item>
+      <item>CURLINFO_TOTAL_TIME</item>
+      <item>CURLMSG_DONE</item>
+      <item>CURLM_BAD_EASY_HANDLE</item>
+      <item>CURLM_BAD_HANDLE</item>
+      <item>CURLM_CALL_MULTI_PERFORM</item>
+      <item>CURLM_INTERNAL_ERROR</item>
+      <item>CURLM_OK</item>
+      <item>CURLM_OUT_OF_MEMORY</item>
+      <item>CURLOPT_BINARYTRANSFER</item>
+      <item>CURLOPT_BUFFERSIZE</item>
+      <item>CURLOPT_CAINFO</item>
+      <item>CURLOPT_CAPATH</item>
+      <item>CURLOPT_CLOSEPOLICY</item>
+      <item>CURLOPT_CONNECTTIMEOUT</item>
+      <item>CURLOPT_COOKIE</item>
+      <item>CURLOPT_COOKIEFILE</item>
+      <item>CURLOPT_COOKIEJAR</item>
+      <item>CURLOPT_CRLF</item>
+      <item>CURLOPT_CUSTOMREQUEST</item>
+      <item>CURLOPT_DNS_CACHE_TIMEOUT</item>
+      <item>CURLOPT_DNS_USE_GLOBAL_CACHE</item>
+      <item>CURLOPT_EGDSOCKET</item>
+      <item>CURLOPT_ENCODING</item>
+      <item>CURLOPT_FAILONERROR</item>
+      <item>CURLOPT_FILE</item>
+      <item>CURLOPT_FILETIME</item>
+      <item>CURLOPT_FOLLOWLOCATION</item>
+      <item>CURLOPT_FORBID_REUSE</item>
+      <item>CURLOPT_FRESH_CONNECT</item>
+      <item>CURLOPT_FTPAPPEND</item>
+      <item>CURLOPT_FTPASCII</item>
+      <item>CURLOPT_FTPLISTONLY</item>
+      <item>CURLOPT_FTPPORT</item>
+      <item>CURLOPT_FTP_USE_EPRT</item>
+      <item>CURLOPT_FTP_USE_EPSV</item>
+      <item>CURLOPT_HEADER</item>
+      <item>CURLOPT_HEADERFUNCTION</item>
+      <item>CURLOPT_HTTP200ALIASES</item>
+      <item>CURLOPT_HTTPAUTH</item>
+      <item>CURLOPT_HTTPGET</item>
+      <item>CURLOPT_HTTPHEADER</item>
+      <item>CURLOPT_HTTPPROXYTUNNEL</item>
+      <item>CURLOPT_HTTP_VERSION</item>
+      <item>CURLOPT_INFILE</item>
+      <item>CURLOPT_INFILESIZE</item>
+      <item>CURLOPT_INTERFACE</item>
+      <item>CURLOPT_KRB4LEVEL</item>
+      <item>CURLOPT_LOW_SPEED_LIMIT</item>
+      <item>CURLOPT_LOW_SPEED_TIME</item>
+      <item>CURLOPT_MAXCONNECTS</item>
+      <item>CURLOPT_MAXREDIRS</item>
+      <item>CURLOPT_MUTE</item>
+      <item>CURLOPT_NETRC</item>
+      <item>CURLOPT_NOBODY</item>
+      <item>CURLOPT_NOPROGRESS</item>
+      <item>CURLOPT_NOSIGNAL</item>
+      <item>CURLOPT_PASSWDFUNCTION</item>
+      <item>CURLOPT_PORT</item>
+      <item>CURLOPT_POST</item>
+      <item>CURLOPT_POSTFIELDS</item>
+      <item>CURLOPT_POSTQUOTE</item>
+      <item>CURLOPT_PROXY</item>
+      <item>CURLOPT_PROXYAUTH</item>
+      <item>CURLOPT_PROXYPORT</item>
+      <item>CURLOPT_PROXYTYPE</item>
+      <item>CURLOPT_PROXYUSERPWD</item>
+      <item>CURLOPT_PUT</item>
+      <item>CURLOPT_QUOTE</item>
+      <item>CURLOPT_RANDOM_FILE</item>
+      <item>CURLOPT_RANGE</item>
+      <item>CURLOPT_READDATA</item>
+      <item>CURLOPT_READFUNCTION</item>
+      <item>CURLOPT_REFERER</item>
+      <item>CURLOPT_RESUME_FROM</item>
+      <item>CURLOPT_RETURNTRANSFER</item>
+      <item>CURLOPT_SSLCERT</item>
+      <item>CURLOPT_SSLCERTPASSWD</item>
+      <item>CURLOPT_SSLCERTTYPE</item>
+      <item>CURLOPT_SSLENGINE</item>
+      <item>CURLOPT_SSLENGINE_DEFAULT</item>
+      <item>CURLOPT_SSLKEY</item>
+      <item>CURLOPT_SSLKEYPASSWD</item>
+      <item>CURLOPT_SSLKEYTYPE</item>
+      <item>CURLOPT_SSLVERSION</item>
+      <item>CURLOPT_SSL_CIPHER_LIST</item>
+      <item>CURLOPT_SSL_VERIFYHOST</item>
+      <item>CURLOPT_SSL_VERIFYPEER</item>
+      <item>CURLOPT_STDERR</item>
+      <item>CURLOPT_TIMECONDITION</item>
+      <item>CURLOPT_TIMEOUT</item>
+      <item>CURLOPT_TIMEVALUE</item>
+      <item>CURLOPT_TRANSFERTEXT</item>
+      <item>CURLOPT_UNRESTRICTED_AUTH</item>
+      <item>CURLOPT_UPLOAD</item>
+      <item>CURLOPT_URL</item>
+      <item>CURLOPT_USERAGENT</item>
+      <item>CURLOPT_USERPWD</item>
+      <item>CURLOPT_VERBOSE</item>
+      <item>CURLOPT_WRITEFUNCTION</item>
+      <item>CURLOPT_WRITEHEADER</item>
+      <item>CURLPROXY_HTTP</item>
+      <item>CURLPROXY_SOCKS5</item>
+      <item>CURLVERSION_NOW</item>
+      <item>CURL_HTTP_VERSION_1_0</item>
+      <item>CURL_HTTP_VERSION_1_1</item>
+      <item>CURL_HTTP_VERSION_NONE</item>
+      <item>CURL_NETRC_IGNORED</item>
+      <item>CURL_NETRC_OPTIONAL</item>
+      <item>CURL_NETRC_REQUIRED</item>
+      <item>CURL_TIMECOND_IFMODSINCE</item>
+      <item>CURL_TIMECOND_IFUNMODSINCE</item>
+      <item>CURL_TIMECOND_LASTMOD</item>
+      <item>CURL_VERSION_IPV6</item>
+      <item>CURL_VERSION_KERBEROS4</item>
+      <item>CURL_VERSION_LIBZ</item>
+      <item>CURL_VERSION_SSL</item>
+      <item>C_EXPLICIT_ABSTRACT</item>
+      <item>C_FINAL</item>
+      <item>C_IMPLICIT_ABSTRACT</item>
+      <item>DATE_ATOM</item>
+      <item>DATE_COOKIE</item>
+      <item>DATE_ISO8601</item>
+      <item>DATE_RFC1036</item>
+      <item>DATE_RFC1123</item>
+      <item>DATE_RFC2822</item>
+      <item>DATE_RFC3339</item>
+      <item>DATE_RFC822</item>
+      <item>DATE_RFC850</item>
+      <item>DATE_RSS</item>
+      <item>DATE_W3C</item>
+      <item>DAY_1</item>
+      <item>DAY_2</item>
+      <item>DAY_3</item>
+      <item>DAY_4</item>
+      <item>DAY_5</item>
+      <item>DAY_6</item>
+      <item>DAY_7</item>
+      <item>DBX_CMP_ASC</item>
+      <item>DBX_CMP_DESC</item>
+      <item>DBX_CMP_NATIVE</item>
+      <item>DBX_CMP_NUMBER</item>
+      <item>DBX_CMP_TEXT</item>
+      <item>DBX_COLNAMES_LOWERCASE</item>
+      <item>DBX_COLNAMES_UNCHANGED</item>
+      <item>DBX_COLNAMES_UPPERCASE</item>
+      <item>DBX_FBSQL</item>
+      <item>DBX_MSSQL</item>
+      <item>DBX_MYSQL</item>
+      <item>DBX_OCI8</item>
+      <item>DBX_ODBC</item>
+      <item>DBX_PERSISTENT</item>
+      <item>DBX_PGSQL</item>
+      <item>DBX_RESULT_ASSOC</item>
+      <item>DBX_RESULT_INDEX</item>
+      <item>DBX_RESULT_INFO</item>
+      <item>DBX_RESULT_UNBUFFERED</item>
+      <item>DBX_SQLITE</item>
+      <item>DBX_SYBASECT</item>
+      <item>DIRECTORY_SEPARATOR</item>
+      <item>DNS_A</item>
+      <item>DNS_AAAA</item>
+      <item>DNS_ALL</item>
+      <item>DNS_ANY</item>
+      <item>DNS_CNAME</item>
+      <item>DNS_HINFO</item>
+      <item>DNS_MX</item>
+      <item>DNS_NAPTR</item>
+      <item>DNS_NS</item>
+      <item>DNS_PTR</item>
+      <item>DNS_SOA</item>
+      <item>DNS_SRV</item>
+      <item>DNS_TXT</item>
+      <item>DOMSTRING_SIZE_ERR</item>
+      <item>DOM_HIERARCHY_REQUEST_ERR</item>
+      <item>DOM_INDEX_SIZE_ERR</item>
+      <item>DOM_INUSE_ATTRIBUTE_ERR</item>
+      <item>DOM_INVALID_ACCESS_ERR</item>
+      <item>DOM_INVALID_CHARACTER_ERR</item>
+      <item>DOM_INVALID_MODIFICATION_ERR</item>
+      <item>DOM_INVALID_STATE_ERR</item>
+      <item>DOM_NAMESPACE_ERR</item>
+      <item>DOM_NOT_FOUND_ERR</item>
+      <item>DOM_NOT_SUPPORTED_ERR</item>
+      <item>DOM_NO_DATA_ALLOWED_ERR</item>
+      <item>DOM_NO_MODIFICATION_ALLOWED_ERR</item>
+      <item>DOM_PHP_ERR</item>
+      <item>DOM_SYNTAX_ERR</item>
+      <item>DOM_VALIDATION_ERR</item>
+      <item>DOM_WRONG_DOCUMENT_ERR</item>
+      <item>D_FMT</item>
+      <item>D_T_FMT</item>
+      <item>ENC7BIT</item>
+      <item>ENC8BIT</item>
+      <item>ENCBASE64</item>
+      <item>ENCBINARY</item>
+      <item>ENCOTHER</item>
+      <item>ENCQUOTEDPRINTABLE</item>
+      <item>ENT_COMPAT</item>
+      <item>ENT_NOQUOTES</item>
+      <item>ENT_QUOTES</item>
+      <item>ERA</item>
+      <item>ERA_D_FMT</item>
+      <item>ERA_D_T_FMT</item>
+      <item>ERA_T_FMT</item>
+      <item>EXIF_USE_MBSTRING</item>
+      <item>EXTR_IF_EXISTS</item>
+      <item>EXTR_OVERWRITE</item>
+      <item>EXTR_PREFIX_ALL</item>
+      <item>EXTR_PREFIX_IF_EXISTS</item>
+      <item>EXTR_PREFIX_INVALID</item>
+      <item>EXTR_PREFIX_SAME</item>
+      <item>EXTR_REFS</item>
+      <item>EXTR_SKIP</item>
+      <item>FAMAcknowledge</item>
+      <item>FAMChanged</item>
+      <item>FAMCreated</item>
+      <item>FAMDeleted</item>
+      <item>FAMEndExist</item>
+      <item>FAMExists</item>
+      <item>FAMMoved</item>
+      <item>FAMStartExecuting</item>
+      <item>FAMStopExecuting</item>
+      <item>FILE_APPEND</item>
+      <item>FILE_IGNORE_NEW_LINES</item>
+      <item>FILE_NO_DEFAULT_CONTEXT</item>
+      <item>FILE_SKIP_EMPTY_LINES</item>
+      <item>FILE_USE_INCLUDE_PATH</item>
+      <item>FNM_CASEFOLD</item>
+      <item>FNM_NOESCAPE</item>
+      <item>FNM_PATHNAME</item>
+      <item>FNM_PERIOD</item>
+      <item>FORCE_DEFLATE</item>
+      <item>FORCE_GZIP</item>
+      <item>FTP_ASCII</item>
+      <item>FTP_AUTORESUME</item>
+      <item>FTP_AUTOSEEK</item>
+      <item>FTP_BINARY</item>
+      <item>FTP_FAILED</item>
+      <item>FTP_FINISHED</item>
+      <item>FTP_IMAGE</item>
+      <item>FTP_MOREDATA</item>
+      <item>FTP_TEXT</item>
+      <item>FTP_TIMEOUT_SEC</item>
+      <item>FT_INTERNAL</item>
+      <item>FT_NOT</item>
+      <item>FT_PEEK</item>
+      <item>FT_PREFETCHTEXT</item>
+      <item>FT_UID</item>
+      <item>F_DUPFD</item>
+      <item>F_GETFD</item>
+      <item>F_GETFL</item>
+      <item>F_GETLK</item>
+      <item>F_GETOWN</item>
+      <item>F_RDLCK</item>
+      <item>F_SETFL</item>
+      <item>F_SETLK</item>
+      <item>F_SETLKW</item>
+      <item>F_SETOWN</item>
+      <item>F_UNLCK</item>
+      <item>F_WRLCK</item>
+      <item>GD_BUNDLED</item>
+      <item>GLOB_BRACE</item>
+      <item>GLOB_MARK</item>
+      <item>GLOB_NOCHECK</item>
+      <item>GLOB_NOESCAPE</item>
+      <item>GLOB_NOSORT</item>
+      <item>GLOB_ONLYDIR</item>
+      <item>GMP_ROUND_MINUSINF</item>
+      <item>GMP_ROUND_PLUSINF</item>
+      <item>GMP_ROUND_ZERO</item>
+      <item>HASH_HMAC</item>
+      <item>HTML_ENTITIES</item>
+      <item>HTML_SPECIALCHARS</item>
+      <item>ICONV_IMPL</item>
+      <item>ICONV_MIME_DECODE_CONTINUE_ON_ERROR</item>
+      <item>ICONV_MIME_DECODE_STRICT</item>
+      <item>ICONV_VERSION</item>
+      <item>IMAGETYPE_BMP</item>
+      <item>IMAGETYPE_GIF</item>
+      <item>IMAGETYPE_IFF</item>
+      <item>IMAGETYPE_JB2</item>
+      <item>IMAGETYPE_JP2</item>
+      <item>IMAGETYPE_JPC</item>
+      <item>IMAGETYPE_JPEG</item>
+      <item>IMAGETYPE_JPEG2000</item>
+      <item>IMAGETYPE_JPX</item>
+      <item>IMAGETYPE_PNG</item>
+      <item>IMAGETYPE_PSD</item>
+      <item>IMAGETYPE_SWF</item>
+      <item>IMAGETYPE_TIFF_II</item>
+      <item>IMAGETYPE_TIFF_MM</item>
+      <item>IMAGETYPE_WBMP</item>
+      <item>IMAGETYPE_XBM</item>
+      <item>IMAP_CLOSETIMEOUT</item>
+      <item>IMAP_OPENTIMEOUT</item>
+      <item>IMAP_READTIMEOUT</item>
+      <item>IMAP_WRITETIMEOUT</item>
+      <item>IMG_ARC_CHORD</item>
+      <item>IMG_ARC_EDGED</item>
+      <item>IMG_ARC_NOFILL</item>
+      <item>IMG_ARC_PIE</item>
+      <item>IMG_ARC_ROUNDED</item>
+      <item>IMG_COLOR_BRUSHED</item>
+      <item>IMG_COLOR_STYLED</item>
+      <item>IMG_COLOR_STYLEDBRUSHED</item>
+      <item>IMG_COLOR_TILED</item>
+      <item>IMG_COLOR_TRANSPARENT</item>
+      <item>IMG_EFFECT_ALPHABLEND</item>
+      <item>IMG_EFFECT_NORMAL</item>
+      <item>IMG_EFFECT_OVERLAY</item>
+      <item>IMG_EFFECT_REPLACE</item>
+      <item>IMG_FILTER_BRIGHTNESS</item>
+      <item>IMG_FILTER_COLORIZE</item>
+      <item>IMG_FILTER_CONTRAST</item>
+      <item>IMG_FILTER_EDGEDETECT</item>
+      <item>IMG_FILTER_EMBOSS</item>
+      <item>IMG_FILTER_GAUSSIAN_BLUR</item>
+      <item>IMG_FILTER_GRAYSCALE</item>
+      <item>IMG_FILTER_MEAN_REMOVAL</item>
+      <item>IMG_FILTER_NEGATE</item>
+      <item>IMG_FILTER_SELECTIVE_BLUR</item>
+      <item>IMG_FILTER_SMOOTH</item>
+      <item>IMG_GD2_COMPRESSED</item>
+      <item>IMG_GD2_RAW</item>
+      <item>IMG_GIF</item>
+      <item>IMG_JPEG</item>
+      <item>IMG_JPG</item>
+      <item>IMG_PNG</item>
+      <item>IMG_WBMP</item>
+      <item>IMG_XPM</item>
+      <item>INF</item>
+      <item>INFO_ALL</item>
+      <item>INFO_CONFIGURATION</item>
+      <item>INFO_CREDITS</item>
+      <item>INFO_ENVIRONMENT</item>
+      <item>INFO_GENERAL</item>
+      <item>INFO_LICENSE</item>
+      <item>INFO_MODULES</item>
+      <item>INFO_VARIABLES</item>
+      <item>INI_ALL</item>
+      <item>INI_PERDIR</item>
+      <item>INI_SYSTEM</item>
+      <item>INI_USER</item>
+      <item>LATT_HASCHILDREN</item>
+      <item>LATT_HASNOCHILDREN</item>
+      <item>LATT_MARKED</item>
+      <item>LATT_NOINFERIORS</item>
+      <item>LATT_NOSELECT</item>
+      <item>LATT_REFERRAL</item>
+      <item>LATT_UNMARKED</item>
+      <item>LC_ALL</item>
+      <item>LC_COLLATE</item>
+      <item>LC_CTYPE</item>
+      <item>LC_MESSAGES</item>
+      <item>LC_MONETARY</item>
+      <item>LC_NUMERIC</item>
+      <item>LC_TIME</item>
+      <item>LDAP_DEREF_ALWAYS</item>
+      <item>LDAP_DEREF_FINDING</item>
+      <item>LDAP_DEREF_NEVER</item>
+      <item>LDAP_DEREF_SEARCHING</item>
+      <item>LDAP_OPT_CLIENT_CONTROLS</item>
+      <item>LDAP_OPT_DEBUG_LEVEL</item>
+      <item>LDAP_OPT_DEREF</item>
+      <item>LDAP_OPT_ERROR_NUMBER</item>
+      <item>LDAP_OPT_ERROR_STRING</item>
+      <item>LDAP_OPT_HOST_NAME</item>
+      <item>LDAP_OPT_MATCHED_DN</item>
+      <item>LDAP_OPT_PROTOCOL_VERSION</item>
+      <item>LDAP_OPT_REFERRALS</item>
+      <item>LDAP_OPT_RESTART</item>
+      <item>LDAP_OPT_SERVER_CONTROLS</item>
+      <item>LDAP_OPT_SIZELIMIT</item>
+      <item>LDAP_OPT_TIMELIMIT</item>
+      <item>LIBXML_COMPACT</item>
+      <item>LIBXML_DOTTED_VERSION</item>
+      <item>LIBXML_DTDATTR</item>
+      <item>LIBXML_DTDLOAD</item>
+      <item>LIBXML_DTDVALID</item>
+      <item>LIBXML_ERR_ERROR</item>
+      <item>LIBXML_ERR_FATAL</item>
+      <item>LIBXML_ERR_NONE</item>
+      <item>LIBXML_ERR_WARNING</item>
+      <item>LIBXML_NOBLANKS</item>
+      <item>LIBXML_NOCDATA</item>
+      <item>LIBXML_NOEMPTYTAG</item>
+      <item>LIBXML_NOENT</item>
+      <item>LIBXML_NOERROR</item>
+      <item>LIBXML_NONET</item>
+      <item>LIBXML_NOWARNING</item>
+      <item>LIBXML_NOXMLDECL</item>
+      <item>LIBXML_NSCLEAN</item>
+      <item>LIBXML_VERSION</item>
+      <item>LIBXML_XINCLUDE</item>
+      <item>LOCK_EX</item>
+      <item>LOCK_NB</item>
+      <item>LOCK_SH</item>
+      <item>LOCK_UN</item>
+      <item>LOG_ALERT</item>
+      <item>LOG_AUTH</item>
+      <item>LOG_AUTHPRIV</item>
+      <item>LOG_CONS</item>
+      <item>LOG_CRIT</item>
+      <item>LOG_CRON</item>
+      <item>LOG_DAEMON</item>
+      <item>LOG_DEBUG</item>
+      <item>LOG_EMERG</item>
+      <item>LOG_ERR</item>
+      <item>LOG_INFO</item>
+      <item>LOG_KERN</item>
+      <item>LOG_LOCAL0</item>
+      <item>LOG_LOCAL1</item>
+      <item>LOG_LOCAL2</item>
+      <item>LOG_LOCAL3</item>
+      <item>LOG_LOCAL4</item>
+      <item>LOG_LOCAL5</item>
+      <item>LOG_LOCAL6</item>
+      <item>LOG_LOCAL7</item>
+      <item>LOG_LPR</item>
+      <item>LOG_MAIL</item>
+      <item>LOG_NDELAY</item>
+      <item>LOG_NEWS</item>
+      <item>LOG_NOTICE</item>
+      <item>LOG_NOWAIT</item>
+      <item>LOG_ODELAY</item>
+      <item>LOG_PERROR</item>
+      <item>LOG_PID</item>
+      <item>LOG_SYSLOG</item>
+      <item>LOG_USER</item>
+      <item>LOG_UUCP</item>
+      <item>LOG_WARNING</item>
+      <item>MB_CASE_LOWER</item>
+      <item>MB_CASE_TITLE</item>
+      <item>MB_CASE_UPPER</item>
+      <item>MB_OVERLOAD_MAIL</item>
+      <item>MB_OVERLOAD_REGEX</item>
+      <item>MB_OVERLOAD_STRING</item>
+      <item>MCRYPT_3DES</item>
+      <item>MCRYPT_ARCFOUR</item>
+      <item>MCRYPT_ARCFOUR_IV</item>
+      <item>MCRYPT_BLOWFISH</item>
+      <item>MCRYPT_BLOWFISH_COMPAT</item>
+      <item>MCRYPT_CAST_128</item>
+      <item>MCRYPT_CAST_256</item>
+      <item>MCRYPT_CRYPT</item>
+      <item>MCRYPT_DECRYPT</item>
+      <item>MCRYPT_DES</item>
+      <item>MCRYPT_DEV_RANDOM</item>
+      <item>MCRYPT_DEV_URANDOM</item>
+      <item>MCRYPT_ENCRYPT</item>
+      <item>MCRYPT_ENIGNA</item>
+      <item>MCRYPT_GOST</item>
+      <item>MCRYPT_IDEA</item>
+      <item>MCRYPT_LOKI97</item>
+      <item>MCRYPT_MARS</item>
+      <item>MCRYPT_MODE_CBC</item>
+      <item>MCRYPT_MODE_CFB</item>
+      <item>MCRYPT_MODE_ECB</item>
+      <item>MCRYPT_MODE_NOFB</item>
+      <item>MCRYPT_MODE_OFB</item>
+      <item>MCRYPT_MODE_STREAM</item>
+      <item>MCRYPT_PANAMA</item>
+      <item>MCRYPT_RAND</item>
+      <item>MCRYPT_RC2</item>
+      <item>MCRYPT_RC6</item>
+      <item>MCRYPT_RIJNDAEL_128</item>
+      <item>MCRYPT_RIJNDAEL_192</item>
+      <item>MCRYPT_RIJNDAEL_256</item>
+      <item>MCRYPT_SAFER128</item>
+      <item>MCRYPT_SAFER64</item>
+      <item>MCRYPT_SAFERPLUS</item>
+      <item>MCRYPT_SERPENT</item>
+      <item>MCRYPT_SKIPJACK</item>
+      <item>MCRYPT_THREEWAY</item>
+      <item>MCRYPT_TRIPLEDES</item>
+      <item>MCRYPT_TWOFISH</item>
+      <item>MCRYPT_WAKE</item>
+      <item>MCRYPT_XTEA</item>
+      <item>MHASH_ADLER32</item>
+      <item>MHASH_CRC32</item>
+      <item>MHASH_CRC32B</item>
+      <item>MHASH_GOST</item>
+      <item>MHASH_HAVAL128</item>
+      <item>MHASH_HAVAL160</item>
+      <item>MHASH_HAVAL192</item>
+      <item>MHASH_HAVAL224</item>
+      <item>MHASH_HAVAL256</item>
+      <item>MHASH_MD2</item>
+      <item>MHASH_MD4</item>
+      <item>MHASH_MD5</item>
+      <item>MHASH_RIPEMD128</item>
+      <item>MHASH_RIPEMD160</item>
+      <item>MHASH_RIPEMD256</item>
+      <item>MHASH_RIPEMD320</item>
+      <item>MHASH_SHA1</item>
+      <item>MHASH_SHA224</item>
+      <item>MHASH_SHA256</item>
+      <item>MHASH_SHA384</item>
+      <item>MHASH_SHA512</item>
+      <item>MHASH_SNEFRU128</item>
+      <item>MHASH_SNEFRU256</item>
+      <item>MHASH_TIGER</item>
+      <item>MHASH_TIGER128</item>
+      <item>MHASH_TIGER160</item>
+      <item>MHASH_WHIRLPOOL</item>
+      <item>MON_1</item>
+      <item>MON_10</item>
+      <item>MON_11</item>
+      <item>MON_12</item>
+      <item>MON_2</item>
+      <item>MON_3</item>
+      <item>MON_4</item>
+      <item>MON_5</item>
+      <item>MON_6</item>
+      <item>MON_7</item>
+      <item>MON_8</item>
+      <item>MON_9</item>
+      <item>MSG_DONTROUTE</item>
+      <item>MSG_EXCEPT</item>
+      <item>MSG_IPC_NOWAIT</item>
+      <item>MSG_NOERROR</item>
+      <item>MSG_OOB</item>
+      <item>MSG_PEEK</item>
+      <item>MSG_WAITALL</item>
+      <item>MYSQLI_ASSOC</item>
+      <item>MYSQLI_AUTO_INCREMENT_FLAG</item>
+      <item>MYSQLI_BLOB_FLAG</item>
+      <item>MYSQLI_BOTH</item>
+      <item>MYSQLI_CLIENT_COMPRESS</item>
+      <item>MYSQLI_CLIENT_FOUND_ROWS</item>
+      <item>MYSQLI_CLIENT_IGNORE_SPACE</item>
+      <item>MYSQLI_CLIENT_INTERACTIVE</item>
+      <item>MYSQLI_CLIENT_NO_SCHEMA</item>
+      <item>MYSQLI_CLIENT_SSL</item>
+      <item>MYSQLI_GROUP_FLAG</item>
+      <item>MYSQLI_INIT_COMMAND</item>
+      <item>MYSQLI_MULTIPLE_KEY_FLAG</item>
+      <item>MYSQLI_NOT_NULL_FLAG</item>
+      <item>MYSQLI_NO_DATA</item>
+      <item>MYSQLI_NUM</item>
+      <item>MYSQLI_NUM_FLAG</item>
+      <item>MYSQLI_OPT_CONNECT_TIMEOUT</item>
+      <item>MYSQLI_OPT_LOCAL_INFILE</item>
+      <item>MYSQLI_PART_KEY_FLAG</item>
+      <item>MYSQLI_PRI_KEY_FLAG</item>
+      <item>MYSQLI_READ_DEFAULT_FILE</item>
+      <item>MYSQLI_READ_DEFAULT_GROUP</item>
+      <item>MYSQLI_REPORT_ALL</item>
+      <item>MYSQLI_REPORT_ERROR</item>
+      <item>MYSQLI_REPORT_INDEX</item>
+      <item>MYSQLI_REPORT_OFF</item>
+      <item>MYSQLI_REPORT_STRICT</item>
+      <item>MYSQLI_RPL_ADMIN</item>
+      <item>MYSQLI_RPL_MASTER</item>
+      <item>MYSQLI_RPL_SLAVE</item>
+      <item>MYSQLI_SET_FLAG</item>
+      <item>MYSQLI_STMT_ATTR_UPDATE_MAX_LENGTH</item>
+      <item>MYSQLI_STORE_RESULT</item>
+      <item>MYSQLI_TIMESTAMP_FLAG</item>
+      <item>MYSQLI_TYPE_BLOB</item>
+      <item>MYSQLI_TYPE_CHAR</item>
+      <item>MYSQLI_TYPE_DATE</item>
+      <item>MYSQLI_TYPE_DATETIME</item>
+      <item>MYSQLI_TYPE_DECIMAL</item>
+      <item>MYSQLI_TYPE_DOUBLE</item>
+      <item>MYSQLI_TYPE_ENUM</item>
+      <item>MYSQLI_TYPE_FLOAT</item>
+      <item>MYSQLI_TYPE_GEOMETRY</item>
+      <item>MYSQLI_TYPE_INT24</item>
+      <item>MYSQLI_TYPE_INTERVAL</item>
+      <item>MYSQLI_TYPE_LONG</item>
+      <item>MYSQLI_TYPE_LONGLONG</item>
+      <item>MYSQLI_TYPE_LONG_BLOB</item>
+      <item>MYSQLI_TYPE_MEDIUM_BLOB</item>
+      <item>MYSQLI_TYPE_NEWDATE</item>
+      <item>MYSQLI_TYPE_NULL</item>
+      <item>MYSQLI_TYPE_SET</item>
+      <item>MYSQLI_TYPE_SHORT</item>
+      <item>MYSQLI_TYPE_STRING</item>
+      <item>MYSQLI_TYPE_TIME</item>
+      <item>MYSQLI_TYPE_TIMESTAMP</item>
+      <item>MYSQLI_TYPE_TINY</item>
+      <item>MYSQLI_TYPE_TINY_BLOB</item>
+      <item>MYSQLI_TYPE_VAR_STRING</item>
+      <item>MYSQLI_TYPE_YEAR</item>
+      <item>MYSQLI_UNIQUE_KEY_FLAG</item>
+      <item>MYSQLI_UNSIGNED_FLAG</item>
+      <item>MYSQLI_USE_RESULT</item>
+      <item>MYSQLI_ZEROFILL_FLAG</item>
+      <item>MYSQL_ASSOC</item>
+      <item>MYSQL_BOTH</item>
+      <item>MYSQL_CLIENT_COMPRESS</item>
+      <item>MYSQL_CLIENT_IGNORE_SPACE</item>
+      <item>MYSQL_CLIENT_INTERACTIVE</item>
+      <item>MYSQL_CLIENT_SSL</item>
+      <item>MYSQL_NUM</item>
+      <item>M_1_PI</item>
+      <item>M_2_PI</item>
+      <item>M_2_SQRTPI</item>
+      <item>M_ABSTRACT</item>
+      <item>M_E</item>
+      <item>M_FINAL</item>
+      <item>M_LN10</item>
+      <item>M_LN2</item>
+      <item>M_LOG10E</item>
+      <item>M_LOG2E</item>
+      <item>M_PI</item>
+      <item>M_PI_2</item>
+      <item>M_PI_4</item>
+      <item>M_PRIVATE</item>
+      <item>M_PROTECTED</item>
+      <item>M_PUBLIC</item>
+      <item>M_SQRT1_2</item>
+      <item>M_SQRT2</item>
+      <item>M_STATIC</item>
+      <item>NAN</item>
+      <item>NCURSES_ALL_MOUSE_EVENTS</item>
+      <item>NCURSES_A_ALTCHARSET</item>
+      <item>NCURSES_A_BLINK</item>
+      <item>NCURSES_A_BOLD</item>
+      <item>NCURSES_A_CHARTEXT</item>
+      <item>NCURSES_A_DIM</item>
+      <item>NCURSES_A_INVIS</item>
+      <item>NCURSES_A_NORMAL</item>
+      <item>NCURSES_A_PROTECT</item>
+      <item>NCURSES_A_REVERSE</item>
+      <item>NCURSES_A_STANDOUT</item>
+      <item>NCURSES_A_UNDERLINE</item>
+      <item>NCURSES_BUTTON1_CLICKED</item>
+      <item>NCURSES_BUTTON1_DOUBLE_CLICKED</item>
+      <item>NCURSES_BUTTON1_PRESSED</item>
+      <item>NCURSES_BUTTON1_RELEASED</item>
+      <item>NCURSES_BUTTON1_TRIPLE_CLICKED</item>
+      <item>NCURSES_BUTTON2_CLICKED</item>
+      <item>NCURSES_BUTTON2_DOUBLE_CLICKED</item>
+      <item>NCURSES_BUTTON2_PRESSED</item>
+      <item>NCURSES_BUTTON2_RELEASED</item>
+      <item>NCURSES_BUTTON2_TRIPLE_CLICKED</item>
+      <item>NCURSES_BUTTON3_CLICKED</item>
+      <item>NCURSES_BUTTON3_DOUBLE_CLICKED</item>
+      <item>NCURSES_BUTTON3_PRESSED</item>
+      <item>NCURSES_BUTTON3_RELEASED</item>
+      <item>NCURSES_BUTTON3_TRIPLE_CLICKED</item>
+      <item>NCURSES_BUTTON4_CLICKED</item>
+      <item>NCURSES_BUTTON4_DOUBLE_CLICKED</item>
+      <item>NCURSES_BUTTON4_PRESSED</item>
+      <item>NCURSES_BUTTON4_RELEASED</item>
+      <item>NCURSES_BUTTON4_TRIPLE_CLICKED</item>
+      <item>NCURSES_BUTTON_ALT</item>
+      <item>NCURSES_BUTTON_CTRL</item>
+      <item>NCURSES_BUTTON_SHIFT</item>
+      <item>NCURSES_COLOR_BLACK</item>
+      <item>NCURSES_COLOR_BLUE</item>
+      <item>NCURSES_COLOR_CYAN</item>
+      <item>NCURSES_COLOR_GREEN</item>
+      <item>NCURSES_COLOR_MAGENTA</item>
+      <item>NCURSES_COLOR_RED</item>
+      <item>NCURSES_COLOR_WHITE</item>
+      <item>NCURSES_COLOR_YELLOW</item>
+      <item>NCURSES_KEY_A1</item>
+      <item>NCURSES_KEY_A3</item>
+      <item>NCURSES_KEY_B2</item>
+      <item>NCURSES_KEY_BACKSPACE</item>
+      <item>NCURSES_KEY_BEG</item>
+      <item>NCURSES_KEY_BTAB</item>
+      <item>NCURSES_KEY_C1</item>
+      <item>NCURSES_KEY_C3</item>
+      <item>NCURSES_KEY_CANCEL</item>
+      <item>NCURSES_KEY_CATAB</item>
+      <item>NCURSES_KEY_CLEAR</item>
+      <item>NCURSES_KEY_CLOSE</item>
+      <item>NCURSES_KEY_COMMAND</item>
+      <item>NCURSES_KEY_COPY</item>
+      <item>NCURSES_KEY_CREATE</item>
+      <item>NCURSES_KEY_CTAB</item>
+      <item>NCURSES_KEY_DC</item>
+      <item>NCURSES_KEY_DL</item>
+      <item>NCURSES_KEY_DOWN</item>
+      <item>NCURSES_KEY_EIC</item>
+      <item>NCURSES_KEY_END</item>
+      <item>NCURSES_KEY_ENTER</item>
+      <item>NCURSES_KEY_EOL</item>
+      <item>NCURSES_KEY_EOS</item>
+      <item>NCURSES_KEY_EXIT</item>
+      <item>NCURSES_KEY_F0</item>
+      <item>NCURSES_KEY_F1</item>
+      <item>NCURSES_KEY_F10</item>
+      <item>NCURSES_KEY_F11</item>
+      <item>NCURSES_KEY_F12</item>
+      <item>NCURSES_KEY_F2</item>
+      <item>NCURSES_KEY_F3</item>
+      <item>NCURSES_KEY_F4</item>
+      <item>NCURSES_KEY_F5</item>
+      <item>NCURSES_KEY_F6</item>
+      <item>NCURSES_KEY_F7</item>
+      <item>NCURSES_KEY_F8</item>
+      <item>NCURSES_KEY_F9</item>
+      <item>NCURSES_KEY_FIND</item>
+      <item>NCURSES_KEY_HELP</item>
+      <item>NCURSES_KEY_IC</item>
+      <item>NCURSES_KEY_IL</item>
+      <item>NCURSES_KEY_LEFT</item>
+      <item>NCURSES_KEY_LL</item>
+      <item>NCURSES_KEY_MARK</item>
+      <item>NCURSES_KEY_MESSAGE</item>
+      <item>NCURSES_KEY_MOUSE</item>
+      <item>NCURSES_KEY_MOVE</item>
+      <item>NCURSES_KEY_NEXT</item>
+      <item>NCURSES_KEY_NPAGE</item>
+      <item>NCURSES_KEY_OPEN</item>
+      <item>NCURSES_KEY_OPTIONS</item>
+      <item>NCURSES_KEY_PPAGE</item>
+      <item>NCURSES_KEY_PREVIOUS</item>
+      <item>NCURSES_KEY_PRINT</item>
+      <item>NCURSES_KEY_REDO</item>
+      <item>NCURSES_KEY_REFERENCE</item>
+      <item>NCURSES_KEY_REFRESH</item>
+      <item>NCURSES_KEY_REPLACE</item>
+      <item>NCURSES_KEY_RESET</item>
+      <item>NCURSES_KEY_RESIZE</item>
+      <item>NCURSES_KEY_RESTART</item>
+      <item>NCURSES_KEY_RESUME</item>
+      <item>NCURSES_KEY_RIGHT</item>
+      <item>NCURSES_KEY_SAVE</item>
+      <item>NCURSES_KEY_SBEG</item>
+      <item>NCURSES_KEY_SCANCEL</item>
+      <item>NCURSES_KEY_SCOMMAND</item>
+      <item>NCURSES_KEY_SCOPY</item>
+      <item>NCURSES_KEY_SCREATE</item>
+      <item>NCURSES_KEY_SDC</item>
+      <item>NCURSES_KEY_SDL</item>
+      <item>NCURSES_KEY_SELECT</item>
+      <item>NCURSES_KEY_SEND</item>
+      <item>NCURSES_KEY_SEOL</item>
+      <item>NCURSES_KEY_SEXIT</item>
+      <item>NCURSES_KEY_SF</item>
+      <item>NCURSES_KEY_SFIND</item>
+      <item>NCURSES_KEY_SHELP</item>
+      <item>NCURSES_KEY_SHOME</item>
+      <item>NCURSES_KEY_SIC</item>
+      <item>NCURSES_KEY_SLEFT</item>
+      <item>NCURSES_KEY_SMESSAGE</item>
+      <item>NCURSES_KEY_SMOVE</item>
+      <item>NCURSES_KEY_SNEXT</item>
+      <item>NCURSES_KEY_SOPTIONS</item>
+      <item>NCURSES_KEY_SPREVIOUS</item>
+      <item>NCURSES_KEY_SPRINT</item>
+      <item>NCURSES_KEY_SR</item>
+      <item>NCURSES_KEY_SREDO</item>
+      <item>NCURSES_KEY_SREPLACE</item>
+      <item>NCURSES_KEY_SRESET</item>
+      <item>NCURSES_KEY_SRIGHT</item>
+      <item>NCURSES_KEY_SRSUME</item>
+      <item>NCURSES_KEY_SSAVE</item>
+      <item>NCURSES_KEY_SSUSPEND</item>
+      <item>NCURSES_KEY_STAB</item>
+      <item>NCURSES_KEY_SUNDO</item>
+      <item>NCURSES_KEY_SUSPEND</item>
+      <item>NCURSES_KEY_UNDO</item>
+      <item>NCURSES_KEY_UP</item>
+      <item>NCURSES_REPORT_MOUSE_POSITION</item>
+      <item>NIL</item>
+      <item>NOEXPR</item>
+      <item>NULL</item>
+      <item>OCI_ASSOC</item>
+      <item>OCI_BOTH</item>
+      <item>OCI_B_BFILE</item>
+      <item>OCI_B_BIN</item>
+      <item>OCI_B_BLOB</item>
+      <item>OCI_B_CFILEE</item>
+      <item>OCI_B_CLOB</item>
+      <item>OCI_B_CURSOR</item>
+      <item>OCI_B_INT</item>
+      <item>OCI_B_NTY</item>
+      <item>OCI_B_NUM</item>
+      <item>OCI_B_ROWID</item>
+      <item>OCI_COMMIT_ON_SUCCESS</item>
+      <item>OCI_CRED_EXT</item>
+      <item>OCI_DEFAULT</item>
+      <item>OCI_DESCRIBE_ONLY</item>
+      <item>OCI_DTYPE_FILE</item>
+      <item>OCI_DTYPE_LOB</item>
+      <item>OCI_DTYPE_ROWID</item>
+      <item>OCI_FETCHSTATEMENT_BY_COLUMN</item>
+      <item>OCI_FETCHSTATEMENT_BY_ROW</item>
+      <item>OCI_LOB_BUFFER_FREE</item>
+      <item>OCI_NO_AUTO_COMMIT</item>
+      <item>OCI_NUM</item>
+      <item>OCI_RETURN_LOBS</item>
+      <item>OCI_RETURN_NULLS</item>
+      <item>OCI_SEEK_CUR</item>
+      <item>OCI_SEEK_END</item>
+      <item>OCI_SEEK_SET</item>
+      <item>OCI_SYSDBA</item>
+      <item>OCI_SYSOPER</item>
+      <item>OCI_TEMP_BLOB</item>
+      <item>OCI_TEMP_CLOB</item>
+      <item>ODBC_BINMODE_CONVERT</item>
+      <item>ODBC_BINMODE_PASSTHRU</item>
+      <item>ODBC_BINMODE_RETURN</item>
+      <item>ODBC_TYPE</item>
+      <item>OPENSSL_ALGO_MD2</item>
+      <item>OPENSSL_ALGO_MD4</item>
+      <item>OPENSSL_ALGO_MD5</item>
+      <item>OPENSSL_ALGO_SHA1</item>
+      <item>OPENSSL_CIPHER_3DES</item>
+      <item>OPENSSL_CIPHER_DES</item>
+      <item>OPENSSL_CIPHER_RC2_128</item>
+      <item>OPENSSL_CIPHER_RC2_40</item>
+      <item>OPENSSL_CIPHER_RC2_64</item>
+      <item>OPENSSL_KEYTYPE_DH</item>
+      <item>OPENSSL_KEYTYPE_DSA</item>
+      <item>OPENSSL_KEYTYPE_RSA</item>
+      <item>OPENSSL_NO_PADDING</item>
+      <item>OPENSSL_PKCS1_OAEP_PADDING</item>
+      <item>OPENSSL_PKCS1_PADDING</item>
+      <item>OPENSSL_SSLV23_PADDING</item>
+      <item>OP_ANONYMOUS</item>
+      <item>OP_DEBUG</item>
+      <item>OP_EXPUNGE</item>
+      <item>OP_HALFOPEN</item>
+      <item>OP_PROTOTYPE</item>
+      <item>OP_READONLY</item>
+      <item>OP_SECURE</item>
+      <item>OP_SHORTCACHE</item>
+      <item>OP_SILENT</item>
+      <item>O_APPEND</item>
+      <item>O_ASYNC</item>
+      <item>O_CREAT</item>
+      <item>O_EXCL</item>
+      <item>O_NDELAY</item>
+      <item>O_NOCTTY</item>
+      <item>O_NONBLOCK</item>
+      <item>O_RDONLY</item>
+      <item>O_RDWR</item>
+      <item>O_SYNC</item>
+      <item>O_TRUNC</item>
+      <item>O_WRONLY</item>
+      <item>PATHINFO_BASENAME</item>
+      <item>PATHINFO_DIRNAME</item>
+      <item>PATHINFO_EXTENSION</item>
+      <item>PATHINFO_FILENAME</item>
+      <item>PATH_SEPARATOR</item>
+      <item>PGSQL_ASSOC</item>
+      <item>PGSQL_BAD_RESPONSE</item>
+      <item>PGSQL_BOTH</item>
+      <item>PGSQL_COMMAND_OK</item>
+      <item>PGSQL_CONNECTION_BAD</item>
+      <item>PGSQL_CONNECTION_OK</item>
+      <item>PGSQL_CONNECT_FORCE_NEW</item>
+      <item>PGSQL_CONV_FORCE_NULL</item>
+      <item>PGSQL_CONV_IGNORE_DEFAULT</item>
+      <item>PGSQL_CONV_IGNORE_NOT_NULL</item>
+      <item>PGSQL_COPY_IN</item>
+      <item>PGSQL_COPY_OUT</item>
+      <item>PGSQL_DML_ASYNC</item>
+      <item>PGSQL_DML_EXEC</item>
+      <item>PGSQL_DML_NO_CONV</item>
+      <item>PGSQL_DML_STRING</item>
+      <item>PGSQL_EMPTY_QUERY</item>
+      <item>PGSQL_FATAL_ERROR</item>
+      <item>PGSQL_NONFATAL_ERROR</item>
+      <item>PGSQL_NUM</item>
+      <item>PGSQL_SEEK_CUR</item>
+      <item>PGSQL_SEEK_END</item>
+      <item>PGSQL_SEEK_SET</item>
+      <item>PGSQL_STATUS_LONG</item>
+      <item>PGSQL_STATUS_STRING</item>
+      <item>PGSQL_TUPLES_OK</item>
+      <item>PHP_BINARY_READ</item>
+      <item>PHP_NORMAL_READ</item>
+      <item>PHP_OUTPUT_HANDLER_CONT</item>
+      <item>PHP_OUTPUT_HANDLER_END</item>
+      <item>PHP_OUTPUT_HANDLER_START</item>
+      <item>PHP_URL_FRAGMENT</item>
+      <item>PHP_URL_HOST</item>
+      <item>PHP_URL_PASS</item>
+      <item>PHP_URL_PATH</item>
+      <item>PHP_URL_PORT</item>
+      <item>PHP_URL_QUERY</item>
+      <item>PHP_URL_SCHEME</item>
+      <item>PHP_URL_USER</item>
+      <item>PKCS7_BINARY</item>
+      <item>PKCS7_DETACHED</item>
+      <item>PKCS7_NOATTR</item>
+      <item>PKCS7_NOCERTS</item>
+      <item>PKCS7_NOCHAIN</item>
+      <item>PKCS7_NOINTERN</item>
+      <item>PKCS7_NOSIGS</item>
+      <item>PKCS7_NOVERIFY</item>
+      <item>PKCS7_TEXT</item>
+      <item>PM_STR</item>
+      <item>PREG_GREP_INVERT</item>
+      <item>PREG_OFFSET_CAPTURE</item>
+      <item>PREG_PATTERN_ORDER</item>
+      <item>PREG_SET_ORDER</item>
+      <item>PREG_SPLIT_DELIM_CAPTURE</item>
+      <item>PREG_SPLIT_NO_EMPTY</item>
+      <item>PREG_SPLIT_OFFSET_CAPTURE</item>
+      <item>PRIO_PGRP</item>
+      <item>PRIO_PROCESS</item>
+      <item>PRIO_USER</item>
+      <item>PSFS_ERR_FATAL</item>
+      <item>PSFS_FEED_ME</item>
+      <item>PSFS_FLAG_FLUSH_CLOSE</item>
+      <item>PSFS_FLAG_FLUSH_INC</item>
+      <item>PSFS_FLAG_NORMAL</item>
+      <item>PSFS_PASS_ON</item>
+      <item>P_PRIVATE</item>
+      <item>P_PROTECTED</item>
+      <item>P_PUBLIC</item>
+      <item>P_STATIC</item>
+      <item>RADIXCHAR</item>
+      <item>RIT_CHILD_FIRST</item>
+      <item>RIT_LEAVES_ONLY</item>
+      <item>RIT_SELF_FIRST</item>
+      <item>SA_ALL</item>
+      <item>SA_MESSAGES</item>
+      <item>SA_RECENT</item>
+      <item>SA_UIDNEXT</item>
+      <item>SA_UIDVALIDITY</item>
+      <item>SA_UNSEEN</item>
+      <item>SEEK_CUR</item>
+      <item>SEEK_END</item>
+      <item>SEEK_SET</item>
+      <item>SE_FREE</item>
+      <item>SE_NOPREFETCH</item>
+      <item>SE_UID</item>
+      <item>SIGABRT</item>
+      <item>SIGALRM</item>
+      <item>SIGBABY</item>
+      <item>SIGBUS</item>
+      <item>SIGCHLD</item>
+      <item>SIGCLD</item>
+      <item>SIGCONT</item>
+      <item>SIGFPE</item>
+      <item>SIGHUP</item>
+      <item>SIGILL</item>
+      <item>SIGINT</item>
+      <item>SIGIO</item>
+      <item>SIGIOT</item>
+      <item>SIGKILL</item>
+      <item>SIGPIPE</item>
+      <item>SIGPOLL</item>
+      <item>SIGPROF</item>
+      <item>SIGPWR</item>
+      <item>SIGQUIT</item>
+      <item>SIGSEGV</item>
+      <item>SIGSTKFLT</item>
+      <item>SIGSTOP</item>
+      <item>SIGSYS</item>
+      <item>SIGTERM</item>
+      <item>SIGTRAP</item>
+      <item>SIGTSTP</item>
+      <item>SIGTTIN</item>
+      <item>SIGTTOU</item>
+      <item>SIGURG</item>
+      <item>SIGUSR1</item>
+      <item>SIGUSR2</item>
+      <item>SIGVTALRM</item>
+      <item>SIGWINCH</item>
+      <item>SIGXCPU</item>
+      <item>SIGXFSZ</item>
+      <item>SIG_DFL</item>
+      <item>SIG_ERR</item>
+      <item>SIG_IGN</item>
+      <item>SNMP_BIT_STR</item>
+      <item>SNMP_COUNTER</item>
+      <item>SNMP_COUNTER64</item>
+      <item>SNMP_INTEGER</item>
+      <item>SNMP_IPADDRESS</item>
+      <item>SNMP_NULL</item>
+      <item>SNMP_OBJECT_ID</item>
+      <item>SNMP_OCTET_STR</item>
+      <item>SNMP_OPAQUE</item>
+      <item>SNMP_TIMETICKS</item>
+      <item>SNMP_UINTEGER</item>
+      <item>SNMP_UNSIGNED</item>
+      <item>SNMP_VALUE_LIBRARY</item>
+      <item>SNMP_VALUE_OBJECT</item>
+      <item>SNMP_VALUE_PLAIN</item>
+      <item>SOAP_1_1</item>
+      <item>SOAP_1_2</item>
+      <item>SOAP_ACTOR_NEXT</item>
+      <item>SOAP_ACTOR_NONE</item>
+      <item>SOAP_ACTOR_UNLIMATERECEIVER</item>
+      <item>SOAP_COMPRESSION_ACCEPT</item>
+      <item>SOAP_COMPRESSION_DEFLATE</item>
+      <item>SOAP_COMPRESSION_GZIP</item>
+      <item>SOAP_DOCUMENT</item>
+      <item>SOAP_ENCODED</item>
+      <item>SOAP_ENC_ARRAY</item>
+      <item>SOAP_ENC_OBJECT</item>
+      <item>SOAP_FUNCTIONS_ALL</item>
+      <item>SOAP_LITERAL</item>
+      <item>SOAP_PERSISTENCE_REQUEST</item>
+      <item>SOAP_PERSISTENCE_SESSION</item>
+      <item>SOAP_RPC</item>
+      <item>SOCKET_E2BIG</item>
+      <item>SOCKET_EACCES</item>
+      <item>SOCKET_EADDRINUSE</item>
+      <item>SOCKET_EADDRNOTAVAIL</item>
+      <item>SOCKET_EADV</item>
+      <item>SOCKET_EAFNOSUPPORT</item>
+      <item>SOCKET_EAGAIN</item>
+      <item>SOCKET_EALREADY</item>
+      <item>SOCKET_EBADE</item>
+      <item>SOCKET_EBADF</item>
+      <item>SOCKET_EBADFD</item>
+      <item>SOCKET_EBADMSG</item>
+      <item>SOCKET_EBADR</item>
+      <item>SOCKET_EBADRQC</item>
+      <item>SOCKET_EBADSLT</item>
+      <item>SOCKET_EBUSY</item>
+      <item>SOCKET_ECHRNG</item>
+      <item>SOCKET_ECOMM</item>
+      <item>SOCKET_ECONNABORTED</item>
+      <item>SOCKET_ECONNREFUSED</item>
+      <item>SOCKET_ECONNRESET</item>
+      <item>SOCKET_EDESTADDRREQ</item>
+      <item>SOCKET_EDQUOT</item>
+      <item>SOCKET_EEXIST</item>
+      <item>SOCKET_EFAULT</item>
+      <item>SOCKET_EHOSTDOWN</item>
+      <item>SOCKET_EHOSTUNREACH</item>
+      <item>SOCKET_EIDRM</item>
+      <item>SOCKET_EINPROGRESS</item>
+      <item>SOCKET_EINTR</item>
+      <item>SOCKET_EINVAL</item>
+      <item>SOCKET_EIO</item>
+      <item>SOCKET_EISCONN</item>
+      <item>SOCKET_EISDIR</item>
+      <item>SOCKET_EISNAM</item>
+      <item>SOCKET_EL2HLT</item>
+      <item>SOCKET_EL2NSYNC</item>
+      <item>SOCKET_EL3HLT</item>
+      <item>SOCKET_EL3RST</item>
+      <item>SOCKET_ELNRNG</item>
+      <item>SOCKET_ELOOP</item>
+      <item>SOCKET_EMEDIUMTYPE</item>
+      <item>SOCKET_EMFILE</item>
+      <item>SOCKET_EMLINK</item>
+      <item>SOCKET_EMSGSIZE</item>
+      <item>SOCKET_EMULTIHOP</item>
+      <item>SOCKET_ENAMETOOLONG</item>
+      <item>SOCKET_ENETDOWN</item>
+      <item>SOCKET_ENETRESET</item>
+      <item>SOCKET_ENETUNREACH</item>
+      <item>SOCKET_ENFILE</item>
+      <item>SOCKET_ENOANO</item>
+      <item>SOCKET_ENOBUFS</item>
+      <item>SOCKET_ENOCSI</item>
+      <item>SOCKET_ENODATA</item>
+      <item>SOCKET_ENODEV</item>
+      <item>SOCKET_ENOENT</item>
+      <item>SOCKET_ENOLCK</item>
+      <item>SOCKET_ENOLINK</item>
+      <item>SOCKET_ENOMEDIUM</item>
+      <item>SOCKET_ENOMEM</item>
+      <item>SOCKET_ENOMSG</item>
+      <item>SOCKET_ENONET</item>
+      <item>SOCKET_ENOPROTOOPT</item>
+      <item>SOCKET_ENOSPC</item>
+      <item>SOCKET_ENOSR</item>
+      <item>SOCKET_ENOSTR</item>
+      <item>SOCKET_ENOSYS</item>
+      <item>SOCKET_ENOTBLK</item>
+      <item>SOCKET_ENOTCONN</item>
+      <item>SOCKET_ENOTDIR</item>
+      <item>SOCKET_ENOTEMPTY</item>
+      <item>SOCKET_ENOTSOCK</item>
+      <item>SOCKET_ENOTTY</item>
+      <item>SOCKET_ENOTUNIQ</item>
+      <item>SOCKET_ENXIO</item>
+      <item>SOCKET_EOPNOTSUPP</item>
+      <item>SOCKET_EPERM</item>
+      <item>SOCKET_EPFNOSUPPORT</item>
+      <item>SOCKET_EPIPE</item>
+      <item>SOCKET_EPROTO</item>
+      <item>SOCKET_EPROTONOSUPPORT</item>
+      <item>SOCKET_EPROTOTYPE</item>
+      <item>SOCKET_EREMCHG</item>
+      <item>SOCKET_EREMOTE</item>
+      <item>SOCKET_EREMOTEIO</item>
+      <item>SOCKET_ERESTART</item>
+      <item>SOCKET_EROFS</item>
+      <item>SOCKET_ESHUTDOWN</item>
+      <item>SOCKET_ESOCKTNOSUPPORT</item>
+      <item>SOCKET_ESPIPE</item>
+      <item>SOCKET_ESRMNT</item>
+      <item>SOCKET_ESTRPIPE</item>
+      <item>SOCKET_ETIME</item>
+      <item>SOCKET_ETIMEDOUT</item>
+      <item>SOCKET_ETOOMANYREFS</item>
+      <item>SOCKET_EUNATCH</item>
+      <item>SOCKET_EUSERS</item>
+      <item>SOCKET_EWOULDBLOCK</item>
+      <item>SOCKET_EXDEV</item>
+      <item>SOCKET_EXFULL</item>
+      <item>SOCK_DGRAM</item>
+      <item>SOCK_RAW</item>
+      <item>SOCK_RDM</item>
+      <item>SOCK_SEQPACKET</item>
+      <item>SOCK_STREAM</item>
+      <item>SOL_SOCKET</item>
+      <item>SOL_TCP</item>
+      <item>SOL_UDP</item>
+      <item>SOMAXCONN</item>
+      <item>SORTARRIVAL</item>
+      <item>SORTCC</item>
+      <item>SORTDATE</item>
+      <item>SORTFROM</item>
+      <item>SORTSIZE</item>
+      <item>SORTSUBJECT</item>
+      <item>SORTTO</item>
+      <item>SORT_ASC</item>
+      <item>SORT_DESC</item>
+      <item>SORT_FLAG_CASE</item>
+      <item>SORT_LOCALE_STRING</item>
+      <item>SORT_NATURAL</item>
+      <item>SORT_NUMERIC</item>
+      <item>SORT_REGULAR</item>
+      <item>SORT_STRING</item>
+      <item>SO_BROADCAST</item>
+      <item>SO_DEBUG</item>
+      <item>SO_DONTROUTE</item>
+      <item>SO_ERROR</item>
+      <item>SO_FREE</item>
+      <item>SO_KEEPALIVE</item>
+      <item>SO_LINGER</item>
+      <item>SO_NOSERVER</item>
+      <item>SO_OOBINLINE</item>
+      <item>SO_RCVBUF</item>
+      <item>SO_RCVLOWAT</item>
+      <item>SO_RCVTIMEO</item>
+      <item>SO_REUSEADDR</item>
+      <item>SO_SNDBUF</item>
+      <item>SO_SNDLOWAT</item>
+      <item>SO_SNDTIMEO</item>
+      <item>SO_TYPE</item>
+      <item>SQLITE3_ASSOC</item>
+      <item>SQLITE3_BLOB</item>
+      <item>SQLITE3_BOTH</item>
+      <item>SQLITE3_FLOAT</item>
+      <item>SQLITE3_INTEGER</item>
+      <item>SQLITE3_NULL</item>
+      <item>SQLITE3_NUM</item>
+      <item>SQLITE3_OPEN_CREATE</item>
+      <item>SQLITE3_OPEN_READONLY</item>
+      <item>SQLITE3_OPEN_READWRITE</item>
+      <item>SQLITE3_TEXT</item>
+      <item>SQLITE_ABORT</item>
+      <item>SQLITE_ASSOC</item>
+      <item>SQLITE_AUTH</item>
+      <item>SQLITE_BOTH</item>
+      <item>SQLITE_BUSY</item>
+      <item>SQLITE_CANTOPEN</item>
+      <item>SQLITE_CONSTRAINT</item>
+      <item>SQLITE_CORRUPT</item>
+      <item>SQLITE_DONE</item>
+      <item>SQLITE_EMPTY</item>
+      <item>SQLITE_ERROR</item>
+      <item>SQLITE_FORMAT</item>
+      <item>SQLITE_FULL</item>
+      <item>SQLITE_INTERNAL</item>
+      <item>SQLITE_INTERRUPT</item>
+      <item>SQLITE_IOERR</item>
+      <item>SQLITE_LOCKED</item>
+      <item>SQLITE_MISMATCH</item>
+      <item>SQLITE_MISUSE</item>
+      <item>SQLITE_NOLFS</item>
+      <item>SQLITE_NOMEM</item>
+      <item>SQLITE_NOTFOUND</item>
+      <item>SQLITE_NUM</item>
+      <item>SQLITE_OK</item>
+      <item>SQLITE_PERM</item>
+      <item>SQLITE_PROTOCOL</item>
+      <item>SQLITE_READONLY</item>
+      <item>SQLITE_ROW</item>
+      <item>SQLITE_SCHEMA</item>
+      <item>SQLITE_TOOBIG</item>
+      <item>SQLT_AFC</item>
+      <item>SQLT_AVC</item>
+      <item>SQLT_BDOUBLE</item>
+      <item>SQLT_BFILEE</item>
+      <item>SQLT_BFLOAT</item>
+      <item>SQLT_BIN</item>
+      <item>SQLT_BLOB</item>
+      <item>SQLT_CFILEE</item>
+      <item>SQLT_CHR</item>
+      <item>SQLT_CLOB</item>
+      <item>SQLT_FLT</item>
+      <item>SQLT_INT</item>
+      <item>SQLT_LBI</item>
+      <item>SQLT_LNG</item>
+      <item>SQLT_LVC</item>
+      <item>SQLT_NTY</item>
+      <item>SQLT_NUM</item>
+      <item>SQLT_ODT</item>
+      <item>SQLT_RDD</item>
+      <item>SQLT_RSET</item>
+      <item>SQLT_STR</item>
+      <item>SQLT_UIN</item>
+      <item>SQLT_VCS</item>
+      <item>SQL_BIGINT</item>
+      <item>SQL_BINARY</item>
+      <item>SQL_BIT</item>
+      <item>SQL_CHAR</item>
+      <item>SQL_CONCURRENCY</item>
+      <item>SQL_CONCUR_LOCK</item>
+      <item>SQL_CONCUR_READ_ONLY</item>
+      <item>SQL_CONCUR_ROWVER</item>
+      <item>SQL_CONCUR_VALUES</item>
+      <item>SQL_CURSOR_DYNAMIC</item>
+      <item>SQL_CURSOR_FORWARD_ONLY</item>
+      <item>SQL_CURSOR_KEYSET_DRIVEN</item>
+      <item>SQL_CURSOR_STATIC</item>
+      <item>SQL_CURSOR_TYPE</item>
+      <item>SQL_CUR_USE_DRIVER</item>
+      <item>SQL_CUR_USE_IF_NEEDED</item>
+      <item>SQL_CUR_USE_ODBC</item>
+      <item>SQL_DATE</item>
+      <item>SQL_DECIMAL</item>
+      <item>SQL_DOUBLE</item>
+      <item>SQL_FETCH_FIRST</item>
+      <item>SQL_FETCH_NEXT</item>
+      <item>SQL_FLOAT</item>
+      <item>SQL_INTEGER</item>
+      <item>SQL_KEYSET_SIZE</item>
+      <item>SQL_LONGVARBINARY</item>
+      <item>SQL_LONGVARCHAR</item>
+      <item>SQL_NUMERIC</item>
+      <item>SQL_ODBC_CURSORS</item>
+      <item>SQL_REAL</item>
+      <item>SQL_SMALLINT</item>
+      <item>SQL_TIME</item>
+      <item>SQL_TIMESTAMP</item>
+      <item>SQL_TINYINT</item>
+      <item>SQL_VARBINARY</item>
+      <item>SQL_VARCHAR</item>
+      <item>STDERR</item>
+      <item>STDIN</item>
+      <item>STDOUT</item>
+      <item>STREAM_CLIENT_ASYNC_CONNECT</item>
+      <item>STREAM_CLIENT_CONNECT</item>
+      <item>STREAM_CLIENT_PERSISTENT</item>
+      <item>STREAM_ENFORCE_SAFE_MODE</item>
+      <item>STREAM_FILTER_ALL</item>
+      <item>STREAM_FILTER_READ</item>
+      <item>STREAM_FILTER_WRITE</item>
+      <item>STREAM_IGNORE_URL</item>
+      <item>STREAM_MKDIR_RECURSIVE</item>
+      <item>STREAM_MUST_SEEK</item>
+      <item>STREAM_NOTIFY_AUTH_REQUIRED</item>
+      <item>STREAM_NOTIFY_AUTH_RESULT</item>
+      <item>STREAM_NOTIFY_COMPLETED</item>
+      <item>STREAM_NOTIFY_CONNECT</item>
+      <item>STREAM_NOTIFY_FAILURE</item>
+      <item>STREAM_NOTIFY_FILE_SIZE_IS</item>
+      <item>STREAM_NOTIFY_MIME_TYPE_IS</item>
+      <item>STREAM_NOTIFY_PROGRESS</item>
+      <item>STREAM_NOTIFY_REDIRECTED</item>
+      <item>STREAM_NOTIFY_RESOLVE</item>
+      <item>STREAM_NOTIFY_SEVERITY_ERR</item>
+      <item>STREAM_NOTIFY_SEVERITY_INFO</item>
+      <item>STREAM_NOTIFY_SEVERITY_WARN</item>
+      <item>STREAM_OOB</item>
+      <item>STREAM_PEEK</item>
+      <item>STREAM_REPORT_ERRORS</item>
+      <item>STREAM_SERVER_BIND</item>
+      <item>STREAM_SERVER_LISTEN</item>
+      <item>STREAM_URL_STAT_LINK</item>
+      <item>STREAM_URL_STAT_QUIET</item>
+      <item>STREAM_USE_PATH</item>
+      <item>STR_PAD_BOTH</item>
+      <item>STR_PAD_LEFT</item>
+      <item>STR_PAD_RIGHT</item>
+      <item>ST_SET</item>
+      <item>ST_SILENT</item>
+      <item>ST_UID</item>
+      <item>SUNFUNCS_RET_DOUBLE</item>
+      <item>SUNFUNCS_RET_STRING</item>
+      <item>SUNFUNCS_RET_TIMESTAMP</item>
+      <item>S_IRGRP</item>
+      <item>S_IROTH</item>
+      <item>S_IRUSR</item>
+      <item>S_IRWXG</item>
+      <item>S_IRWXO</item>
+      <item>S_IRWXU</item>
+      <item>S_IWGRP</item>
+      <item>S_IWOTH</item>
+      <item>S_IWUSR</item>
+      <item>S_IXGRP</item>
+      <item>S_IXOTH</item>
+      <item>S_IXUSR</item>
+      <item>THOUSEP</item>
+      <item>TYPEAPPLICATION</item>
+      <item>TYPEAUDIO</item>
+      <item>TYPEIMAGE</item>
+      <item>TYPEMESSAGE</item>
+      <item>TYPEMODEL</item>
+      <item>TYPEMULTIPART</item>
+      <item>TYPEOTHER</item>
+      <item>TYPETEXT</item>
+      <item>TYPEVIDEO</item>
+      <item>T_ABSTRACT</item>
+      <item>T_AND_EQUAL</item>
+      <item>T_ARRAY</item>
+      <item>T_ARRAY_CAST</item>
+      <item>T_AS</item>
+      <item>T_BAD_CHARACTER</item>
+      <item>T_BOOLEAN_AND</item>
+      <item>T_BOOLEAN_OR</item>
+      <item>T_BOOL_CAST</item>
+      <item>T_BREAK</item>
+      <item>T_CASE</item>
+      <item>T_CATCH</item>
+      <item>T_CHARACTER</item>
+      <item>T_CLASS</item>
+      <item>T_CLASS_C</item>
+      <item>T_CLONE</item>
+      <item>T_CLOSE_TAG</item>
+      <item>T_COMMENT</item>
+      <item>T_CONCAT_EQUAL</item>
+      <item>T_CONST</item>
+      <item>T_CONSTANT_ENCAPSED_STRING</item>
+      <item>T_CONTINUE</item>
+      <item>T_CURLY_OPEN</item>
+      <item>T_DEC</item>
+      <item>T_DECLARE</item>
+      <item>T_DEFAULT</item>
+      <item>T_DIV_EQUAL</item>
+      <item>T_DNUMBER</item>
+      <item>T_DO</item>
+      <item>T_DOC_COMMENT</item>
+      <item>T_DOLLAR_OPEN_CURLY_BRACES</item>
+      <item>T_DOUBLE_ARROW</item>
+      <item>T_DOUBLE_CAST</item>
+      <item>T_DOUBLE_COLON</item>
+      <item>T_ECHO</item>
+      <item>T_ELSE</item>
+      <item>T_ELSEIF</item>
+      <item>T_EMPTY</item>
+      <item>T_ENCAPSED_AND_WHITESPACE</item>
+      <item>T_ENDDECLARE</item>
+      <item>T_ENDFOR</item>
+      <item>T_ENDFOREACH</item>
+      <item>T_ENDIF</item>
+      <item>T_ENDSWITCH</item>
+      <item>T_ENDWHILE</item>
+      <item>T_END_HEREDOC</item>
+      <item>T_EVAL</item>
+      <item>T_EXIT</item>
+      <item>T_EXTENDS</item>
+      <item>T_FILE</item>
+      <item>T_FINAL</item>
+      <item>T_FMT</item>
+      <item>T_FMT_AMPM</item>
+      <item>T_FOR</item>
+      <item>T_FOREACH</item>
+      <item>T_FUNCTION</item>
+      <item>T_FUNC_C</item>
+      <item>T_GLOBAL</item>
+      <item>T_IF</item>
+      <item>T_IMPLEMENTS</item>
+      <item>T_INC</item>
+      <item>T_INCLUDE</item>
+      <item>T_INCLUDE_ONCE</item>
+      <item>T_INLINE_HTML</item>
+      <item>T_INSTANCEOF</item>
+      <item>T_INTERFACE</item>
+      <item>T_INT_CAST</item>
+      <item>T_ISSET</item>
+      <item>T_IS_EQUAL</item>
+      <item>T_IS_GREATER_OR_EQUAL</item>
+      <item>T_IS_IDENTICAL</item>
+      <item>T_IS_NOT_EQUAL</item>
+      <item>T_IS_NOT_IDENTICAL</item>
+      <item>T_IS_SMALLER_OR_EQUAL</item>
+      <item>T_LINE</item>
+      <item>T_LIST</item>
+      <item>T_LNUMBER</item>
+      <item>T_LOGICAL_AND</item>
+      <item>T_LOGICAL_OR</item>
+      <item>T_LOGICAL_XOR</item>
+      <item>T_METHOD_C</item>
+      <item>T_MINUS_EQUAL</item>
+      <item>T_MOD_EQUAL</item>
+      <item>T_MUL_EQUAL</item>
+      <item>T_NEW</item>
+      <item>T_NUM_STRING</item>
+      <item>T_OBJECT_CAST</item>
+      <item>T_OBJECT_OPERATOR</item>
+      <item>T_OPEN_TAG</item>
+      <item>T_OPEN_TAG_WITH_ECHO</item>
+      <item>T_OR_EQUAL</item>
+      <item>T_PAAMAYIM_NEKUDOTAYIM</item>
+      <item>T_PLUS_EQUAL</item>
+      <item>T_PRINT</item>
+      <item>T_PRIVATE</item>
+      <item>T_PROTECTED</item>
+      <item>T_PUBLIC</item>
+      <item>T_REQUIRE</item>
+      <item>T_REQUIRE_ONCE</item>
+      <item>T_RETURN</item>
+      <item>T_SL</item>
+      <item>T_SL_EQUAL</item>
+      <item>T_SR</item>
+      <item>T_SR_EQUAL</item>
+      <item>T_START_HEREDOC</item>
+      <item>T_STATIC</item>
+      <item>T_STRING</item>
+      <item>T_STRING_CAST</item>
+      <item>T_STRING_VARNAME</item>
+      <item>T_SWITCH</item>
+      <item>T_THROW</item>
+      <item>T_TRY</item>
+      <item>T_UNSET</item>
+      <item>T_UNSET_CAST</item>
+      <item>T_USE</item>
+      <item>T_VAR</item>
+      <item>T_VARIABLE</item>
+      <item>T_WHILE</item>
+      <item>T_WHITESPACE</item>
+      <item>T_XOR_EQUAL</item>
+      <item>UNKNOWN_TYPE</item>
+      <item>UPLOAD_ERR_CANT_WRITE</item>
+      <item>UPLOAD_ERR_FORM_SIZE</item>
+      <item>UPLOAD_ERR_INI_SIZE</item>
+      <item>UPLOAD_ERR_NO_FILE</item>
+      <item>UPLOAD_ERR_NO_TMP_DIR</item>
+      <item>UPLOAD_ERR_OK</item>
+      <item>UPLOAD_ERR_PARTIAL</item>
+      <item>WNOHANG</item>
+      <item>WUNTRACED</item>
+      <item>X509_PURPOSE_ANY</item>
+      <item>X509_PURPOSE_CRL_SIGN</item>
+      <item>X509_PURPOSE_NS_SSL_SERVER</item>
+      <item>X509_PURPOSE_SMIME_ENCRYPT</item>
+      <item>X509_PURPOSE_SMIME_SIGN</item>
+      <item>X509_PURPOSE_SSL_CLIENT</item>
+      <item>X509_PURPOSE_SSL_SERVER</item>
+      <item>XML_ATTRIBUTE_CDATA</item>
+      <item>XML_ATTRIBUTE_DECL_NODE</item>
+      <item>XML_ATTRIBUTE_ENTITY</item>
+      <item>XML_ATTRIBUTE_ENUMERATION</item>
+      <item>XML_ATTRIBUTE_ID</item>
+      <item>XML_ATTRIBUTE_IDREF</item>
+      <item>XML_ATTRIBUTE_IDREFS</item>
+      <item>XML_ATTRIBUTE_NMTOKEN</item>
+      <item>XML_ATTRIBUTE_NMTOKENS</item>
+      <item>XML_ATTRIBUTE_NODE</item>
+      <item>XML_ATTRIBUTE_NOTATION</item>
+      <item>XML_CDATA_SECTION_NODE</item>
+      <item>XML_COMMENT_NODE</item>
+      <item>XML_DOCUMENT_FRAG_NODE</item>
+      <item>XML_DOCUMENT_NODE</item>
+      <item>XML_DOCUMENT_TYPE_NODE</item>
+      <item>XML_DTD_NODE</item>
+      <item>XML_ELEMENT_DECL_NODE</item>
+      <item>XML_ELEMENT_NODE</item>
+      <item>XML_ENTITY_DECL_NODE</item>
+      <item>XML_ENTITY_NODE</item>
+      <item>XML_ENTITY_REF_NODE</item>
+      <item>XML_ERROR_ASYNC_ENTITY</item>
+      <item>XML_ERROR_ATTRIBUTE_EXTERNAL_ENTITY_REF</item>
+      <item>XML_ERROR_BAD_CHAR_REF</item>
+      <item>XML_ERROR_BINARY_ENTITY_REF</item>
+      <item>XML_ERROR_DUPLICATE_ATTRIBUTE</item>
+      <item>XML_ERROR_EXTERNAL_ENTITY_HANDLING</item>
+      <item>XML_ERROR_INCORRECT_ENCODING</item>
+      <item>XML_ERROR_INVALID_TOKEN</item>
+      <item>XML_ERROR_JUNK_AFTER_DOC_ELEMENT</item>
+      <item>XML_ERROR_MISPLACED_XML_PI</item>
+      <item>XML_ERROR_NONE</item>
+      <item>XML_ERROR_NO_ELEMENTS</item>
+      <item>XML_ERROR_NO_MEMORY</item>
+      <item>XML_ERROR_PARAM_ENTITY_REF</item>
+      <item>XML_ERROR_PARTIAL_CHAR</item>
+      <item>XML_ERROR_RECURSIVE_ENTITY_REF</item>
+      <item>XML_ERROR_SYNTAX</item>
+      <item>XML_ERROR_TAG_MISMATCH</item>
+      <item>XML_ERROR_UNCLOSED_CDATA_SECTION</item>
+      <item>XML_ERROR_UNCLOSED_TOKEN</item>
+      <item>XML_ERROR_UNDEFINED_ENTITY</item>
+      <item>XML_ERROR_UNKNOWN_ENCODING</item>
+      <item>XML_HTML_DOCUMENT_NODE</item>
+      <item>XML_LOCAL_NAMESPACE</item>
+      <item>XML_NAMESPACE_DECL_NODE</item>
+      <item>XML_NOTATION_NODE</item>
+      <item>XML_OPTION_CASE_FOLDING</item>
+      <item>XML_OPTION_SKIP_TAGSTART</item>
+      <item>XML_OPTION_SKIP_WHITE</item>
+      <item>XML_OPTION_TARGET_ENCODING</item>
+      <item>XML_PI_NODE</item>
+      <item>XML_SAX_IMPL</item>
+      <item>XML_TEXT_NODE</item>
+      <item>XSD_1999_NAMESPACE</item>
+      <item>XSD_1999_TIMEINSTANT</item>
+      <item>XSD_ANYTYPE</item>
+      <item>XSD_ANYURI</item>
+      <item>XSD_BASE64BINARY</item>
+      <item>XSD_BOOLEAN</item>
+      <item>XSD_BYTE</item>
+      <item>XSD_DATE</item>
+      <item>XSD_DATETIME</item>
+      <item>XSD_DECIMAL</item>
+      <item>XSD_DOUBLE</item>
+      <item>XSD_DURATION</item>
+      <item>XSD_ENTITIES</item>
+      <item>XSD_ENTITY</item>
+      <item>XSD_FLOAT</item>
+      <item>XSD_GDAY</item>
+      <item>XSD_GMONTH</item>
+      <item>XSD_GMONTHDAY</item>
+      <item>XSD_GYEAR</item>
+      <item>XSD_GYEARMONTH</item>
+      <item>XSD_HEXBINARY</item>
+      <item>XSD_ID</item>
+      <item>XSD_IDREF</item>
+      <item>XSD_IDREFS</item>
+      <item>XSD_INT</item>
+      <item>XSD_INTEGER</item>
+      <item>XSD_LANGUAGE</item>
+      <item>XSD_LONG</item>
+      <item>XSD_NAME</item>
+      <item>XSD_NAMESPACE</item>
+      <item>XSD_NCNAME</item>
+      <item>XSD_NEGATIVEINTEGER</item>
+      <item>XSD_NMTOKEN</item>
+      <item>XSD_NMTOKENS</item>
+      <item>XSD_NONNEGATIVEINTEGER</item>
+      <item>XSD_NONPOSITIVEINTEGER</item>
+      <item>XSD_NORMALIZEDSTRING</item>
+      <item>XSD_NOTATION</item>
+      <item>XSD_POSITIVEINTEGER</item>
+      <item>XSD_QNAME</item>
+      <item>XSD_SHORT</item>
+      <item>XSD_STRING</item>
+      <item>XSD_TIME</item>
+      <item>XSD_TOKEN</item>
+      <item>XSD_UNSIGNEDBYTE</item>
+      <item>XSD_UNSIGNEDINT</item>
+      <item>XSD_UNSIGNEDLONG</item>
+      <item>XSD_UNSIGNEDSHORT</item>
+      <item>XSL_CLONE_ALWAYS</item>
+      <item>XSL_CLONE_AUTO</item>
+      <item>XSL_CLONE_NEVER</item>
+      <item>YESEXPR</item>
+      <item>YPERR_BADARGS</item>
+      <item>YPERR_BADDB</item>
+      <item>YPERR_BUSY</item>
+      <item>YPERR_DOMAIN</item>
+      <item>YPERR_KEY</item>
+      <item>YPERR_MAP</item>
+      <item>YPERR_NODOM</item>
+      <item>YPERR_NOMORE</item>
+      <item>YPERR_PMAP</item>
+      <item>YPERR_RESRC</item>
+      <item>YPERR_RPC</item>
+      <item>YPERR_VERS</item>
+      <item>YPERR_YPBIND</item>
+      <item>YPERR_YPERR</item>
+      <item>YPERR_YPSERV</item>
+      <item>ZEND_THREAD_SAFE</item>
+    </list>
+
+    <!-- https://secure.php.net/manual/en/language.oop5.magic.php -->
+    <list name="special_methods">
+      <item>__autoload</item>
+      <item>__call</item>
+      <item>__callStatic</item>
+      <item>__clone</item>
+      <item>__construct</item>
+      <item>__debugInfo</item>
+      <item>__destruct</item>
+      <item>__get</item>
+      <item>__invoke</item>
+      <item>__isset</item>
+      <item>__set</item>
+      <item>__set_state</item>
+      <item>__sleep</item>
+      <item>__toString</item>
+      <item>__unset</item>
+      <item>__wakeup</item>
+    </list>
+
+    <list name="functions">
+      <item>_</item>
+      <item>abs</item>
+      <item>acos</item>
+      <item>acosh</item>
+      <item>addcslashes</item>
+      <item>addslashes</item>
+      <item>apache_get_modules</item>
+      <item>apache_get_version</item>
+      <item>apache_getenv</item>
+      <item>apache_lookup_uri</item>
+      <item>apache_note</item>
+      <item>apache_request_headers</item>
+      <item>apache_response_headers</item>
+      <item>apache_setenv</item>
+      <item>array</item>
+      <item>array_change_key_case</item>
+      <item>array_chunk</item>
+      <item>array_combine</item>
+      <item>array_count_values</item>
+      <item>array_diff</item>
+      <item>array_diff_assoc</item>
+      <item>array_diff_key</item>
+      <item>array_diff_uassoc</item>
+      <item>array_diff_ukey</item>
+      <item>array_fill</item>
+      <item>array_fill_keys</item>
+      <item>array_filter</item>
+      <item>array_flip</item>
+      <item>array_intersect</item>
+      <item>array_intersect_assoc</item>
+      <item>array_intersect_key</item>
+      <item>array_intersect_uassoc</item>
+      <item>array_intersect_ukey</item>
+      <item>array_key_exists</item>
+      <item>array_keys</item>
+      <item>array_map</item>
+      <item>array_merge</item>
+      <item>array_merge_recursive</item>
+      <item>array_multisort</item>
+      <item>array_pad</item>
+      <item>array_pop</item>
+      <item>array_product</item>
+      <item>array_push</item>
+      <item>array_rand</item>
+      <item>array_reduce</item>
+      <item>array_replace</item>
+      <item>array_replace_recursive</item>
+      <item>array_reverse</item>
+      <item>array_search</item>
+      <item>array_shift</item>
+      <item>array_slice</item>
+      <item>array_splice</item>
+      <item>array_sum</item>
+      <item>array_udiff</item>
+      <item>array_udiff_assoc</item>
+      <item>array_udiff_uassoc</item>
+      <item>array_uintersect</item>
+      <item>array_uintersect_assoc</item>
+      <item>array_uintersect_uassoc</item>
+      <item>array_unique</item>
+      <item>array_unshift</item>
+      <item>array_values</item>
+      <item>array_walk</item>
+      <item>array_walk_recursive</item>
+      <item>arsort</item>
+      <item>ascii2ebcdic</item>
+      <item>asin</item>
+      <item>asinh</item>
+      <item>asort</item>
+      <item>aspell_check</item>
+      <item>aspell_check_raw</item>
+      <item>aspell_new</item>
+      <item>aspell_suggest</item>
+      <item>assert</item>
+      <item>assert_options</item>
+      <item>atan</item>
+      <item>atan2</item>
+      <item>atanh</item>
+      <item>base64_decode</item>
+      <item>base64_encode</item>
+      <item>base_convert</item>
+      <item>basename</item>
+      <item>bcadd</item>
+      <item>bccomp</item>
+      <item>bcdiv</item>
+      <item>bcmod</item>
+      <item>bcmul</item>
+      <item>bcpow</item>
+      <item>bcpowmod</item>
+      <item>bcscale</item>
+      <item>bcsqrt</item>
+      <item>bcsub</item>
+      <item>bin2hex</item>
+      <item>bind_textdomain_codeset</item>
+      <item>bindec</item>
+      <item>bindtextdomain</item>
+      <item>bzclose</item>
+      <item>bzcompress</item>
+      <item>bzdecompress</item>
+      <item>bzerrno</item>
+      <item>bzerror</item>
+      <item>bzerrstr</item>
+      <item>bzflush</item>
+      <item>bzopen</item>
+      <item>bzread</item>
+      <item>bzwrite</item>
+      <item>cal_days_in_month</item>
+      <item>cal_from_jd</item>
+      <item>cal_info</item>
+      <item>cal_to_jd</item>
+      <item>call_user_func</item>
+      <item>call_user_func_array</item>
+      <item>ccvs_add</item>
+      <item>ccvs_auth</item>
+      <item>ccvs_command</item>
+      <item>ccvs_count</item>
+      <item>ccvs_delete</item>
+      <item>ccvs_done</item>
+      <item>ccvs_init</item>
+      <item>ccvs_lookup</item>
+      <item>ccvs_new</item>
+      <item>ccvs_report</item>
+      <item>ccvs_return</item>
+      <item>ccvs_reverse</item>
+      <item>ccvs_sale</item>
+      <item>ccvs_status</item>
+      <item>ccvs_textvalue</item>
+      <item>ccvs_void</item>
+      <item>ceil</item>
+      <item>chdir</item>
+      <item>checkdate</item>
+      <item>checkdnsrr</item>
+      <item>chgrp</item>
+      <item>chmod</item>
+      <item>chop</item>
+      <item>chown</item>
+      <item>chr</item>
+      <item>chroot</item>
+      <item>chunk_split</item>
+      <item>class_exists</item>
+      <item>class_implements</item>
+      <item>class_parents</item>
+      <item>clearstatcache</item>
+      <item>closedir</item>
+      <item>closelog</item>
+      <item>com</item>
+      <item>com_addref</item>
+      <item>com_get</item>
+      <item>com_invoke</item>
+      <item>com_isenum</item>
+      <item>com_load</item>
+      <item>com_load_typelib</item>
+      <item>com_propget</item>
+      <item>com_propput</item>
+      <item>com_propset</item>
+      <item>com_release</item>
+      <item>com_set</item>
+      <item>compact</item>
+      <item>connection_aborted</item>
+      <item>connection_status</item>
+      <item>connection_timeout</item>
+      <item>constant</item>
+      <item>convert_cyr_string</item>
+      <item>convert_uudecode</item>
+      <item>convert_uuencode</item>
+      <item>copy</item>
+      <item>cos</item>
+      <item>cosh</item>
+      <item>count</item>
+      <item>count_chars</item>
+      <item>cpdf_add_annotation</item>
+      <item>cpdf_add_outline</item>
+      <item>cpdf_arc</item>
+      <item>cpdf_begin_text</item>
+      <item>cpdf_circle</item>
+      <item>cpdf_clip</item>
+      <item>cpdf_close</item>
+      <item>cpdf_closepath</item>
+      <item>cpdf_closepath_fill_stroke</item>
+      <item>cpdf_closepath_stroke</item>
+      <item>cpdf_continue_text</item>
+      <item>cpdf_curveto</item>
+      <item>cpdf_end_text</item>
+      <item>cpdf_fill</item>
+      <item>cpdf_fill_stroke</item>
+      <item>cpdf_finalize</item>
+      <item>cpdf_finalize_page</item>
+      <item>cpdf_global_set_document_limits</item>
+      <item>cpdf_import_jpeg</item>
+      <item>cpdf_lineto</item>
+      <item>cpdf_moveto</item>
+      <item>cpdf_newpath</item>
+      <item>cpdf_open</item>
+      <item>cpdf_output_buffer</item>
+      <item>cpdf_page_init</item>
+      <item>cpdf_place_inline_image</item>
+      <item>cpdf_rect</item>
+      <item>cpdf_restore</item>
+      <item>cpdf_rlineto</item>
+      <item>cpdf_rmoveto</item>
+      <item>cpdf_rotate</item>
+      <item>cpdf_rotate_text</item>
+      <item>cpdf_save</item>
+      <item>cpdf_save_to_file</item>
+      <item>cpdf_scale</item>
+      <item>cpdf_set_action_url</item>
+      <item>cpdf_set_char_spacing</item>
+      <item>cpdf_set_creator</item>
+      <item>cpdf_set_current_page</item>
+      <item>cpdf_set_font</item>
+      <item>cpdf_set_font_directories</item>
+      <item>cpdf_set_font_map_file</item>
+      <item>cpdf_set_horiz_scaling</item>
+      <item>cpdf_set_keywords</item>
+      <item>cpdf_set_leading</item>
+      <item>cpdf_set_page_animation</item>
+      <item>cpdf_set_subject</item>
+      <item>cpdf_set_text_matrix</item>
+      <item>cpdf_set_text_pos</item>
+      <item>cpdf_set_text_rendering</item>
+      <item>cpdf_set_text_rise</item>
+      <item>cpdf_set_title</item>
+      <item>cpdf_set_viewer_preferences</item>
+      <item>cpdf_set_word_spacing</item>
+      <item>cpdf_setdash</item>
+      <item>cpdf_setflat</item>
+      <item>cpdf_setgray</item>
+      <item>cpdf_setgray_fill</item>
+      <item>cpdf_setgray_stroke</item>
+      <item>cpdf_setlinecap</item>
+      <item>cpdf_setlinejoin</item>
+      <item>cpdf_setlinewidth</item>
+      <item>cpdf_setmiterlimit</item>
+      <item>cpdf_setrgbcolor</item>
+      <item>cpdf_setrgbcolor_fill</item>
+      <item>cpdf_setrgbcolor_stroke</item>
+      <item>cpdf_show</item>
+      <item>cpdf_show_xy</item>
+      <item>cpdf_stringwidth</item>
+      <item>cpdf_stroke</item>
+      <item>cpdf_text</item>
+      <item>cpdf_translate</item>
+      <item>crack_check</item>
+      <item>crack_closedict</item>
+      <item>crack_getlastmessage</item>
+      <item>crack_opendict</item>
+      <item>crc32</item>
+      <item>create_function</item>
+      <item>crypt</item>
+      <item>ctype_alnum</item>
+      <item>ctype_alpha</item>
+      <item>ctype_cntrl</item>
+      <item>ctype_digit</item>
+      <item>ctype_graph</item>
+      <item>ctype_lower</item>
+      <item>ctype_print</item>
+      <item>ctype_punct</item>
+      <item>ctype_space</item>
+      <item>ctype_upper</item>
+      <item>ctype_xdigit</item>
+      <item>curl_close</item>
+      <item>curl_copy_handle</item>
+      <item>curl_errno</item>
+      <item>curl_error</item>
+      <item>curl_exec</item>
+      <item>curl_getinfo</item>
+      <item>curl_init</item>
+      <item>curl_multi_add_handle</item>
+      <item>curl_multi_close</item>
+      <item>curl_multi_exec</item>
+      <item>curl_multi_getcontent</item>
+      <item>curl_multi_info_read</item>
+      <item>curl_multi_init</item>
+      <item>curl_multi_remove_handle</item>
+      <item>curl_multi_select</item>
+      <item>curl_setopt</item>
+      <item>curl_setopt_array</item>
+      <item>curl_version</item>
+      <item>current</item>
+      <item>cybercash_base64_decode</item>
+      <item>cybercash_base64_encode</item>
+      <item>cybercash_decr</item>
+      <item>cybercash_encr</item>
+      <item>cybermut_creerformulairecm</item>
+      <item>cybermut_creerreponsecm</item>
+      <item>cybermut_testmac</item>
+      <item>cyrus_authenticate</item>
+      <item>cyrus_bind</item>
+      <item>cyrus_close</item>
+      <item>cyrus_connect</item>
+      <item>cyrus_query</item>
+      <item>cyrus_unbind</item>
+      <item>date</item>
+      <item>date_add</item>
+      <item>date_create</item>
+      <item>date_create_from_format</item>
+      <item>date_date_set</item>
+      <item>date_default_timezone_get</item>
+      <item>date_default_timezone_set</item>
+      <item>date_diff</item>
+      <item>date_format</item>
+      <item>date_get_last_errors</item>
+      <item>date_interval_create_from_date_string</item>
+      <item>date_interval_format</item>
+      <item>date_isodate_set</item>
+      <item>date_modify</item>
+      <item>date_offset_get</item>
+      <item>date_parse</item>
+      <item>date_parse_from_format</item>
+      <item>date_sub</item>
+      <item>date_sun_info</item>
+      <item>date_sunrise</item>
+      <item>date_sunset</item>
+      <item>date_time_set</item>
+      <item>date_timestamp_get</item>
+      <item>date_timestamp_set</item>
+      <item>date_timezone_get</item>
+      <item>date_timezone_set</item>
+      <item>dba_close</item>
+      <item>dba_delete</item>
+      <item>dba_exists</item>
+      <item>dba_fetch</item>
+      <item>dba_firstkey</item>
+      <item>dba_handlers</item>
+      <item>dba_insert</item>
+      <item>dba_key_split</item>
+      <item>dba_list</item>
+      <item>dba_nextkey</item>
+      <item>dba_open</item>
+      <item>dba_optimize</item>
+      <item>dba_popen</item>
+      <item>dba_replace</item>
+      <item>dba_sync</item>
+      <item>dbase_add_record</item>
+      <item>dbase_close</item>
+      <item>dbase_create</item>
+      <item>dbase_delete_record</item>
+      <item>dbase_get_header_info</item>
+      <item>dbase_get_record</item>
+      <item>dbase_get_record_with_names</item>
+      <item>dbase_numfields</item>
+      <item>dbase_numrecords</item>
+      <item>dbase_open</item>
+      <item>dbase_pack</item>
+      <item>dbase_replace_record</item>
+      <item>dblist</item>
+      <item>dbmclose</item>
+      <item>dbmdelete</item>
+      <item>dbmexists</item>
+      <item>dbmfetch</item>
+      <item>dbmfirstkey</item>
+      <item>dbminsert</item>
+      <item>dbmnextkey</item>
+      <item>dbmopen</item>
+      <item>dbmreplace</item>
+      <item>dbplus_add</item>
+      <item>dbplus_aql</item>
+      <item>dbplus_chdir</item>
+      <item>dbplus_close</item>
+      <item>dbplus_curr</item>
+      <item>dbplus_errcode</item>
+      <item>dbplus_errno</item>
+      <item>dbplus_find</item>
+      <item>dbplus_first</item>
+      <item>dbplus_flush</item>
+      <item>dbplus_freealllocks</item>
+      <item>dbplus_freelock</item>
+      <item>dbplus_freerlocks</item>
+      <item>dbplus_getlock</item>
+      <item>dbplus_getunique</item>
+      <item>dbplus_info</item>
+      <item>dbplus_last</item>
+      <item>dbplus_lockrel</item>
+      <item>dbplus_next</item>
+      <item>dbplus_open</item>
+      <item>dbplus_prev</item>
+      <item>dbplus_rchperm</item>
+      <item>dbplus_rcreate</item>
+      <item>dbplus_rcrtexact</item>
+      <item>dbplus_rcrtlike</item>
+      <item>dbplus_resolve</item>
+      <item>dbplus_restorepos</item>
+      <item>dbplus_rkeys</item>
+      <item>dbplus_ropen</item>
+      <item>dbplus_rquery</item>
+      <item>dbplus_rrename</item>
+      <item>dbplus_rsecindex</item>
+      <item>dbplus_runlink</item>
+      <item>dbplus_rzap</item>
+      <item>dbplus_savepos</item>
+      <item>dbplus_setindex</item>
+      <item>dbplus_setindexbynumber</item>
+      <item>dbplus_sql</item>
+      <item>dbplus_tcl</item>
+      <item>dbplus_tremove</item>
+      <item>dbplus_undo</item>
+      <item>dbplus_undoprepare</item>
+      <item>dbplus_unlockrel</item>
+      <item>dbplus_unselect</item>
+      <item>dbplus_update</item>
+      <item>dbplus_xlockrel</item>
+      <item>dbplus_xunlockrel</item>
+      <item>dbx_close</item>
+      <item>dbx_compare</item>
+      <item>dbx_connect</item>
+      <item>dbx_error</item>
+      <item>dbx_escape_string</item>
+      <item>dbx_fetch_row</item>
+      <item>dbx_query</item>
+      <item>dbx_sort</item>
+      <item>dcgettext</item>
+      <item>dcngettext</item>
+      <item>debug_backtrace</item>
+      <item>debug_print_backtrace</item>
+      <item>debug_zval_dump</item>
+      <item>decbin</item>
+      <item>dechex</item>
+      <item>decoct</item>
+      <item>define</item>
+      <item>define_syslog_variables</item>
+      <item>defined</item>
+      <item>deg2rad</item>
+      <item>dgettext</item>
+      <item>die</item>
+      <item>dio_close</item>
+      <item>dio_fcntl</item>
+      <item>dio_open</item>
+      <item>dio_read</item>
+      <item>dio_seek</item>
+      <item>dio_stat</item>
+      <item>dio_tcsetattr</item>
+      <item>dio_truncate</item>
+      <item>dio_write</item>
+      <item>dir</item>
+      <item>dirname</item>
+      <item>disk_free_space</item>
+      <item>disk_total_space</item>
+      <item>diskfreespace</item>
+      <item>dl</item>
+      <item>dngettext</item>
+      <item>dns_check_record</item>
+      <item>dns_get_mx</item>
+      <item>dns_get_record</item>
+      <item>dom_import_simplexml</item>
+      <item>domxml_add_root</item>
+      <item>domxml_attributes</item>
+      <item>domxml_children</item>
+      <item>domxml_dumpmem</item>
+      <item>domxml_get_attribute</item>
+      <item>domxml_new_child</item>
+      <item>domxml_new_xmldoc</item>
+      <item>domxml_node</item>
+      <item>domxml_node_set_content</item>
+      <item>domxml_node_unlink_node</item>
+      <item>domxml_root</item>
+      <item>domxml_set_attribute</item>
+      <item>domxml_version</item>
+      <item>doubleval</item>
+      <item>each</item>
+      <item>easter_date</item>
+      <item>easter_days</item>
+      <item>ebcdic2ascii</item>
+      <item>echo</item>
+      <item>empty</item>
+      <item>end</item>
+      <item>error_get_last</item>
+      <item>error_log</item>
+      <item>error_reporting</item>
+      <item>escapeshellarg</item>
+      <item>escapeshellcmd</item>
+      <item>eval</item>
+      <item>exec</item>
+      <item>exif_imagetype</item>
+      <item>exif_read_data</item>
+      <item>exif_tagname</item>
+      <item>exif_thumbnail</item>
+      <item>exit</item>
+      <item>exp</item>
+      <item>explode</item>
+      <item>expm1</item>
+      <item>extension_loaded</item>
+      <item>extract</item>
+      <item>ezmlm_hash</item>
+      <item>fam_cancel_monitor</item>
+      <item>fam_close</item>
+      <item>fam_monitor_collection</item>
+      <item>fam_monitor_directory</item>
+      <item>fam_monitor_file</item>
+      <item>fam_next_event</item>
+      <item>fam_open</item>
+      <item>fam_pending</item>
+      <item>fam_resume_monitor</item>
+      <item>fam_suspend_monitor</item>
+      <item>fbsql_affected_rows</item>
+      <item>fbsql_autocommit</item>
+      <item>fbsql_change_user</item>
+      <item>fbsql_close</item>
+      <item>fbsql_commit</item>
+      <item>fbsql_connect</item>
+      <item>fbsql_create_blob</item>
+      <item>fbsql_create_clob</item>
+      <item>fbsql_create_db</item>
+      <item>fbsql_data_seek</item>
+      <item>fbsql_database</item>
+      <item>fbsql_database_password</item>
+      <item>fbsql_db_query</item>
+      <item>fbsql_db_status</item>
+      <item>fbsql_drop_db</item>
+      <item>fbsql_errno</item>
+      <item>fbsql_error</item>
+      <item>fbsql_fetch_array</item>
+      <item>fbsql_fetch_assoc</item>
+      <item>fbsql_fetch_field</item>
+      <item>fbsql_fetch_lengths</item>
+      <item>fbsql_fetch_object</item>
+      <item>fbsql_fetch_row</item>
+      <item>fbsql_field_flags</item>
+      <item>fbsql_field_len</item>
+      <item>fbsql_field_name</item>
+      <item>fbsql_field_seek</item>
+      <item>fbsql_field_table</item>
+      <item>fbsql_field_type</item>
+      <item>fbsql_free_result</item>
+      <item>fbsql_get_autostart_info</item>
+      <item>fbsql_hostname</item>
+      <item>fbsql_insert_id</item>
+      <item>fbsql_list_dbs</item>
+      <item>fbsql_list_fields</item>
+      <item>fbsql_list_tables</item>
+      <item>fbsql_next_result</item>
+      <item>fbsql_num_fields</item>
+      <item>fbsql_num_rows</item>
+      <item>fbsql_password</item>
+      <item>fbsql_pconnect</item>
+      <item>fbsql_query</item>
+      <item>fbsql_read_blob</item>
+      <item>fbsql_read_clob</item>
+      <item>fbsql_result</item>
+      <item>fbsql_rollback</item>
+      <item>fbsql_select_db</item>
+      <item>fbsql_set_lob_mode</item>
+      <item>fbsql_set_transaction</item>
+      <item>fbsql_start_db</item>
+      <item>fbsql_stop_db</item>
+      <item>fbsql_tablename</item>
+      <item>fbsql_username</item>
+      <item>fbsql_warnings</item>
+      <item>fclose</item>
+      <item>fdf_add_template</item>
+      <item>fdf_close</item>
+      <item>fdf_create</item>
+      <item>fdf_get_file</item>
+      <item>fdf_get_status</item>
+      <item>fdf_get_value</item>
+      <item>fdf_next_field_name</item>
+      <item>fdf_open</item>
+      <item>fdf_save</item>
+      <item>fdf_set_ap</item>
+      <item>fdf_set_encoding</item>
+      <item>fdf_set_file</item>
+      <item>fdf_set_flags</item>
+      <item>fdf_set_javascript_action</item>
+      <item>fdf_set_opt</item>
+      <item>fdf_set_status</item>
+      <item>fdf_set_submit_form_action</item>
+      <item>fdf_set_value</item>
+      <item>feof</item>
+      <item>fflush</item>
+      <item>fgetc</item>
+      <item>fgetcsv</item>
+      <item>fgets</item>
+      <item>fgetss</item>
+      <item>file</item>
+      <item>file_exists</item>
+      <item>file_get_contents</item>
+      <item>file_put_contents</item>
+      <item>fileatime</item>
+      <item>filectime</item>
+      <item>filegroup</item>
+      <item>fileinode</item>
+      <item>filemtime</item>
+      <item>fileowner</item>
+      <item>fileperms</item>
+      <item>filepro</item>
+      <item>filepro_fieldcount</item>
+      <item>filepro_fieldname</item>
+      <item>filepro_fieldtype</item>
+      <item>filepro_fieldwidth</item>
+      <item>filepro_retrieve</item>
+      <item>filepro_rowcount</item>
+      <item>filesize</item>
+      <item>filetype</item>
+      <item>filter_has_var</item>
+      <item>filter_id</item>
+      <item>filter_input</item>
+      <item>filter_input_array</item>
+      <item>filter_list</item>
+      <item>filter_var</item>
+      <item>filter_var_array</item>
+      <item>floatval</item>
+      <item>flock</item>
+      <item>floor</item>
+      <item>flush</item>
+      <item>fmod</item>
+      <item>fnmatch</item>
+      <item>fopen</item>
+      <item>forward_static_call</item>
+      <item>forward_static_call_array</item>
+      <item>fpassthru</item>
+      <item>fprintf</item>
+      <item>fputcsv</item>
+      <item>fputs</item>
+      <item>fread</item>
+      <item>frenchtojd</item>
+      <item>fribidi_log2vis</item>
+      <item>fscanf</item>
+      <item>fseek</item>
+      <item>fsockopen</item>
+      <item>fstat</item>
+      <item>ftell</item>
+      <item>ftok</item>
+      <item>ftp_alloc</item>
+      <item>ftp_cdup</item>
+      <item>ftp_chdir</item>
+      <item>ftp_chmod</item>
+      <item>ftp_close</item>
+      <item>ftp_connect</item>
+      <item>ftp_delete</item>
+      <item>ftp_exec</item>
+      <item>ftp_fget</item>
+      <item>ftp_fput</item>
+      <item>ftp_get</item>
+      <item>ftp_get_option</item>
+      <item>ftp_login</item>
+      <item>ftp_mdtm</item>
+      <item>ftp_mkdir</item>
+      <item>ftp_nb_continue</item>
+      <item>ftp_nb_fget</item>
+      <item>ftp_nb_fput</item>
+      <item>ftp_nb_get</item>
+      <item>ftp_nb_put</item>
+      <item>ftp_nlist</item>
+      <item>ftp_pasv</item>
+      <item>ftp_put</item>
+      <item>ftp_pwd</item>
+      <item>ftp_quit</item>
+      <item>ftp_raw</item>
+      <item>ftp_rawlist</item>
+      <item>ftp_rename</item>
+      <item>ftp_rmdir</item>
+      <item>ftp_set_option</item>
+      <item>ftp_site</item>
+      <item>ftp_size</item>
+      <item>ftp_ssl_connect</item>
+      <item>ftp_systype</item>
+      <item>ftruncate</item>
+      <item>func_get_arg</item>
+      <item>func_get_args</item>
+      <item>func_num_args</item>
+      <item>function_exists</item>
+      <item>fwrite</item>
+      <item>gc_collect_cycles</item>
+      <item>gc_disable</item>
+      <item>gc_enable</item>
+      <item>gc_enabled</item>
+      <item>gd_info</item>
+      <item>get_called_class</item>
+      <item>get_browser</item>
+      <item>get_cfg_var</item>
+      <item>get_class</item>
+      <item>get_class_methods</item>
+      <item>get_class_vars</item>
+      <item>get_current_user</item>
+      <item>get_declared_classes</item>
+      <item>get_declared_interfaces</item>
+      <item>get_defined_constants</item>
+      <item>get_defined_functions</item>
+      <item>get_defined_vars</item>
+      <item>get_extension_funcs</item>
+      <item>get_headers</item>
+      <item>get_html_translation_table</item>
+      <item>get_include_path</item>
+      <item>get_included_files</item>
+      <item>get_loaded_extensions</item>
+      <item>get_magic_quotes_gpc</item>
+      <item>get_magic_quotes_runtime</item>
+      <item>get_meta_tags</item>
+      <item>get_object_vars</item>
+      <item>get_parent_class</item>
+      <item>get_required_files</item>
+      <item>get_resource_type</item>
+      <item>getallheaders</item>
+      <item>getcwd</item>
+      <item>getdate</item>
+      <item>getenv</item>
+      <item>gethostbyaddr</item>
+      <item>gethostbyname</item>
+      <item>gethostbynamel</item>
+      <item>gethostname</item>
+      <item>getimagesize</item>
+      <item>getlastmod</item>
+      <item>getmxrr</item>
+      <item>getmygid</item>
+      <item>getmyinode</item>
+      <item>getmypid</item>
+      <item>getmyuid</item>
+      <item>getopt</item>
+      <item>getprotobyname</item>
+      <item>getprotobynumber</item>
+      <item>getrandmax</item>
+      <item>getrusage</item>
+      <item>getservbyname</item>
+      <item>getservbyport</item>
+      <item>gettext</item>
+      <item>gettimeofday</item>
+      <item>gettype</item>
+      <item>glob</item>
+      <item>gmdate</item>
+      <item>gmmktime</item>
+      <item>gmp_abs</item>
+      <item>gmp_add</item>
+      <item>gmp_and</item>
+      <item>gmp_clrbit</item>
+      <item>gmp_cmp</item>
+      <item>gmp_com</item>
+      <item>gmp_div</item>
+      <item>gmp_div_q</item>
+      <item>gmp_div_qr</item>
+      <item>gmp_div_r</item>
+      <item>gmp_divexact</item>
+      <item>gmp_fact</item>
+      <item>gmp_gcd</item>
+      <item>gmp_gcdext</item>
+      <item>gmp_hamdist</item>
+      <item>gmp_init</item>
+      <item>gmp_intval</item>
+      <item>gmp_invert</item>
+      <item>gmp_jacobi</item>
+      <item>gmp_legendre</item>
+      <item>gmp_mod</item>
+      <item>gmp_mul</item>
+      <item>gmp_neg</item>
+      <item>gmp_or</item>
+      <item>gmp_perfect_square</item>
+      <item>gmp_popcount</item>
+      <item>gmp_pow</item>
+      <item>gmp_powm</item>
+      <item>gmp_prob_prime</item>
+      <item>gmp_random</item>
+      <item>gmp_scan0</item>
+      <item>gmp_scan1</item>
+      <item>gmp_setbit</item>
+      <item>gmp_sign</item>
+      <item>gmp_sqrt</item>
+      <item>gmp_sqrtrem</item>
+      <item>gmp_strval</item>
+      <item>gmp_sub</item>
+      <item>gmp_xor</item>
+      <item>gmstrftime</item>
+      <item>gregoriantojd</item>
+      <item>gzclose</item>
+      <item>gzcompress</item>
+      <item>gzdeflate</item>
+      <item>gzencode</item>
+      <item>gzeof</item>
+      <item>gzfile</item>
+      <item>gzgetc</item>
+      <item>gzgets</item>
+      <item>gzgetss</item>
+      <item>gzinflate</item>
+      <item>gzopen</item>
+      <item>gzpassthru</item>
+      <item>gzputs</item>
+      <item>gzread</item>
+      <item>gzrewind</item>
+      <item>gzseek</item>
+      <item>gztell</item>
+      <item>gzuncompress</item>
+      <item>gzwrite</item>
+      <item>hash</item>
+      <item>hash_algos</item>
+      <item>hash_copy</item>
+      <item>hash_file</item>
+      <item>hash_final</item>
+      <item>hash_hmac</item>
+      <item>hash_hmac_file</item>
+      <item>hash_init</item>
+      <item>hash_update</item>
+      <item>hash_update_file</item>
+      <item>hash_update_stream</item>
+      <item>header</item>
+      <item>header_remove</item>
+      <item>headers_list</item>
+      <item>headers_sent</item>
+      <item>hebrev</item>
+      <item>hebrevc</item>
+      <item>hexdec</item>
+      <item>highlight_file</item>
+      <item>highlight_string</item>
+      <item>html_entity_decode</item>
+      <item>htmlentities</item>
+      <item>htmlspecialchars</item>
+      <item>htmlspecialchars_decode</item>
+      <item>http_build_query</item>
+      <item>hw_array2objrec</item>
+      <item>hw_changeobject</item>
+      <item>hw_children</item>
+      <item>hw_childrenobj</item>
+      <item>hw_close</item>
+      <item>hw_connect</item>
+      <item>hw_connection_info</item>
+      <item>hw_cp</item>
+      <item>hw_deleteobject</item>
+      <item>hw_docbyanchor</item>
+      <item>hw_docbyanchorobj</item>
+      <item>hw_document_attributes</item>
+      <item>hw_document_bodytag</item>
+      <item>hw_document_content</item>
+      <item>hw_document_setcontent</item>
+      <item>hw_document_size</item>
+      <item>hw_dummy</item>
+      <item>hw_edittext</item>
+      <item>hw_error</item>
+      <item>hw_errormsg</item>
+      <item>hw_free_document</item>
+      <item>hw_getanchors</item>
+      <item>hw_getanchorsobj</item>
+      <item>hw_getandlock</item>
+      <item>hw_getchildcoll</item>
+      <item>hw_getchildcollobj</item>
+      <item>hw_getchilddoccoll</item>
+      <item>hw_getchilddoccollobj</item>
+      <item>hw_getobject</item>
+      <item>hw_getobjectbyquery</item>
+      <item>hw_getobjectbyquerycoll</item>
+      <item>hw_getobjectbyquerycollobj</item>
+      <item>hw_getobjectbyqueryobj</item>
+      <item>hw_getparents</item>
+      <item>hw_getparentsobj</item>
+      <item>hw_getrellink</item>
+      <item>hw_getremote</item>
+      <item>hw_getremotechildren</item>
+      <item>hw_getsrcbydestobj</item>
+      <item>hw_gettext</item>
+      <item>hw_getusername</item>
+      <item>hw_identify</item>
+      <item>hw_incollections</item>
+      <item>hw_info</item>
+      <item>hw_inscoll</item>
+      <item>hw_insdoc</item>
+      <item>hw_insertanchors</item>
+      <item>hw_insertdocument</item>
+      <item>hw_insertobject</item>
+      <item>hw_mapid</item>
+      <item>hw_modifyobject</item>
+      <item>hw_mv</item>
+      <item>hw_new_document</item>
+      <item>hw_objrec2array</item>
+      <item>hw_output_document</item>
+      <item>hw_pconnect</item>
+      <item>hw_pipedocument</item>
+      <item>hw_root</item>
+      <item>hw_setlinkroot</item>
+      <item>hw_stat</item>
+      <item>hw_unlock</item>
+      <item>hw_who</item>
+      <item>hypot</item>
+      <item>ibase_blob_add</item>
+      <item>ibase_blob_cancel</item>
+      <item>ibase_blob_close</item>
+      <item>ibase_blob_create</item>
+      <item>ibase_blob_echo</item>
+      <item>ibase_blob_get</item>
+      <item>ibase_blob_import</item>
+      <item>ibase_blob_info</item>
+      <item>ibase_blob_open</item>
+      <item>ibase_close</item>
+      <item>ibase_commit</item>
+      <item>ibase_connect</item>
+      <item>ibase_errmsg</item>
+      <item>ibase_execute</item>
+      <item>ibase_fetch_object</item>
+      <item>ibase_fetch_row</item>
+      <item>ibase_field_info</item>
+      <item>ibase_free_query</item>
+      <item>ibase_free_result</item>
+      <item>ibase_num_fields</item>
+      <item>ibase_pconnect</item>
+      <item>ibase_prepare</item>
+      <item>ibase_query</item>
+      <item>ibase_rollback</item>
+      <item>ibase_timefmt</item>
+      <item>ibase_trans</item>
+      <item>icap_close</item>
+      <item>icap_create_calendar</item>
+      <item>icap_delete_calendar</item>
+      <item>icap_delete_event</item>
+      <item>icap_fetch_event</item>
+      <item>icap_list_alarms</item>
+      <item>icap_list_events</item>
+      <item>icap_open</item>
+      <item>icap_rename_calendar</item>
+      <item>icap_reopen</item>
+      <item>icap_snooze</item>
+      <item>icap_store_event</item>
+      <item>iconv</item>
+      <item>iconv_get_encoding</item>
+      <item>iconv_mime_decode</item>
+      <item>iconv_mime_decode_headers</item>
+      <item>iconv_mime_encode</item>
+      <item>iconv_set_encoding</item>
+      <item>iconv_strlen</item>
+      <item>iconv_strpos</item>
+      <item>iconv_strrpos</item>
+      <item>iconv_substr</item>
+      <item>idate</item>
+      <item>ifx_affected_rows</item>
+      <item>ifx_blobinfile_mode</item>
+      <item>ifx_byteasvarchar</item>
+      <item>ifx_close</item>
+      <item>ifx_connect</item>
+      <item>ifx_copy_blob</item>
+      <item>ifx_create_blob</item>
+      <item>ifx_create_char</item>
+      <item>ifx_do</item>
+      <item>ifx_error</item>
+      <item>ifx_errormsg</item>
+      <item>ifx_fetch_row</item>
+      <item>ifx_fieldproperties</item>
+      <item>ifx_fieldtypes</item>
+      <item>ifx_free_blob</item>
+      <item>ifx_free_char</item>
+      <item>ifx_free_result</item>
+      <item>ifx_get_blob</item>
+      <item>ifx_get_char</item>
+      <item>ifx_getsqlca</item>
+      <item>ifx_htmltbl_result</item>
+      <item>ifx_nullformat</item>
+      <item>ifx_num_fields</item>
+      <item>ifx_num_rows</item>
+      <item>ifx_pconnect</item>
+      <item>ifx_prepare</item>
+      <item>ifx_query</item>
+      <item>ifx_textasvarchar</item>
+      <item>ifx_update_blob</item>
+      <item>ifx_update_char</item>
+      <item>ifxus_close_slob</item>
+      <item>ifxus_create_slob</item>
+      <item>ifxus_free_slob</item>
+      <item>ifxus_open_slob</item>
+      <item>ifxus_read_slob</item>
+      <item>ifxus_seek_slob</item>
+      <item>ifxus_tell_slob</item>
+      <item>ifxus_write_slob</item>
+      <item>ignore_user_abort</item>
+      <item>image2wbmp</item>
+      <item>image_type_to_extension</item>
+      <item>image_type_to_mime_type</item>
+      <item>imagealphablending</item>
+      <item>imageantialias</item>
+      <item>imagearc</item>
+      <item>imagechar</item>
+      <item>imagecharup</item>
+      <item>imagecolorallocate</item>
+      <item>imagecolorallocatealpha</item>
+      <item>imagecolorat</item>
+      <item>imagecolorclosest</item>
+      <item>imagecolorclosestalpha</item>
+      <item>imagecolorclosesthwb</item>
+      <item>imagecolordeallocate</item>
+      <item>imagecolorexact</item>
+      <item>imagecolorexactalpha</item>
+      <item>imagecolormatch</item>
+      <item>imagecolorresolve</item>
+      <item>imagecolorresolvealpha</item>
+      <item>imagecolorset</item>
+      <item>imagecolorsforindex</item>
+      <item>imagecolorstotal</item>
+      <item>imagecolortransparent</item>
+      <item>imageconvolution</item>
+      <item>imagecopy</item>
+      <item>imagecopymerge</item>
+      <item>imagecopymergegray</item>
+      <item>imagecopyresampled</item>
+      <item>imagecopyresized</item>
+      <item>imagecreate</item>
+      <item>imagecreatefromgd</item>
+      <item>imagecreatefromgd2</item>
+      <item>imagecreatefromgd2part</item>
+      <item>imagecreatefromgif</item>
+      <item>imagecreatefromjpeg</item>
+      <item>imagecreatefrompng</item>
+      <item>imagecreatefromstring</item>
+      <item>imagecreatefromwbmp</item>
+      <item>imagecreatefromxbm</item>
+      <item>imagecreatefromxpm</item>
+      <item>imagecreatetruecolor</item>
+      <item>imagedashedline</item>
+      <item>imagedestroy</item>
+      <item>imageellipse</item>
+      <item>imagefill</item>
+      <item>imagefilledarc</item>
+      <item>imagefilledellipse</item>
+      <item>imagefilledpolygon</item>
+      <item>imagefilledrectangle</item>
+      <item>imagefilltoborder</item>
+      <item>imagefilter</item>
+      <item>imagefontheight</item>
+      <item>imagefontwidth</item>
+      <item>imageftbbox</item>
+      <item>imagefttext</item>
+      <item>imagegammacorrect</item>
+      <item>imagegd</item>
+      <item>imagegd2</item>
+      <item>imagegif</item>
+      <item>imageinterlace</item>
+      <item>imageistruecolor</item>
+      <item>imagejpeg</item>
+      <item>imagelayereffect</item>
+      <item>imageline</item>
+      <item>imageloadfont</item>
+      <item>imagepalettecopy</item>
+      <item>imagepng</item>
+      <item>imagepolygon</item>
+      <item>imagepsbbox</item>
+      <item>imagepsencodefont</item>
+      <item>imagepsextendfont</item>
+      <item>imagepsfreefont</item>
+      <item>imagepsloadfont</item>
+      <item>imagepsslantfont</item>
+      <item>imagepstext</item>
+      <item>imagerectangle</item>
+      <item>imagerotate</item>
+      <item>imagesavealpha</item>
+      <item>imagesetbrush</item>
+      <item>imagesetpixel</item>
+      <item>imagesetstyle</item>
+      <item>imagesetthickness</item>
+      <item>imagesettile</item>
+      <item>imagestring</item>
+      <item>imagestringup</item>
+      <item>imagesx</item>
+      <item>imagesy</item>
+      <item>imagetruecolortopalette</item>
+      <item>imagettfbbox</item>
+      <item>imagettftext</item>
+      <item>imagetypes</item>
+      <item>imagewbmp</item>
+      <item>imagexbm</item>
+      <item>imap_8bit</item>
+      <item>imap_alerts</item>
+      <item>imap_append</item>
+      <item>imap_base64</item>
+      <item>imap_binary</item>
+      <item>imap_body</item>
+      <item>imap_bodystruct</item>
+      <item>imap_check</item>
+      <item>imap_clearflag_full</item>
+      <item>imap_close</item>
+      <item>imap_create</item>
+      <item>imap_createmailbox</item>
+      <item>imap_delete</item>
+      <item>imap_deletemailbox</item>
+      <item>imap_errors</item>
+      <item>imap_expunge</item>
+      <item>imap_fetch_overview</item>
+      <item>imap_fetchbody</item>
+      <item>imap_fetchheader</item>
+      <item>imap_fetchstructure</item>
+      <item>imap_fetchtext</item>
+      <item>imap_get_quota</item>
+      <item>imap_get_quotaroot</item>
+      <item>imap_getacl</item>
+      <item>imap_getmailboxes</item>
+      <item>imap_getsubscribed</item>
+      <item>imap_header</item>
+      <item>imap_headerinfo</item>
+      <item>imap_headers</item>
+      <item>imap_last_error</item>
+      <item>imap_list</item>
+      <item>imap_listmailbox</item>
+      <item>imap_listsubscribed</item>
+      <item>imap_lsub</item>
+      <item>imap_mail</item>
+      <item>imap_mail_compose</item>
+      <item>imap_mail_copy</item>
+      <item>imap_mail_move</item>
+      <item>imap_mailboxmsginfo</item>
+      <item>imap_mime_header_decode</item>
+      <item>imap_msgno</item>
+      <item>imap_num_msg</item>
+      <item>imap_num_recent</item>
+      <item>imap_open</item>
+      <item>imap_ping</item>
+      <item>imap_popen</item>
+      <item>imap_qprint</item>
+      <item>imap_rename</item>
+      <item>imap_renamemailbox</item>
+      <item>imap_reopen</item>
+      <item>imap_rfc822_parse_adrlist</item>
+      <item>imap_rfc822_parse_headers</item>
+      <item>imap_rfc822_write_address</item>
+      <item>imap_scan</item>
+      <item>imap_scanmailbox</item>
+      <item>imap_search</item>
+      <item>imap_set_quota</item>
+      <item>imap_setacl</item>
+      <item>imap_setflag_full</item>
+      <item>imap_sort</item>
+      <item>imap_status</item>
+      <item>imap_subscribe</item>
+      <item>imap_thread</item>
+      <item>imap_timeout</item>
+      <item>imap_uid</item>
+      <item>imap_undelete</item>
+      <item>imap_unsubscribe</item>
+      <item>imap_utf7_decode</item>
+      <item>imap_utf7_encode</item>
+      <item>imap_utf8</item>
+      <item>implode</item>
+      <item>import_request_variables</item>
+      <item>in_array</item>
+      <item>include</item>
+      <item>include_once</item>
+      <item>inet_ntop</item>
+      <item>inet_pton</item>
+      <item>ingres_autocommit</item>
+      <item>ingres_close</item>
+      <item>ingres_commit</item>
+      <item>ingres_connect</item>
+      <item>ingres_fetch_array</item>
+      <item>ingres_fetch_object</item>
+      <item>ingres_fetch_row</item>
+      <item>ingres_field_length</item>
+      <item>ingres_field_name</item>
+      <item>ingres_field_nullable</item>
+      <item>ingres_field_precision</item>
+      <item>ingres_field_scale</item>
+      <item>ingres_field_type</item>
+      <item>ingres_num_fields</item>
+      <item>ingres_num_rows</item>
+      <item>ingres_pconnect</item>
+      <item>ingres_query</item>
+      <item>ingres_rollback</item>
+      <item>ini_alter</item>
+      <item>ini_get</item>
+      <item>ini_get_all</item>
+      <item>ini_restore</item>
+      <item>ini_set</item>
+      <item>interface_exists</item>
+      <item>intval</item>
+      <item>ip2long</item>
+      <item>iptcembed</item>
+      <item>iptcparse</item>
+      <item>ircg_channel_mode</item>
+      <item>ircg_disconnect</item>
+      <item>ircg_fetch_error_msg</item>
+      <item>ircg_get_username</item>
+      <item>ircg_html_encode</item>
+      <item>ircg_ignore_add</item>
+      <item>ircg_ignore_del</item>
+      <item>ircg_is_conn_alive</item>
+      <item>ircg_join</item>
+      <item>ircg_kick</item>
+      <item>ircg_lookup_format_messages</item>
+      <item>ircg_msg</item>
+      <item>ircg_nick</item>
+      <item>ircg_nickname_escape</item>
+      <item>ircg_nickname_unescape</item>
+      <item>ircg_notice</item>
+      <item>ircg_part</item>
+      <item>ircg_pconnect</item>
+      <item>ircg_register_format_messages</item>
+      <item>ircg_set_current</item>
+      <item>ircg_set_file</item>
+      <item>ircg_set_on_die</item>
+      <item>ircg_topic</item>
+      <item>ircg_whois</item>
+      <item>is_a</item>
+      <item>is_array</item>
+      <item>is_bool</item>
+      <item>is_callable</item>
+      <item>is_dir</item>
+      <item>is_double</item>
+      <item>is_executable</item>
+      <item>is_file</item>
+      <item>is_finite</item>
+      <item>is_float</item>
+      <item>is_infinite</item>
+      <item>is_int</item>
+      <item>is_integer</item>
+      <item>is_link</item>
+      <item>is_long</item>
+      <item>is_nan</item>
+      <item>is_null</item>
+      <item>is_numeric</item>
+      <item>is_object</item>
+      <item>is_readable</item>
+      <item>is_real</item>
+      <item>is_resource</item>
+      <item>is_scalar</item>
+      <item>is_string</item>
+      <item>is_subclass_of</item>
+      <item>is_uploaded_file</item>
+      <item>is_writable</item>
+      <item>is_writeable</item>
+      <item>isset</item>
+      <item>iterator_apply</item>
+      <item>iterator_count</item>
+      <item>iterator_to_array</item>
+      <item>java_last_exception_clear</item>
+      <item>java_last_exception_get</item>
+      <item>jddayofweek</item>
+      <item>jdmonthname</item>
+      <item>jdtofrench</item>
+      <item>jdtogregorian</item>
+      <item>jdtojewish</item>
+      <item>jdtojulian</item>
+      <item>jdtounix</item>
+      <item>jewishtojd</item>
+      <item>join</item>
+      <item>jpeg2wbmp</item>
+      <item>json_decode</item>
+      <item>json_encode</item>
+      <item>json_last_error</item>
+      <item>juliantojd</item>
+      <item>key</item>
+      <item>key_exists</item>
+      <item>krsort</item>
+      <item>ksort</item>
+      <item>lcfirst</item>
+      <item>lcg_value</item>
+      <item>lchgrp</item>
+      <item>lchown</item>
+      <item>ldap_8859_to_t61</item>
+      <item>ldap_add</item>
+      <item>ldap_bind</item>
+      <item>ldap_close</item>
+      <item>ldap_compare</item>
+      <item>ldap_connect</item>
+      <item>ldap_count_entries</item>
+      <item>ldap_delete</item>
+      <item>ldap_dn2ufn</item>
+      <item>ldap_err2str</item>
+      <item>ldap_errno</item>
+      <item>ldap_error</item>
+      <item>ldap_explode_dn</item>
+      <item>ldap_first_attribute</item>
+      <item>ldap_first_entry</item>
+      <item>ldap_first_reference</item>
+      <item>ldap_free_result</item>
+      <item>ldap_get_attributes</item>
+      <item>ldap_get_dn</item>
+      <item>ldap_get_entries</item>
+      <item>ldap_get_option</item>
+      <item>ldap_get_values</item>
+      <item>ldap_get_values_len</item>
+      <item>ldap_list</item>
+      <item>ldap_mod_add</item>
+      <item>ldap_mod_del</item>
+      <item>ldap_mod_replace</item>
+      <item>ldap_modify</item>
+      <item>ldap_next_attribute</item>
+      <item>ldap_next_entry</item>
+      <item>ldap_next_reference</item>
+      <item>ldap_parse_reference</item>
+      <item>ldap_parse_result</item>
+      <item>ldap_read</item>
+      <item>ldap_rename</item>
+      <item>ldap_search</item>
+      <item>ldap_set_option</item>
+      <item>ldap_set_rebind_proc</item>
+      <item>ldap_sort</item>
+      <item>ldap_start_tls</item>
+      <item>ldap_t61_to_8859</item>
+      <item>ldap_unbind</item>
+      <item>levenshtein</item>
+      <item>libxml_clear_errors</item>
+      <item>libxml_get_errors</item>
+      <item>libxml_get_last_error</item>
+      <item>libxml_set_streams_context</item>
+      <item>libxml_set_streams_context</item>
+      <item>libxml_use_internal_errors</item>
+      <item>link</item>
+      <item>linkinfo</item>
+      <item>list</item>
+      <item>localeconv</item>
+      <item>localtime</item>
+      <item>log</item>
+      <item>log10</item>
+      <item>log1p</item>
+      <item>long2ip</item>
+      <item>lstat</item>
+      <item>ltrim</item>
+      <item>magic_quotes_runtime</item>
+      <item>mail</item>
+      <item>mailparse_determine_best_xfer_encoding</item>
+      <item>mailparse_msg_create</item>
+      <item>mailparse_msg_extract_part</item>
+      <item>mailparse_msg_extract_part_file</item>
+      <item>mailparse_msg_free</item>
+      <item>mailparse_msg_get_part</item>
+      <item>mailparse_msg_get_part_data</item>
+      <item>mailparse_msg_get_structure</item>
+      <item>mailparse_msg_parse</item>
+      <item>mailparse_msg_parse_file</item>
+      <item>mailparse_rfc822_parse_addresses</item>
+      <item>mailparse_stream_encode</item>
+      <item>mailparse_uudecode_all</item>
+      <item>max</item>
+      <item>mb_check_encoding</item>
+      <item>mb_convert_case</item>
+      <item>mb_convert_encoding</item>
+      <item>mb_convert_kana</item>
+      <item>mb_convert_variables</item>
+      <item>mb_decode_mimeheader</item>
+      <item>mb_decode_numericentity</item>
+      <item>mb_detect_encoding</item>
+      <item>mb_detect_order</item>
+      <item>mb_encode_mimeheader</item>
+      <item>mb_encode_numericentity</item>
+      <item>mb_encoding_aliases</item>
+      <item>mb_ereg</item>
+      <item>mb_ereg_match</item>
+      <item>mb_ereg_replace</item>
+      <item>mb_ereg_search</item>
+      <item>mb_ereg_search_getpos</item>
+      <item>mb_ereg_search_getregs</item>
+      <item>mb_ereg_search_init</item>
+      <item>mb_ereg_search_pos</item>
+      <item>mb_ereg_search_regs</item>
+      <item>mb_ereg_search_setpos</item>
+      <item>mb_eregi</item>
+      <item>mb_eregi_replace</item>
+      <item>mb_get_info</item>
+      <item>mb_http_input</item>
+      <item>mb_http_output</item>
+      <item>mb_internal_encoding</item>
+      <item>mb_language</item>
+      <item>mb_list_encodings</item>
+      <item>mb_output_handler</item>
+      <item>mb_parse_str</item>
+      <item>mb_preferred_mime_name</item>
+      <item>mb_regex_encoding</item>
+      <item>mb_regex_set_options</item>
+      <item>mb_send_mail</item>
+      <item>mb_split</item>
+      <item>mb_strcut</item>
+      <item>mb_strimwidth</item>
+      <item>mb_stripos</item>
+      <item>mb_stristr</item>
+      <item>mb_strlen</item>
+      <item>mb_strpos</item>
+      <item>mb_strrchr</item>
+      <item>mb_strrichr</item>
+      <item>mb_strripos</item>
+      <item>mb_strrpos</item>
+      <item>mb_strstr</item>
+      <item>mb_strtolower</item>
+      <item>mb_strtoupper</item>
+      <item>mb_strwidth</item>
+      <item>mb_substitute_character</item>
+      <item>mb_substr</item>
+      <item>mb_substr_count</item>
+      <item>mcal_append_event</item>
+      <item>mcal_close</item>
+      <item>mcal_create_calendar</item>
+      <item>mcal_date_compare</item>
+      <item>mcal_date_valid</item>
+      <item>mcal_day_of_week</item>
+      <item>mcal_day_of_year</item>
+      <item>mcal_days_in_month</item>
+      <item>mcal_delete_calendar</item>
+      <item>mcal_delete_event</item>
+      <item>mcal_event_add_attribute</item>
+      <item>mcal_event_init</item>
+      <item>mcal_event_set_alarm</item>
+      <item>mcal_event_set_category</item>
+      <item>mcal_event_set_class</item>
+      <item>mcal_event_set_description</item>
+      <item>mcal_event_set_end</item>
+      <item>mcal_event_set_recur_daily</item>
+      <item>mcal_event_set_recur_monthly_mday</item>
+      <item>mcal_event_set_recur_monthly_wday</item>
+      <item>mcal_event_set_recur_none</item>
+      <item>mcal_event_set_recur_weekly</item>
+      <item>mcal_event_set_recur_yearly</item>
+      <item>mcal_event_set_start</item>
+      <item>mcal_event_set_title</item>
+      <item>mcal_expunge</item>
+      <item>mcal_fetch_current_stream_event</item>
+      <item>mcal_fetch_event</item>
+      <item>mcal_is_leap_year</item>
+      <item>mcal_list_alarms</item>
+      <item>mcal_list_events</item>
+      <item>mcal_next_recurrence</item>
+      <item>mcal_open</item>
+      <item>mcal_popen</item>
+      <item>mcal_rename_calendar</item>
+      <item>mcal_reopen</item>
+      <item>mcal_snooze</item>
+      <item>mcal_store_event</item>
+      <item>mcal_time_valid</item>
+      <item>mcal_week_of_year</item>
+      <item>mcrypt_cbc</item>
+      <item>mcrypt_cfb</item>
+      <item>mcrypt_create_iv</item>
+      <item>mcrypt_decrypt</item>
+      <item>mcrypt_enc_get_algorithms_name</item>
+      <item>mcrypt_enc_get_block_size</item>
+      <item>mcrypt_enc_get_iv_size</item>
+      <item>mcrypt_enc_get_key_size</item>
+      <item>mcrypt_enc_get_modes_name</item>
+      <item>mcrypt_enc_get_supported_key_sizes</item>
+      <item>mcrypt_enc_is_block_algorithm</item>
+      <item>mcrypt_enc_is_block_algorithm_mode</item>
+      <item>mcrypt_enc_is_block_mode</item>
+      <item>mcrypt_enc_self_test</item>
+      <item>mcrypt_encrypt</item>
+      <item>mcrypt_generic</item>
+      <item>mcrypt_generic_deinit</item>
+      <item>mcrypt_generic_end</item>
+      <item>mcrypt_generic_init</item>
+      <item>mcrypt_get_block_size</item>
+      <item>mcrypt_get_cipher_name</item>
+      <item>mcrypt_get_iv_size</item>
+      <item>mcrypt_get_key_size</item>
+      <item>mcrypt_list_algorithms</item>
+      <item>mcrypt_list_modes</item>
+      <item>mcrypt_module_close</item>
+      <item>mcrypt_module_get_algo_block_size</item>
+      <item>mcrypt_module_get_algo_key_size</item>
+      <item>mcrypt_module_get_supported_key_sizes</item>
+      <item>mcrypt_module_is_block_algorithm</item>
+      <item>mcrypt_module_is_block_algorithm_mode</item>
+      <item>mcrypt_module_is_block_mode</item>
+      <item>mcrypt_module_open</item>
+      <item>mcrypt_module_self_test</item>
+      <item>mcrypt_ofb</item>
+      <item>md5</item>
+      <item>md5_file</item>
+      <item>mdecrypt_generic</item>
+      <item>memory_get_peak_usage</item>
+      <item>memory_get_usage</item>
+      <item>metaphone</item>
+      <item>method_exists</item>
+      <item>mhash</item>
+      <item>mhash_count</item>
+      <item>mhash_get_block_size</item>
+      <item>mhash_get_hash_name</item>
+      <item>mhash_keygen_s2k</item>
+      <item>microtime</item>
+      <item>mime_content_type</item>
+      <item>min</item>
+      <item>ming_setcubicthreshold</item>
+      <item>ming_setscale</item>
+      <item>ming_useswfversion</item>
+      <item>mkdir</item>
+      <item>mktime</item>
+      <item>money_format</item>
+      <item>move_uploaded_file</item>
+      <item>msession_connect</item>
+      <item>msession_count</item>
+      <item>msession_create</item>
+      <item>msession_destroy</item>
+      <item>msession_disconnect</item>
+      <item>msession_find</item>
+      <item>msession_get</item>
+      <item>msession_get_array</item>
+      <item>msession_getdata</item>
+      <item>msession_inc</item>
+      <item>msession_list</item>
+      <item>msession_listvar</item>
+      <item>msession_lock</item>
+      <item>msession_plugin</item>
+      <item>msession_randstr</item>
+      <item>msession_set</item>
+      <item>msession_set_array</item>
+      <item>msession_setdata</item>
+      <item>msession_timeout</item>
+      <item>msession_uniq</item>
+      <item>msession_unlock</item>
+      <item>msg_get_queue</item>
+      <item>msg_receive</item>
+      <item>msg_remove_queue</item>
+      <item>msg_send</item>
+      <item>msg_set_queue</item>
+      <item>msg_stat_queue</item>
+      <item>msql</item>
+      <item>msql_affected_rows</item>
+      <item>msql_close</item>
+      <item>msql_connect</item>
+      <item>msql_create_db</item>
+      <item>msql_createdb</item>
+      <item>msql_data_seek</item>
+      <item>msql_dbname</item>
+      <item>msql_drop_db</item>
+      <item>msql_dropdb</item>
+      <item>msql_error</item>
+      <item>msql_fetch_array</item>
+      <item>msql_fetch_field</item>
+      <item>msql_fetch_object</item>
+      <item>msql_fetch_row</item>
+      <item>msql_field_seek</item>
+      <item>msql_fieldflags</item>
+      <item>msql_fieldlen</item>
+      <item>msql_fieldname</item>
+      <item>msql_fieldtable</item>
+      <item>msql_fieldtype</item>
+      <item>msql_free_result</item>
+      <item>msql_freeresult</item>
+      <item>msql_list_dbs</item>
+      <item>msql_list_fields</item>
+      <item>msql_list_tables</item>
+      <item>msql_listdbs</item>
+      <item>msql_listfields</item>
+      <item>msql_listtables</item>
+      <item>msql_num_fields</item>
+      <item>msql_num_rows</item>
+      <item>msql_numfields</item>
+      <item>msql_numrows</item>
+      <item>msql_pconnect</item>
+      <item>msql_query</item>
+      <item>msql_regcase</item>
+      <item>msql_result</item>
+      <item>msql_select_db</item>
+      <item>msql_selectdb</item>
+      <item>msql_tablename</item>
+      <item>mssql_bind</item>
+      <item>mssql_close</item>
+      <item>mssql_connect</item>
+      <item>mssql_data_seek</item>
+      <item>mssql_execute</item>
+      <item>mssql_fetch_array</item>
+      <item>mssql_fetch_assoc</item>
+      <item>mssql_fetch_batch</item>
+      <item>mssql_fetch_field</item>
+      <item>mssql_fetch_object</item>
+      <item>mssql_fetch_row</item>
+      <item>mssql_field_length</item>
+      <item>mssql_field_name</item>
+      <item>mssql_field_seek</item>
+      <item>mssql_field_type</item>
+      <item>mssql_free_result</item>
+      <item>mssql_get_last_message</item>
+      <item>mssql_guid_string</item>
+      <item>mssql_init</item>
+      <item>mssql_min_error_severity</item>
+      <item>mssql_min_message_severity</item>
+      <item>mssql_next_result</item>
+      <item>mssql_num_fields</item>
+      <item>mssql_num_rows</item>
+      <item>mssql_pconnect</item>
+      <item>mssql_query</item>
+      <item>mssql_result</item>
+      <item>mssql_rows_affected</item>
+      <item>mssql_select_db</item>
+      <item>mt_getrandmax</item>
+      <item>mt_rand</item>
+      <item>mt_srand</item>
+      <item>muscat_close</item>
+      <item>muscat_get</item>
+      <item>muscat_give</item>
+      <item>muscat_setup</item>
+      <item>muscat_setup_net</item>
+      <item>mysql</item>
+      <item>mysql_affected_rows</item>
+      <item>mysql_client_encoding</item>
+      <item>mysql_close</item>
+      <item>mysql_connect</item>
+      <item>mysql_data_seek</item>
+      <item>mysql_db_name</item>
+      <item>mysql_db_query</item>
+      <item>mysql_errno</item>
+      <item>mysql_error</item>
+      <item>mysql_escape_string</item>
+      <item>mysql_fetch_array</item>
+      <item>mysql_fetch_assoc</item>
+      <item>mysql_fetch_field</item>
+      <item>mysql_fetch_lengths</item>
+      <item>mysql_fetch_object</item>
+      <item>mysql_fetch_row</item>
+      <item>mysql_field_flags</item>
+      <item>mysql_field_len</item>
+      <item>mysql_field_name</item>
+      <item>mysql_field_seek</item>
+      <item>mysql_field_table</item>
+      <item>mysql_field_type</item>
+      <item>mysql_free_result</item>
+      <item>mysql_get_client_info</item>
+      <item>mysql_get_host_info</item>
+      <item>mysql_get_proto_info</item>
+      <item>mysql_get_server_info</item>
+      <item>mysql_info</item>
+      <item>mysql_insert_id</item>
+      <item>mysql_list_dbs</item>
+      <item>mysql_list_processes</item>
+      <item>mysql_num_fields</item>
+      <item>mysql_num_rows</item>
+      <item>mysql_pconnect</item>
+      <item>mysql_ping</item>
+      <item>mysql_query</item>
+      <item>mysql_real_escape_string</item>
+      <item>mysql_result</item>
+      <item>mysql_select_db</item>
+      <item>mysql_set_charset</item>
+      <item>mysql_stat</item>
+      <item>mysql_table_name</item>
+      <item>mysql_thread_id</item>
+      <item>mysql_unbuffered_query</item>
+      <item>mysqli_affected_rows</item>
+      <item>mysqli_autocommit</item>
+      <item>mysqli_bind_param</item>
+      <item>mysqli_bind_result</item>
+      <item>mysqli_change_user</item>
+      <item>mysqli_character_set_name</item>
+      <item>mysqli_client_encoding</item>
+      <item>mysqli_close</item>
+      <item>mysqli_commit</item>
+      <item>mysqli_connect</item>
+      <item>mysqli_connect_errno</item>
+      <item>mysqli_connect_error</item>
+      <item>mysqli_data_seek</item>
+      <item>mysqli_debug</item>
+      <item>mysqli_dump_debug_info</item>
+      <item>mysqli_errno</item>
+      <item>mysqli_error</item>
+      <item>mysqli_escape_string</item>
+      <item>mysqli_execute</item>
+      <item>mysqli_fetch</item>
+      <item>mysqli_fetch_array</item>
+      <item>mysqli_fetch_assoc</item>
+      <item>mysqli_fetch_field</item>
+      <item>mysqli_fetch_field_direct</item>
+      <item>mysqli_fetch_fields</item>
+      <item>mysqli_fetch_lengths</item>
+      <item>mysqli_fetch_object</item>
+      <item>mysqli_fetch_row</item>
+      <item>mysqli_field_count</item>
+      <item>mysqli_field_seek</item>
+      <item>mysqli_field_tell</item>
+      <item>mysqli_free_result</item>
+      <item>mysqli_get_cache_stats</item>
+      <item>mysqli_get_client_info</item>
+      <item>mysqli_get_client_stats</item>
+      <item>mysqli_get_client_version</item>
+      <item>mysqli_get_host_info</item>
+      <item>mysqli_get_metadata</item>
+      <item>mysqli_get_proto_info</item>
+      <item>mysqli_get_server_info</item>
+      <item>mysqli_get_server_version</item>
+      <item>mysqli_info</item>
+      <item>mysqli_init</item>
+      <item>mysqli_insert_id</item>
+      <item>mysqli_kill</item>
+      <item>mysqli_more_results</item>
+      <item>mysqli_multi_query</item>
+      <item>mysqli_next_result</item>
+      <item>mysqli_num_fields</item>
+      <item>mysqli_num_rows</item>
+      <item>mysqli_options</item>
+      <item>mysqli_param_count</item>
+      <item>mysqli_ping</item>
+      <item>mysqli_prepare</item>
+      <item>mysqli_query</item>
+      <item>mysqli_real_connect</item>
+      <item>mysqli_real_escape_string</item>
+      <item>mysqli_real_query</item>
+      <item>mysqli_refresh</item>
+      <item>mysqli_report</item>
+      <item>mysqli_rollback</item>
+      <item>mysqli_select_db</item>
+      <item>mysqli_send_long_data</item>
+      <item>mysqli_set_charset</item>
+      <item>mysqli_set_local_infile_default</item>
+      <item>mysqli_set_local_infile_handler</item>
+      <item>mysqli_set_opt</item>
+      <item>mysqli_sqlstate</item>
+      <item>mysqli_ssl_set</item>
+      <item>mysqli_stat</item>
+      <item>mysqli_stmt_affected_rows</item>
+      <item>mysqli_stmt_attr_get</item>
+      <item>mysqli_stmt_attr_set</item>
+      <item>mysqli_stmt_bind_param</item>
+      <item>mysqli_stmt_bind_result</item>
+      <item>mysqli_stmt_close</item>
+      <item>mysqli_stmt_data_seek</item>
+      <item>mysqli_stmt_errno</item>
+      <item>mysqli_stmt_error</item>
+      <item>mysqli_stmt_execute</item>
+      <item>mysqli_stmt_fetch</item>
+      <item>mysqli_stmt_field_count</item>
+      <item>mysqli_stmt_free_result</item>
+      <item>mysqli_stmt_get_warnings</item>
+      <item>mysqli_stmt_init</item>
+      <item>mysqli_stmt_insert_id</item>
+      <item>mysqli_stmt_num_rows</item>
+      <item>mysqli_stmt_param_count</item>
+      <item>mysqli_stmt_prepare</item>
+      <item>mysqli_stmt_reset</item>
+      <item>mysqli_stmt_result_metadata</item>
+      <item>mysqli_stmt_send_long_data</item>
+      <item>mysqli_stmt_sqlstate</item>
+      <item>mysqli_stmt_store_result</item>
+      <item>mysqli_store_result</item>
+      <item>mysqli_thread_id</item>
+      <item>mysqli_thread_safe</item>
+      <item>mysqli_use_result</item>
+      <item>mysqli_warning_count</item>
+      <item>natcasesort</item>
+      <item>natsort</item>
+      <item>ncurses_addch</item>
+      <item>ncurses_addchnstr</item>
+      <item>ncurses_addchstr</item>
+      <item>ncurses_addnstr</item>
+      <item>ncurses_addstr</item>
+      <item>ncurses_assume_default_colors</item>
+      <item>ncurses_attroff</item>
+      <item>ncurses_attron</item>
+      <item>ncurses_attrset</item>
+      <item>ncurses_baudrate</item>
+      <item>ncurses_beep</item>
+      <item>ncurses_bkgd</item>
+      <item>ncurses_bkgdset</item>
+      <item>ncurses_border</item>
+      <item>ncurses_bottom_panel</item>
+      <item>ncurses_can_change_color</item>
+      <item>ncurses_cbreak</item>
+      <item>ncurses_clear</item>
+      <item>ncurses_clrtobot</item>
+      <item>ncurses_clrtoeol</item>
+      <item>ncurses_color_content</item>
+      <item>ncurses_color_set</item>
+      <item>ncurses_curs_set</item>
+      <item>ncurses_def_prog_mode</item>
+      <item>ncurses_def_shell_mode</item>
+      <item>ncurses_define_key</item>
+      <item>ncurses_del_panel</item>
+      <item>ncurses_delay_output</item>
+      <item>ncurses_delch</item>
+      <item>ncurses_deleteln</item>
+      <item>ncurses_delwin</item>
+      <item>ncurses_doupdate</item>
+      <item>ncurses_echo</item>
+      <item>ncurses_echochar</item>
+      <item>ncurses_end</item>
+      <item>ncurses_erase</item>
+      <item>ncurses_erasechar</item>
+      <item>ncurses_filter</item>
+      <item>ncurses_flash</item>
+      <item>ncurses_flushinp</item>
+      <item>ncurses_getch</item>
+      <item>ncurses_getmaxyx</item>
+      <item>ncurses_getmouse</item>
+      <item>ncurses_getyx</item>
+      <item>ncurses_halfdelay</item>
+      <item>ncurses_has_colors</item>
+      <item>ncurses_has_ic</item>
+      <item>ncurses_has_il</item>
+      <item>ncurses_has_key</item>
+      <item>ncurses_hide_panel</item>
+      <item>ncurses_hline</item>
+      <item>ncurses_inch</item>
+      <item>ncurses_init</item>
+      <item>ncurses_init_color</item>
+      <item>ncurses_init_pair</item>
+      <item>ncurses_insch</item>
+      <item>ncurses_insdelln</item>
+      <item>ncurses_insertln</item>
+      <item>ncurses_insstr</item>
+      <item>ncurses_instr</item>
+      <item>ncurses_isendwin</item>
+      <item>ncurses_keyok</item>
+      <item>ncurses_keypad</item>
+      <item>ncurses_killchar</item>
+      <item>ncurses_longname</item>
+      <item>ncurses_meta</item>
+      <item>ncurses_mouse_trafo</item>
+      <item>ncurses_mouseinterval</item>
+      <item>ncurses_mousemask</item>
+      <item>ncurses_move</item>
+      <item>ncurses_move_panel</item>
+      <item>ncurses_mvaddch</item>
+      <item>ncurses_mvaddchnstr</item>
+      <item>ncurses_mvaddchstr</item>
+      <item>ncurses_mvaddnstr</item>
+      <item>ncurses_mvaddstr</item>
+      <item>ncurses_mvcur</item>
+      <item>ncurses_mvdelch</item>
+      <item>ncurses_mvgetch</item>
+      <item>ncurses_mvhline</item>
+      <item>ncurses_mvinch</item>
+      <item>ncurses_mvvline</item>
+      <item>ncurses_mvwaddstr</item>
+      <item>ncurses_napms</item>
+      <item>ncurses_new_panel</item>
+      <item>ncurses_newpad</item>
+      <item>ncurses_newwin</item>
+      <item>ncurses_nl</item>
+      <item>ncurses_nocbreak</item>
+      <item>ncurses_noecho</item>
+      <item>ncurses_nonl</item>
+      <item>ncurses_noqiflush</item>
+      <item>ncurses_noraw</item>
+      <item>ncurses_pair_content</item>
+      <item>ncurses_panel_above</item>
+      <item>ncurses_panel_below</item>
+      <item>ncurses_panel_window</item>
+      <item>ncurses_pnoutrefresh</item>
+      <item>ncurses_prefresh</item>
+      <item>ncurses_putp</item>
+      <item>ncurses_qiflush</item>
+      <item>ncurses_raw</item>
+      <item>ncurses_refresh</item>
+      <item>ncurses_replace_panel</item>
+      <item>ncurses_reset_prog_mode</item>
+      <item>ncurses_reset_shell_mode</item>
+      <item>ncurses_resetty</item>
+      <item>ncurses_savetty</item>
+      <item>ncurses_scr_dump</item>
+      <item>ncurses_scr_init</item>
+      <item>ncurses_scr_restore</item>
+      <item>ncurses_scr_set</item>
+      <item>ncurses_scrl</item>
+      <item>ncurses_show_panel</item>
+      <item>ncurses_slk_attr</item>
+      <item>ncurses_slk_attroff</item>
+      <item>ncurses_slk_attron</item>
+      <item>ncurses_slk_attrset</item>
+      <item>ncurses_slk_clear</item>
+      <item>ncurses_slk_color</item>
+      <item>ncurses_slk_init</item>
+      <item>ncurses_slk_noutrefresh</item>
+      <item>ncurses_slk_refresh</item>
+      <item>ncurses_slk_restore</item>
+      <item>ncurses_slk_set</item>
+      <item>ncurses_slk_touch</item>
+      <item>ncurses_standend</item>
+      <item>ncurses_standout</item>
+      <item>ncurses_start_color</item>
+      <item>ncurses_termattrs</item>
+      <item>ncurses_termname</item>
+      <item>ncurses_timeout</item>
+      <item>ncurses_top_panel</item>
+      <item>ncurses_typeahead</item>
+      <item>ncurses_ungetch</item>
+      <item>ncurses_ungetmouse</item>
+      <item>ncurses_update_panels</item>
+      <item>ncurses_use_default_colors</item>
+      <item>ncurses_use_env</item>
+      <item>ncurses_use_extended_names</item>
+      <item>ncurses_vidattr</item>
+      <item>ncurses_vline</item>
+      <item>ncurses_waddch</item>
+      <item>ncurses_waddstr</item>
+      <item>ncurses_wattroff</item>
+      <item>ncurses_wattron</item>
+      <item>ncurses_wattrset</item>
+      <item>ncurses_wborder</item>
+      <item>ncurses_wclear</item>
+      <item>ncurses_wcolor_set</item>
+      <item>ncurses_werase</item>
+      <item>ncurses_wgetch</item>
+      <item>ncurses_whline</item>
+      <item>ncurses_wmouse_trafo</item>
+      <item>ncurses_wmove</item>
+      <item>ncurses_wnoutrefresh</item>
+      <item>ncurses_wrefresh</item>
+      <item>ncurses_wstandend</item>
+      <item>ncurses_wstandout</item>
+      <item>ncurses_wvline</item>
+      <item>next</item>
+      <item>ngettext</item>
+      <item>nl2br</item>
+      <item>nl_langinfo</item>
+      <item>notes_body</item>
+      <item>notes_copy_db</item>
+      <item>notes_create_db</item>
+      <item>notes_create_note</item>
+      <item>notes_drop_db</item>
+      <item>notes_find_note</item>
+      <item>notes_header_info</item>
+      <item>notes_list_msgs</item>
+      <item>notes_mark_read</item>
+      <item>notes_mark_unread</item>
+      <item>notes_nav_create</item>
+      <item>notes_search</item>
+      <item>notes_unread</item>
+      <item>notes_version</item>
+      <item>number_format</item>
+      <item>ob_clean</item>
+      <item>ob_end_clean</item>
+      <item>ob_end_flush</item>
+      <item>ob_flush</item>
+      <item>ob_get_clean</item>
+      <item>ob_get_contents</item>
+      <item>ob_get_flush</item>
+      <item>ob_get_length</item>
+      <item>ob_get_level</item>
+      <item>ob_get_status</item>
+      <item>ob_gzhandler</item>
+      <item>ob_iconv_handler</item>
+      <item>ob_implicit_flush</item>
+      <item>ob_list_handlers</item>
+      <item>ob_start</item>
+      <item>oci_bind_array_by_name</item>
+      <item>oci_bind_by_name</item>
+      <item>oci_cancel</item>
+      <item>oci_close</item>
+      <item>oci_commit</item>
+      <item>oci_connect</item>
+      <item>oci_define_by_name</item>
+      <item>oci_error</item>
+      <item>oci_execute</item>
+      <item>oci_fetch</item>
+      <item>oci_fetch_all</item>
+      <item>oci_fetch_array</item>
+      <item>oci_fetch_assoc</item>
+      <item>oci_fetch_object</item>
+      <item>oci_fetch_row</item>
+      <item>oci_field_is_null</item>
+      <item>oci_field_name</item>
+      <item>oci_field_precision</item>
+      <item>oci_field_scale</item>
+      <item>oci_field_size</item>
+      <item>oci_field_type</item>
+      <item>oci_field_type_raw</item>
+      <item>oci_free_statement</item>
+      <item>oci_internal_debug</item>
+      <item>oci_lob_copy</item>
+      <item>oci_lob_is_equal</item>
+      <item>oci_new_collection</item>
+      <item>oci_new_connect</item>
+      <item>oci_new_cursor</item>
+      <item>oci_new_descriptor</item>
+      <item>oci_num_fields</item>
+      <item>oci_num_rows</item>
+      <item>oci_parse</item>
+      <item>oci_password_change</item>
+      <item>oci_pconnect</item>
+      <item>oci_result</item>
+      <item>oci_rollback</item>
+      <item>oci_server_version</item>
+      <item>oci_set_action</item>
+      <item>oci_set_client_identifier</item>
+      <item>oci_set_client_info</item>
+      <item>oci_set_edition</item>
+      <item>oci_set_module_name</item>
+      <item>oci_set_prefetch</item>
+      <item>oci_statement_type</item>
+      <item>ocibindbyname</item>
+      <item>ocicancel</item>
+      <item>ocicollappend</item>
+      <item>ocicollassign</item>
+      <item>ocicollassignelem</item>
+      <item>ocicollgetelem</item>
+      <item>ocicollmax</item>
+      <item>ocicollsize</item>
+      <item>ocicolltrim</item>
+      <item>ocicolumnisnull</item>
+      <item>ocicolumnname</item>
+      <item>ocicolumnprecision</item>
+      <item>ocicolumnscale</item>
+      <item>ocicolumnsize</item>
+      <item>ocicolumntype</item>
+      <item>ocicolumntyperaw</item>
+      <item>ocicommit</item>
+      <item>ocidefinebyname</item>
+      <item>ocierror</item>
+      <item>ociexecute</item>
+      <item>ocifetch</item>
+      <item>ocifetchstatement</item>
+      <item>ocifreecollection</item>
+      <item>ocifreecursor</item>
+      <item>ocifreedesc</item>
+      <item>ocifreestatement</item>
+      <item>ociinternaldebug</item>
+      <item>ociloadlob</item>
+      <item>ocilogoff</item>
+      <item>ocilogon</item>
+      <item>ocinewcollection</item>
+      <item>ocinewcursor</item>
+      <item>ocinewdescriptor</item>
+      <item>ocinlogon</item>
+      <item>ocinumcols</item>
+      <item>ociparse</item>
+      <item>ociplogon</item>
+      <item>ociresult</item>
+      <item>ocirollback</item>
+      <item>ocirowcount</item>
+      <item>ocisavelob</item>
+      <item>ocisavelobfile</item>
+      <item>ociserverversion</item>
+      <item>ocisetprefetch</item>
+      <item>ocistatementtype</item>
+      <item>ociwritelobtofile</item>
+      <item>octdec</item>
+      <item>odbc_autocommit</item>
+      <item>odbc_binmode</item>
+      <item>odbc_close</item>
+      <item>odbc_close_all</item>
+      <item>odbc_columnprivileges</item>
+      <item>odbc_columns</item>
+      <item>odbc_commit</item>
+      <item>odbc_connect</item>
+      <item>odbc_cursor</item>
+      <item>odbc_data_source</item>
+      <item>odbc_do</item>
+      <item>odbc_error</item>
+      <item>odbc_errormsg</item>
+      <item>odbc_exec</item>
+      <item>odbc_execute</item>
+      <item>odbc_fetch_array</item>
+      <item>odbc_fetch_into</item>
+      <item>odbc_fetch_object</item>
+      <item>odbc_fetch_row</item>
+      <item>odbc_field_len</item>
+      <item>odbc_field_name</item>
+      <item>odbc_field_num</item>
+      <item>odbc_field_precision</item>
+      <item>odbc_field_scale</item>
+      <item>odbc_field_type</item>
+      <item>odbc_foreignkeys</item>
+      <item>odbc_free_result</item>
+      <item>odbc_gettypeinfo</item>
+      <item>odbc_longreadlen</item>
+      <item>odbc_next_result</item>
+      <item>odbc_num_fields</item>
+      <item>odbc_num_rows</item>
+      <item>odbc_pconnect</item>
+      <item>odbc_prepare</item>
+      <item>odbc_primarykeys</item>
+      <item>odbc_procedurecolumns</item>
+      <item>odbc_procedures</item>
+      <item>odbc_result</item>
+      <item>odbc_result_all</item>
+      <item>odbc_rollback</item>
+      <item>odbc_setoption</item>
+      <item>odbc_specialcolumns</item>
+      <item>odbc_statistics</item>
+      <item>odbc_tableprivileges</item>
+      <item>odbc_tables</item>
+      <item>opendir</item>
+      <item>openlog</item>
+      <item>openssl_csr_export</item>
+      <item>openssl_csr_export_to_file</item>
+      <item>openssl_csr_new</item>
+      <item>openssl_csr_sign</item>
+      <item>openssl_error_string</item>
+      <item>openssl_free_key</item>
+      <item>openssl_get_privatekey</item>
+      <item>openssl_get_publickey</item>
+      <item>openssl_open</item>
+      <item>openssl_pkcs7_decrypt</item>
+      <item>openssl_pkcs7_encrypt</item>
+      <item>openssl_pkcs7_sign</item>
+      <item>openssl_pkcs7_verify</item>
+      <item>openssl_pkey_export</item>
+      <item>openssl_pkey_export_to_file</item>
+      <item>openssl_pkey_free</item>
+      <item>openssl_pkey_get_private</item>
+      <item>openssl_pkey_get_public</item>
+      <item>openssl_pkey_new</item>
+      <item>openssl_private_decrypt</item>
+      <item>openssl_private_encrypt</item>
+      <item>openssl_public_decrypt</item>
+      <item>openssl_public_encrypt</item>
+      <item>openssl_seal</item>
+      <item>openssl_sign</item>
+      <item>openssl_verify</item>
+      <item>openssl_x509_check_private_key</item>
+      <item>openssl_x509_checkpurpose</item>
+      <item>openssl_x509_export</item>
+      <item>openssl_x509_export_to_file</item>
+      <item>openssl_x509_free</item>
+      <item>openssl_x509_parse</item>
+      <item>openssl_x509_read</item>
+      <item>ord</item>
+      <item>output_add_rewrite_var</item>
+      <item>output_reset_rewrite_vars</item>
+      <item>overload</item>
+      <item>ovrimos_close</item>
+      <item>ovrimos_commit</item>
+      <item>ovrimos_connect</item>
+      <item>ovrimos_cursor</item>
+      <item>ovrimos_exec</item>
+      <item>ovrimos_execute</item>
+      <item>ovrimos_fetch_into</item>
+      <item>ovrimos_fetch_row</item>
+      <item>ovrimos_field_len</item>
+      <item>ovrimos_field_name</item>
+      <item>ovrimos_field_num</item>
+      <item>ovrimos_field_type</item>
+      <item>ovrimos_free_result</item>
+      <item>ovrimos_longreadlen</item>
+      <item>ovrimos_num_fields</item>
+      <item>ovrimos_num_rows</item>
+      <item>ovrimos_prepare</item>
+      <item>ovrimos_result</item>
+      <item>ovrimos_result_all</item>
+      <item>ovrimos_rollback</item>
+      <item>pack</item>
+      <item>parse_ini_file</item>
+      <item>parse_ini_string</item>
+      <item>parse_str</item>
+      <item>parse_url</item>
+      <item>passthru</item>
+      <item>pathinfo</item>
+      <item>pclose</item>
+      <item>pcntl_alarm</item>
+      <item>pcntl_exec</item>
+      <item>pcntl_fork</item>
+      <item>pcntl_getpriority</item>
+      <item>pcntl_setpriority</item>
+      <item>pcntl_signal</item>
+      <item>pcntl_wait</item>
+      <item>pcntl_waitpid</item>
+      <item>pcntl_wexitstatus</item>
+      <item>pcntl_wifexited</item>
+      <item>pcntl_wifsignaled</item>
+      <item>pcntl_wifstopped</item>
+      <item>pcntl_wstopsig</item>
+      <item>pcntl_wtermsig</item>
+      <item>pdf_add_annotation</item>
+      <item>pdf_add_bookmark</item>
+      <item>pdf_add_launchlink</item>
+      <item>pdf_add_locallink</item>
+      <item>pdf_add_note</item>
+      <item>pdf_add_outline</item>
+      <item>pdf_add_pdflink</item>
+      <item>pdf_add_thumbnail</item>
+      <item>pdf_add_weblink</item>
+      <item>pdf_arc</item>
+      <item>pdf_arcn</item>
+      <item>pdf_attach_file</item>
+      <item>pdf_begin_page</item>
+      <item>pdf_begin_pattern</item>
+      <item>pdf_begin_template</item>
+      <item>pdf_circle</item>
+      <item>pdf_clip</item>
+      <item>pdf_close</item>
+      <item>pdf_close_image</item>
+      <item>pdf_close_pdi</item>
+      <item>pdf_close_pdi_page</item>
+      <item>pdf_closepath</item>
+      <item>pdf_closepath_fill_stroke</item>
+      <item>pdf_closepath_stroke</item>
+      <item>pdf_concat</item>
+      <item>pdf_continue_text</item>
+      <item>pdf_curveto</item>
+      <item>pdf_delete</item>
+      <item>pdf_end_page</item>
+      <item>pdf_end_pattern</item>
+      <item>pdf_end_template</item>
+      <item>pdf_endpath</item>
+      <item>pdf_fill</item>
+      <item>pdf_fill_stroke</item>
+      <item>pdf_findfont</item>
+      <item>pdf_get_buffer</item>
+      <item>pdf_get_font</item>
+      <item>pdf_get_fontname</item>
+      <item>pdf_get_fontsize</item>
+      <item>pdf_get_image_height</item>
+      <item>pdf_get_image_width</item>
+      <item>pdf_get_majorversion</item>
+      <item>pdf_get_minorversion</item>
+      <item>pdf_get_parameter</item>
+      <item>pdf_get_pdi_parameter</item>
+      <item>pdf_get_pdi_value</item>
+      <item>pdf_get_value</item>
+      <item>pdf_initgraphics</item>
+      <item>pdf_lineto</item>
+      <item>pdf_makespotcolor</item>
+      <item>pdf_moveto</item>
+      <item>pdf_new</item>
+      <item>pdf_open</item>
+      <item>pdf_open_ccitt</item>
+      <item>pdf_open_file</item>
+      <item>pdf_open_gif</item>
+      <item>pdf_open_image</item>
+      <item>pdf_open_image_file</item>
+      <item>pdf_open_jpeg</item>
+      <item>pdf_open_memory_image</item>
+      <item>pdf_open_pdi</item>
+      <item>pdf_open_pdi_page</item>
+      <item>pdf_open_png</item>
+      <item>pdf_open_tiff</item>
+      <item>pdf_place_image</item>
+      <item>pdf_place_pdi_page</item>
+      <item>pdf_rect</item>
+      <item>pdf_restore</item>
+      <item>pdf_rotate</item>
+      <item>pdf_save</item>
+      <item>pdf_scale</item>
+      <item>pdf_set_border_color</item>
+      <item>pdf_set_border_dash</item>
+      <item>pdf_set_border_style</item>
+      <item>pdf_set_char_spacing</item>
+      <item>pdf_set_duration</item>
+      <item>pdf_set_font</item>
+      <item>pdf_set_horiz_scaling</item>
+      <item>pdf_set_info</item>
+      <item>pdf_set_info_author</item>
+      <item>pdf_set_info_creator</item>
+      <item>pdf_set_info_keywords</item>
+      <item>pdf_set_info_subject</item>
+      <item>pdf_set_info_title</item>
+      <item>pdf_set_leading</item>
+      <item>pdf_set_parameter</item>
+      <item>pdf_set_text_pos</item>
+      <item>pdf_set_text_rendering</item>
+      <item>pdf_set_text_rise</item>
+      <item>pdf_set_transition</item>
+      <item>pdf_set_value</item>
+      <item>pdf_set_word_spacing</item>
+      <item>pdf_setcolor</item>
+      <item>pdf_setdash</item>
+      <item>pdf_setflat</item>
+      <item>pdf_setfont</item>
+      <item>pdf_setgray</item>
+      <item>pdf_setgray_fill</item>
+      <item>pdf_setgray_stroke</item>
+      <item>pdf_setlinecap</item>
+      <item>pdf_setlinejoin</item>
+      <item>pdf_setlinewidth</item>
+      <item>pdf_setmatrix</item>
+      <item>pdf_setmiterlimit</item>
+      <item>pdf_setpolydash</item>
+      <item>pdf_setrgbcolor</item>
+      <item>pdf_setrgbcolor_fill</item>
+      <item>pdf_setrgbcolor_stroke</item>
+      <item>pdf_show</item>
+      <item>pdf_show_boxed</item>
+      <item>pdf_show_xy</item>
+      <item>pdf_skew</item>
+      <item>pdf_stringwidth</item>
+      <item>pdf_stroke</item>
+      <item>pdf_translate</item>
+      <item>pfpro_cleanup</item>
+      <item>pfpro_init</item>
+      <item>pfpro_process</item>
+      <item>pfpro_process_raw</item>
+      <item>pfpro_version</item>
+      <item>pdo_drivers</item>
+      <item>pfsockopen</item>
+      <item>pg_affected_rows</item>
+      <item>pg_cancel_query</item>
+      <item>pg_client_encoding</item>
+      <item>pg_clientencoding</item>
+      <item>pg_close</item>
+      <item>pg_cmdtuples</item>
+      <item>pg_connect</item>
+      <item>pg_connection_busy</item>
+      <item>pg_connection_reset</item>
+      <item>pg_connection_status</item>
+      <item>pg_convert</item>
+      <item>pg_copy_from</item>
+      <item>pg_copy_to</item>
+      <item>pg_dbname</item>
+      <item>pg_delete</item>
+      <item>pg_end_copy</item>
+      <item>pg_errormessage</item>
+      <item>pg_escape_bytea</item>
+      <item>pg_escape_string</item>
+      <item>pg_exec</item>
+      <item>pg_fetch_all</item>
+      <item>pg_fetch_array</item>
+      <item>pg_fetch_assoc</item>
+      <item>pg_fetch_object</item>
+      <item>pg_fetch_result</item>
+      <item>pg_fetch_row</item>
+      <item>pg_field_is_null</item>
+      <item>pg_field_name</item>
+      <item>pg_field_num</item>
+      <item>pg_field_prtlen</item>
+      <item>pg_field_size</item>
+      <item>pg_field_type</item>
+      <item>pg_fieldisnull</item>
+      <item>pg_fieldname</item>
+      <item>pg_fieldnum</item>
+      <item>pg_fieldprtlen</item>
+      <item>pg_fieldsize</item>
+      <item>pg_fieldtype</item>
+      <item>pg_free_result</item>
+      <item>pg_freeresult</item>
+      <item>pg_get_notify</item>
+      <item>pg_get_pid</item>
+      <item>pg_get_result</item>
+      <item>pg_getlastoid</item>
+      <item>pg_host</item>
+      <item>pg_insert</item>
+      <item>pg_last_error</item>
+      <item>pg_last_notice</item>
+      <item>pg_last_oid</item>
+      <item>pg_lo_close</item>
+      <item>pg_lo_create</item>
+      <item>pg_lo_export</item>
+      <item>pg_lo_import</item>
+      <item>pg_lo_open</item>
+      <item>pg_lo_read</item>
+      <item>pg_lo_read_all</item>
+      <item>pg_lo_seek</item>
+      <item>pg_lo_tell</item>
+      <item>pg_lo_unlink</item>
+      <item>pg_lo_write</item>
+      <item>pg_loclose</item>
+      <item>pg_locreate</item>
+      <item>pg_loexport</item>
+      <item>pg_loimport</item>
+      <item>pg_loopen</item>
+      <item>pg_loread</item>
+      <item>pg_loreadall</item>
+      <item>pg_lounlink</item>
+      <item>pg_lowrite</item>
+      <item>pg_meta_data</item>
+      <item>pg_num_fields</item>
+      <item>pg_num_rows</item>
+      <item>pg_numfields</item>
+      <item>pg_numrows</item>
+      <item>pg_options</item>
+      <item>pg_parameter_status</item>
+      <item>pg_pconnect</item>
+      <item>pg_ping</item>
+      <item>pg_port</item>
+      <item>pg_put_line</item>
+      <item>pg_query</item>
+      <item>pg_result</item>
+      <item>pg_result_error</item>
+      <item>pg_result_seek</item>
+      <item>pg_result_status</item>
+      <item>pg_select</item>
+      <item>pg_send_query</item>
+      <item>pg_set_client_encoding</item>
+      <item>pg_setclientencoding</item>
+      <item>pg_trace</item>
+      <item>pg_tty</item>
+      <item>pg_unescape_bytea</item>
+      <item>pg_untrace</item>
+      <item>pg_update</item>
+      <item>pg_version</item>
+      <item>php_egg_logo_guid</item>
+      <item>php_ini_loaded_file</item>
+      <item>php_ini_scanned_files</item>
+      <item>php_logo_guid</item>
+      <item>php_real_logo_guid</item>
+      <item>php_sapi_name</item>
+      <item>php_strip_whitespace</item>
+      <item>php_uname</item>
+      <item>phpcredits</item>
+      <item>phpinfo</item>
+      <item>phpversion</item>
+      <item>pi</item>
+      <item>png2wbmp</item>
+      <item>popen</item>
+      <item>pos</item>
+      <item>posix_ctermid</item>
+      <item>posix_errno</item>
+      <item>posix_get_last_error</item>
+      <item>posix_getcwd</item>
+      <item>posix_getegid</item>
+      <item>posix_geteuid</item>
+      <item>posix_getgid</item>
+      <item>posix_getgrgid</item>
+      <item>posix_getgrnam</item>
+      <item>posix_getgroups</item>
+      <item>posix_getlogin</item>
+      <item>posix_getpgid</item>
+      <item>posix_getpgrp</item>
+      <item>posix_getpid</item>
+      <item>posix_getppid</item>
+      <item>posix_getpwnam</item>
+      <item>posix_getpwuid</item>
+      <item>posix_getrlimit</item>
+      <item>posix_getsid</item>
+      <item>posix_getuid</item>
+      <item>posix_isatty</item>
+      <item>posix_kill</item>
+      <item>posix_mkfifo</item>
+      <item>posix_setegid</item>
+      <item>posix_seteuid</item>
+      <item>posix_setgid</item>
+      <item>posix_setpgid</item>
+      <item>posix_setsid</item>
+      <item>posix_setuid</item>
+      <item>posix_strerror</item>
+      <item>posix_times</item>
+      <item>posix_ttyname</item>
+      <item>posix_uname</item>
+      <item>pow</item>
+      <item>preg_filter</item>
+      <item>preg_grep</item>
+      <item>preg_last_error</item>
+      <item>preg_match</item>
+      <item>preg_match_all</item>
+      <item>preg_quote</item>
+      <item>preg_replace</item>
+      <item>preg_replace_callback</item>
+      <item>preg_split</item>
+      <item>prev</item>
+      <item>print</item>
+      <item>print_r</item>
+      <item>printer_abort</item>
+      <item>printer_close</item>
+      <item>printer_create_brush</item>
+      <item>printer_create_dc</item>
+      <item>printer_create_font</item>
+      <item>printer_create_pen</item>
+      <item>printer_delete_brush</item>
+      <item>printer_delete_dc</item>
+      <item>printer_delete_font</item>
+      <item>printer_delete_pen</item>
+      <item>printer_draw_bmp</item>
+      <item>printer_draw_chord</item>
+      <item>printer_draw_elipse</item>
+      <item>printer_draw_line</item>
+      <item>printer_draw_pie</item>
+      <item>printer_draw_rectangle</item>
+      <item>printer_draw_roundrect</item>
+      <item>printer_draw_text</item>
+      <item>printer_end_doc</item>
+      <item>printer_end_page</item>
+      <item>printer_get_option</item>
+      <item>printer_list</item>
+      <item>printer_logical_fontheight</item>
+      <item>printer_open</item>
+      <item>printer_select_brush</item>
+      <item>printer_select_font</item>
+      <item>printer_select_pen</item>
+      <item>printer_set_option</item>
+      <item>printer_start_doc</item>
+      <item>printer_start_page</item>
+      <item>printer_write</item>
+      <item>printf</item>
+      <item>proc_close</item>
+      <item>proc_get_status</item>
+      <item>proc_nice</item>
+      <item>proc_open</item>
+      <item>proc_terminate</item>
+      <item>property_exists</item>
+      <item>pspell_add_to_personal</item>
+      <item>pspell_add_to_session</item>
+      <item>pspell_check</item>
+      <item>pspell_clear_session</item>
+      <item>pspell_config_create</item>
+      <item>pspell_config_ignore</item>
+      <item>pspell_config_mode</item>
+      <item>pspell_config_personal</item>
+      <item>pspell_config_repl</item>
+      <item>pspell_config_runtogether</item>
+      <item>pspell_config_save_repl</item>
+      <item>pspell_new</item>
+      <item>pspell_new_config</item>
+      <item>pspell_new_personal</item>
+      <item>pspell_save_wordlist</item>
+      <item>pspell_store_replacement</item>
+      <item>pspell_suggest</item>
+      <item>putenv</item>
+      <item>qdom_error</item>
+      <item>qdom_tree</item>
+      <item>quoted_printable_decode</item>
+      <item>quoted_printable_encode</item>
+      <item>quotemeta</item>
+      <item>rad2deg</item>
+      <item>rand</item>
+      <item>range</item>
+      <item>rawurldecode</item>
+      <item>rawurlencode</item>
+      <item>read_exif_data</item>
+      <item>readdir</item>
+      <item>readfile</item>
+      <item>readgzfile</item>
+      <item>readline</item>
+      <item>readline_add_history</item>
+      <item>readline_clear_history</item>
+      <item>readline_completion_function</item>
+      <item>readline_info</item>
+      <item>readline_list_history</item>
+      <item>readline_read_history</item>
+      <item>readline_write_history</item>
+      <item>readlink</item>
+      <item>realpath</item>
+      <item>realpath_cache_get</item>
+      <item>realpath_cache_size</item>
+      <item>recode</item>
+      <item>recode_file</item>
+      <item>recode_string</item>
+      <item>register_shutdown_function</item>
+      <item>register_tick_function</item>
+      <item>rename</item>
+      <item>require</item>
+      <item>require_once</item>
+      <item>reset</item>
+      <item>restore_error_handler</item>
+      <item>restore_exception_handler</item>
+      <item>restore_include_path</item>
+      <item>rewind</item>
+      <item>rewinddir</item>
+      <item>rmdir</item>
+      <item>round</item>
+      <item>rsort</item>
+      <item>rtrim</item>
+      <item>scandir</item>
+      <item>sem_acquire</item>
+      <item>sem_get</item>
+      <item>sem_release</item>
+      <item>sem_remove</item>
+      <item>serialize</item>
+      <item>sesam_affected_rows</item>
+      <item>sesam_commit</item>
+      <item>sesam_connect</item>
+      <item>sesam_diagnostic</item>
+      <item>sesam_disconnect</item>
+      <item>sesam_errormsg</item>
+      <item>sesam_execimm</item>
+      <item>sesam_fetch_array</item>
+      <item>sesam_fetch_result</item>
+      <item>sesam_fetch_row</item>
+      <item>sesam_field_array</item>
+      <item>sesam_field_name</item>
+      <item>sesam_free_result</item>
+      <item>sesam_num_fields</item>
+      <item>sesam_query</item>
+      <item>sesam_rollback</item>
+      <item>sesam_seek_row</item>
+      <item>sesam_settransaction</item>
+      <item>session_cache_expire</item>
+      <item>session_cache_limiter</item>
+      <item>session_commit</item>
+      <item>session_decode</item>
+      <item>session_destroy</item>
+      <item>session_encode</item>
+      <item>session_get_cookie_params</item>
+      <item>session_id</item>
+      <item>session_is_registered</item>
+      <item>session_module_name</item>
+      <item>session_name</item>
+      <item>session_regenerate_id</item>
+      <item>session_register</item>
+      <item>session_save_path</item>
+      <item>session_set_cookie_params</item>
+      <item>session_set_save_handler</item>
+      <item>session_start</item>
+      <item>session_unregister</item>
+      <item>session_unset</item>
+      <item>session_write_close</item>
+      <item>set_error_handler</item>
+      <item>set_exception_handler</item>
+      <item>set_file_buffer</item>
+      <item>set_include_path</item>
+      <item>set_magic_quotes_runtime</item>
+      <item>set_socket_blocking</item>
+      <item>set_time_limit</item>
+      <item>setcookie</item>
+      <item>setlocale</item>
+      <item>setrawcookie</item>
+      <item>settype</item>
+      <item>sha1</item>
+      <item>sha1_file</item>
+      <item>sha256</item>
+      <item>sha256_file</item>
+      <item>shell_exec</item>
+      <item>shm_attach</item>
+      <item>shm_detach</item>
+      <item>shm_get_var</item>
+      <item>shm_put_var</item>
+      <item>shm_remove</item>
+      <item>shm_remove_var</item>
+      <item>shmop_close</item>
+      <item>shmop_delete</item>
+      <item>shmop_open</item>
+      <item>shmop_read</item>
+      <item>shmop_size</item>
+      <item>shmop_write</item>
+      <item>show_source</item>
+      <item>shuffle</item>
+      <item>similar_text</item>
+      <item>simplexml_import_dom</item>
+      <item>simplexml_load_file</item>
+      <item>simplexml_load_string</item>
+      <item>sin</item>
+      <item>sinh</item>
+      <item>sizeof</item>
+      <item>sleep</item>
+      <item>snmp3_get</item>
+      <item>snmp3_getnext</item>
+      <item>snmp3_real_walk</item>
+      <item>snmp3_set</item>
+      <item>snmp3_walk</item>
+      <item>snmp_get_quick_print</item>
+      <item>snmp_get_valueretrieval</item>
+      <item>snmp_read_mib</item>
+      <item>snmp_set_enum_print</item>
+      <item>snmp_set_oid_numeric_print</item>
+      <item>snmp_set_quick_print</item>
+      <item>snmp_set_valueretrieval</item>
+      <item>snmpget</item>
+      <item>snmpgetnext</item>
+      <item>snmprealwalk</item>
+      <item>snmpset</item>
+      <item>snmpwalk</item>
+      <item>snmpwalkoid</item>
+      <item>socket_accept</item>
+      <item>socket_bind</item>
+      <item>socket_clear_error</item>
+      <item>socket_close</item>
+      <item>socket_connect</item>
+      <item>socket_create</item>
+      <item>socket_create_listen</item>
+      <item>socket_create_pair</item>
+      <item>socket_get_option</item>
+      <item>socket_get_status</item>
+      <item>socket_getopt</item>
+      <item>socket_getpeername</item>
+      <item>socket_getsockname</item>
+      <item>socket_last_error</item>
+      <item>socket_listen</item>
+      <item>socket_read</item>
+      <item>socket_recv</item>
+      <item>socket_recvfrom</item>
+      <item>socket_select</item>
+      <item>socket_send</item>
+      <item>socket_sendto</item>
+      <item>socket_set_block</item>
+      <item>socket_set_blocking</item>
+      <item>socket_set_nonblock</item>
+      <item>socket_set_option</item>
+      <item>socket_set_timeout</item>
+      <item>socket_setopt</item>
+      <item>socket_shutdown</item>
+      <item>socket_strerror</item>
+      <item>socket_write</item>
+      <item>sort</item>
+      <item>soundex</item>
+      <item>spl_autoload</item>
+      <item>spl_autoload_call</item>
+      <item>spl_autoload_extensions</item>
+      <item>spl_autoload_functions</item>
+      <item>spl_autoload_register</item>
+      <item>spl_autoload_unregister</item>
+      <item>spl_classes</item>
+      <item>spl_object_hash</item>
+      <item>sprintf</item>
+      <item>sqlite_array_query</item>
+      <item>sqlite_busy_timeout</item>
+      <item>sqlite_changes</item>
+      <item>sqlite_close</item>
+      <item>sqlite_column</item>
+      <item>sqlite_create_aggregate</item>
+      <item>sqlite_create_function</item>
+      <item>sqlite_current</item>
+      <item>sqlite_error_string</item>
+      <item>sqlite_escape_string</item>
+      <item>sqlite_exec</item>
+      <item>sqlite_factory</item>
+      <item>sqlite_fetch_all</item>
+      <item>sqlite_fetch_array</item>
+      <item>sqlite_fetch_column_types</item>
+      <item>sqlite_fetch_object</item>
+      <item>sqlite_fetch_single</item>
+      <item>sqlite_fetch_string</item>
+      <item>sqlite_field_name</item>
+      <item>sqlite_has_more</item>
+      <item>sqlite_has_prev</item>
+      <item>sqlite_last_error</item>
+      <item>sqlite_last_insert_rowid</item>
+      <item>sqlite_libencoding</item>
+      <item>sqlite_libversion</item>
+      <item>sqlite_next</item>
+      <item>sqlite_num_fields</item>
+      <item>sqlite_num_rows</item>
+      <item>sqlite_open</item>
+      <item>sqlite_popen</item>
+      <item>sqlite_prev</item>
+      <item>sqlite_query</item>
+      <item>sqlite_rewind</item>
+      <item>sqlite_seek</item>
+      <item>sqlite_single_query</item>
+      <item>sqlite_udf_decode_binary</item>
+      <item>sqlite_udf_encode_binary</item>
+      <item>sqlite_unbuffered_query</item>
+      <item>sqlite_valid</item>
+      <item>sqrt</item>
+      <item>srand</item>
+      <item>sscanf</item>
+      <item>stat</item>
+      <item>str_getcsv</item>
+      <item>str_ireplace</item>
+      <item>str_pad</item>
+      <item>str_repeat</item>
+      <item>str_replace</item>
+      <item>str_rot13</item>
+      <item>str_shuffle</item>
+      <item>str_split</item>
+      <item>str_word_count</item>
+      <item>strcasecmp</item>
+      <item>strchr</item>
+      <item>strcmp</item>
+      <item>strcoll</item>
+      <item>strcspn</item>
+      <item>stream_bucket_append</item>
+      <item>stream_bucket_make_writeable</item>
+      <item>stream_bucket_new</item>
+      <item>stream_bucket_prepend</item>
+      <item>stream_context_create</item>
+      <item>stream_context_get_default</item>
+      <item>stream_context_get_options</item>
+      <item>stream_context_get_params</item>
+      <item>stream_context_set_default</item>
+      <item>stream_context_set_option</item>
+      <item>stream_context_set_params</item>
+      <item>stream_copy_to_stream</item>
+      <item>stream_filter_append</item>
+      <item>stream_filter_prepend</item>
+      <item>stream_filter_register</item>
+      <item>stream_filter_remove</item>
+      <item>stream_get_contents</item>
+      <item>stream_get_filters</item>
+      <item>stream_get_line</item>
+      <item>stream_get_meta_data</item>
+      <item>stream_get_transports</item>
+      <item>stream_get_wrappers</item>
+      <item>stream_is_local</item>
+      <item>stream_register_wrapper</item>
+      <item>stream_resolve_include_path</item>
+      <item>stream_select</item>
+      <item>stream_set_blocking</item>
+      <item>stream_set_read_buffer</item>
+      <item>stream_set_timeout</item>
+      <item>stream_set_write_buffer</item>
+      <item>stream_socket_accept</item>
+      <item>stream_socket_client</item>
+      <item>stream_socket_enable_crypto</item>
+      <item>stream_socket_get_name</item>
+      <item>stream_socket_pair</item>
+      <item>stream_socket_recvfrom</item>
+      <item>stream_socket_sendto</item>
+      <item>stream_socket_server</item>
+      <item>stream_socket_shutdown</item>
+      <item>stream_supports_lock</item>
+      <item>stream_wrapper_register</item>
+      <item>stream_wrapper_restore</item>
+      <item>stream_wrapper_unregister</item>
+      <item>strftime</item>
+      <item>strip_tags</item>
+      <item>stripcslashes</item>
+      <item>stripos</item>
+      <item>stripslashes</item>
+      <item>stristr</item>
+      <item>strlen</item>
+      <item>strnatcasecmp</item>
+      <item>strnatcmp</item>
+      <item>strncasecmp</item>
+      <item>strncmp</item>
+      <item>strpbrk</item>
+      <item>strpos</item>
+      <item>strptime</item>
+      <item>strrchr</item>
+      <item>strrev</item>
+      <item>strripos</item>
+      <item>strrpos</item>
+      <item>strspn</item>
+      <item>strstr</item>
+      <item>strtok</item>
+      <item>strtolower</item>
+      <item>strtotime</item>
+      <item>strtoupper</item>
+      <item>strtr</item>
+      <item>strval</item>
+      <item>substr</item>
+      <item>substr_compare</item>
+      <item>substr_count</item>
+      <item>substr_replace</item>
+      <item>suhosin_encrypt_cookie</item>
+      <item>suhosin_get_raw_cookies</item>
+      <item>swf_actiongeturl</item>
+      <item>swf_actiongotoframe</item>
+      <item>swf_actiongotolabel</item>
+      <item>swf_actionnextframe</item>
+      <item>swf_actionplay</item>
+      <item>swf_actionprevframe</item>
+      <item>swf_actionsettarget</item>
+      <item>swf_actionstop</item>
+      <item>swf_actiontogglequality</item>
+      <item>swf_actionwaitforframe</item>
+      <item>swf_addbuttonrecord</item>
+      <item>swf_addcolor</item>
+      <item>swf_closefile</item>
+      <item>swf_definebitmap</item>
+      <item>swf_definefont</item>
+      <item>swf_defineline</item>
+      <item>swf_definepoly</item>
+      <item>swf_definerect</item>
+      <item>swf_definetext</item>
+      <item>swf_endbutton</item>
+      <item>swf_enddoaction</item>
+      <item>swf_endshape</item>
+      <item>swf_endsymbol</item>
+      <item>swf_fontsize</item>
+      <item>swf_fontslant</item>
+      <item>swf_fonttracking</item>
+      <item>swf_getbitmapinfo</item>
+      <item>swf_getfontinfo</item>
+      <item>swf_getframe</item>
+      <item>swf_labelframe</item>
+      <item>swf_lookat</item>
+      <item>swf_modifyobject</item>
+      <item>swf_mulcolor</item>
+      <item>swf_nextid</item>
+      <item>swf_oncondition</item>
+      <item>swf_openfile</item>
+      <item>swf_ortho</item>
+      <item>swf_ortho2</item>
+      <item>swf_perspective</item>
+      <item>swf_placeobject</item>
+      <item>swf_polarview</item>
+      <item>swf_popmatrix</item>
+      <item>swf_posround</item>
+      <item>swf_pushmatrix</item>
+      <item>swf_removeobject</item>
+      <item>swf_rotate</item>
+      <item>swf_scale</item>
+      <item>swf_setfont</item>
+      <item>swf_setframe</item>
+      <item>swf_shapearc</item>
+      <item>swf_shapecurveto</item>
+      <item>swf_shapecurveto3</item>
+      <item>swf_shapefillbitmapclip</item>
+      <item>swf_shapefillbitmaptile</item>
+      <item>swf_shapefilloff</item>
+      <item>swf_shapefillsolid</item>
+      <item>swf_shapelinesolid</item>
+      <item>swf_shapelineto</item>
+      <item>swf_shapemoveto</item>
+      <item>swf_showframe</item>
+      <item>swf_startbutton</item>
+      <item>swf_startdoaction</item>
+      <item>swf_startshape</item>
+      <item>swf_startsymbol</item>
+      <item>swf_textwidth</item>
+      <item>swf_translate</item>
+      <item>swf_viewport</item>
+      <item>swfaction</item>
+      <item>swfbitmap</item>
+      <item>swfbitmap.getheight</item>
+      <item>swfbitmap.getwidth</item>
+      <item>swfbutton</item>
+      <item>swfbutton.addaction</item>
+      <item>swfbutton.addshape</item>
+      <item>swfbutton.setaction</item>
+      <item>swfbutton.setdown</item>
+      <item>swfbutton.sethit</item>
+      <item>swfbutton.setover</item>
+      <item>swfbutton.setup</item>
+      <item>swfbutton_keypress</item>
+      <item>swfdisplayitem</item>
+      <item>swfdisplayitem.addcolor</item>
+      <item>swfdisplayitem.move</item>
+      <item>swfdisplayitem.moveto</item>
+      <item>swfdisplayitem.multcolor</item>
+      <item>swfdisplayitem.remove</item>
+      <item>swfdisplayitem.rotate</item>
+      <item>swfdisplayitem.rotateto</item>
+      <item>swfdisplayitem.scale</item>
+      <item>swfdisplayitem.scaleto</item>
+      <item>swfdisplayitem.setdepth</item>
+      <item>swfdisplayitem.setname</item>
+      <item>swfdisplayitem.setratio</item>
+      <item>swfdisplayitem.skewx</item>
+      <item>swfdisplayitem.skewxto</item>
+      <item>swfdisplayitem.skewy</item>
+      <item>swfdisplayitem.skewyto</item>
+      <item>swffill</item>
+      <item>swffill.moveto</item>
+      <item>swffill.rotateto</item>
+      <item>swffill.scaleto</item>
+      <item>swffill.skewxto</item>
+      <item>swffill.skewyto</item>
+      <item>swffont</item>
+      <item>swffont.getwidth</item>
+      <item>swfgradient</item>
+      <item>swfgradient.addentry</item>
+      <item>swfmorph</item>
+      <item>swfmorph.getshape1</item>
+      <item>swfmorph.getshape2</item>
+      <item>swfmovie</item>
+      <item>swfmovie.add</item>
+      <item>swfmovie.nextframe</item>
+      <item>swfmovie.output</item>
+      <item>swfmovie.remove</item>
+      <item>swfmovie.save</item>
+      <item>swfmovie.setbackground</item>
+      <item>swfmovie.setdimension</item>
+      <item>swfmovie.setframes</item>
+      <item>swfmovie.setrate</item>
+      <item>swfmovie.streammp3</item>
+      <item>swfshape</item>
+      <item>swfshape.addfill</item>
+      <item>swfshape.drawcurve</item>
+      <item>swfshape.drawcurveto</item>
+      <item>swfshape.drawline</item>
+      <item>swfshape.drawlineto</item>
+      <item>swfshape.movepen</item>
+      <item>swfshape.movepento</item>
+      <item>swfshape.setleftfill</item>
+      <item>swfshape.setline</item>
+      <item>swfshape.setrightfill</item>
+      <item>swfsprite</item>
+      <item>swfsprite.add</item>
+      <item>swfsprite.nextframe</item>
+      <item>swfsprite.remove</item>
+      <item>swfsprite.setframes</item>
+      <item>swftext</item>
+      <item>swftext.addstring</item>
+      <item>swftext.getwidth</item>
+      <item>swftext.moveto</item>
+      <item>swftext.setcolor</item>
+      <item>swftext.setfont</item>
+      <item>swftext.setheight</item>
+      <item>swftext.setspacing</item>
+      <item>swftextfield</item>
+      <item>swftextfield.addstring</item>
+      <item>swftextfield.align</item>
+      <item>swftextfield.setbounds</item>
+      <item>swftextfield.setcolor</item>
+      <item>swftextfield.setfont</item>
+      <item>swftextfield.setheight</item>
+      <item>swftextfield.setindentation</item>
+      <item>swftextfield.setleftmargin</item>
+      <item>swftextfield.setlinespacing</item>
+      <item>swftextfield.setmargins</item>
+      <item>swftextfield.setname</item>
+      <item>swftextfield.setrightmargin</item>
+      <item>sybase_affected_rows</item>
+      <item>sybase_close</item>
+      <item>sybase_connect</item>
+      <item>sybase_data_seek</item>
+      <item>sybase_fetch_array</item>
+      <item>sybase_fetch_field</item>
+      <item>sybase_fetch_object</item>
+      <item>sybase_fetch_row</item>
+      <item>sybase_field_seek</item>
+      <item>sybase_free_result</item>
+      <item>sybase_get_last_message</item>
+      <item>sybase_min_client_severity</item>
+      <item>sybase_min_error_severity</item>
+      <item>sybase_min_message_severity</item>
+      <item>sybase_min_server_severity</item>
+      <item>sybase_num_fields</item>
+      <item>sybase_num_rows</item>
+      <item>sybase_pconnect</item>
+      <item>sybase_query</item>
+      <item>sybase_result</item>
+      <item>sybase_select_db</item>
+      <item>symlink</item>
+      <item>sys_get_temp_dir</item>
+      <item>sys_getloadavg</item>
+      <item>syslog</item>
+      <item>system</item>
+      <item>tan</item>
+      <item>tanh</item>
+      <item>tempnam</item>
+      <item>textdomain</item>
+      <item>time</item>
+      <item>time_nanosleep</item>
+      <item>time_sleep_until</item>
+      <item>timezone_abbreviations_list</item>
+      <item>timezone_identifiers_list</item>
+      <item>timezone_location_get</item>
+      <item>timezone_name_from_abbr</item>
+      <item>timezone_name_get</item>
+      <item>timezone_offset_get</item>
+      <item>timezone_open</item>
+      <item>timezone_transitions_get</item>
+      <item>timezone_version_get</item>
+      <item>tmpfile</item>
+      <item>token_get_all</item>
+      <item>token_name</item>
+      <item>touch</item>
+      <item>trigger_error</item>
+      <item>trim</item>
+      <item>uasort</item>
+      <item>ucfirst</item>
+      <item>ucwords</item>
+      <item>udm_add_search_limit</item>
+      <item>udm_alloc_agent</item>
+      <item>udm_api_version</item>
+      <item>udm_cat_list</item>
+      <item>udm_cat_path</item>
+      <item>udm_check_charset</item>
+      <item>udm_check_stored</item>
+      <item>udm_clear_search_limits</item>
+      <item>udm_close_stored</item>
+      <item>udm_crc32</item>
+      <item>udm_errno</item>
+      <item>udm_error</item>
+      <item>udm_find</item>
+      <item>udm_free_agent</item>
+      <item>udm_free_ispell_data</item>
+      <item>udm_free_res</item>
+      <item>udm_get_doc_count</item>
+      <item>udm_get_res_field</item>
+      <item>udm_get_res_param</item>
+      <item>udm_load_ispell_data</item>
+      <item>udm_open_stored</item>
+      <item>udm_set_agent_param</item>
+      <item>uksort</item>
+      <item>umask</item>
+      <item>uniqid</item>
+      <item>unixtojd</item>
+      <item>unlink</item>
+      <item>unpack</item>
+      <item>unregister_tick_function</item>
+      <item>unserialize</item>
+      <item>unset</item>
+      <item>urldecode</item>
+      <item>urlencode</item>
+      <item>use_soap_error_handler</item>
+      <item>user_error</item>
+      <item>usleep</item>
+      <item>usort</item>
+      <item>utf8_decode</item>
+      <item>utf8_encode</item>
+      <item>var_dump</item>
+      <item>var_export</item>
+      <item>variant</item>
+      <item>version_compare</item>
+      <item>vfprintf</item>
+      <item>virtual</item>
+      <item>vpopmail_add_alias_domain</item>
+      <item>vpopmail_add_alias_domain_ex</item>
+      <item>vpopmail_add_domain</item>
+      <item>vpopmail_add_domain_ex</item>
+      <item>vpopmail_add_user</item>
+      <item>vpopmail_alias_add</item>
+      <item>vpopmail_alias_del</item>
+      <item>vpopmail_alias_del_domain</item>
+      <item>vpopmail_alias_get</item>
+      <item>vpopmail_alias_get_all</item>
+      <item>vpopmail_auth_user</item>
+      <item>vpopmail_del_domain</item>
+      <item>vpopmail_del_domain_ex</item>
+      <item>vpopmail_del_user</item>
+      <item>vpopmail_error</item>
+      <item>vpopmail_passwd</item>
+      <item>vpopmail_set_user_quota</item>
+      <item>vprintf</item>
+      <item>vsprintf</item>
+      <item>w32api_deftype</item>
+      <item>w32api_init_dtype</item>
+      <item>w32api_invoke_function</item>
+      <item>w32api_register_function</item>
+      <item>w32api_set_call_method</item>
+      <item>wddx_add_vars</item>
+      <item>wddx_deserialize</item>
+      <item>wddx_packet_end</item>
+      <item>wddx_packet_start</item>
+      <item>wddx_serialize_value</item>
+      <item>wddx_serialize_vars</item>
+      <item>wordwrap</item>
+      <item>xdebug_break</item>
+      <item>xdebug_call_class</item>
+      <item>xdebug_call_file</item>
+      <item>xdebug_call_function</item>
+      <item>xdebug_call_line</item>
+      <item>xdebug_clear_aggr_profiling_data</item>
+      <item>xdebug_debug_zval</item>
+      <item>xdebug_debug_zval_stdout</item>
+      <item>xdebug_disable</item>
+      <item>xdebug_dump_aggr_profiling_data</item>
+      <item>xdebug_dump_superglobals</item>
+      <item>xdebug_enable</item>
+      <item>xdebug_get_code_coverage</item>
+      <item>xdebug_get_collected_errors</item>
+      <item>xdebug_get_declared_vars</item>
+      <item>xdebug_get_formatted_function_stack</item>
+      <item>xdebug_get_function_count</item>
+      <item>xdebug_get_function_stack</item>
+      <item>xdebug_get_headers</item>
+      <item>xdebug_get_profiler_filename</item>
+      <item>xdebug_get_stack_depth</item>
+      <item>xdebug_get_tracefile_name</item>
+      <item>xdebug_is_enabled</item>
+      <item>xdebug_memory_usage</item>
+      <item>xdebug_peak_memory_usage</item>
+      <item>xdebug_print_function_stack</item>
+      <item>xdebug_start_code_coverage</item>
+      <item>xdebug_start_error_collection</item>
+      <item>xdebug_start_trace</item>
+      <item>xdebug_stop_code_coverage</item>
+      <item>xdebug_stop_error_collection</item>
+      <item>xdebug_stop_trace</item>
+      <item>xdebug_time_index</item>
+      <item>xdebug_var_dump</item>
+      <item>xml_error_string</item>
+      <item>xml_get_current_byte_index</item>
+      <item>xml_get_current_column_number</item>
+      <item>xml_get_current_line_number</item>
+      <item>xml_get_error_code</item>
+      <item>xml_parse</item>
+      <item>xml_parse_into_struct</item>
+      <item>xml_parser_create</item>
+      <item>xml_parser_create_ns</item>
+      <item>xml_parser_free</item>
+      <item>xml_parser_get_option</item>
+      <item>xml_parser_set_option</item>
+      <item>xml_set_character_data_handler</item>
+      <item>xml_set_default_handler</item>
+      <item>xml_set_element_handler</item>
+      <item>xml_set_end_namespace_decl_handler</item>
+      <item>xml_set_external_entity_ref_handler</item>
+      <item>xml_set_notation_decl_handler</item>
+      <item>xml_set_object</item>
+      <item>xml_set_processing_instruction_handler</item>
+      <item>xml_set_start_namespace_decl_handler</item>
+      <item>xml_set_unparsed_entity_decl_handler</item>
+      <item>xmldoc</item>
+      <item>xmldocfile</item>
+      <item>xmlrpc_decode</item>
+      <item>xmlrpc_decode_request</item>
+      <item>xmlrpc_encode</item>
+      <item>xmlrpc_encode_request</item>
+      <item>xmlrpc_get_type</item>
+      <item>xmlrpc_is_fault</item>
+      <item>xmlrpc_parse_method_descriptions</item>
+      <item>xmlrpc_server_add_introspection_data</item>
+      <item>xmlrpc_server_call_method</item>
+      <item>xmlrpc_server_create</item>
+      <item>xmlrpc_server_destroy</item>
+      <item>xmlrpc_server_register_introspection_callback</item>
+      <item>xmlrpc_server_register_method</item>
+      <item>xmlrpc_set_type</item>
+      <item>xmltree</item>
+      <item>xmlwriter_end_attribute</item>
+      <item>xmlwriter_end_cdata</item>
+      <item>xmlwriter_end_comment</item>
+      <item>xmlwriter_end_document</item>
+      <item>xmlwriter_end_dtd</item>
+      <item>xmlwriter_end_dtd_attlist</item>
+      <item>xmlwriter_end_dtd_element</item>
+      <item>xmlwriter_end_dtd_entity</item>
+      <item>xmlwriter_end_element</item>
+      <item>xmlwriter_end_pi</item>
+      <item>xmlwriter_flush</item>
+      <item>xmlwriter_full_end_element</item>
+      <item>xmlwriter_open_memory</item>
+      <item>xmlwriter_open_uri</item>
+      <item>xmlwriter_output_memory</item>
+      <item>xmlwriter_set_indent</item>
+      <item>xmlwriter_set_indent_string</item>
+      <item>xmlwriter_start_attribute</item>
+      <item>xmlwriter_start_attribute_ns</item>
+      <item>xmlwriter_start_cdata</item>
+      <item>xmlwriter_start_comment</item>
+      <item>xmlwriter_start_document</item>
+      <item>xmlwriter_start_dtd</item>
+      <item>xmlwriter_start_dtd_attlist</item>
+      <item>xmlwriter_start_dtd_element</item>
+      <item>xmlwriter_start_dtd_entity</item>
+      <item>xmlwriter_start_element</item>
+      <item>xmlwriter_start_element_ns</item>
+      <item>xmlwriter_start_pi</item>
+      <item>xmlwriter_text</item>
+      <item>xmlwriter_write_attribute</item>
+      <item>xmlwriter_write_attribute_ns</item>
+      <item>xmlwriter_write_cdata</item>
+      <item>xmlwriter_write_comment</item>
+      <item>xmlwriter_write_dtd</item>
+      <item>xmlwriter_write_dtd_attlist</item>
+      <item>xmlwriter_write_dtd_element</item>
+      <item>xmlwriter_write_dtd_entity</item>
+      <item>xmlwriter_write_element</item>
+      <item>xmlwriter_write_element_ns</item>
+      <item>xmlwriter_write_pi</item>
+      <item>xmlwriter_write_raw</item>
+      <item>xpath_eval</item>
+      <item>xpath_eval_expression</item>
+      <item>xpath_new_context</item>
+      <item>xptr_eval</item>
+      <item>xptr_new_context</item>
+      <item>xslt_create</item>
+      <item>xslt_errno</item>
+      <item>xslt_error</item>
+      <item>xslt_free</item>
+      <item>xslt_process</item>
+      <item>xslt_set_base</item>
+      <item>xslt_set_encoding</item>
+      <item>xslt_set_error_handler</item>
+      <item>xslt_set_log</item>
+      <item>xslt_set_sax_handler</item>
+      <item>xslt_set_sax_handlers</item>
+      <item>xslt_set_scheme_handler</item>
+      <item>xslt_set_scheme_handlers</item>
+      <item>yaz_addinfo</item>
+      <item>yaz_ccl_conf</item>
+      <item>yaz_ccl_parse</item>
+      <item>yaz_close</item>
+      <item>yaz_connect</item>
+      <item>yaz_database</item>
+      <item>yaz_element</item>
+      <item>yaz_errno</item>
+      <item>yaz_error</item>
+      <item>yaz_hits</item>
+      <item>yaz_itemorder</item>
+      <item>yaz_present</item>
+      <item>yaz_range</item>
+      <item>yaz_record</item>
+      <item>yaz_scan</item>
+      <item>yaz_scan_result</item>
+      <item>yaz_search</item>
+      <item>yaz_sort</item>
+      <item>yaz_syntax</item>
+      <item>yaz_wait</item>
+      <item>yp_all</item>
+      <item>yp_cat</item>
+      <item>yp_err_string</item>
+      <item>yp_errno</item>
+      <item>yp_first</item>
+      <item>yp_get_default_domain</item>
+      <item>yp_master</item>
+      <item>yp_match</item>
+      <item>yp_next</item>
+      <item>yp_order</item>
+      <item>zend_logo_guid</item>
+      <item>zend_version</item>
+      <item>zip_close</item>
+      <item>zip_entry_close</item>
+      <item>zip_entry_compressedsize</item>
+      <item>zip_entry_compressionmethod</item>
+      <item>zip_entry_filesize</item>
+      <item>zip_entry_name</item>
+      <item>zip_entry_open</item>
+      <item>zip_entry_read</item>
+      <item>zip_open</item>
+      <item>zip_read</item>
+      <item>zlib_get_coding_type</item>
+    </list>
+    <list name="special-variables">
+        <item>$GLOBALS</item>
+        <item>$_COOKIE</item>
+        <item>$_ENV</item>
+        <item>$_FILES</item>
+        <item>$_GET</item>
+        <item>$_POST</item>
+        <item>$_REQUEST</item>
+        <item>$_SERVER</item>
+        <item>$_SESSION</item>
+        <item>$php_errormsg</item>
+        <item>$this</item>
+    </list>
+    <list name="predefined-classes">
+        <item>APCIterator</item>
+        <item>AppendIterator</item>
+        <item>ArrayAccess</item>
+        <item>ArrayIterator</item>
+        <item>ArrayObject</item>
+        <item>BadFunctionCallException</item>
+        <item>BadMethodCallException</item>
+        <item>CachingIterator</item>
+        <item>Closure</item>
+        <item>Countable</item>
+        <item>DOMAttr</item>
+        <item>DOMCDATASection</item>
+        <item>DOMCharacterData</item>
+        <item>DOMComment</item>
+        <item>DOMConfiguration</item>
+        <item>DOMDocument</item>
+        <item>DOMDocumentFragment</item>
+        <item>DOMDocumentType</item>
+        <item>DOMDomError</item>
+        <item>DOMElement</item>
+        <item>DOMEntity</item>
+        <item>DOMEntityReference</item>
+        <item>DOMErrorHandler</item>
+        <item>DOMException</item>
+        <item>DOMImplementation</item>
+        <item>DOMImplementationList</item>
+        <item>DOMImplementationSource</item>
+        <item>DOMLocator</item>
+        <item>DOMNameList</item>
+        <item>DOMNameSpaceNode</item>
+        <item>DOMNamedNodeMap</item>
+        <item>DOMNode</item>
+        <item>DOMNodeList</item>
+        <item>DOMNotation</item>
+        <item>DOMProcessingInstruction</item>
+        <item>DOMStringExtend</item>
+        <item>DOMStringList</item>
+        <item>DOMText</item>
+        <item>DOMTypeinfo</item>
+        <item>DOMUserDataHandler</item>
+        <item>DOMXPath</item>
+        <item>DateInterval</item>
+        <item>DatePeriod</item>
+        <item>DateTime</item>
+        <item>DateTimeZone</item>
+        <item>Directory</item>
+        <item>DirectoryIterator</item>
+        <item>DomainException</item>
+        <item>EmptyIterator</item>
+        <item>ErrorException</item>
+        <item>Exception</item>
+        <item>FilesystemIterator</item>
+        <item>FilterIterator</item>
+        <item>GlobIterator</item>
+        <item>InfiniteIterator</item>
+        <item>InvalidArgumentException</item>
+        <item>Iterator</item>
+        <item>IteratorAggregate</item>
+        <item>IteratorIterator</item>
+        <item>LengthException</item>
+        <item>LibXMLError</item>
+        <item>LimitIterator</item>
+        <item>LogicException</item>
+        <item>MultipleIterator</item>
+        <item>MySQLi</item>
+        <item>MySQLi_Driver</item>
+        <item>MySQLi_SQL_Exception</item>
+        <item>MySQLi_Result</item>
+        <item>MySQLi_STMT</item>
+        <item>MySQLi_Warning</item>
+        <item>NoRewindIterator</item>
+        <item>OCI-Collection</item>
+        <item>OCI-LOB</item>
+        <item>OutOfBoundsException</item>
+        <item>OutOfRangeException</item>
+        <item>OuterIterator</item>
+        <item>OverflowException</item>
+        <item>PDO</item>
+        <item>PDOException</item>
+        <item>PDORow</item>
+        <item>PDOStatement</item>
+        <item>ParentIterator</item>
+        <item>Phar</item>
+        <item>PharData</item>
+        <item>PharException</item>
+        <item>PharFileInfo</item>
+        <item>RangeException</item>
+        <item>RecursiveArrayIterator</item>
+        <item>RecursiveCachingIterator</item>
+        <item>RecursiveDirectoryIterator</item>
+        <item>RecursiveFilterIterator</item>
+        <item>RecursiveIterator</item>
+        <item>RecursiveIteratorIterator</item>
+        <item>RecursiveRegexIterator</item>
+        <item>RecursiveTreeIterator</item>
+        <item>Reflection</item>
+        <item>ReflectionClass</item>
+        <item>ReflectionException</item>
+        <item>ReflectionExtension</item>
+        <item>ReflectionFunction</item>
+        <item>ReflectionFunctionAbstract</item>
+        <item>ReflectionMethod</item>
+        <item>ReflectionObject</item>
+        <item>ReflectionParameter</item>
+        <item>ReflectionProperty</item>
+        <item>Reflector</item>
+        <item>RegexIterator</item>
+        <item>RuntimeException</item>
+        <item>SQLite3</item>
+        <item>SQLite3Result</item>
+        <item>SQLite3Stmt</item>
+        <item>SQLiteDatabase</item>
+        <item>SQLiteException</item>
+        <item>SQLiteResult</item>
+        <item>SQLiteUnbuffered</item>
+        <item>SeekableIterator</item>
+        <item>Serializable</item>
+        <item>SimpleXMLElement</item>
+        <item>SimpleXMLIterator</item>
+        <item>SplDoublyLinkedList</item>
+        <item>SplFileInfo</item>
+        <item>SplFileObject</item>
+        <item>SplFixedArray</item>
+        <item>SplHeap</item>
+        <item>SplMaxHeap</item>
+        <item>SplMinHeap</item>
+        <item>SplObjectStorage</item>
+        <item>SplObserver</item>
+        <item>SplPriorityQueue</item>
+        <item>SplQueue</item>
+        <item>SplStack</item>
+        <item>SplSubject</item>
+        <item>SplTempFileObject</item>
+        <item>Traversable</item>
+        <item>UnderflowException</item>
+        <item>UnexpectedValueException</item>
+        <item>XMLReader</item>
+        <item>XMLWriter</item>
+        <item>XSLTProcessor</item>
+        <item>ZipArchive</item>
+        <item>__PHP_Incomplete_Class</item>
+        <item>php_user_filter</item>
+        <item>stdClass</item>
+    </list>
+    <list name="deprecated">
+      <!-- Variables -->
+      <item>$HTTP_SERVER_VARS</item>
+      <item>$HTTP_SESSION_VARS</item>
+      <item>$HTTP_ENV_VARS</item>
+      <item>$HTTP_POST_FILES</item>
+      <item>$HTTP_COOKIE_VARS</item>
+      <item>$HTTP_POST_VARS</item>
+      <item>$HTTP_GET_VARS</item>
+      <item>$DOCUMENT_ROOT</item>
+
+      <!-- Functions -->
+      <item>call_user_method</item>
+      <item>call_user_method_array</item>
+      <item>ereg</item>
+      <item>ereg_replace</item>
+      <item>eregi</item>
+      <item>eregi_replace</item>
+      <item>mcrypt_ecb</item>
+      <item>mysql_create_db</item>
+      <item>mysql_dbname</item>
+      <item>mysql_drop_db</item>
+      <item>mysql_fieldflags</item>
+      <item>mysql_fieldlen</item>
+      <item>mysql_fieldname</item>
+      <item>mysql_fieldtable</item>
+      <item>mysql_fieldtype</item>
+      <item>mysql_freeresult</item>
+      <item>mysql_list_fields</item>
+      <item>mysql_list_tables</item>
+      <item>mysql_listdbs</item>
+      <item>mysql_listfields</item>
+      <item>mysql_listtables</item>
+      <item>mysql_numfields</item>
+      <item>mysql_numrows</item>
+      <item>mysql_selectdb</item>
+      <item>mysql_tablename</item>
+      <item>mysqli_disable_reads_from_master</item>
+      <item>mysqli_disable_rpl_parse</item>
+      <item>mysqli_enable_reads_from_master</item>
+      <item>mysqli_enable_rpl_parse</item>
+      <item>mysqli_master_query</item>
+      <item>mysqli_rpl_parse_enabled</item>
+      <item>mysqli_rpl_probe</item>
+      <item>mysqli_rpl_query_type</item>
+      <item>mysqli_send_query</item>
+      <item>mysqli_slave_query</item>
+      <item>ocifetchinto</item>
+      <item>ora_bind</item>
+      <item>ora_close</item>
+      <item>ora_columnname</item>
+      <item>ora_columnsize</item>
+      <item>ora_columntype</item>
+      <item>ora_commit</item>
+      <item>ora_commitoff</item>
+      <item>ora_commiton</item>
+      <item>ora_do</item>
+      <item>ora_error</item>
+      <item>ora_errorcode</item>
+      <item>ora_exec</item>
+      <item>ora_fetch</item>
+      <item>ora_fetch_into</item>
+      <item>ora_getcolumn</item>
+      <item>ora_logoff</item>
+      <item>ora_logon</item>
+      <item>ora_numcols</item>
+      <item>ora_numrows</item>
+      <item>ora_open</item>
+      <item>ora_parse</item>
+      <item>ora_plogon</item>
+      <item>ora_rollback</item>
+      <item>php_check_syntax</item>
+      <item>split</item>
+      <item>spliti</item>
+      <item>sql_regcase</item>
+
+      <!-- Keywords -->
+      <item>var</item>
+
+      <!-- Constants -->
+      <item>OCI_DEFAULT</item>
+      <item>OCI_D_FILE</item>
+      <item>OCI_D_LOB</item>
+      <item>OCI_D_ROWID</item>
+      <item>OCI_EXACT_FETCH</item>
+      <item>OCI_SYSDATE</item>
+    </list>
+
+    <contexts>
+      <!-- JGM:  Added fallthrough so it will handle snippets that don't begin with <?php -->
+      <context name="start" lineEndContext="#stay" attribute="Normal Text" fallthrough="true" fallthroughContext="phpsource">
+        <RegExpr context="phpsource" attribute="Keyword" String="&lt;\?(?:=|php)?" insensitive="true" />
+        <StringDetect attribute="Keyword" context="#pop" String="?&gt;" />
+      </context>
+      <context name="phpsource" attribute="PHP Text" lineEndContext="#stay">
+        <DetectSpaces />
+        <StringDetect attribute="Keyword" context="#pop" String="?&gt;" lookAhead="true" />
+
+        <!-- Alternate PHP Block Syntax
+          -  http://www.php.net/manual/en/control-structures.alternative-syntax.php
+          -
+          -  We must treat the ternary and case/default statements specially so that the : in those can be
+          -  ignored.  Then otherwise we treat the : as a block start, and the 5 different end statements as
+          -  a block end.
+          -
+          -  The ternary and case/default switch to a context which short-circuits the : detection and
+          -  just pops back to this context instead of starting a block.
+          -
+          -  We can not use case/default as starting a block because they can be terminated by break. return
+          -  or not at all, making it impossible to determine where the block should end.
+          -
+          -  Additionally the paamayim nekudotayim (::) must not start a subcontext that is never terminated.
+          -->
+
+        <DetectChar attribute="Other" context="ternary" char="?" />
+        <RegExpr attribute="Keyword" context="case"  String="(case|default)(\s|:|$)" />
+        <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
+        <DetectChar attribute="Normal Text" context="#stay" char=":" beginRegion="Alternate Block" />
+        <RegExpr attribute="Control Structures" context="#stay" String="endif|endwhile|endfor|endforeach|endswitch" endRegion="Alternate Block" />
+        <!--/ Alternate PHP Block Syntax -->
+
+        <DetectChar attribute="Comment" context="onelinecomment" char="#" />
+        <IncludeRules context="##Doxygen" />
+        <Detect2Chars attribute="Comment" context="onelinecomment" char="/" char1="/" />
+        <Detect2Chars attribute="Comment" context="twolinecomment" char="/" char1="*" beginRegion="Comment" />
+        <keyword attribute="Error" context="#stay" String="deprecated"/>
+        <keyword attribute="Control Structures" context="#stay" String="control structures" />
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Classes" context="#stay" String="predefined-classes"/>
+        <DetectChar attribute="Error" context="#stay" char="@" />
+        <keyword attribute="Function" context="#stay" String="functions" />
+        <keyword attribute="Special method" context="#stay" String="special_methods" />
+        <keyword attribute="Library Constant" context="#stay" String="constants"/>
+        <RegExpr attribute="Constant" context="#stay" String="\b[A-Z_][A-Z_0-9]*\b"/>
+
+        <!-- Type casts -->
+        <RegExpr attribute="Types" context="#stay" String="\(\s*(&types;)\s*\)"/>
+
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="doublequotestring" char="&quot;" />
+        <DetectChar attribute="String" context="backquotestring" char="`" />
+        <DetectChar attribute="String" context="singlequotestring" char="'" />
+        <RegExpr attribute="Backslash Code" context="htmlheredoc" String="&lt;&lt;&lt;&quot;((EO)?HTML)&quot;" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="cssheredoc" String="&lt;&lt;&lt;&quot;((EO)?CSS)&quot;" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="javascriptheredoc" String="&lt;&lt;&lt;&quot;((EO)?JAVASCRIPT)&quot;" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="mysqlheredoc" String="&lt;&lt;&lt;&quot;((EO)?MYSQL)&quot;" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="heredoc" String="&lt;&lt;&lt;&quot;([A-Za-z_][A-Za-z0-9_]*)&quot;" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="htmlheredoc" String="&lt;&lt;&lt;((EO)?HTML)\b" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="cssheredoc" String="&lt;&lt;&lt;((EO)?CSS)\b" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="javascriptheredoc" String="&lt;&lt;&lt;((EO)?JAVASCRIPT)\b" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="mysqlheredoc" String="&lt;&lt;&lt;((EO)?MYSQL)\b" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="heredoc" String="&lt;&lt;&lt;([A-Za-z_][A-Za-z0-9_]*)" beginRegion="Heredoc" />
+        <RegExpr attribute="Backslash Code" context="htmlnowdoc" String="&lt;&lt;&lt;'((EO)?HTML)'" beginRegion="Nowdoc" />
+        <RegExpr attribute="Backslash Code" context="cssnowdoc" String="&lt;&lt;&lt;'((EO)?CSS)'" beginRegion="Nowdoc" />
+        <RegExpr attribute="Backslash Code" context="javascriptnowdoc" String="&lt;&lt;&lt;'((EO)?JAVASCRIPT)'" beginRegion="Nowdoc" />
+        <RegExpr attribute="Backslash Code" context="mysqlnowdoc" String="&lt;&lt;&lt;'((EO)?MYSQL)'" beginRegion="Nowdoc" />
+        <RegExpr attribute="Backslash Code" context="nowdoc" String="&lt;&lt;&lt;'([A-Za-z_][A-Za-z0-9_]*)'" beginRegion="Nowdoc" />
+        <keyword attribute="Special Variable" context="#stay" String="special-variables"/>
+        <RegExpr attribute="Variable" context="#stay" String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" />
+        <RegExpr attribute="String" context="#stay" String="[0123456789]*\.\.\.[0123456789]*" />
+        <RegExpr attribute="Binary" context="#stay" String="0[bB][01]+" />
+        <HlCOct attribute="Octal" context="#stay" />
+        <HlCHex attribute="Hex" context="#stay" />
+        <Float attribute="Float" context="#stay" />
+        <Int attribute="Decimal" context="#stay" />
+        <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace1" />
+        <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace1" />
+        <AnyChar attribute="Other" context="#stay" String=";(),[]" />
+      </context>
+
+      <context name="ternary" attribute="PHP Text" lineEndContext="#stay">
+        <!-- the paamayim nekudotayim (::) must not start a subcontext that is never terminated. -->
+        <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
+        <DetectChar attribute="Other" char=":" context="#pop" />
+        <IncludeRules context="phpsource" />
+      </context>
+
+      <context name="case" attribute="PHP Text" lineEndContext="#stay">
+        <IncludeRules context="ternary" />
+      </context>
+
+      <context name="onelinecomment" attribute="Comment" lineEndContext="#pop">
+        <StringDetect attribute="Keyword" context="#pop" lookAhead="true" String="?&gt;" />
+        <IncludeRules context="##Alerts" />
+      </context>
+      <context name="twolinecomment" attribute="Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" />
+        <IncludeRules context="##Alerts" />
+      </context>
+      <context name="doublebackquotestringcommon" attribute="String" lineEndContext="#stay">
+        <!-- Common rules for double quoted strings and backticks (execution operator) URL:
+              http://de3.php.net/manual/en/language.types.string.php#language.types.string.syntax.double -->
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="\" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="n" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="r" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="t" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="v" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="f" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="$" />
+        <RegExpr attribute="Backslash Code" context="#stay" String="\\[0-7]{1,3}" />
+        <RegExpr attribute="Backslash Code" context="#stay" String="\\x[0-9A-Fa-f]{1,2}" />
+        <RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\{\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[([0-9]*|&quot;[^&quot;]*&quot;|\$[a-zA-Z]*)|'[^']*'|\])*(-&gt;[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*(\[([0-9]*|&quot;[a-zA-Z_]*&quot;)|'[a-zA-Z_]*'|\]|\[.*\])*)*\}" />
+      </context>
+      <context name="backquotestring" attribute="String" lineEndContext="#stay">
+        <IncludeRules context="doublebackquotestringcommon" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="`" />
+        <DetectChar attribute="String" context="#pop" char="`" />
+      </context>
+      <context name="doublequotestring" attribute="String" lineEndContext="#stay">
+        <IncludeRules context="doublebackquotestringcommon" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="&quot;" />
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+      </context>
+      <context name="singlequotestring" attribute="String" lineEndContext="#stay">
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="'" />
+        <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="\" />
+        <DetectChar attribute="String" context="#pop" char="'" />
+      </context>
+      <context name="htmlheredoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" />
+        <IncludeRules context="commonheredoc" />
+        <IncludeRules context="##HTML" />
+      </context>
+      <context name="cssheredoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" />
+        <IncludeRules context="commonheredoc" />
+        <IncludeRules context="##CSS" />
+      </context>
+      <context name="mysqlheredoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" />
+        <IncludeRules context="commonheredoc" />
+        <IncludeRules context="##SQL (MySQL)" />
+      </context>
+      <context name="javascriptheredoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" />
+        <IncludeRules context="commonheredoc" />
+        <IncludeRules context="Normal##JavaScript" />
+      </context>
+      <context name="heredoc" attribute="String" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" />
+        <IncludeRules context="commonheredoc" />
+      </context>
+      <context name="commonheredoc" attribute="String" lineEndContext="#stay">
+        <RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\{\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[([0-9]*|&quot;[a-zA-Z_]*&quot;)|'[a-zA-Z_]*'|\])*(-&gt;[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*(\[([0-9]*|&quot;[a-zA-Z_]*&quot;)|'[a-zA-Z_]*'|\])*)*\}" />
+      </context>
+      <context name="htmlnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" />
+        <IncludeRules context="commonnowdoc" />
+        <IncludeRules context="##HTML" />
+      </context>
+      <context name="cssnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" />
+        <IncludeRules context="commonnowdoc" />
+        <IncludeRules context="##CSS" />
+      </context>
+      <context name="mysqlnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" />
+        <IncludeRules context="commonnowdoc" />
+        <IncludeRules context="##SQL (MySQL)" />
+      </context>
+      <context name="javascriptnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" />
+        <IncludeRules context="commonnowdoc" />
+        <IncludeRules context="Normal##JavaScript" />
+      </context>
+      <context name="nowdoc" attribute="String" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" />
+        <IncludeRules context="commonnowdoc" />
+      </context>
+      <context name="commonnowdoc" attribute="String" lineEndContext="#stay">
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
+      <itemData name="PHP Text" defStyleNum="dsNormal" spellChecking="false" />
+      <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />
+      <itemData name="Classes" defStyleNum="dsKeyword" spellChecking="false" />
+      <itemData name="Function" defStyleNum="dsFunction" spellChecking="false" />
+      <itemData name="Special method" defStyleNum="dsFunction" spellChecking="false" />
+      <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" />
+      <itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false" />
+      <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" />
+      <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />
+      <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" />
+      <itemData name="String" defStyleNum="dsString" />
+      <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="Special Variable" defStyleNum="dsKeyword" color="#5555FF" selColor="#ffffff" bold="1" italic="0" spellChecking="false" />
+      <itemData name="Variable" defStyleNum="dsKeyword" color="#5555FF" selColor="#ffffff" bold="0" italic="0" spellChecking="false" />
+      <itemData name="Library Constant" defStyleNum="dsKeyword" bold="1" spellChecking="false" />
+      <itemData name="Constant" defStyleNum="dsKeyword" bold="0" spellChecking="false" />
+      <itemData name="Control Structures" defStyleNum="dsKeyword" color="#A1A100" selColor="#ffffff" bold="0" italic="0" spellChecking="false" />
+      <itemData name="Backslash Code" defStyleNum="dsKeyword" color="#0F0F8F" selColor="#ffffff" bold="1" italic="0" spellChecking="false" />
+      <itemData name="Other" defStyleNum="dsOthers" spellChecking="false" />
+
+      <itemData name="HTML Tag" defStyleNum="dsKeyword" color="#0F0000" selColor="#ffffff" bold="1" italic="0" spellChecking="false" />
+      <itemData name="HTML Comment" defStyleNum="dsComment" />
+      <itemData name="Identifier" defStyleNum="dsOthers" spellChecking="false" />
+      <itemData name="Types" defStyleNum="dsDataType" spellChecking="false" />
+      <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+    <keywords casesensitive="0" weakDeliminator="" additionalDeliminator="@" />
+  </general>
+</language>
diff --git a/xml/pike.xml b/xml/pike.xml
new file mode 100644
--- /dev/null
+++ b/xml/pike.xml
@@ -0,0 +1,121 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- FIXME: Find a way to prevent ranges (e.g. [1..] or [0..99]) from matching as floats. -pp -->
+<language name="Pike" version="2" kateversion="2.4" section="Scripts" extensions="*.pike" mimetype="application/x-pike;text/x-pike" casesensitive="1" author="Paul Pogonyshev" license="">
+  <highlighting>
+    <list name="keywords">
+      <item>break</item>
+      <item>case</item>
+      <item>class</item>
+      <item>continue</item>
+      <item>default</item>
+      <item>do</item>
+      <item>else</item>
+      <item>for</item>
+      <item>foreach</item>
+      <item>if</item>
+      <item>return</item>
+      <item>switch</item>
+      <item>while</item>
+    </list>
+    <list name="types">
+      <item>array</item>
+      <item>float</item>
+      <item>function</item>
+      <item>int</item>
+      <item>mapping</item>
+      <item>mixed</item>
+      <item>multiset></item>
+      <item>object</item>
+      <item>program</item>
+      <item>static</item>
+      <item>string</item>
+      <item>void</item>
+    </list>
+    <list name="builtins">
+      <item>catch</item>
+      <item>gauge</item>
+      <item>sscanf</item>
+      <item>typeof</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+	<keyword attribute="Keyword" context="#stay" String="keywords"/>
+	<keyword attribute="Data Type" context="#stay" String="types"/>
+	<keyword attribute="Builtin Function" context="#stay" String="builtins"/>
+	<RegExpr attribute="Builtin Function" context="#stay" String="`([\+\-\*/%~&amp;\|^]|[!=&lt;&gt;]=|&lt;&lt;?|&gt;&gt;?|(\[\]|->)=?)"/>
+	<Float attribute="Float" context="#stay"/>
+	<RegExpr attribute="Binary" context="#stay" String="0[bB][01]+"/>
+	<HlCOct attribute="Octal" context="#stay"/>
+	<HlCHex attribute="Hex" context="#stay"/>
+	<Int attribute="Decimal" context="#stay"/>
+	<HlCChar attribute="Char" context="#stay"/>
+	<DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace"/>
+	<DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace"/>
+	<DetectChar attribute="String" context="String" char="&quot;"/>
+	<Detect2Chars attribute="Comment" context="Line Comment" char="/" char1="/"/>
+	<Detect2Chars attribute="Comment" context="Line Comment" char="#" char1="!"/>
+	<Detect2Chars attribute="Comment" context="Block Comment" char="/" char1="*" beginRegion="Comment"/>
+	<RegExpr attribute="Preprocessor" context="Outscoped" String="#\s*if\s+0" beginRegion="Outscoped" firstNonSpace="true"/>
+	<DetectChar attribute="Preprocessor" context="Preprocessor" char="#" firstNonSpace="true"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+	<RegExpr attribute="String Char" context="#stay" String="\\d[0-9]+"/>
+	<HlCStringChar attribute="String Char" context="#stay"/>
+	<DetectChar attribute="String" context="#pop" char="&quot;"/>
+	<LineContinue attribute="String" context="#stay"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Line Comment">
+	<RegExpr attribute="Note" context="#stay" String="(FIXME|TODO|NOT(IC)?E):?"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Block Comment">
+	<Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+	<RegExpr attribute="Note" context="#stay" String="(FIXME|TODO|NOT(IC)?E):?"/>
+      </context>
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
+	<RangeDetect attribute="Preprocessor Lib" context="#stay" char="&quot;" char1="&quot;"/>
+	<RangeDetect attribute="Preprocessor Lib" context="#stay" char="&lt;" char1="&gt;"/>
+	<Detect2Chars attribute="Comment" context="Line Comment" char="/" char1="/"/>
+	<Detect2Chars attribute="Comment" context="Block Comment" char="/" char1="*"/>
+	<LineContinue attribute="Preprocessor" context="#stay"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Outscoped">
+	<RegExpr attribute="Note" context="#stay" String="(FIXME|TODO|NOT(IC)?E):?"/>
+	<Detect2Chars attribute="Comment" context="Block Comment" char="/" char1="*" beginRegion="Comment"/>
+	<RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="Outscoped" firstNonSpace="true"/>
+	<RegExpr attribute="Preprocessor" context="#pop" String="#\s*(endif|elif|else)" endRegion="Outscoped" firstNonSpace="true"/>
+      </context>         
+      <context attribute="Comment" lineEndContext="#stay" name="Outscoped intern">
+	<Detect2Chars attribute="Comment" context="Block Comment" char="/" char1="*" beginRegion="Comment"/>
+	<RegExpr attribute="Comment" context="Outscoped intern" String="#\s*if" beginRegion="Outscoped" firstNonSpace="true"/>
+	<RegExpr attribute="Comment" context="#pop" String="#\s*endif" endRegion="Outscoped" firstNonSpace="true"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"	defStyleNum="dsNormal"/>
+      <itemData name="Keyword"		defStyleNum="dsKeyword"/>
+      <itemData name="Builtin Function" defStyleNum="dsFunction"/>
+      <itemData name="Data Type"	defStyleNum="dsDataType"/>
+      <itemData name="Decimal"		defStyleNum="dsDecVal"/>
+      <itemData name="Hex"		defStyleNum="dsBaseN"/>
+      <itemData name="Octal"		defStyleNum="dsBaseN"/>
+      <itemData name="Binary"		defStyleNum="dsBaseN"/>
+      <itemData name="Float"		defStyleNum="dsFloat"/>
+      <itemData name="Char"		defStyleNum="dsChar"/>
+      <itemData name="String"		defStyleNum="dsString"/>
+      <itemData name="String Char"	defStyleNum="dsChar"/>
+      <itemData name="Comment"		defStyleNum="dsComment"/>
+      <itemData name="Note"		defStyleNum="dsAlert"/>
+      <itemData name="Preprocessor"	defStyleNum="dsOthers"/>
+      <itemData name="Preprocessor Lib" defStyleNum="dsString"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#!"/>
+      <comment name="singleLine" start="//"/>
+      <comment name="multiLine" start="/*" end="*/"/>
+    </comments>
+    <keywords casesensitive="1"/>
+  </general>
+</language>
diff --git a/xml/postscript.xml b/xml/postscript.xml
new file mode 100644
--- /dev/null
+++ b/xml/postscript.xml
@@ -0,0 +1,434 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="PostScript" version="2" kateversion="2.2" section="Markup" extensions="*.ps;*.ai;*.eps" mimetype="application/postscript">
+<highlighting>
+	<list name="keywords">
+		<item>abs</item>
+		<item>add</item>
+		<item>aload</item>
+		<item>anchorsearch</item>
+		<item>and</item>
+		<item>arc</item>
+		<item>arcn</item>
+		<item>arct</item>
+		<item>arcto</item>
+		<item>array</item>
+		<item>ashow</item>
+		<item>astore</item>
+		<item>awidthshow</item>
+		<item>begin</item>
+		<item>bind</item>
+		<item>bitshift</item>
+		<item>ceiling</item>
+		<item>charpath</item>
+		<item>clear</item>
+		<item>cleartomark</item>
+		<item>clip</item>
+		<item>clippath</item>
+		<item>closepath</item>
+		<item>concat</item>
+		<item>concatmatrix</item>
+		<item>copy</item>
+		<item>count</item>
+		<item>counttomark</item>
+		<item>currentcmykcolor</item>
+		<item>currentdash</item>
+		<item>currentdict</item>
+		<item>currentfile</item>
+		<item>currentfont</item>
+		<item>currentgray</item>
+		<item>currentgstate</item>
+		<item>currenthsbcolor</item>
+		<item>currentlinecap</item>
+		<item>currentlinejoin</item>
+		<item>currentlinewidth</item>
+		<item>currentmatrix</item>
+		<item>currentpoint</item>
+		<item>currentrgbcolor</item>
+		<item>currentshared</item>
+		<item>curveto</item>
+		<item>cvi</item>
+		<item>cvlit</item>
+		<item>cvn</item>
+		<item>cvr</item>
+		<item>cvrs</item>
+		<item>cvs</item>
+		<item>cvx</item>
+		<item>def</item>
+		<item>defineusername</item>
+		<item>dict</item>
+		<item>div</item>
+		<item>dtransform</item>
+		<item>dup</item>
+		<item>end</item>
+		<item>eoclip</item>
+		<item>eofill</item>
+		<item>eoviewclip</item>
+		<item>eq</item>
+		<item>exch</item>
+		<item>exec</item>
+		<item>exit</item>
+		<item>file</item>
+		<item>fill</item>
+		<item>findfont</item>
+		<item>flattenpath</item>
+		<item>floor</item>
+		<item>flush</item>
+		<item>flushfile</item>
+		<item>for</item>
+		<item>forall</item>
+		<item>ge</item>
+		<item>get</item>
+		<item>getinterval</item>
+		<item>grestore</item>
+		<item>gsave</item>
+		<item>gstate</item>
+		<item>gt</item>
+		<item>identmatrix</item>
+		<item>idiv</item>
+		<item>idtransform</item>
+		<item>if</item>
+		<item>ifelse</item>
+		<item>image</item>
+		<item>imagemask</item>
+		<item>index</item>
+		<item>ineofill</item>
+		<item>infill</item>
+		<item>initviewclip</item>
+		<item>inueofill</item>
+		<item>inufill</item>
+		<item>invertmatrix</item>
+		<item>itransform</item>
+		<item>known</item>
+		<item>le</item>
+		<item>length</item>
+		<item>lineto</item>
+		<item>load</item>
+		<item>loop</item>
+		<item>lt</item>
+		<item>makefont</item>
+		<item>matrix</item>
+		<item>maxlength</item>
+		<item>mod</item>
+		<item>moveto</item>
+		<item>mul</item>
+		<item>ne</item>
+		<item>neg</item>
+		<item>newpath</item>
+		<item>not</item>
+		<item>null</item>
+		<item>or</item>
+		<item>pathbbox</item>
+		<item>pathforall</item>
+		<item>pop</item>
+		<item>print</item>
+		<item>printobject</item>
+		<item>put</item>
+		<item>putinterval</item>
+		<item>rcurveto</item>
+		<item>read</item>
+		<item>readhexstring</item>
+		<item>readline</item>
+		<item>readstring</item>
+		<item>rectclip</item>
+		<item>rectfill</item>
+		<item>rectstroke</item>
+		<item>rectviewclip</item>
+		<item>repeat</item>
+		<item>restore</item>
+		<item>rlineto</item>
+		<item>rmoveto</item>
+		<item>roll</item>
+		<item>rotate</item>
+		<item>round</item>
+		<item>save</item>
+		<item>scale</item>
+		<item>scalefont</item>
+		<item>search</item>
+		<item>selectfont</item>
+		<item>setbbox</item>
+		<item>setcachedevice</item>
+		<item>setcachedevice2</item>
+		<item>setcharwidth</item>
+		<item>setcmykcolor</item>
+		<item>setdash</item>
+		<item>setfont</item>
+		<item>setgray</item>
+		<item>setgstate</item>
+		<item>sethsbcolor</item>
+		<item>setlinecap</item>
+		<item>setlinejoin</item>
+		<item>setlinewidth</item>
+		<item>setmatrix</item>
+		<item>setrgbcolor</item>
+		<item>setshared</item>
+		<item>shareddict</item>
+		<item>show</item>
+		<item>showpage</item>
+		<item>stop</item>
+		<item>stopped</item>
+		<item>store</item>
+		<item>string</item>
+		<item>stringwidth</item>
+		<item>stroke</item>
+		<item>strokepath</item>
+		<item>sub</item>
+		<item>systemdict</item>
+		<item>token</item>
+		<item>transform</item>
+		<item>translate</item>
+		<item>truncate</item>
+		<item>type</item>
+		<item>uappend</item>
+		<item>ucache</item>
+		<item>ueofill</item>
+		<item>ufill</item>
+		<item>undef</item>
+		<item>upath</item>
+		<item>userdict</item>
+		<item>ustroke</item>
+		<item>viewclip</item>
+		<item>viewclippath</item>
+		<item>where</item>
+		<item>widthshow</item>
+		<item>write</item>
+		<item>writehexstring</item>
+		<item>writeobject</item>
+		<item>writestring</item>
+		<item>wtranslation</item>
+		<item>xor</item>
+		<item>xshow</item>
+		<item>xyshow</item>
+		<item>yshow</item>
+		<item>FontDirectory</item>
+		<item>SharedFontDirectory</item>
+		<item>Courier</item>
+		<item>Courier-Bold</item>
+		<item>Courier-BoldOblique</item>
+		<item>Courier-Oblique</item>
+		<item>Helvetica</item>
+		<item>Helvetica-Bold</item>
+		<item>Helvetica-BoldOblique</item>
+		<item>Helvetica-Oblique</item>
+		<item>Symbol</item>
+		<item>Times-Bold</item>
+		<item>Times-BoldItalic</item>
+		<item>Times-Italic</item>
+		<item>Times-Roman</item>
+		<item>execuserobject</item>
+		<item>currentcolor</item>
+		<item>currentcolorspace</item>
+		<item>currentglobal</item>
+		<item>execform</item>
+		<item>filter</item>
+		<item>findresource</item>
+		<item>globaldict</item>
+		<item>makepattern</item>
+		<item>setcolor</item>
+		<item>setcolorspace</item>
+		<item>setglobal</item>
+		<item>setpagedevice</item>
+		<item>setpattern</item>
+		<item>ISOLatin1Encoding</item>
+		<item>StandardEncoding</item>
+		<item>atan</item>
+		<item>banddevice</item>
+		<item>bytesavailable</item>
+		<item>cachestatus</item>
+		<item>closefile</item>
+		<item>colorimage</item>
+		<item>condition</item>
+		<item>copypage</item>
+		<item>cos</item>
+		<item>countdictstack</item>
+		<item>countexecstack</item>
+		<item>cshow</item>
+		<item>currentblackgeneration</item>
+		<item>currentcacheparams</item>
+		<item>currentcolorscreen</item>
+		<item>currentcolortransfer</item>
+		<item>currentcontext</item>
+		<item>currentflat</item>
+		<item>currenthalftone</item>
+		<item>currenthalftonephase</item>
+		<item>currentmiterlimit</item>
+		<item>currentobjectformat</item>
+		<item>currentpacking</item>
+		<item>currentscreen</item>
+		<item>currentstrokeadjust</item>
+		<item>currenttransfer</item>
+		<item>currentundercolorremoval</item>
+		<item>defaultmatrix</item>
+		<item>definefont</item>
+		<item>deletefile</item>
+		<item>detach</item>
+		<item>deviceinfo</item>
+		<item>dictstack</item>
+		<item>echo</item>
+		<item>erasepage</item>
+		<item>errordict</item>
+		<item>execstack</item>
+		<item>executeonly</item>
+		<item>exp</item>
+		<item>false</item>
+		<item>filenameforall</item>
+		<item>fileposition</item>
+		<item>fork</item>
+		<item>framedevice</item>
+		<item>grestoreall</item>
+		<item>handleerror</item>
+		<item>initclip</item>
+		<item>initgraphics</item>
+		<item>initmatrix</item>
+		<item>instroke</item>
+		<item>inustroke</item>
+		<item>join</item>
+		<item>kshow</item>
+		<item>ln</item>
+		<item>lock</item>
+		<item>log</item>
+		<item>mark</item>
+		<item>monitor</item>
+		<item>noaccess</item>
+		<item>notify</item>
+		<item>nulldevice</item>
+		<item>packedarray</item>
+		<item>quit</item>
+		<item>rand</item>
+		<item>rcheck</item>
+		<item>readonly</item>
+		<item>realtime</item>
+		<item>renamefile</item>
+		<item>renderbands</item>
+		<item>resetfile</item>
+		<item>reversepath</item>
+		<item>rootfont</item>
+		<item>rrand</item>
+		<item>run</item>
+		<item>scheck</item>
+		<item>setblackgeneration</item>
+		<item>setcachelimit</item>
+		<item>setcacheparams</item>
+		<item>setcolorscreen</item>
+		<item>setcolortransfer</item>
+		<item>setfileposition</item>
+		<item>setflat</item>
+		<item>sethalftone</item>
+		<item>sethalftonephase</item>
+		<item>setmiterlimit</item>
+		<item>setobjectformat</item>
+		<item>setpacking</item>
+		<item>setscreen</item>
+		<item>setstrokeadjust</item>
+		<item>settransfer</item>
+		<item>setucacheparams</item>
+		<item>setundercolorremoval</item>
+		<item>sin</item>
+		<item>sqrt</item>
+		<item>srand</item>
+		<item>stack</item>
+		<item>status</item>
+		<item>statusdict</item>
+		<item>true</item>
+		<item>ucachestatus</item>
+		<item>undefinefont</item>
+		<item>usertime</item>
+		<item>ustrokepath</item>
+		<item>version</item>
+		<item>vmreclaim</item>
+		<item>vmstatus</item>
+		<item>wait</item>
+		<item>wcheck</item>
+		<item>xcheck</item>
+		<item>yield</item>
+		<item>defineuserobject</item>
+		<item>undefineuserobject</item>
+		<item>UserObjects</item>
+		<item>cleardictstack</item>
+		<item>setvmthreshold</item>
+		<item>currentcolorrendering</item>
+		<item>currentdevparams</item>
+		<item>currentoverprint</item>
+		<item>currentpagedevice</item>
+		<item>currentsystemparams</item>
+		<item>currentuserparams</item>
+		<item>defineresource</item>
+		<item>findencoding</item>
+		<item>gcheck</item>
+		<item>glyphshow</item>
+		<item>languagelevel</item>
+		<item>product</item>
+		<item>pstack</item>
+		<item>resourceforall</item>
+		<item>resourcestatus</item>
+		<item>revision</item>
+		<item>serialnumber</item>
+		<item>setcolorrendering</item>
+		<item>setdevparams</item>
+		<item>setoverprint</item>
+		<item>setsystemparams</item>
+		<item>setuserparams</item>
+		<item>startjob</item>
+		<item>undefineresource</item>
+		<item>GlobalFontDirectory</item>
+		<item>ASCII85Decode</item>
+		<item>ASCII85Encode</item>
+		<item>ASCIIHexDecode</item>
+		<item>ASCIIHexEncode</item>
+		<item>CCITTFaxDecode</item>
+		<item>CCITTFaxEncode</item>
+		<item>DCTDecode</item>
+		<item>DCTEncode</item>
+		<item>LZWDecode</item>
+		<item>LZWEncode</item>
+		<item>NullEncode</item>
+		<item>RunLengthDecode</item>
+		<item>RunLengthEncode</item>
+		<item>SubFileDecode</item>
+		<item>CIEBasedA</item>
+		<item>CIEBasedABC</item>
+		<item>DeviceCMYK</item>
+		<item>DeviceGray</item>
+		<item>DeviceRGB</item>
+		<item>Indexed</item>
+		<item>Pattern</item>
+		<item>Separation</item>
+		<item>CIEBasedDEF</item>
+		<item>CIEBasedDEFG</item>
+		<item>DeviceN</item>
+	</list>
+
+	<contexts>
+		<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+			<keyword attribute="Keyword" context="#stay" String="keywords"/>
+			<Detect2Chars attribute="Header" context="Header" char="%" char1="!"/>
+			<DetectChar attribute="Comment" context="Comment" char="%"/>
+			<Float attribute="Float" context="#stay"/>
+			<Int attribute="Decimal" context="#stay"/>
+		        <DetectChar attribute="String" context="String" char="("/>
+			<RegExpr attribute="Data Type" context="#stay" String="\/{1,2}[^\s\(\)\{\}\[\]%/]*"/>
+		</context>
+		<context attribute="Comment" lineEndContext="#pop" name="Comment"/>
+		<context attribute="Header" lineEndContext="#pop" name="Header"/>
+		<context attribute="String" lineEndContext="#stay" name="String">
+			<DetectChar attribute="String" context="#pop" char=")" />
+		</context>
+	</contexts>
+	<itemDatas>
+		<itemData name="Normal Text" defStyleNum="dsNormal"/>
+		<itemData name="Keyword" defStyleNum="dsKeyword"/>
+		<itemData name="Comment" defStyleNum="dsComment"/>
+		<itemData name="Header" defStyleNum="dsOthers"/>
+		<itemData name="Float" defStyleNum="dsFloat"/>
+		<itemData name="Decimal" defStyleNum="dsDecVal"/>
+		<itemData name="String" defStyleNum="dsString"/>
+		<itemData name="Data Type" defStyleNum="dsDataType"/>
+	</itemDatas>
+</highlighting>
+<general>
+	<comments>
+		<comment name="singleLine" start="%" />
+	</comments>
+	<keywords casesensitive="0" />
+</general>
+</language>
diff --git a/xml/powershell.xml b/xml/powershell.xml
new file mode 100644
--- /dev/null
+++ b/xml/powershell.xml
@@ -0,0 +1,932 @@
+<!DOCTYPE language SYSTEM "language.dtd">
+<language
+  name="PowerShell"
+  version="2"
+  kateversion="5.0"
+  extensions="*.ps1;*.ps1m;*.ps1d"
+  section="Scripts"
+  author="Motoki Kashihara (motoki8791@gmail.com); Michael Lombardi (Michael.T.Lombardi@outlook.com)"
+  casesensitive="0"
+  license="LGPLv2+">
+  <highlighting>
+    <list name="keywords">
+      <item>Begin</item>
+      <item>Exit</item>
+      <item>Process</item>
+      <item>Break</item>
+      <item>Filter</item>
+      <item>Return</item>
+      <item>Catch</item>
+      <item>Finally</item>
+      <item>Sequence</item>
+      <item>Class</item>
+      <item>For</item>
+      <item>Switch</item>
+      <item>Continue</item>
+      <item>ForEach</item>
+      <item>Throw</item>
+      <item>Data</item>
+      <item>From</item>
+      <item>Trap</item>
+      <item>Define</item>
+      <item>Function</item>
+      <item>Try</item>
+      <item>Do</item>
+      <item>If</item>
+      <item>Until</item>
+      <item>DynamicParam</item>
+      <item>In</item>
+      <item>Using</item>
+      <item>Else</item>
+      <item>InlineScript</item>
+      <item>Var</item>
+      <item>ElseIf</item>
+      <item>Parallel</item>
+      <item>While</item>
+      <item>End</item>
+      <item>Param</item>
+      <item>Workflow</item>
+    </list>
+    <list name="attributes">
+      <item>CmdletBinding</item>
+      <item>ConfirmImpact</item>
+      <item>DefaultParameterSetName</item>
+      <item>HelpURI</item>
+      <item>SupportsPaging</item>
+      <item>SupportsShouldProcess</item>
+      <item>PositionalBinding</item>
+    </list>
+    <list name="types">
+      <item>bool</item>
+      <item>byte</item>
+      <item>char</item>
+      <item>decimal</item>
+      <item>double</item>
+      <item>float</item>
+      <item>int</item>
+      <item>long</item>
+      <item>object</item>
+      <item>sbyte</item>
+      <item>short</item>
+      <item>string</item>
+      <item>switch</item>
+      <item>uint</item>
+      <item>ulong</item>
+      <item>ushort</item>
+    </list>
+    <list name="operators">
+      <item>-split</item>
+      <item>-isplit</item>
+      <item>-csplit</item>
+      <item>-join</item>
+      <item>-is</item>
+      <item>-isnot</item>
+      <item>-as</item>
+      <item>-eq</item>
+      <item>-ieq</item>
+      <item>-ceq</item>
+      <item>-ne</item>
+      <item>-ine</item>
+      <item>-cne</item>
+      <item>-gt</item>
+      <item>-igt</item>
+      <item>-cgt</item>
+      <item>-ge</item>
+      <item>-ige</item>
+      <item>-cge</item>
+      <item>-lt</item>
+      <item>-ilt</item>
+      <item>-clt</item>
+      <item>-le</item>
+      <item>-ile</item>
+      <item>-cle</item>
+      <item>-like</item>
+      <item>-ilike</item>
+      <item>-clike</item>
+      <item>-notlike</item>
+      <item>-inotlike</item>
+      <item>-cnotlike</item>
+      <item>-match</item>
+      <item>-imatch</item>
+      <item>-cmatch</item>
+      <item>-notmatch</item>
+      <item>-inotmatch</item>
+      <item>-cnotmatch</item>
+      <item>-contains</item>
+      <item>-icontains</item>
+      <item>-ccontains</item>
+      <item>-notcontains</item>
+      <item>-inotcontains</item>
+      <item>-cnotcontains</item>
+      <item>-replace</item>
+      <item>-ireplace</item>
+      <item>-creplace</item>
+      <item>-band</item>
+      <item>-bor</item>
+      <item>-bxor</item>
+      <item>-and</item>
+      <item>-or</item>
+      <item>-xor</item>
+      <item>.</item>
+      <item>&amp;</item>
+      <item>=</item>
+      <item>+=</item>
+      <item>-=</item>
+      <item>*=</item>
+      <item>/=</item>
+      <item>%=</item>
+    </list>
+    <list name="cmdlets">
+      <item>Add-Content</item>
+      <item>Add-ADComputerServiceAccount</item>
+      <item>Add-ADDomainControllerPasswordReplicationPolicy</item>
+      <item>Add-ADFineGrainedPasswordPolicySubject</item>
+      <item>Add-ADGroupMember</item>
+      <item>Add-ADPrincipalGroupMembership</item>
+      <item>Add-BitsFile</item>
+      <item>Add-ClusterDisk</item>
+      <item>Add-ClusterFileServerRole</item>
+      <item>Add-ClusterGenericApplicationRole</item>
+      <item>Add-ClusterGenericScriptRole</item>
+      <item>Add-ClusterGenericServiceRole</item>
+      <item>Add-ClusterGroup</item>
+      <item>Add-ClusterNode</item>
+      <item>Add-ClusterPrintServerRole</item>
+      <item>Add-ClusterResource</item>
+      <item>Add-ClusterResourceDependency</item>
+      <item>Add-ClusterResourceType</item>
+      <item>Add-ClusterServerRole</item>
+      <item>Add-ClusterSharedVolume</item>
+      <item>Add-ClusterVirtualMachineRole</item>
+      <item>Add-Computer</item>
+      <item>Add-Content</item>
+      <item>Add-History</item>
+      <item>Add-JobTrigger</item>
+      <item>Add-Member</item>
+      <item>Add-NlbClusterNode</item>
+      <item>Add-NlbClusterNodeDip</item>
+      <item>Add-NlbClusterPortRule</item>
+      <item>Add-NlbClusterVip</item>
+      <item>Add-PSSnapin</item>
+      <item>Add-Type</item>
+      <item>Backup-GPO</item>
+      <item>Block-ClusterAccess</item>
+      <item>Checkpoint-Computer</item>
+      <item>Clear-ADAccountExpiration</item>
+      <item>Clear-ClusterDiskReservation</item>
+      <item>Clear-ClusterNode</item>
+      <item>Clear-Content</item>
+      <item>Clear-EventLog</item>
+      <item>Clear-History</item>
+      <item>Clear-Item</item>
+      <item>Clear-ItemProperty</item>
+      <item>Clear-RecycleBin</item>
+      <item>Clear-Variable</item>
+      <item>Compare-Object</item>
+      <item>Complete-BitsTransfer</item>
+      <item>Complete-Transaction</item>
+      <item>Connect-PSSession</item>
+      <item>Connect-WSMan</item>
+      <item>ConvertFrom-Csv</item>
+      <item>ConvertFrom-Json</item>
+      <item>ConvertFrom-SecureString</item>
+      <item>ConvertFrom-String</item>
+      <item>ConvertFrom-StringData</item>
+      <item>Convert-Path</item>
+      <item>Convert-String</item>
+      <item>ConvertTo-Csv</item>
+      <item>ConvertTo-Html</item>
+      <item>ConvertTo-Json</item>
+      <item>ConvertTo-SecureString</item>
+      <item>ConvertTo-Xml</item>
+      <item>Copy-GPO</item>
+      <item>Copy-Item</item>
+      <item>Copy-ItemProperty</item>
+      <item>Debug-Job</item>
+      <item>Debug-Process</item>
+      <item>Debug-Runspace</item>
+      <item>Disable-ADAccount</item>
+      <item>Disable-ADOptionalFeature</item>
+      <item>Disable-ComputerRestore</item>
+      <item>Disable-JobTrigger</item>
+      <item>Disable-NlbClusterPortRule</item>
+      <item>Disable-PSBreakpoint</item>
+      <item>Disable-PSRemoting</item>
+      <item>Disable-PSSessionConfiguration</item>
+      <item>Disable-RunspaceDebug</item>
+      <item>Disable-ScheduledJob</item>
+      <item>Disable-WSManCredSSP</item>
+      <item>Disconnect-PSSession</item>
+      <item>Disconnect-WSMan</item>
+      <item>Enable-ADAccount</item>
+      <item>Enable-ADOptionalFeature</item>
+      <item>Enable-ComputerRestore</item>
+      <item>Enable-JobTrigger</item>
+      <item>Enable-NlbClusterPortRule</item>
+      <item>Enable-PSBreakpoint</item>
+      <item>Enable-PSRemoting</item>
+      <item>Enable-PSSessionConfiguration</item>
+      <item>Enable-RunspaceDebug</item>
+      <item>Enable-ScheduledJob</item>
+      <item>Enable-WSManCredSSP</item>
+      <item>Enter-PSHostProcess</item>
+      <item>Enter-PSSession</item>
+      <item>Exit-PSHostProcess</item>
+      <item>Exit-PSSession</item>
+      <item>Export-Alias</item>
+      <item>Export-BinaryMiLog</item>
+      <item>Export-Clixml</item>
+      <item>Export-Console</item>
+      <item>Export-Counter</item>
+      <item>Export-Csv</item>
+      <item>Export-FormatData</item>
+      <item>Export-ModuleMember</item>
+      <item>Export-PSSession</item>
+      <item>Find-Package</item>
+      <item>Find-PackageProvider</item>
+      <item>ForEach-Object</item>
+      <item>Format-Custom</item>
+      <item>Format-List</item>
+      <item>Format-Table</item>
+      <item>Format-Wide</item>
+      <item>Get-Acl</item>
+      <item>Get-ADAccountAuthorizationGroup</item>
+      <item>Get-ADAccountResultantPasswordReplicationPolicy</item>
+      <item>Get-ADComputer</item>
+      <item>Get-ADComputerServiceAccount</item>
+      <item>Get-ADDefaultDomainPasswordPolicy</item>
+      <item>Get-ADDomain</item>
+      <item>Get-ADDomainController</item>
+      <item>Get-ADDomainControllerPasswordReplicationPolicy</item>
+      <item>Get-ADDomainControllerPasswordReplicationPolicyUsage</item>
+      <item>Get-ADFineGrainedPasswordPolicy</item>
+      <item>Get-ADFineGrainedPasswordPolicySubject</item>
+      <item>Get-ADForest</item>
+      <item>Get-ADGroup</item>
+      <item>Get-ADGroupMember</item>
+      <item>Get-ADObject</item>
+      <item>Get-ADOptionalFeature</item>
+      <item>Get-ADOrganizationalUnit</item>
+      <item>Get-ADPrincipalGroupMembership</item>
+      <item>Get-ADRootDSE</item>
+      <item>Get-ADServiceAccount</item>
+      <item>Get-ADUser</item>
+      <item>Get-ADUserResultantPasswordPolicy</item>
+      <item>Get-Alias</item>
+      <item>Get-AppLockerFileInformation</item>
+      <item>Get-AppLockerPolicy</item>
+      <item>Get-AuthenticodeSignature</item>
+      <item>Get-BitsTransfer</item>
+      <item>Get-ChildItem</item>
+      <item>Get-CimAssociatedInstance</item>
+      <item>Get-CimClass</item>
+      <item>Get-CimInstance</item>
+      <item>Get-CimSession</item>
+      <item>Get-Clipboard</item>
+      <item>Get-Cluster</item>
+      <item>Get-ClusterAccess</item>
+      <item>Get-ClusterAvailableDisk</item>
+      <item>Get-ClusterGroup</item>
+      <item>Get-ClusterLog</item>
+      <item>Get-ClusterNetwork</item>
+      <item>Get-ClusterNetworkInterfac</item>
+      <item>Get-ClusterNode</item>
+      <item>Get-ClusterOwnerNode</item>
+      <item>Get-ClusterParameter</item>
+      <item>Get-ClusterQuorum</item>
+      <item>Get-ClusterResource</item>
+      <item>Get-ClusterResourceDependency</item>
+      <item>Get-ClusterResourceDependencyReport</item>
+      <item>Get-ClusterResourceType</item>
+      <item>Get-ClusterSharedVolume</item>
+      <item>Get-CmsMessage</item>
+      <item>Get-Command</item>
+      <item>Get-ComputerRestorePoint</item>
+      <item>Get-Content</item>
+      <item>Get-ControlPanelItem</item>
+      <item>Get-Counter</item>
+      <item>Get-Credential</item>
+      <item>Get-Culture</item>
+      <item>Get-Date</item>
+      <item>Get-Event</item>
+      <item>Get-EventLog</item>
+      <item>Get-EventSubscriber</item>
+      <item>Get-ExecutionPolicy</item>
+      <item>Get-FormatData</item>
+      <item>Get-GPInheritance</item>
+      <item>Get-GPO</item>
+      <item>Get-GPOReport</item>
+      <item>Get-GPPermissions</item>
+      <item>Get-GPPrefRegistryValue</item>
+      <item>Get-GPRegistryValue</item>
+      <item>Get-GPResultantSetOfPolicy</item>
+      <item>Get-GPStarterGPO</item>
+      <item>Get-Help</item>
+      <item>Get-History</item>
+      <item>Get-Host</item>
+      <item>Get-HotFix</item>
+      <item>Get-Item</item>
+      <item>Get-ItemProperty</item>
+      <item>Get-ItemPropertyValue</item>
+      <item>Get-Job</item>
+      <item>Get-JobTrigger</item>
+      <item>Get-Location</item>
+      <item>Get-Member</item>
+      <item>Get-Module</item>
+      <item>Get-NlbCluster</item>
+      <item>Get-NlbClusterDriverInfo</item>
+      <item>Get-NlbClusterNode</item>
+      <item>Get-NlbClusterNodeDip</item>
+      <item>Get-NlbClusterNodeNetworkInterface</item>
+      <item>Get-NlbClusterPortRule</item>
+      <item>Get-NlbClusterVip</item>
+      <item>Get-Package</item>
+      <item>Get-PackageProvider</item>
+      <item>Get-PackageSource</item>
+      <item>Get-PfxCertificate</item>
+      <item>Get-Process</item>
+      <item>Get-PSBreakpoint</item>
+      <item>Get-PSCallStack</item>
+      <item>Get-PSDrive</item>
+      <item>Get-PSHostProcessInfo</item>
+      <item>Get-PSProvider</item>
+      <item>Get-PSReadlineKeyHandler</item>
+      <item>Get-PSReadlineOption</item>
+      <item>Get-PSSession</item>
+      <item>Get-PSSessionCapability</item>
+      <item>Get-PSSessionConfiguration</item>
+      <item>Get-PSSnapin</item>
+      <item>Get-Random</item>
+      <item>Get-Runspace</item>
+      <item>Get-RunspaceDebug</item>
+      <item>Get-ScheduledJob</item>
+      <item>Get-ScheduledJobOption</item>
+      <item>Get-Service</item>
+      <item>Get-TraceSource</item>
+      <item>Get-Transaction</item>
+      <item>Get-TroubleshootingPack</item>
+      <item>Get-TypeData</item>
+      <item>Get-UICulture</item>
+      <item>Get-Unique</item>
+      <item>Get-Variable</item>
+      <item>Get-WinEvent</item>
+      <item>Get-WmiObject</item>
+      <item>Get-WSManCredSSP</item>
+      <item>Get-WSManInstance</item>
+      <item>Grant-ClusterAccess</item>
+      <item>Group-Object</item>
+      <item>Import-Alias</item>
+      <item>Import-BinaryMiLog</item>
+      <item>Import-Clixml</item>
+      <item>Import-Counter</item>
+      <item>Import-Csv</item>
+      <item>Import-GPO</item>
+      <item>Import-LocalizedData</item>
+      <item>Import-Module</item>
+      <item>Import-PackageProvider</item>
+      <item>Import-PSSession</item>
+      <item>Install-ADServiceAccount</item>
+      <item>Install-Package</item>
+      <item>Install-PackageProvider</item>
+      <item>Invoke-CimMethod</item>
+      <item>Invoke-Command</item>
+      <item>Invoke-DscResource</item>
+      <item>Invoke-Expression</item>
+      <item>Invoke-History</item>
+      <item>Invoke-Item</item>
+      <item>Invoke-RestMethod</item>
+      <item>Invoke-TroubleshootingPack</item>
+      <item>Invoke-WebRequest</item>
+      <item>Invoke-WmiMethod</item>
+      <item>Invoke-WSManAction</item>
+      <item>Join-Path</item>
+      <item>Limit-EventLog</item>
+      <item>Measure-Command</item>
+      <item>Measure-Object</item>
+      <item>Move-ADDirectoryServer</item>
+      <item>Move-ADDirectoryServerOperationMasterRole</item>
+      <item>Move-ADObject</item>
+      <item>Move-ClusterGroup</item>
+      <item>Move-ClusterResource</item>
+      <item>Move-ClusterSharedVolume</item>
+      <item>Move-ClusterVirtualMachineRole</item>
+      <item>Move-Item</item>
+      <item>Move-ItemProperty</item>
+      <item>New-ADComputer</item>
+      <item>New-ADFineGrainedPasswordPolicy</item>
+      <item>New-ADGroup</item>
+      <item>New-ADObject</item>
+      <item>New-ADOrganizationalUnit</item>
+      <item>New-ADServiceAccount</item>
+      <item>New-ADUser</item>
+      <item>New-Alias</item>
+      <item>New-AppLockerPolicy</item>
+      <item>New-CimInstance</item>
+      <item>New-CimSession</item>
+      <item>New-CimSessionOption</item>
+      <item>New-Cluster</item>
+      <item>New-Event</item>
+      <item>New-EventLog</item>
+      <item>New-GPLink</item>
+      <item>New-GPO</item>
+      <item>New-GPStarterGPO</item>
+      <item>New-Item</item>
+      <item>New-ItemProperty</item>
+      <item>New-JobTrigger</item>
+      <item>New-Module</item>
+      <item>New-ModuleManifest</item>
+      <item>New-NlbCluster</item>
+      <item>New-NlbClusterIpv6Address</item>
+      <item>New-Object</item>
+      <item>New-PSDrive</item>
+      <item>New-PSRoleCapabilityFile</item>
+      <item>New-PSSession</item>
+      <item>New-PSSessionConfigurationFile</item>
+      <item>New-PSSessionOption</item>
+      <item>New-PSTransportOption</item>
+      <item>New-PSWorkflowExecutionOption</item>
+      <item>New-ScheduledJobOption</item>
+      <item>New-Service</item>
+      <item>New-TimeSpan</item>
+      <item>New-Variable</item>
+      <item>New-WebServiceProxy</item>
+      <item>New-WinEvent</item>
+      <item>New-WSManInstance</item>
+      <item>New-WSManSessionOption</item>
+      <item>Out-Default</item>
+      <item>Out-File</item>
+      <item>Out-GridView</item>
+      <item>Out-Host</item>
+      <item>Out-Null</item>
+      <item>Out-Printer</item>
+      <item>Out-String</item>
+      <item>Pop-Location</item>
+      <item>Protect-CmsMessage</item>
+      <item>Publish-DscConfiguration</item>
+      <item>Push-Location</item>
+      <item>Read-Host</item>
+      <item>Receive-Job</item>
+      <item>Receive-PSSession</item>
+      <item>Register-ArgumentCompleter</item>
+      <item>Register-CimIndicationEvent</item>
+      <item>Register-EngineEvent</item>
+      <item>Register-ObjectEvent</item>
+      <item>Register-PackageSource</item>
+      <item>Register-PSSessionConfiguration</item>
+      <item>Register-ScheduledJob</item>
+      <item>Register-WmiEvent</item>
+      <item>Remove-ADComputer</item>
+      <item>Remove-ADComputerServiceAccount</item>
+      <item>Remove-ADDomainControllerPasswordReplicationPolicy</item>
+      <item>Remove-ADFineGrainedPasswordPolicy</item>
+      <item>Remove-ADFineGrainedPasswordPolicySubject</item>
+      <item>Remove-ADGroup</item>
+      <item>Remove-ADGroupMember</item>
+      <item>Remove-ADObject</item>
+      <item>Remove-ADOrganizationalUnit</item>
+      <item>Remove-ADPrincipalGroupMembership</item>
+      <item>Remove-ADServiceAccount</item>
+      <item>Remove-ADUser</item>
+      <item>Remove-BitsTransfer</item>
+      <item>Remove-CimInstance</item>
+      <item>Remove-CimSession</item>
+      <item>Remove-Cluster</item>
+      <item>Remove-ClusterAccess</item>
+      <item>Remove-ClusterGroup</item>
+      <item>Remove-ClusterNode</item>
+      <item>Remove-ClusterResource</item>
+      <item>Remove-ClusterResourceDependency</item>
+      <item>Remove-ClusterResourceType</item>
+      <item>Remove-ClusterSharedVolume</item>
+      <item>Remove-Computer</item>
+      <item>Remove-Event</item>
+      <item>Remove-EventLog</item>
+      <item>Remove-GPLink</item>
+      <item>Remove-GPO</item>
+      <item>Remove-GPPrefRegistryValue</item>
+      <item>Remove-GPRegistryValue</item>
+      <item>Remove-Item</item>
+      <item>Remove-ItemProperty</item>
+      <item>Remove-Job</item>
+      <item>Remove-JobTrigger</item>
+      <item>Remove-Module</item>
+      <item>Remove-NlbCluster</item>
+      <item>Remove-NlbClusterNode</item>
+      <item>Remove-NlbClusterNodeDip</item>
+      <item>Remove-NlbClusterPortRule</item>
+      <item>Remove-NlbClusterVip</item>
+      <item>Remove-PSBreakpoint</item>
+      <item>Remove-PSDrive</item>
+      <item>Remove-PSReadlineKeyHandler</item>
+      <item>Remove-PSSession</item>
+      <item>Remove-PSSnapin</item>
+      <item>Remove-TypeData</item>
+      <item>Remove-Variable</item>
+      <item>Remove-WmiObject</item>
+      <item>Remove-WSManInstance</item>
+      <item>Rename-ADObject</item>
+      <item>Rename-Computer</item>
+      <item>Rename-GPO</item>
+      <item>Rename-Item</item>
+      <item>Rename-ItemProperty</item>
+      <item>Repair-ClusterSharedVolume</item>
+      <item>Reset-ADServiceAccountPassword</item>
+      <item>Reset-ComputerMachinePassword</item>
+      <item>Resolve-Path</item>
+      <item>Restart-Computer</item>
+      <item>Restart-Service</item>
+      <item>Restore-ADObject</item>
+      <item>Restore-Computer</item>
+      <item>Restore-GPO</item>
+      <item>Resume-BitsTransfer</item>
+      <item>Resume-ClusterNode</item>
+      <item>Resume-ClusterResource</item>
+      <item>Resume-Job</item>
+      <item>Resume-NlbCluster</item>
+      <item>Resume-NlbClusterNode</item>
+      <item>Resume-Service</item>
+      <item>Save-Help</item>
+      <item>Save-Package</item>
+      <item>Search-ADAccount</item>
+      <item>Select-Object</item>
+      <item>Select-String</item>
+      <item>Select-Xml</item>
+      <item>Send-MailMessage</item>
+      <item>Set-Acl</item>
+      <item>Set-ADAccountControl</item>
+      <item>Set-ADAccountExpiration</item>
+      <item>Set-ADAccountPassword</item>
+      <item>Set-ADComputer</item>
+      <item>Set-ADDefaultDomainPasswordPolicy</item>
+      <item>Set-ADDomain</item>
+      <item>Set-ADDomainMode</item>
+      <item>Set-ADFineGrainedPasswordPolicy</item>
+      <item>Set-ADForest</item>
+      <item>Set-ADForestMode</item>
+      <item>Set-ADGroup</item>
+      <item>Set-ADObject</item>
+      <item>Set-ADOrganizationalUnit</item>
+      <item>Set-ADServiceAccount</item>
+      <item>Set-ADUser</item>
+      <item>Set-Alias</item>
+      <item>Set-AppLockerPolicy</item>
+      <item>Set-AuthenticodeSignature</item>
+      <item>Set-BitsTransfer</item>
+      <item>Set-CimInstance</item>
+      <item>Set-Clipboard</item>
+      <item>Set-ClusterLog</item>
+      <item>Set-ClusterOwnerNode</item>
+      <item>Set-ClusterParameter</item>
+      <item>Set-ClusterQuorum</item>
+      <item>Set-ClusterResourceDependency</item>
+      <item>Set-Content</item>
+      <item>Set-Date</item>
+      <item>Set-DscLocalConfigurationManager</item>
+      <item>Set-ExecutionPolicy</item>
+      <item>Set-GPInheritance</item>
+      <item>Set-GPLink</item>
+      <item>Set-GPPermissions</item>
+      <item>Set-GPPrefRegistryValue</item>
+      <item>Set-GPRegistryValue</item>
+      <item>Set-Item</item>
+      <item>Set-ItemProperty</item>
+      <item>Set-JobTrigger</item>
+      <item>Set-Location</item>
+      <item>Set-NlbCluster</item>
+      <item>Set-NlbClusterNode</item>
+      <item>Set-NlbClusterNodeDip</item>
+      <item>Set-NlbClusterPortRule</item>
+      <item>Set-NlbClusterPortRuleNodeHandlingPriority</item>
+      <item>Set-NlbClusterPortRuleNodeWeight</item>
+      <item>Set-NlbClusterVip</item>
+      <item>Set-PackageSource</item>
+      <item>Set-PSBreakpoint</item>
+      <item>Set-PSDebug</item>
+      <item>Set-PSReadlineKeyHandler</item>
+      <item>Set-PSReadlineOption</item>
+      <item>Set-PSSessionConfiguration</item>
+      <item>Set-ScheduledJob</item>
+      <item>Set-ScheduledJobOption</item>
+      <item>Set-Service</item>
+      <item>Set-StrictMode</item>
+      <item>Set-TraceSource</item>
+      <item>Set-Variable</item>
+      <item>Set-WmiInstance</item>
+      <item>Set-WSManInstance</item>
+      <item>Set-WSManQuickConfig</item>
+      <item>Show-Command</item>
+      <item>Show-ControlPanelItem</item>
+      <item>Show-EventLog</item>
+      <item>Sort-Object</item>
+      <item>Split-Path</item>
+      <item>Start-BitsTransfer</item>
+      <item>Start-Cluster</item>
+      <item>Start-ClusterGroup</item>
+      <item>Start-ClusterNode</item>
+      <item>Start-ClusterResource</item>
+      <item>Start-DscConfiguration</item>
+      <item>Start-Job</item>
+      <item>Start-NlbCluster</item>
+      <item>Start-NlbClusterNode</item>
+      <item>Start-Process</item>
+      <item>Start-Service</item>
+      <item>Start-Sleep</item>
+      <item>Start-Transaction</item>
+      <item>Start-Transcript</item>
+      <item>Stop-Cluster</item>
+      <item>Stop-ClusterGroup</item>
+      <item>Stop-ClusterNode</item>
+      <item>Stop-ClusterResource</item>
+      <item>Stop-Computer</item>
+      <item>Stop-Job</item>
+      <item>Stop-NlbCluster</item>
+      <item>Stop-NlbClusterNode</item>
+      <item>Stop-Process</item>
+      <item>Stop-Service</item>
+      <item>Stop-Transcript</item>
+      <item>Suspend-BitsTransfer</item>
+      <item>Suspend-ClusterNode</item>
+      <item>Suspend-ClusterResource</item>
+      <item>Suspend-Job</item>
+      <item>Suspend-NlbCluster</item>
+      <item>Suspend-NlbClusterNode</item>
+      <item>Suspend-Service</item>
+      <item>Tee-Object</item>
+      <item>Test-AppLockerPolicy</item>
+      <item>Test-Cluster</item>
+      <item>Test-ClusterResourceFailure</item>
+      <item>Test-ComputerSecureChannel</item>
+      <item>Test-Connection</item>
+      <item>Test-DscConfiguration</item>
+      <item>Test-ModuleManifest</item>
+      <item>Test-Path</item>
+      <item>Test-PSSessionConfigurationFile</item>
+      <item>Test-WSMan</item>
+      <item>Trace-Command</item>
+      <item>Unblock-File</item>
+      <item>Undo-Transaction</item>
+      <item>Uninstall-ADServiceAccount</item>
+      <item>Uninstall-Package</item>
+      <item>Unlock-ADAccount</item>
+      <item>Unprotect-CmsMessage</item>
+      <item>Unregister-Event</item>
+      <item>Unregister-PackageSource</item>
+      <item>Unregister-PSSessionConfiguration</item>
+      <item>Unregister-ScheduledJob</item>
+      <item>Update-ClusterIPResource</item>
+      <item>Update-ClusterVirtualMachineConfiguration</item>
+      <item>Update-FormatData</item>
+      <item>Update-Help</item>
+      <item>Update-List</item>
+      <item>Update-TypeData</item>
+      <item>Use-Transaction</item>
+      <item>Wait-Debugger</item>
+      <item>Wait-Event</item>
+      <item>Wait-Job</item>
+      <item>Wait-Process</item>
+      <item>Where-Object</item>
+      <item>Write-Debug</item>
+      <item>Write-Error</item>
+      <item>Write-EventLog</item>
+      <item>Write-Host</item>
+      <item>Write-Information</item>
+      <item>Write-Output</item>
+      <item>Write-Progress</item>
+      <item>Write-Verbose</item>
+      <item>Write-Warning</item>
+      <item>ac</item>
+      <item>asnp</item>
+      <item>cat</item>
+      <item>cd</item>
+      <item>chdir</item>
+      <item>clc</item>
+      <item>clear</item>
+      <item>clhy</item>
+      <item>cli</item>
+      <item>clp</item>
+      <item>cls</item>
+      <item>clv</item>
+      <item>cnsn</item>
+      <item>compare</item>
+      <item>copy</item>
+      <item>cp</item>
+      <item>cpi</item>
+      <item>cpp</item>
+      <item>curl</item>
+      <item>cvpa</item>
+      <item>dbp</item>
+      <item>del</item>
+      <item>diff</item>
+      <item>dir</item>
+      <item>dnsn</item>
+      <item>ebp</item>
+      <item>echo</item>
+      <item>epal</item>
+      <item>epcsv</item>
+      <item>epsn</item>
+      <item>erase</item>
+      <item>etsn</item>
+      <item>exsn</item>
+      <item>fc</item>
+      <item>fl</item>
+      <item>foreach</item>
+      <item>ft</item>
+      <item>fw</item>
+      <item>gal</item>
+      <item>gbp</item>
+      <item>gc</item>
+      <item>gci</item>
+      <item>gcm</item>
+      <item>gcs</item>
+      <item>gdr</item>
+      <item>ghy</item>
+      <item>gi</item>
+      <item>gjb</item>
+      <item>gl</item>
+      <item>gm</item>
+      <item>gmo</item>
+      <item>gp</item>
+      <item>gps</item>
+      <item>group</item>
+      <item>gsn</item>
+      <item>gsnp</item>
+      <item>gsv</item>
+      <item>gu</item>
+      <item>gv</item>
+      <item>gwmi</item>
+      <item>h</item>
+      <item>history</item>
+      <item>icm</item>
+      <item>iex</item>
+      <item>ihy</item>
+      <item>ii</item>
+      <item>ipal</item>
+      <item>ipcsv</item>
+      <item>ipmo</item>
+      <item>ipsn</item>
+      <item>irm</item>
+      <item>ise</item>
+      <item>iwmi</item>
+      <item>iwr</item>
+      <item>kill</item>
+      <item>lp</item>
+      <item>ls</item>
+      <item>man</item>
+      <item>md</item>
+      <item>measure</item>
+      <item>mi</item>
+      <item>mount</item>
+      <item>move</item>
+      <item>mp</item>
+      <item>mv</item>
+      <item>nal</item>
+      <item>ndr</item>
+      <item>ni</item>
+      <item>nmo</item>
+      <item>npssc</item>
+      <item>nsn</item>
+      <item>nv</item>
+      <item>ogv</item>
+      <item>oh</item>
+      <item>popd</item>
+      <item>ps</item>
+      <item>pushd</item>
+      <item>pwd</item>
+      <item>r</item>
+      <item>rbp</item>
+      <item>rcjb</item>
+      <item>rcsn</item>
+      <item>rd</item>
+      <item>rdr</item>
+      <item>ren</item>
+      <item>ri</item>
+      <item>rjb</item>
+      <item>rm</item>
+      <item>rmdir</item>
+      <item>rmo</item>
+      <item>rni</item>
+      <item>rnp</item>
+      <item>rp</item>
+      <item>rsn</item>
+      <item>rsnp</item>
+      <item>rujb</item>
+      <item>rv</item>
+      <item>rvpa</item>
+      <item>rwmi</item>
+      <item>sajb</item>
+      <item>sal</item>
+      <item>saps</item>
+      <item>sasv</item>
+      <item>sbp</item>
+      <item>sc</item>
+      <item>select</item>
+      <item>set</item>
+      <item>shcm</item>
+      <item>si</item>
+      <item>sl</item>
+      <item>sleep</item>
+      <item>sls</item>
+      <item>sort</item>
+      <item>sp</item>
+      <item>spjb</item>
+      <item>spps</item>
+      <item>spsv</item>
+      <item>start</item>
+      <item>sujb</item>
+      <item>sv</item>
+      <item>swmi</item>
+      <item>tee</item>
+      <item>trcm</item>
+      <item>type</item>
+      <item>wget</item>
+      <item>where</item>
+      <item>wjb</item>
+      <item>write</item>
+      <item>\%</item>
+      <item>\?</item>
+    </list>
+    <list name="special-variables">
+      <item>$_</item>
+      <item>$True</item>
+      <item>$False</item>
+      <item>$Env</item>
+      <item>$Null</item>
+      <item>$^</item>
+      <item>$$</item>
+      <item>$?</item>
+      <item>$input</item>
+      <item>$foreach</item>
+      <item>$args</item>
+      <item>$switch</item>
+      <item>$matches</item>
+      <item>$LastExitCode</item>
+      <item>$Error</item>
+      <item>$StackTrace</item>
+      <item>$HOME</item>
+      <item>$PsHome</item>
+      <item>$ConsoleFileName</item>
+      <item>$PWD</item>
+      <item>$ShellId</item>
+      <item>$Profile</item>
+      <item>$Host</item>
+      <item>$OFS</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Data Type" context="#stay" String="types" />
+        <IncludeRules context="Cmdlet" />
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <Detect2Chars attribute="HereString" context="HereStringer" char="@" char1="&quot;" beginRegion="StringRegion"/>
+        <IncludeRules context="##Doxygen" />
+        <DetectChar attribute="Comment" context="Commentar 1" char="#"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="&lt;" char1="#" beginRegion="CommentRegion"/>
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="block1"/>
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="block1"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b\$global(?=\s+(:))"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b\$script(?=\s+(:))"/>
+        <RegExpr attribute="Variable" context="#stay" String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" />
+        <keyword attribute="Special Variable" context="#stay" String="special-variables"/>
+        <RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#pop"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="HereString" lineEndContext="#stay" name="HereStringer">
+        <Detect2Chars attribute="HereString" context="#pop" char="&quot;" char1="@" endRegion="StringRegion"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="Function" context="#pop" String="\b[_\w][_\w\d]*(?=[\s]*)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <Detect2Chars attribute="Comment" context="#pop" char="#" char1="&gt;" endRegion="CommentRegion"/>
+      </context>
+      <context attribute="Cmdlets" lineEndContext="#stay" name="Cmdlet">
+        <keyword attribute="Function" context="#stay" String="cmdlets"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Function"     defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Data Type"    defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="HereString"       defStyleNum="dsVerbatimString"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Cmdlets"      defStyleNum="dsBuiltIn" spellChecking="false"/>
+      <itemData name="Symbol"       defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>
+      <itemData name="Special Variable" defStyleNum="dsVariable" bold="1" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" />
+      <comment name="multiLine" start="&lt;#" end="#&gt;" region="CommentRegion"/>
+    </comments>
+    <keywords casesensitive="0" weakDeliminator=":-"/>
+  </general>
+</language>
diff --git a/xml/prolog.xml b/xml/prolog.xml
new file mode 100644
--- /dev/null
+++ b/xml/prolog.xml
@@ -0,0 +1,1109 @@
+﻿<?xml version="1.0" encoding="UTF-8"?>
+<!-- [Purpose & Copyright]
+
+    Highlight ISO-Prolog texts or template/include for Prolog dialects
+    based on the ISO standard.
+
+    Includes detection of DCG since it is 'hooked' in the ISO standard.
+    Uses text style "Warning/ISO-bogus" where portability is likely to
+    fail.
+
+    This file is part of KDE's kate project.
+
+  copyright   : (C) 2012 by Torsten Eichstädt
+
+ **********************************************************************
+ * This library is free software; you can redistribute it and/or      *
+ * modify it under the terms of the GNU Library General Public        *
+ * License as published by the Free Software Foundation; either       *
+ * version 2 of the License, or (at your option) any later version.   *
+ *                                                                    *
+ * This library is distributed in the hope that it will be useful,    *
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of     *
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU  *
+ * Library General Public License for more details.                   *
+ *                                                                    *
+ * You should have received a copy of the GNU Library General Public  *
+ * License along with this library; if not, write to the              *
+ * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,   *
+ * Boston, MA  02110-1301, USA.                                       *
+ **********************************************************************
+-->
+<!DOCTYPE language SYSTEM "language.dtd"
+[<!-- [Regular Expressions, Character Classes & Important Tokens]
+E.g. the dot "." has so many different meanings (i.e. in an RegExpr 'any char',
+'fullstop' of a clause, etc. pp.) that I decided it's usefull to write these out
+to make the rules more expressive. -->
+
+<!-- RegExpr for graphic tokens.  Comment start "/*" is catched earlier. -->
+    <!ENTITY gr_char_iso    	"[#$&amp;*+\-./:&lt;=>?@^~\\]">
+
+<!-- RegExpr: The highlighting engine always strips newline, so this ok: -->
+    <!ENTITY any_nw         "[^ \t]">
+    <!ENTITY any            ".">
+
+<!-- RegExpr: we want to highlight some graphic tokens: Logic & Control
+    fullstop shall not be falsely detected if it is actually a list functor
+    comma is catched extra to highlight it as "Normal Text" in an arg_seq
+    (and the cut "!" is NOT an op) -->
+    <!ENTITY fullstop_iso          "\.(?!(\(|&gr_char_iso;))">
+    <!ENTITY logic_control_ops_iso "(;|->|\\\+|:-|=|\\=)(?!&gr_char_iso;)">
+
+    <!-- RegExpr: DCG (not my idea it is not reversed and named 'reduction') -->
+    <!ENTITY dcg_production_iso    "-->(?!&gr_char_iso;)">
+
+    <!-- RegExpr: partitioning of arithmetic operators:
+    - the 1st "arith_compare" always demand arithmetic evaluation
+      => highlight as "Arithmetics".
+    - the 2nd only at the right side of "is" or when an arith_compare applies.
+      They are used in other contexts as well, e.g. traditionally A-B is used
+      for 'a pair of something', the "^" in bagof/3 and setof/3.
+      => highlight as "Arithmetics" only in an arith_expr.
+    - the 3rd are true ISO Bogus: it is not specified whether it is arithmetic
+      or logical shift, and for bitwise AND, OR and NEG the integer format is
+      unspecified => not portable, depend on Prolog implementation. -->
+    <!ENTITY arith_compare_iso  "(=:=|=\\=|=&lt;|&lt;|>=|>)(?!&gr_char_iso;)">
+    <!ENTITY arith_ops_mixed_iso      "(\+|-|\*|\^)(?!&gr_char_iso;)">
+    <!ENTITY arith_ops_int_iso      "//(?!&gr_char_iso;)">
+    <!ENTITY arith_ops_float_iso      "(/|\*\*)(?!&gr_char_iso;)">
+    <!ENTITY arith_bogus_iso  "(/\\|\\/|\\|&lt;&lt;|>>)(?!&gr_char_iso;)">
+
+    <!-- RegExpr: other predefined operators -->
+    <!ENTITY predefined_ops_iso "(\?-|==|\\==|@=&lt;|@&lt;|@>=|@>|=\.\.|@|:)(?!&gr_char_iso;)">
+
+    <!-- We treat a number as float if it includes a decimal dot or exponent -->
+    <!ENTITY float3_iso "[0-9]+E[+\-]?[0-9]+">
+    <!ENTITY float2_iso "[0-9]+\.[0-9]+">
+    <!ENTITY float1_iso "[0-9]+\.[0-9]+E[+\-]?[0-9]+">
+
+<!-- RegExpr for esc'd char code in quoted 'strings' e.g. "\007\" -->
+    <!ENTITY esc_oct_iso	"\\[0-7]+\\">
+    <!ENTITY esc_hex_iso	"\\x[a-fA-F0-9]+\\">
+
+<!-- Char classes for AnyChar, NOT RegExpr: no esc seqs, ranges, etc. pp. here!
+     Used to avoid expensive RegExpr whenever possible. -->
+    <!--  Not needed: any_alnum_under_iso:  use "DetectIdentifier" instead -->
+    <!ENTITY any_lower_iso         "abcdefghijklmnopqrstuvwxyz">
+    <!ENTITY any_upper_under_iso   "ABCDEFGHIJKLMNOPQRSTUVWXYZ_">
+    <!ENTITY any_bin_iso           "01">
+    <!ENTITY any_oct_iso           "01234567">
+    <!ENTITY any_dec_iso           "0123456789">
+    <!ENTITY any_hex_iso           "0123456789abcdefABCDEF">
+    <!ENTITY any_graphic_iso       "#$&amp;*+-./:&lt;=>?@^~\">
+
+    <!-- Common esc seq in quoted & char code (after "0'").
+    Tab is handled extra.  Esc'd newline is catched earlier. -->
+    <!ENTITY any_esc_iso		"abfnrtv\'`&quot;]">
+
+    <!ENTITY dot        ".">
+
+    <!-- Some solo chars for DetectChar -->
+    <!ENTITY comma	",">
+    <!ENTITY cut        "!">
+    <!ENTITY bar        "|">
+    <!ENTITY tab	"	">
+    <!ENTITY bs         "\">
+]>
+<language name="Prolog" section="Sources"
+	  version="5" kateversion="3.4"
+	  mimetype="text/x-prolog"
+	  extensions="*.prolog;*.dcg;*.pro"
+	  author="Torsten Eichstädt (torsten.eichstaedt@web.de)"
+	  license="LGPLv2+">
+
+<!-- [Terminology & Abbreviations In The Comments]
+    - Literal text is in double quotes "like this", single quotes sometimes used
+      for a 'terminus technicus'.
+    - "w/", "w/o", "s/t" mean 'with', 'without', and "sometimes" resp.
+    - Use "brace" instead of 'bracket'/'parenthesis' for any of "()[]{}"
+    - Specify "round", "list/squared", "curly", "opening" and "closing" brace.
+    - "quote/quoted/string" mean any of single-, double-, or back-quote(d)
+    - "seq" sequence, "nl" newline, "bs" backslash, "q" quote(d), "cc" char code
+    - "KISS" Keep it simple, stupid! (be pragmatic)
+    - "style" = "attribute" (the applied text style)
+    - Keep comments as short as possible and as descriptive as neccessary LOL
+-->
+<!-- [Documentation, Bugs, Limitations & Solutions, TODOs]
+################################################################################
+All bugs except three by the author. !FOLD THIS AWAY if long comments annoy you.
+
+BUG - Nobody's perfect - If I knew about the bug you found, it would have been
+      fixed already.
+ one- Takes a "shebang" at the start of text on other than the 1st line (Kate).
+ two- Indentation-based folding is not reliable (Kate; fixed in KDE 4.9?).
+ three- Folding is sometimes broken (Kate?).  See SOLUTIONS below.
+  4 - An optional leading sign is not highlighted as part of the number.
+  5 - A float w/o fractional part and exponent is highlighted as an integer.
+  6 - Detection of whitespace may not be 100% correct, only space/tab/newline.
+  7 - Handling inside arithmetic expressions might not be 100%.  See "AL GUSTO".
+ inf- see TODOs below.
+
+LIMITS of this parser
+    - Highlighting of syntax errors is as intuitive as possible, i.e. for an
+      invalid newline highlight the last token before and leading white of the
+      next line - but that's not always possible.  Use your built-in problem
+      solver (between your ears) when you do not know what the exact error is.
+    - The parser knows nothing about currently defined dynamic ops, but has to
+      respect possible definitions of dynamic ops.  That's why:
+    - Any sequence of 'graphic chars' (_incl. those containing a dot_) is taken
+      as _one_ graphic token, and not - as you might expect - your user-defined
+      operator followed by fullstop (or sequence of ops).
+    - A single dot in the outmost term of a clause is taken as a fullstop, even
+      if it is actually a user-defined operator.
+      - Else, a single dot is highlighted as "Warning" because it might be a
+        user-def'd op (usually an error, but can not decide w/o current_op/3).
+    - Detection of the fullstop relies upon the usual semantics of braces.
+    - Axioms of folding capabilities are: the literal fullstop as stop symbol
+      and the usual semantics of braces w/ pairs of opening and closing brace.
+   ?- period.
+uncaught exception: error(existence_error(procedure,current_op/3),highlight/2)
+
+SOLUTIONS
+    - Help the parser by puting whitespace (space/tab/nl) here and there, espc.
+      after the fullstop, or use quotes; e.g. '/*' does not begin a comment,
+      neither does '%', and ***'.' can be two operators.
+      Functored syntax should always do, e.g. */*(X,Y) is valid (and does not
+      begin a comment).
+    - Folding: s/t moving the mouse slightly below the marker shows what you
+      want, s/t an empty line helps (or removing an empty line), when it's
+      removed regions stay ok, or break auto-folding w/ non-white @begin of
+      line.  Try a newer kate version.
+
+AL GUSTO (simple changes):
+    - Change classification of built-in predicates: adjust the <list> below.
+    - Reminder for other changes: solo chars - DetectChar, graphic - RegExpr.
+    - bar "|" (solo) is highlighted as "other built-in operator" in lists, else
+      "Normal Text".  You may safely remove/comment out  the rules in contexts
+      "term/list/curly" below if you add in in context "operator" or "atomic".
+      If it shall be part of user-defined ops, it has to be added to "gr_char",
+      and a few rules need adjustment.  Search for "&bar;".  You may then safely
+      add it to "predefined_ops" above (don't forget to escape it).
+    - cut "!" (solo) can be adjusted like the bar.
+    - comma "," (solo) is "Normal Text" in lists, else "Logic & Control".  You
+      may safely remove/comment out the rules in "term/nested/list/curly" below
+      and handle it in the context "operator".
+    - Disable arith_expr: replace "context="arith_expr"" w/ "context="#stay""
+      in the rules in contexts "atomic" and "operator" (two or three occurrences).
+    - Disable indentation-based folding: in the section "general"@EOF:"folding".
+    - General guidelines: Be nice to slow/old hardware: avoid RegExpr (start w/
+      a RegExpr, test, then find a replacement), else match a RegExpr as late as
+      possible - it's expensive, a context switch is relatively cheap.
+      Eat as much text as possible in one run, e.g. in comments and quoted we
+      use "DetectIdentifier", else the engine would try all rules of the context
+      (w/ failure) and eat only one char on each run.
+    If your modification is kind of general, upload it and drop me a note.
+
+  The simplified syntax below should highlight 99.999% of ISO-Prolog texts
+correctly, as well as many non-ISO Prolog texts.
+  Else modify this file.  Save with new name in your HOME directory to
+.kde/share/apps/katepart/syntax/prolog-xy.xml You may read the NOTE at the end
+of this file.  WARNING: Be careful, though: the highlighting works according to
+it's program code, not neccessarily it's documentation...
+
+DONE- Parse (m)any (!) conforming Prolog texts w/ correct highlighting (LIMITS)
+    - Parse any erratic text w/o crash or endless loops and highlight errors
+    - Folding for multiline comments, clauses, nested terms, and quoted (LIMITS)
+    - Folding inside comments and of 1-line comments and clauses: indentation-
+      based like in Python, e.g.
+      my_pred(a).   % w/ marker@left (western style; depends on your settings)
+	my_pred(b). % you can fold
+	my_pred(c). % these lines
+      Inside clauses (i.e. context "term" and below) only explicit folding for
+      braces and quotes applies, except comments.  I did not find a better
+      solution, since the engine does not provide lookahead to the next line.
+    - Additionally, folding with %BEGIN ... %END (iff 1st nonwhite of the line).
+    - Classify built-ins (YMMV) for different highlighting, mainly:
+	- w/ side effects from 'outside world' (arithmetics, stream I/O,...)
+	- w/o side effects, only depend on user's program ('internal world')
+	- program logic & control constructs
+	- altering the clause knowledge base or Prolog state
+	- integer/float/mixed arithmetics, so one can see the type of the result
+	    - Iff it's an arithmetic expression; else arith ops and built-ins
+	      are highlighted normal.
+    - Incl. Sep2012 DRAFT Technical Corrigendum 2: Prolog - Part 1: General Core
+    - Incl. honourable Richard O'Keefe's remarks as warnings as "ISO Bogus".
+    - Detect 'shebang' shell scripts, see BUGs
+    - Includes alert_indent.xml to highlight alert keywords in comments.
+    - Dot "." may be an _unquoted_ user-defined operator in nested terms (but is
+      highlighted as "Warning" 'cause it's more likely a typo than an user-def'd
+      op) and is only taken as fullstop and highlighted as "Logic & Control" in
+      the outmost term of a clause.
+    - Über-correct handling of quoted, escape seqs and "0'" (char code integer):
+	- detection of valid/invalid newline in quoted 'strings'.
+	- highlight whitespace after esc'd newline in quoted so it differs from
+	  whitespace contained in the quoted 'string'.
+	- Highlight esc'd tab and tab in quoted as "Warning" because some text
+	editors may convert them to space and it is easy to use "\t" instead.
+    - Preliminary: most names end w/ ISO; prepared to be included in syntax
+      files adapted for Prolog dialects.
+
+FIXME	When katepart can supply line numbers, fix the "shebang" rule.
+
+TODO sorted by priority
+  1 - [always] Cruise over all FIXMEs.
+  2 - Check if comma, cut & bar are really solo chars (where's the red book?).
+  3  - Check final Technical Corrigendum 2: Prolog - Part 1: General Core
+  4 - Buy ISO Prolog standard - Part 2: Modules.  Likely only keywords.  Need it
+      anyway.
+  5 - Make this strict-ISO and a "Prolog (portable)" that includes this file.
+  6 - Likewise, adopt for GNU & SWI Prolog and others.
+  8 - keywords 'phrase', streams depricated, etc.pp. ==> Prolog (portable).
+  9 - Likewise: shebang ==> Prolog (portable).
+ 10 - Check if shebang can span multiple (escaped) lines.
+ 11 - Check: all KB altering preds can have side effects (via resource_error)?
+ 12 - For next two TODOs: ask katepart dev to provide lookahead to the next line
+    13 - Folding for consecutive one-line comments [easy? HARD! Impossible.]
+    14 - Likewise, folding for consecutive clauses [HARD! Impossible.]
+    I can live w/ indentation-based folding as a workaround.  Not 100%, but ok.
+ 15 - +arg_seq (and list): "," as normal text: Detect name( [no layout; easy]
+ 16 - +Classify meta predicates.
+ 18 - The dollar "$" is commonly used as the 1st char of (unquoted?) atoms to
+      indicate 'internal mode', e.g. to declare a predicate as compile-in.
+      Does this mean the dollar is used as if it were a prefix op or is it part
+      of the atom?  Would be easy to implement.
+ 19 - Bug #4: could be partly fixed, some built-ins take only float not integer.
+ 20 - Bug them to better document weakDeliminators (and rename to delimiter ;)
+ 21 - Adjust doxygen syntax for Prolog (e.g. adapt doxygen-lua), and include it.
+ 22 - Check if vertical tab is white/layout; are there more non-printables?
+################################################################################
+-->
+<!-- [Facts & Implications Of The ISO Standard, as a reminder]
+  - 'layout' is whitespace (space/tab/newline) and/or comments.
+  - Braces (any of "(){}[]"), exclamation "!" (aka 'cut'), 'bar' "|", degree "°",
+    paragraph "§" and percent "%" are NOT 'graphic' chars, but 'solo' chars.
+  - The 'bar' "|" may be a predefined operator, and then a user-def'd op, too.
+  - There can only be (at most) one bar "|" in a list (written inside "[]"), and
+    no commata after it (after the bar).
+  - Graphic tokens are atoms (and solo chars are one-char atoms?).
+  - "{}" and "[]" are 'special atoms' (likewise "()"?).
+  - "{}" and "[]" shall not be operators (but round or single braces may be?).
+  - The fullstop "." is not a predefined postfix operator, and
+  - the list functor "." is not a predefined prefix operator.
+  - An unquoted graphic token shall not begin with "/*".
+  - Multiline comments shall not be nested.
+  - Floats are NOT written with lowercase "e" (i.e. not neccessarily an error if
+    e.g. "e" is a pre- or user-defined expr or op and the whole term is valid),
+  - and the fractional part and exponent of floats are optional (any and both).
+  - A leading minus immediately preceding a number is optional for all numbers
+    and then part of the number and not a prefix operator (currently beeing
+    clarified by the standard commitee if "immediately" includes layout, only
+    comments, or none of these at all ;) but
+  - the minus "-" is a predefined prefix- and infix operator...
+  - Terms are rewritten when read in, extendable by user-def'd rules (and these
+    may be dynamic), i.e. clauses are not restricted to the standard forms
+    (to the extent that the fullstop ending a clause may be omited at all) and
+  - the dot "." may be (solo or part of) an user-defined operator.
+  - A Prolog processor may use any character set, e.g. (multi-byte) Unicode.
+  - Virtually every token may be an (user- or predefined) operator, except a few
+    specifically excluded tokens (i.e. NOT just graphic and 'standard' atoms).
+  - All operators except the comma are dynamic (although the standard denotes
+    atoms as 'constants' ;), and
+  - (the comma may appear in a user-defined operator (beeing part of it)?).
+  (Now try to write syntax highlighting for Prolog w/o Prolog HAHAHA ;)
+-->
+    <highlighting>
+	<!-- aka "guru meditation trigger" -->
+	<list name="error term ISO">
+	    <item>error</item>
+	</list>
+	<list name="guru meditation terms ISO">
+	    <item>instantiation_error</item>
+	    <item>uninstantiation_error</item>
+	    <item>type_error</item>
+	    <item>domain_error</item>
+	    <item>existence_error</item>
+	    <item>permission_error</item>
+	    <item>representation_error</item>
+	    <item>evaluation_error</item>
+	    <item>resource_error</item>
+	    <item>syntax_error</item>
+	    <item>system_error</item>
+	</list>
+
+	<!-- These are in fact bogus, DO NOT USE them and bug the ISO standard
+	commitee to abandon char_conversion/2 and to apply common sense to the
+	semantics of include/1 and ensure_loaded/1, i.e. to handle recursion.
+	Bomb them w/ e-mails! It's not the purpose of a standard to fixate
+	errors till eternity. -->
+	<list name="bogus ISO">
+	    <item>char_conversion</item>
+	    <item>current_char_conversion</item>
+	    <item>include</item>
+	    <item>ensure_loaded</item>
+	    <!-- Use atan2 instead -->
+	    <item>atan</item>
+	    <!-- Unspecified integer representation/format -->
+	    <item>xor</item>
+	</list>
+	<list name="directives non-ISO">
+	    <!-- FIXME is this a top_level goal only? (consult :- include) -->
+	    <item>consult</item>
+	    <item>built_in</item>
+<!--GNU            <item>foreign</item> -->
+<!--GNU            <item>ensure_linked</item> -->
+<!--GNU            <item>built_in_fd</item> -->
+<!--             <item>if</item> -->
+<!-- 	    <item>else</item> -->
+<!-- 	    <item>endif</item> -->
+<!--             <item>elif</item> -->
+        </list>
+
+        <!-- including directive "initialization" -->
+        <list name="logic+control ISO">
+	    <item>initialization</item>
+<!-- 	    <item>!</item> -->
+	    <item>fail</item>
+	    <item>repeat</item>
+	    <item>call</item>
+            <item>catch</item>
+	    <item>throw</item>
+	    <item>true</item>
+	    <item>false</item>
+	    <item>once</item>
+	</list>
+
+	<!-- including directive "dynamic" -->
+        <list name="dyn clause mgmt ISO">
+	    <item>dynamic</item>
+	    <item>asserta</item>
+            <item>assertz</item>
+            <item>retractall</item>
+	    <item>retract</item>
+	    <item>abolish</item>
+	    <item>clause</item>
+<!-- 	    <item>numbervars</item> -->
+<!-- 	    <item>current_predicate</item> -->
+	</list>
+	<list name="listing non-ISO">
+	    <!-- FIXME is this a top_level goal? -->
+	    <item>listing</item>
+<!-- standard/compatible	    <item>public</item> -->
+	</list>
+	<list name="terms ISO">
+	    <!-- keep tokens with same prefix sorted by length? -->
+	    <item>atom_concat</item>
+	    <item>atom_length</item>
+	    <item>atom_chars</item>
+	    <item>atom_codes</item>
+	    <item>arg</item>
+	    <item>subsumes_term</item>
+	    <item>acyclic_term</item>
+	    <item>char_code</item>
+	    <item>compare</item>
+	    <item>copy_term</item>
+	    <item>functor</item>
+	    <item>number_chars</item>
+	    <item>number_codes</item>
+<!--FIXME check if GNU or ISO 	    <item>sub_atom</item> -->
+	    <item>term_variables</item>
+	    <item>unify_with_occurs_check</item>
+	</list>
+	<list name="terms non-ISO">
+	    <!-- keep tokens with same prefix sorted by length? -->
+	    <item>number_atom</item>
+	    <item>expand_term</item>
+	    <item>term_expansion</item>
+
+	    <!--FIXME These go to streams non-ISO: -->
+	    <item>display</item>
+	    <item>print</item>
+	    <item>format</item>
+	    <item>portray_clause</item>
+	    <item>portray</item>
+	    <item>term_expansion</item>
+	</list>
+	<list name="DCG non-ISO">
+	    <item>phrase</item>
+	</list>
+	<list name="lists ISO">
+	    <item>sort</item>
+	    <item>keysort</item>
+	</list>
+	<list name="lists non-ISO">
+	    <item>append</item>
+	    <item>delete</item>
+	    <item>length</item>
+	    <item>last</item>
+	    <item>map_list</item>
+	    <item>min_list</item>
+	    <item>maplist</item>
+	    <item>msort</item>
+	    <item>memberchk</item>
+	    <item>member</item>
+	    <item>nth</item>
+	    <item>permutation</item>
+	    <item>reverse</item>
+	    <item>select</item>
+	    <item>prefix</item>
+	    <item>suffix</item>
+	    <item>sublist</item>
+	    <item>sum_list</item>
+	</list>
+	<list name="streams ISO">
+	    <item>open</item>
+<!--GNU	    <item>current_stream</item>-->
+	    <item>set_stream_position</item>
+	    <item>get_char</item>
+	    <item>get_code</item>
+	    <item>peek_char</item>
+	    <item>peek_code</item>
+	    <item>get_byte</item>
+	    <item>peek_byte</item>
+
+	    <item>put_char</item>
+	    <item>put_code</item>
+	    <item>put_byte</item>
+	    <item>nl</item>
+
+	    <item>read_term</item>
+	    <item>read</item>
+	    <item>write_canonical</item>
+	    <item>writeq</item>
+	    <item>write</item>
+	</list>
+	<list name="streams deprecated">
+	    <item>append</item>
+	    <item>seeing</item>
+	    <item>seen</item>
+	    <item>see</item>
+	    <item>telling</item>
+	    <item>tell</item>
+	    <item>told</item>
+	    <item>get0</item>
+	    <item>get</item>
+	    <item>skip</item>
+	    <item>put</item>
+	    <item>tab</item>
+	</list>
+	<list name="arith eval ISO">
+	    <item>is</item>
+	</list>
+	<list name="arith ops int ISO">
+	    <item>rem</item>
+	    <item>mod</item>
+	    <item>div</item>
+	</list>
+        <list name="arith expr mixed ISO">
+<!--GNU	arith IF expr    <item>inc</item> -->
+<!--GNU	arith IF expr    <item>dec</item> -->
+	    <item>abs</item>
+	    <item>sign</item>
+	    <item>min</item>
+	    <item>max</item>
+        </list>
+        <list name="arith expr int ISO">
+<!--GNU	arith IF expr    <item>inc</item> -->
+<!--GNU	arith IF expr    <item>dec</item> -->
+	    <item>ceiling</item>
+	    <item>floor</item>
+	    <item>round</item>
+            <item>truncate</item>
+<!-- ISO Bogus	    <item>xor</item> -->
+        </list>
+        <list name="arith expr float ISO">
+	    <item>pi</item>
+<!--GNU	(see pi)    <item>e</item> -->
+<!--GNU	(see pi)    <item>epsilon</item> -->
+	    <item>sqrt</item>
+	    <item>tan</item>
+	    <item>cos</item>
+	    <item>sin</item>
+	    <item>atan2</item>
+	    <item>acos</item>
+	    <item>asin</item>
+	    <item>exp</item>
+            <item>log</item>
+	    <item>float</item>
+	    <item>float_fractional_part</item>
+            <item>float_integer_part</item>
+        </list>
+
+	<!-- including directives "op/multifile/discontigous" -->
+	<list name="prolog state ISO">
+	    <item>multifile</item>
+	    <item>discontigous</item>
+	    <item>op</item>
+	    <item>set_prolog_flag</item>
+	</list>
+	<list name="types ISO">
+	    <item>var</item>
+	    <item>nonvar</item>
+	    <item>atom</item>
+	    <item>integer</item>
+	    <item>float</item>
+	    <item>number</item>
+	    <item>atomic</item>
+	    <item>compound</item>
+	    <item>callable</item>
+	    <item>ground</item>
+	</list>
+	<!-- FIXME rename to "types non-ISO"? -->
+	<list name="list+is_list non-ISO">
+	    <item>list</item>
+	    <item>is_list</item>
+	<!--GNU            <item>partial_list</item> -->
+	    <!--GNU            <item>list_or_partial_list</item> -->
+	</list>
+	<list name="built-ins ISO">
+	    <item>current_op</item>
+	    <item>current_prolog_flag</item>
+	    <item>current_input</item>
+	    <item>current_output</item>
+
+	    <!-- These act on streams, but the permission_error is only thrown
+	    if the programmer tries to set_input(S) when S is alread an output
+	    stream and vice versa; so: not affected by 'outside world' -->
+	    <item>set_input</item>
+	    <item>set_output</item>
+
+	    <!-- may throw a system_error in GNU -->
+	    <item>close</item>
+
+	    <item>flush_output</item>
+
+	    <!-- may throw permission_error in GNU if S is an output stream -->
+	    <item>at_end_of_stream</item>
+
+	    <item>stream_property</item>
+	</list>
+
+	<!-- !FOLD the <context> rules & comments for an overview, then it's no magic. -->
+	<contexts>
+	<!-- Catch typos: style="Syntax Error" for all rules except comments and
+	quoted.  This helps to catch bugs in the rules itself, too.  Nice
+	debuging aid.  Note that (naturally) some of the syntax rules given in
+	EBNF are simplified and do not describe 100% valid Prolog.
+
+	    prolog text	:= shebang clause_seq | clause_seq
+	    clause_seq	:= clause clause_seq | empty
+	    clause      := layout term_seq fullstop | term_seq fullstop
+	-->
+	    <!-- shebang: ("#!") Detect shebang and fallthrough to clause_seq -->
+	    <context name="shebang" lineEndContext="clause" attribute="Syntax Error" >
+		<!-- no way: fallthrough="1" fallthroughContext="clause_seq" > -->
+		<Detect2Chars column="0" char="#" char1="!" context="1-comment" attribute="% italic predicates: w/ side effects" />
+		<!-- else fallthrough (workaround broken fallthrough) -->
+		<RegExpr String="&any;" lookAhead="true" context="clause" attribute="Syntax Error" />
+	    </context>
+
+	    <!-- syntax error (Test & Debug Aid, too): it's enough to highlight next token -->
+	    <context name="syntax_error" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<DetectSpaces context="#pop" attribute="Syntax Error" />
+		<DetectIdentifier context="#pop" attribute="Syntax Error" />
+		<RegExpr String="&any;" context="#pop" attribute="Syntax Error" />
+	    </context>
+
+	    <!-- clause: Start a region for code folding and switch to term -->
+<!-- 	    <context name="clause" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" > -->
+	    <context name="clause" lineEndContext="#stay" attribute="Syntax Error" >
+		<IncludeRules context="layout" />
+		<!-- KISS: do not force term to detect an empty clause as syntax error -->
+		<RegExpr String="&fullstop_iso;" context="#stay" attribute="Warning (!use background)" />
+<!-- 		<RegExpr lookAhead="true" String="&any;" context="term" attribute="Syntax Error" /> -->
+		<RegExpr lookAhead="true" String="&any;" context="term" beginRegion="clause" attribute="Syntax Error" />
+	    </context>
+
+	    <!--term/nested/list/curly: the master/dispatcher -->
+	    <!-- (abbreviated): term := var | atomic | compound | "(" term ")"
+
+	    (term_seq := term "," term_seq | term    Not needed: comma is an op)
+	    term      := layout solo layout | layout solo | solo layout | solo
+	    solo      := var | atomic | compound | "(" term ")"
+	    compound  := op term | term op | term op term | functored | list
+	    functored := atom "(" arg_seq ")" | op "(" arg_seq ")"
+	    list      := "[" l_arg_seq "]" | double_quoted | "." "(" arg_seq ")"
+	    (if semantics of double_quoted not changed by set_prolog_flag/2)
+	    sorry I forgot curly: the DCG term but can not contain the fullstop.
+
+	    Comments in 'term' apply to the others as well.
+	    Note that eating layout once is enough, since we come back here.
+	    Only end the clause in the outmost term, which can only be term. -->
+	    <context name="term" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<IncludeRules context="layout" />
+		<DetectChar char="(" context="nested" beginRegion="nested" attribute="( ) [ ]" />
+		<DetectChar char="[" context="list" beginRegion="list" attribute="( ) [ ]" />
+		<DetectChar char="{" context="curly" beginRegion="curly" attribute="{ DCG }" />
+		<DetectChar char="&comma;" context="#stay" attribute="Logic &amp; Control" />
+		<DetectChar char="&cut;" context="#stay" attribute="Logic &amp; Control" />
+		<DetectChar char="&bar;" context="#stay" attribute="Normal Text" />
+		<!-- lookAhead to give different style to the dot and the brace -->
+		<Detect2Chars lookAhead="true" char="&dot;" char1="(" context="list_functor" attribute="Syntax Error" />
+<!-- 		<RegExpr String="&fullstop_iso;" context="#pop" attribute="Logic &amp; Control" /> -->
+		<RegExpr String="&fullstop_iso;" context="#pop" endRegion="clause" attribute="Logic &amp; Control" />
+		<IncludeRules context="atomic" />
+		<!-- Default: anything not eaten here is a syntax error -->
+	    </context>
+	    <context name="nested" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<IncludeRules context="layout" />
+		<DetectChar char=")" context="#pop" endRegion="nested" attribute="( ) [ ]" />
+		<DetectChar char="(" context="nested" beginRegion="nested" attribute="( ) [ ]" />
+		<DetectChar char="[" context="list" beginRegion="list" attribute="( ) [ ]" />
+		<DetectChar char="{" context="curly" beginRegion="curly" attribute="{ DCG }" />
+		<DetectChar char="&cut;" context="#stay" attribute="Logic &amp; Control" />
+		<DetectChar char="&comma;" context="#stay" attribute="Logic &amp; Control" />
+		<DetectChar char="&bar;" context="#stay" attribute="Normal Text" />
+		<Detect2Chars lookAhead="true" char="&dot;" char1="(" context="list_functor" attribute="Normal Text" />
+		<RegExpr String="&fullstop_iso;" context="#stay" attribute="Warning (!use background)" />
+		<IncludeRules context="atomic" />
+	    </context>
+	    <context name="list" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<IncludeRules context="layout" />
+		<DetectChar char="(" context="nested" beginRegion="nested" attribute="( ) [ ]" />
+		<DetectChar char="]" context="#pop" endRegion="list" attribute="( ) [ ]" />
+		<DetectChar char="[" context="list" beginRegion="list" attribute="( ) [ ]" />
+		<DetectChar char="{" context="curly" beginRegion="curly" attribute="( ) [ ]" />
+		<DetectChar char="&comma;" context="#stay" attribute="Normal Text" />
+		<DetectChar char="&cut;" context="#stay" attribute="Normal Text" />
+		<DetectChar char="&bar;" context="#stay" attribute="other built-in operator" />
+		<Detect2Chars lookAhead="true" char="&dot;" char1="(" context="list_functor" attribute="Normal Text" />
+		<IncludeRules context="atomic" />
+	    </context>
+	    <context name="curly" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<IncludeRules context="layout" />
+		<DetectChar char="(" context="nested" beginRegion="nested" attribute="( ) [ ]" />
+		<DetectChar char="[" context="list" beginRegion="list" attribute="( ) [ ]" />
+		<DetectChar char="}" context="#pop" endRegion="curly" attribute="{ DCG }" />
+		<DetectChar char="{" context="curly" beginRegion="curly" attribute="{ DCG }" />
+		<DetectChar char="&comma;" context="#stay" attribute="Logic &amp; Control" />
+		<DetectChar char="&cut;" context="#stay" attribute="Logic &amp; Control" />
+		<DetectChar char="&bar;" context="#stay" attribute="Normal Text" />
+		<Detect2Chars lookAhead="true" char="&dot;" char1="(" context="list_functor" attribute="Normal Text" />
+		<IncludeRules context="atomic" />
+	    </context>
+
+	    <!--  arith_expr := expr op expr | op expr | expr op | "(" expr ")"
+			expr := number_expr | var | arith_expr
+
+	    This is only a goody to highlight arith ops and detect syntax errors.
+	    If it causes problems, disable it: exchange context="arith_expr" in
+	    "atomic" and "operator" below with context="#stay" (two or three occurrences) -->
+	    <context name="arith_expr" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<DetectChar char="(" context="nested_expr" beginRegion="nested" attribute="( ) [ ]" />
+		<DetectChar lookAhead="true" char=")" context="#pop" attribute="( ) [ ]" />
+		<DetectChar lookAhead="true" char="}" context="#pop" attribute="{ DCG }" />
+		<DetectChar lookAhead="true" char="]" context="#pop" attribute="( ) [ ]" />
+		<!-- FIXME check if cut may be an op, else (and in any case 99.9% likely) it's a usual cut here -->
+		<DetectChar lookAhead="true" char="&cut;" context="#pop" attribute="Logic &amp; Control" />
+		<DetectChar lookAhead="true" char="&comma;" context="#pop" attribute="Logic &amp; Control" />
+		<!-- bar & dot could be a user-def'd op, pre-def'd ops could be
+		redef'd; but let's assume the default and just end the expr -->
+		<DetectChar lookAhead="true" char="&bar;" context="#pop" attribute="other built-in operator" />
+		<RegExpr lookAhead="true" String="&fullstop_iso;" context="#pop" attribute="Logic &amp; Control" />
+		<RegExpr lookAhead="true" String="&logic_control_ops_iso;" context="#pop" attribute="Logic &amp; Control" />
+		<IncludeRules context="arith_expr_common" />
+	    </context>
+	    <context name="nested_expr" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<DetectChar char="(" context="nested_expr" beginRegion="nested" attribute="( ) [ ]" />
+		<DetectChar char=")" context="#pop" endRegion="nested" attribute="( ) [ ]" />
+		<!-- FIXME check if cut may be an op, else it's a syntax error here -->
+		<DetectChar char="&cut;" context="#stay" attribute="Normal Text" />
+		<DetectChar char="&comma;" context="#stay" attribute="Syntax Error" />
+		<!-- bar & dot could be a user-def'd op, pre-def'd ops could be redef'd; else these were errors -->
+		<DetectChar char="&bar;" context="#stay" attribute="Normal Text" />
+		<RegExpr String="&logic_control_ops_iso;" context="#stay" attribute="other built-in operator" />
+		<IncludeRules context="arith_expr_common" />
+	    </context>
+
+	    <!-- list functor: assign style to the dot and let term/list/curly take the brace
+	    (We have no style "built-in term", so take "Normal text" or "built-in predicate")
+	    ASSERT 1st is the dot, else "Syntax Error" INTENTIONALLY -->
+	    <context name="list_functor" lineEndContext="syntax_error" attribute="Syntax Error" >
+		<DetectChar char="&dot;" context="#pop" attribute="other built-in predicate" />
+	    </context>
+
+	    <!-- single/double/back-quoted: handle esc seq and closing quote
+	    Comments in single-quoted apply to the others as well.
+	    Entry point is single/double/back-quoted (only to handle syntax error:
+	    nl after opening quote), sq/dq/bq is inside the string.
+	    lineEndContext should be "syntax_error", but then we couldn't handle
+	    a valid esc'd line continuation.  So we do that 'in vitro' (took me
+	    2 days w/ a plethora of useless rules to solve that puzzle LOL).
+	    On error must not #stay, else the error isn't shown iff white or empty -->
+	    <context name="sq" lineEndContext="#stay" attribute="'quo Ted'" noIndentationBasedFolding="true">
+<!-- 	    <context name="single-quoted" lineEndContext="#stay" attribute="'quo Ted'" > -->
+		<IncludeRules context="quoted_1st"/>
+		<!-- un-esc'd nl is a syntax error; match max seq (+), else the
+		error is only shown in the next line -->
+		<RegExpr String="(''|&esc_oct_iso;|&esc_hex_iso;|\\&any;|[^'\\]+)$"
+			context="syntax_error_sq" attribute="Syntax Error" />
+		<!-- Usual handling: -->
+		<Detect2Chars char="'" char1="'" context="#stay" attribute="escaped (!use background)" />
+		<DetectChar char="'" context="#pop#pop" endRegion="quoted" attribute="'quo Ted'" />
+		<IncludeRules context="quoted_last"/>
+		<!-- Default: literal content of the quoted string, context's style applies -->
+	    </context>
+	    <context name="dq" lineEndContext="#stay" attribute="&quot;double-quoted&quot;" noIndentationBasedFolding="true" >
+<!-- 	    <context name="double-quoted" lineEndContext="#stay" attribute="&quot;double-quoted&quot;" > -->
+		<IncludeRules context="quoted_1st"/>
+		<RegExpr String="(&quot;&quot;|&esc_oct_iso;|&esc_hex_iso;|\\&any;|[^&quot;\\]+)$"
+			context="syntax_error_dq" attribute="Syntax Error" />
+		<Detect2Chars char="&quot;" char1="&quot;" context="#stay" attribute="escaped (!use background)" />
+		<DetectChar char="&quot;" context="#pop#pop" endRegion="quoted" attribute="&quot;double-quoted&quot;" />
+		<IncludeRules context="quoted_last"/>
+	    </context>
+	    <context name="bq" lineEndContext="#stay" attribute="`back-quoted`" noIndentationBasedFolding="true" >
+<!-- 	    <context name="back-quoted" lineEndContext="#stay" attribute="`back-quoted`" > -->
+		<IncludeRules context="quoted_1st"/>
+		<RegExpr String="(``|&esc_oct_iso;|&esc_hex_iso;|\\&any;|[^`\\]+)$"
+			context="syntax_error_bq" attribute="Syntax Error" />
+		<Detect2Chars char="`" char1="`" attribute="escaped (!use background)" />
+		<DetectChar char="`" context="#pop#pop" endRegion="quoted" attribute="`back-quoted`" />
+		<IncludeRules context="quoted_last"/>
+	    </context>
+	    <context name="single-quoted" lineEndContext="#stay" attribute="'quo Ted'" >
+		<RegExpr String="'$" context="sq" beginRegion="quoted" attribute="Syntax Error" />
+		<DetectChar char="'" context="sq" beginRegion="quoted" attribute="'quo Ted'" />
+	    </context>
+	    <context name="double-quoted" lineEndContext="#stay" attribute="&quot;double-quoted&quot;" >
+		<RegExpr String="&quot;$" context="dq" beginRegion="quoted" attribute="Syntax Error" />
+		<DetectChar char="&quot;" context="dq" beginRegion="quoted" attribute="&quot;double-quoted&quot;" />
+	    </context>
+	    <context name="back-quoted" lineEndContext="#stay" attribute="`back-quoted`" >
+		<RegExpr String="`$" context="bq" beginRegion="quoted" attribute="Syntax Error" />
+		<DetectChar char="`" context="bq" beginRegion="quoted" attribute="`back-quoted`" />
+	    </context>
+
+	    <!-- syntax_error_q: highlight next token and proceed normal afterwards -->
+	    <context name="syntax_error_sq" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<Detect2Chars char="\" char1="'" context="#pop" attribute="Syntax Error" />
+		<Detect2Chars char="'" char1="'" context="#pop" attribute="Syntax Error" />
+		<DetectChar char="'" context="#pop#pop#pop" endRegion="quoted" attribute="Syntax Error" />
+		<IncludeRules context="syntax_error"/>
+	    </context>
+	    <context name="syntax_error_dq" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<Detect2Chars char="\" char1="&quot;" context="#pop" attribute="Syntax Error" />
+		<Detect2Chars char="&quot;" char1="&quot;" context="#pop" attribute="Syntax Error" />
+		<DetectChar char="&quot;" context="#pop#pop#pop" endRegion="quoted" attribute="Syntax Error" />
+		<IncludeRules context="syntax_error"/>
+	    </context>
+	    <context name="syntax_error_bq" lineEndContext="#stay" attribute="Syntax Error" noIndentationBasedFolding="true" >
+		<Detect2Chars char="\" char1="`" context="#pop" attribute="Syntax Error" />
+		<Detect2Chars char="`" char1="`" context="#pop" attribute="Syntax Error" />
+		<DetectChar char="`" context="#pop#pop#pop" endRegion="quoted" attribute="Syntax Error" />
+		<IncludeRules context="syntax_error"/>
+	    </context>
+
+	    <!-- char_code (after "0'"): esc seq, singleq twice, or any other -->
+	    <context name="char_code" lineEndContext="#pop" attribute="Syntax Error" >
+		<Detect2Chars char="'" char1="'" context="#pop" attribute="escaped (!use background)" />
+		<DetectChar char="'" context="#pop" attribute="Syntax Error" />
+		<DetectChar char="&bs;" context="esc_seq_cc" attribute="escaped (!use background)" />
+		<DetectChar char="&tab;" context="#pop" attribute="Warning (!use background)" />
+		<!-- Default _AND IF_ esc_seq #pops back here; we need this to #pop out -->
+		<RegExpr String="&any;" context="#pop" attribute="0'a (!use background)" />
+	    </context>
+	    <!-- "0'" or "0'\" at EOL is a syntax error, catched below.  If
+	    possible, highlight white @next line to make clear error is the nl -->
+	    <context name="syntax_error_cc" lineEndContext="#stay" attribute="Syntax Error"
+		    fallthrough="true" fallthroughContext="#pop" >
+		<DetectSpaces context="#pop" attribute="Syntax Error" />
+	    </context>
+
+	    <!-- esc_seq: it's not worth it to handle common for quoted and cc
+	    esc_seq_q: handle only cc in bs (e.g. "\007\"), else -> esc_seq_q2
+	    ASSERT esc'd newline is handled by the calling context
+	    ASSERT we get the leading bs here to highlight the whole thing -->
+	    <context name="esc_seq_q" lineEndContext="syntax_error" attribute="Syntax Error" >
+		<RegExpr String="&esc_oct_iso;" context="#pop" attribute="0'a (!use background)" />
+		<RegExpr String="&esc_hex_iso;" context="#pop" attribute="0'a (!use background)" />
+		<DetectChar char="&bs;" context="esc_seq_q2" attribute="escaped (!use background)" />
+	    </context>
+	    <!-- esc_seq_cc: #pop#pop out of cc on std esc seq, else pass char back
+	    ASSERT we do NOT need the leading bs here anymore -->
+	    <context name="esc_seq_cc" fallthrough="true" fallthroughContext="#pop"
+		    lineEndContext="#pop#pop" attribute="Syntax Error" >
+		<DetectChar char="&tab;" context="#pop#pop" attribute="Warning (!use background)" />
+		<AnyChar String="&any_esc_iso;" context="#pop#pop" attribute="escaped (!use background)" />
+	    </context>
+	    <!-- esc_seq_q2: Handle standard esc seq in quoted else pass char back
+	    ASSERT we do NOT need the leading bs here anymore -->
+	    <context name="esc_seq_q2" fallthrough="true" fallthroughContext="#pop#pop"
+		    lineEndContext="syntax_error" attribute="Syntax Error" >
+		<DetectChar char="&tab;" context="#pop#pop" attribute="Warning (!use background)" />
+		<AnyChar String="&any_esc_iso;" context="#pop#pop" attribute="escaped (!use background)" />
+	    </context>
+
+	    <!-- id,var,graphic: ASSERT calling context ashured 1st char is ok
+				 ASSERT we get the 1st char for id & var -->
+	    <context name="id" attribute="Syntax Error" lineEndContext="#stay" >
+		<DetectIdentifier context="#pop" attribute="Normal Text" />
+	    </context>
+	    <context name="var" attribute="Syntax Error" lineEndContext="#stay" >
+		<DetectIdentifier context="#pop" attribute="_VARIABLE" />
+	    </context>
+	    <context name="graphic" lineEndContext="#pop" attribute="Syntax Error" fallthrough="true" fallthroughContext="#pop" >
+		<AnyChar String="&any_graphic_iso;" context="#stay" attribute="Normal Text" />
+	    </context>
+
+	    <!-- numbers (after "0[box]") -->
+	    <context name="bin" lineEndContext="#pop" attribute="Syntax Error" fallthrough="true" fallthroughContext="#pop" >
+		<AnyChar String="&any_bin_iso;" context="#stay" attribute="0b1001 0o007 0xF1" />
+	    </context>
+	    <context name="oct" lineEndContext="#pop" attribute="Syntax Error" fallthrough="true" fallthroughContext="#pop" >
+		<AnyChar String="&any_oct_iso;" context="#stay" attribute="0b1001 0o007 0xF1" />
+	    </context>
+	    <context name="hex" lineEndContext="#pop" attribute="Syntax Error" fallthrough="true" fallthroughContext="#pop" >
+		<AnyChar String="&any_hex_iso;" context="#stay" attribute="0b1001 0o007 0xF1" />
+	    </context>
+
+	    <!-- comment-iso: multi-line comment, handle closing "*/" -->
+	    <context name="comment-iso" lineEndContext="#stay" attribute="% italic predicates: w/ side effects" >
+	    <!-- Nested comments are not allowed in strict ISO-Prolog - - >
+		<Detect2Chars char="/" char1="*" context="comment" beginRegion="comment"
+			    attribute="% italic predicates: w/ side effects" />-->
+		<Detect2Chars char="*" char1="/" context="#pop" endRegion="comment"
+			    attribute="% italic predicates: w/ side effects" />
+		<DetectSpaces />
+		<IncludeRules context="##Alerts_indent" />
+		<DetectIdentifier />
+	    </context>
+
+	    <!-- 1-line comment: #pop@EOL  -->
+	    <!-- Folding for consecutive 1-line comments: let indentation-based auto-folding work -->
+	    <context name="1-comment" lineEndContext="#pop" attribute="% italic predicates: w/ side effects" >
+		<DetectSpaces />
+		<IncludeRules context="##Alerts_indent" />
+		<DetectIdentifier />
+	    </context>
+	    <context name="region_marker" lineEndContext="#pop" attribute="%BEGIN folding region" noIndentationBasedFolding="true" >
+		<IncludeRules context="1-comment" />
+	    </context>
+	    <context name="layout_fold" lineEndContext="#stay" attribute="Syntax Error"
+		    fallthrough="true" fallthroughContext="#pop" >
+		<DetectSpaces attribute="Normal Text" />
+		<StringDetect String="%BEGIN" context="region_marker" attribute="%BEGIN folding region"
+			    firstNonSpace="true" beginRegion="user_region" />
+		<StringDetect String="%END" context="region_marker" attribute="%BEGIN folding region"
+			    firstNonSpace="true" endRegion="user_region" />
+		<DetectChar firstNonSpace="true" char="%" context="1-comment" attribute="% italic predicates: w/ side effects" />
+	    </context>
+
+<!--####### BEGIN sub rules to be included - <context> never taken -->
+
+	    <!-- Common for all quoted: Handle line continuation, esc seq, and most other input efficiently -->
+	    <context name="quoted_1st" lineEndContext="#stay" attribute="Syntax Error" >
+		<LineContinue attribute="escaped (!use background)" />
+		<DetectSpaces column="0" attribute="escaped (!use background)" />
+	    </context>
+	    <context name="quoted_last" lineEndContext="#stay" attribute="Syntax Error" >
+		<DetectChar lookAhead="true" char="&bs;" context="esc_seq_q" attribute="Syntax Error" />
+		<DetectChar char="&tab;" attribute="Warning (!use background)" />
+		<DetectIdentifier />
+		<DetectSpaces />
+	    </context>
+
+	    <!-- layout_seq := layout layout_seq
+		     layout := " " | tab | nl | comment -->
+	    <context name="layout" lineEndContext="#stay" attribute="Syntax Error" >
+		<DetectSpaces attribute="Normal Text" />
+		<Detect2Chars char="/" char1="*" context="comment-iso" attribute="% italic predicates: w/ side effects"
+			    beginRegion="comment" />
+		<StringDetect String="%BEGIN" context="region_marker" attribute="%BEGIN folding region"
+			    firstNonSpace="true" beginRegion="user_region" />
+		<StringDetect String="%END" context="region_marker" attribute="%BEGIN folding region"
+			    firstNonSpace="true" endRegion="user_region" />
+		<DetectChar firstNonSpace="true" char="%" context="layout_fold" attribute="% italic predicates: w/ side effects"
+			    lookAhead="true" />
+		<DetectChar firstNonSpace="false" char="%" context="1-comment" attribute="% italic predicates: w/ side effects" />
+	    </context>
+
+	    <!--atomic: the work horse -->
+	    <!-- (simplified) atomic := atom | number | op | var -->
+	    <context name="atomic" lineEndContext="#stay" attribute="Syntax Error" >
+		<!-- NOTE the order of rules is important... (as always)
+		Predefined 1st, unknown (user defined) last -->
+		<keyword String="logic+control ISO" context="#stay" attribute="Logic &amp; Control" />
+		<keyword String="types ISO" context="#stay" attribute="Type Checking" />
+		<keyword String="dyn clause mgmt ISO" context="#stay" attribute="Dynamic Clause Management" />
+		<keyword String="streams ISO" context="#stay" attribute="Stream I/O" />
+		<keyword String="terms ISO" context="#stay" attribute="other built-in predicate" />
+		<keyword String="prolog state ISO" context="#stay" attribute="Prolog State" />
+		<keyword String="DCG non-ISO" context="#stay" attribute="{ DCG }" />
+		<keyword String="arith eval ISO" context="arith_expr" attribute="Arithmetics" />
+		<!-- These are user predicates outside arit_expr -->
+<!-- 		<keyword String="arith expr mixed ISO" context="#stay" attribute="other built-in predicate" /> -->
+<!-- 		<keyword String="arith expr int ISO" context="#stay" attribute="other built-in predicate" /> -->
+<!-- 		<keyword String="arith expr float ISO" context="#stay" attribute="other built-in predicate" /> -->
+		<keyword String="built-ins ISO" context="#stay" attribute="other built-in predicate" />
+		<keyword String="error term ISO" context="#stay" attribute="Guru Meditation" />
+		<keyword String="guru meditation terms ISO" context="#stay" attribute="Guru Meditation Terms" />
+		<keyword String="bogus ISO" context="#stay" attribute="ISO Bogus" />
+
+		<!-- Match char code before quoted and ops... -->
+ 		<IncludeRules context="number" />
+
+		<!-- these depend on current_prolog_flag/2 so can all return a term i.e. a list (of char codes) -->
+		<DetectChar lookAhead="true" char="'" context="single-quoted" attribute="'quo Ted'" />
+		<DetectChar lookAhead="true" char="`" context="back-quoted" attribute="`back-quoted`" />
+		<DetectChar lookAhead="true" char="&quot;" context="double-quoted" attribute="&quot;double-quoted&quot;" />
+
+		<!-- ...and ops before atoms, else "div", "is" etc. are usual atoms -->
+ 		<IncludeRules context="operator" />
+		<AnyChar lookAhead="true" String="&any_lower_iso;" context="id" attribute="Normal Text" />
+		<AnyChar lookAhead="true" String="&any_upper_under_iso;" context="var" attribute="_VARIABLE" />
+		<AnyChar String="&any_graphic_iso;" context="graphic" attribute="Normal Text" />
+	    </context> <!-- atomic -->
+
+	    <!-- [(mostly) "atomic" for] arith_expr := arith_op | number_expr | var
+				      number_expr := number | built-in | user-def
+
+	    This is only a goody to highlight arith ops and detect syntax errors.
+	    If it causes problems, disable it: exchange context="arith_expr" in
+	    contexts "atomic" and "operator" with context="#stay" -->
+	    <context name="arith_expr_common" lineEndContext="#stay" attribute="Syntax Error" >
+		<IncludeRules context="layout" />
+		<IncludeRules context="number" />
+		<keyword String="arith eval ISO" context="#pop" attribute="Syntax Error" />
+		<keyword String="bogus ISO" context="#stay" attribute="ISO Bogus" />
+		<keyword String="arith expr mixed ISO" context="#stay" attribute="Arithmetics" />
+		<keyword String="arith expr int ISO" context="#stay" attribute="Integer Arithmetics" />
+		<keyword String="arith expr float ISO" context="#stay" attribute="Float Arithmetics" />
+		<keyword String="arith ops int ISO" context="#stay" attribute="Integer Arithmetics" />
+		<RegExpr String="&arith_compare_iso;" context="#pop" attribute="Syntax Error" />
+		<RegExpr String="&arith_ops_mixed_iso;" context="#stay" attribute="Arithmetics" />
+		<RegExpr String="&arith_ops_int_iso;" context="#stay" attribute="Integer Arithmetics" />
+		<RegExpr String="&arith_ops_float_iso;" context="#stay" attribute="Float Arithmetics" />
+		<RegExpr String="&arith_bogus_iso;" context="#stay" attribute="ISO Bogus" />
+		<!-- do not miss user-def'd arithmetic expr and number expr-->
+ 		<IncludeRules context="operator" />
+		<AnyChar lookAhead="true" String="&any_lower_iso;" context="id" attribute="Normal Text" />
+		<AnyChar lookAhead="true" String="&any_upper_under_iso;" context="var" attribute="_VARIABLE" />
+		<AnyChar String="&any_graphic_iso;" context="graphic" attribute="Normal Text" />
+	    </context>
+
+	    <!-- number := float | integer
+		integer := decimal | baseN | "0'" char_code
+		baseN   := "0b" [01]+ | "0o" [0-7]+ | "0x" [0-9a-fA-F]+ -->
+	    <context name="number" lineEndContext="#pop" attribute="Syntax Error" >
+		<!-- Match integers after other numbers -->
+		<!-- FIXME a minus may precede all numbers and is part of the number! -->
+		<RegExpr String="0'\\?$" context="syntax_error_cc" attribute="Syntax Error" />
+		<Detect2Chars char="0" char1="'" context="char_code" attribute="0'a (!use background)" />
+
+<!-- NOT: [box] could be a postfix op <RegExpr String="0[box]$" context="#stay" attribute="Syntax Error" /> -->
+		<Detect2Chars char="0" char1="b" context="bin" attribute="0b1001 0o007 0xF1" />
+		<Detect2Chars char="0" char1="o" context="oct" attribute="0b1001 0o007 0xF1" />
+		<Detect2Chars char="0" char1="x" context="hex" attribute="0b1001 0o007 0xF1" />
+
+		<RegExpr String="&float1_iso;" context="#stay" attribute="2.718281E-9" />
+		<RegExpr String="&float2_iso;" context="#stay" attribute="2.718281E-9" />
+		<RegExpr String="&float3_iso;" context="#stay" attribute="2.718281E-9" />
+		<Int context="#stay" attribute="1  2  3  42" />
+	    </context>
+
+	    <!-- operator := predefined_op | dynamic_op (which we can not detect)
+	    comma, single dot & bar are catched earlier above in term/list/curly -->
+	    <context name="operator" lineEndContext="#pop" attribute="Syntax Error" >
+		<keyword String="arith eval ISO" context="arith_expr" attribute="Arithmetics" />
+		<keyword String="arith ops int ISO" context="#stay" attribute="other built-in operator" />
+		<RegExpr String="&logic_control_ops_iso;" context="#stay" attribute="Logic &amp; Control" />
+		<RegExpr String="&predefined_ops_iso;" context="#stay" attribute="other built-in operator" />
+		<RegExpr String="&dcg_production_iso;" context="#stay" attribute="{ DCG }" />
+		<RegExpr String="&arith_compare_iso;" context="arith_expr" attribute="Arithmetics" />
+		<RegExpr String="&arith_ops_mixed_iso;" context="#stay" attribute="other built-in operator" />
+		<RegExpr String="&arith_ops_int_iso;" context="#stay" attribute="other built-in operator" />
+		<RegExpr String="&arith_ops_float_iso;" context="#stay" attribute="other built-in operator" />
+		<RegExpr String="&arith_bogus_iso;" context="#stay" attribute="ISO Bogus" />
+	    </context>
+
+<!--####### END sub rules to be included - <context> never taken -->
+	</contexts>
+
+	<!-- The idea is to give all predicates that may be affected by the
+	"outside world" a common style (italic).  I.e. these can throw a
+	permission, evaluation, representation or resource_error, even though
+	the program itself is 100% correct.  E.g. you get_char/2 a char code 1
+	from a text stream (representation_error): not your mistake, but you
+	have to deal with that, too. -->
+	<itemDatas>
+	    <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" />
+	    <itemData name="_VARIABLE" defStyleNum="dsDataType" bold="false" spellChecking="false" />
+	    <itemData name="'quo Ted'" defStyleNum="dsString" />
+	    <itemData name="`back-quoted`" defStyleNum="dsString" italic="true" />
+	    <!-- The standard wants double-quoted to be a list of char codes, but
+	    e.g. GNU Prolog allows that to be set with set_prolog_flag/2 -->
+	    <itemData name="&quot;double-quoted&quot;" defStyleNum="dsOthers" />
+	    <itemData name="escaped (!use background)" defStyleNum="dsChar" spellChecking="false"
+			 backgroundColor="#0C0C0C" selBackgroundColor="#FFFFFF" />
+
+	    <!-- Numbers -->
+	    <itemData name="2.718281E-9" defStyleNum="dsFloat" spellChecking="false" />
+	    <itemData name="1  2  3  42" defStyleNum="dsDecVal" spellChecking="false" />
+	    <itemData name="0b1001 0o007 0xF1" defStyleNum="dsBaseN" spellChecking="false" />
+	    <itemData name="0'a (!use background)" defStyleNum="dsBaseN" spellChecking="false"
+			 backgroundColor="#0C0C0C" selBackgroundColor="#FFFFFF" />
+
+	    <itemData name="( ) [ ]" defStyleNum="dsNormal" spellChecking="false" />
+	    <itemData name="{ DCG }" defStyleNum="dsKeyword" spellChecking="false" />
+	    <itemData name="Prolog State" defStyleNum="dsFunction" bold="true" spellChecking="false" />
+	    <itemData name="Type Checking" defStyleNum="dsDataType" spellChecking="false" />
+	    <itemData name="Logic &amp; Control" defStyleNum="dsKeyword" spellChecking="false" />
+	    <itemData name="other built-in operator" defStyleNum="dsFunction" spellChecking="false" />
+	    <itemData name="other built-in predicate" defStyleNum="dsFunction" spellChecking="false" />
+
+	    <!-- Comments (2nd not used, just a hint) -->
+	    <itemData name="% italic predicates: w/ side effects" defStyleNum="dsComment" />
+	    <itemData name="/* !avoid leading * to have folding */" defStyleNum="dsComment" />
+
+	    <!-- Predicates affected by 'outside world' -->
+	    <itemData name="Dynamic Clause Management" defStyleNum="dsKeyword" italic="true" spellChecking="false" />
+	    <itemData name="Stream I/O" defStyleNum="dsFunction" italic="true" spellChecking="false" />
+
+	    <!-- arithmetics: get the color of ints/floats; includes ops & expressions like pi -->
+	    <itemData name="Arithmetics" defStyleNum="dsDataType" bold="true" italic="true" spellChecking="false" />
+	    <itemData name="Integer Arithmetics" defStyleNum="dsDecVal" bold="true" italic="true" spellChecking="false" />
+	    <itemData name="Float Arithmetics" defStyleNum="dsFloat" bold="true" italic="true" spellChecking="false" />
+	    <itemData name="ISO Bogus" defStyleNum="dsAlert" bold="true" italic="true" spellChecking="false" />
+
+	    <!-- no way w/ buggy kate 3.8.5: get the color of default style dsError for error and terms -->
+	    <itemData name="Guru Meditation" defStyleNum="dsNormal" spellChecking="false"
+		    bold="true" italic="false" underline="false" color="#FF0000" selColor="#00FFFF" />
+	    <itemData name="Guru Meditation Terms" defStyleNum="dsNormal" spellChecking="false"
+		    bold="false" italic="true" underline="false" color="#FF0000" selColor="#00FFFF" />
+	    <itemData name="Syntax Error" defStyleNum="dsError" spellChecking="false" />
+	    <itemData name="Warning (!use background)" defStyleNum="dsAlert" spellChecking="false"
+			backgroundColor="#FC000C" selBackgroundColor="#03FFF3" />
+	    <itemData name="%BEGIN folding region" defStyleNum="dsRegionMarker" spellChecking="false" />
+	</itemDatas>
+    </highlighting>
+    <general>
+	<keywords casesensitive="true" additionalDeliminator="$#'&quot;`" />
+	<!-- let indentationsensitive folding provide it's magic -->
+	<folding indentationsensitive="true" />
+<!-- 	<EmptyLines> -->
+<!--        <EmptyLine regexpr="^[ /t]*(?!%).*$" /> -->
+<!-- 	</EmptyLines> -->
+	<comments>
+	    <comment name="singleLine" start="%" position="afterwhitespace" />
+	    <comment name="multiLine" start="/*" end="*/" region="comment" />
+	</comments>
+    </general>
+</language>
+<!--##### NOTE [HOWTO check your syntax file, extracted from language.dtd] #####
+
+	Copyright (c) 2001 Joseph Wenninger <jowenn@kde.org>
+        modified (c) 2002 Anders Lund <anders@alweb.dk>
+        modified (c) 2003 Simon Huerlimann <simon.huerlimann@access.unizh.ch>
+        modified (c) 2005 Dominik Haumann <dhdev@gmx.de>
+        modified (c) 2008 Wilbert Berendsen <info@wilbertberendsen.nl>
+
+    You can validate your syntax files using checkXML from the development
+    package of kdelibs [author: i.e. kdelibs-dev]:
+
+	checkXML yourSyntax.xml [author: | grep -v 'no template matches']
+
+    If you see any 'validity error' lines, you should fix them. If you get
+    a lot of 'No template matches' lines, everything's just fine. You've
+    produced a valid syntax file!
+
+    It's also possible to use the (much faster) xmllint which comes with the
+    GNOME (oops:-) XML Library libxml2:
+
+	xmllint - -dtdvalid language.dtd yourSyntax.xml
+	(don't use a space between the two - [author: dashes/minus]
+	That's just because XML comments don't allow that:-(
+
+    To use your syntax file, copy it to .kde/share/apps/katepart/syntax/ in
+    your home directory. You have to open a new instance of kwrite/kate to use
+    the new syntax file.
+-->
diff --git a/xml/pure.xml b/xml/pure.xml
new file mode 100644
--- /dev/null
+++ b/xml/pure.xml
@@ -0,0 +1,146 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+
+ Pure syntax highlighting for kate. Usage:
+
+ - Copy this file either to ~/.kde/share/apps/katepart/syntax or to the global
+   /opt/kde3/share/apps/katepart/syntax directory (or wherever the Kate syntax
+   files are located on your system).
+
+ - You may also want to add a mime type for *.pure files so that your file
+   manager can recognize them.
+
+ - Fire up kate on your Pure script and enjoy the syntax highlighting.
+   Folding of comments and block structure is also supported.
+
+ Author: Albert Graef, with some fixes contributed by Eddie Rucker
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Library General Public
+ License as published by the Free Software Foundation; either
+ version 2 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+ Library General Public License for more details.
+
+ You should have received a copy of the GNU Library General Public
+ License along with this library; if not, write to the
+ Free Software Foundation, Inc., 59 Temple Place - Suite 330,
+ Boston, MA 02111-1307, USA.
+
+-->
+<language name="Pure" version="1.2" kateversion="2.4" section="Sources" extensions="*.pure">
+  <highlighting>
+    <list name="blockstarters">
+      <item> case </item>
+      <item> when </item>
+      <item> with </item>
+    </list>
+    <list name="blockenders">
+      <item> end </item>
+    </list>
+    <list name="keywords">
+      <item> const </item>
+      <item> def </item>
+      <item> else </item>
+      <item> extern </item>
+      <item> if </item>
+      <item> infix </item>
+      <item> infixl </item>
+      <item> infixr </item>
+      <item> interface </item>
+      <item> let </item>
+      <item> namespace </item>
+      <item> nonfix </item>
+      <item> of </item>
+      <item> otherwise </item>
+      <item> outfix </item>
+      <item> postfix </item>
+      <item> prefix </item>
+      <item> private </item>
+      <item> public </item>
+      <item> then </item>
+      <item> type </item>
+      <item> using </item>
+    </list>
+    <list name="special">
+      <item> catch </item>
+      <item> throw </item>
+      <item> __break__ </item>
+      <item> __trace__ </item>
+    </list>
+    <list name="types">
+      <item> bigint </item>
+      <item> bool </item>
+      <item> char </item>
+      <item> float  </item>
+      <item> double  </item>
+      <item> expr </item>
+      <item> short </item>
+      <item> int </item>
+      <item> long </item>
+      <item> string </item>
+      <item> pointer </item>
+      <item> void </item>
+      <item> int8 </item>
+      <item> int16 </item>
+      <item> int32 </item>
+      <item> int64 </item>
+      <item> matrix </item>
+      <item> dmatrix </item>
+      <item> cmatrix </item>
+      <item> imatrix </item>
+      <item> smatrix </item>
+      <item> nmatrix </item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectSpaces />
+        <keyword attribute="Keyword" context="#stay" String="blockstarters" beginRegion="Block" />
+        <keyword attribute="Keyword" context="#stay" String="blockenders" endRegion="Block" />
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Function" context="#stay" String="special"/>
+        <keyword attribute="Type" context="#stay" String="types"/>
+        <RegExpr attribute="Normal Text" context="#stay" String="[A-Za-z_][A-Za-z0-9_]*"/>
+        <RegExpr attribute="Number" context="#stay" String="0x[A-Za-z0-9]+"/>
+        <Float attribute="Number" context="#stay"/>
+        <Int attribute="Number" context="#stay"/>
+        <HlCChar attribute="Char" context="#stay"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <Detect2Chars attribute="Comment" context="Comment1" char="/" char1="*" beginRegion="Comment" />
+        <Detect2Chars attribute="Comment" context="Comment2" char="/" char1="/"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Region Marker" lineEndContext="#pop" name="Region Marker">
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Comment1">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment2"/>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Keyword"     defStyleNum="dsKeyword" />
+      <itemData name="Function"    defStyleNum="dsFunction"/>
+      <itemData name="Type"        defStyleNum="dsDataType"/>
+      <itemData name="Number"      defStyleNum="dsDecVal" />
+      <itemData name="String"      defStyleNum="dsString" />
+      <itemData name="String Char" defStyleNum="dsChar"/>
+      <itemData name="Comment"     defStyleNum="dsComment" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" />
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" />
+    </comments>
+  </general>
+</language>
diff --git a/xml/purebasic.xml b/xml/purebasic.xml
new file mode 100644
--- /dev/null
+++ b/xml/purebasic.xml
@@ -0,0 +1,1766 @@
+<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">
+<language name="PureBasic" version="6" kateversion="2.3" section="Sources" extensions="*.pb;*.pbi" mimetype="text/x-purebasic" author="Alexander Clay (Tuireann@EpicBasic.org);Sven Langenkamp (ace@kylixforum.de)" license="LGPL" priority="1" >
+  <highlighting>
+    <list name="keywords">
+      <item>Break</item>
+      <item>Continue</item>
+      <item>For</item>
+      <item>ForEach</item>
+      <item>To</item>
+      <item>Step</item>
+      <item>Next</item>
+      <item>Gosub</item>
+      <item>Return</item>
+      <item>FakeReturn</item>
+      <item>If</item>
+      <item>Else</item>
+      <item>ElseIf</item>
+      <item>EndIf</item>
+      <item>Repeat</item>
+      <item>Until</item>
+      <item>Select</item>
+      <item>Case</item>
+      <item>Default</item>
+      <item>EndSelect</item>
+      <item>While</item>
+      <item>Wend</item>
+      <item>End</item>
+      <item>Structure</item>
+      <item>EndStructure</item>
+      <item>Interface</item>
+      <item>EndInterface</item>
+      <item>Extends</item>
+      <item>DefType</item>
+      <item>Dim</item>
+      <item>Enumeration</item>
+      <item>EndEnumeration</item>
+      <item>Global</item>
+      <item>Procedure</item>
+      <item>EndProcedure</item>
+      <item>ProcedureReturn</item>
+      <item>Shared</item>
+      <item>Protected</item>
+      <item>Static</item>
+      <item>Declare</item>
+      <item>DataSection</item>
+      <item>EndDataSection</item>
+      <item>Data</item>
+      <item>Restore</item>
+      <item>Read</item>
+      <item>IncludeFile</item>
+      <item>XIncludeFile</item>
+      <item>IncludeBinary</item>
+      <item>IncludePath</item>
+      <item>ProcedureDLL</item>
+      <item>NewList</item>
+      <item>Goto</item>
+      <item>With</item>
+      <item>DeclareModule</item>
+      <item>EndDeclareModule</item>
+      <item>Module</item>
+      <item>EndModule</item>
+      <item>UseModule</item>
+      <item>UnuseModule</item>
+    </list>
+    <list name="compiler">
+      <item>CompilerIf</item>
+      <item>CompilerElse</item>
+      <item>CompilerEndIf</item>
+      <item>CompilerSelect</item>
+      <item>CompilerCase</item>
+      <item>CompilerDefault</item>
+      <item>CompilerEndSelect</item>
+    </list>
+    <list name="debug">
+      <item>CallDebugger</item>
+      <item>Debug</item>
+    </list>
+    <list name="functions">
+      <item>ACos</item>
+      <item>ACosH</item>
+      <item>AESDecoder</item>
+      <item>AESEncoder</item>
+      <item>ASin</item>
+      <item>ASinH</item>
+      <item>ATan</item>
+      <item>ATan2</item>
+      <item>ATanH</item>
+      <item>AbortFTPFile</item>
+      <item>Abs</item>
+      <item>Add3DArchive</item>
+      <item>AddBillboard</item>
+      <item>AddCipherBuffer</item>
+      <item>AddDate</item>
+      <item>AddElement</item>
+      <item>AddEntityAnimationTime</item>
+      <item>AddGadgetColumn</item>
+      <item>AddGadgetItem</item>
+      <item>AddGadgetItem3D</item>
+      <item>AddJSONElement</item>
+      <item>AddJSONMember</item>
+      <item>AddKeyboardShortcut</item>
+      <item>AddMailAttachment</item>
+      <item>AddMailAttachmentData</item>
+      <item>AddMailRecipient</item>
+      <item>AddMapElement</item>
+      <item>AddMaterialLayer</item>
+      <item>AddNodeAnimationTime</item>
+      <item>AddPackFile</item>
+      <item>AddPackMemory</item>
+      <item>AddSplinePoint</item>
+      <item>AddStaticGeometryEntity</item>
+      <item>AddStatusBarField</item>
+      <item>AddSubMesh</item>
+      <item>AddSysTrayIcon</item>
+      <item>AddTerrainTexture</item>
+      <item>AddVertexPoseReference</item>
+      <item>AddWindowTimer</item>
+      <item>AffectedDatabaseRows</item>
+      <item>AllocateMemory</item>
+      <item>AllocateStructure</item>
+      <item>Alpha</item>
+      <item>AlphaBlend</item>
+      <item>AmbientColor</item>
+      <item>AntialiasingMode</item>
+      <item>ApplyEntityForce</item>
+      <item>ApplyEntityImpulse</item>
+      <item>ArraySize</item>
+      <item>Asc</item>
+      <item>AttachEntityObject</item>
+      <item>AttachNodeObject</item>
+      <item>AttachRibbonEffect</item>
+      <item>AudioCDLength</item>
+      <item>AudioCDName</item>
+      <item>AudioCDStatus</item>
+      <item>AudioCDTrackLength</item>
+      <item>AudioCDTrackSeconds</item>
+      <item>AudioCDTracks</item>
+      <item>AvailableProgramOutput</item>
+      <item>AvailableScreenMemory</item>
+      <item>AvailableSerialPortInput</item>
+      <item>AvailableSerialPortOutput</item>
+      <item>BackColor</item>
+      <item>Base64Decoder</item>
+      <item>Base64Encoder</item>
+      <item>BillboardGroupCommonDirection</item>
+      <item>BillboardGroupCommonUpVector</item>
+      <item>BillboardGroupID</item>
+      <item>BillboardGroupMaterial</item>
+      <item>BillboardGroupX</item>
+      <item>BillboardGroupY</item>
+      <item>BillboardGroupZ</item>
+      <item>BillboardHeight</item>
+      <item>BillboardLocate</item>
+      <item>BillboardWidth</item>
+      <item>BillboardX</item>
+      <item>BillboardY</item>
+      <item>BillboardZ</item>
+      <item>Bin</item>
+      <item>BindEvent</item>
+      <item>BindGadgetEvent</item>
+      <item>BindMenuEvent</item>
+      <item>Blue</item>
+      <item>Box</item>
+      <item>BoxedGradient</item>
+      <item>BuildMeshShadowVolume</item>
+      <item>BuildMeshTangents</item>
+      <item>BuildStaticGeometry</item>
+      <item>BuildTerrain</item>
+      <item>ButtonGadget</item>
+      <item>ButtonGadget3D</item>
+      <item>ButtonImageGadget</item>
+      <item>CPUName</item>
+      <item>CRC32FileFingerprint</item>
+      <item>CRC32Fingerprint</item>
+      <item>CalendarGadget</item>
+      <item>CallCFunction</item>
+      <item>CallCFunctionFast</item>
+      <item>CallFunction</item>
+      <item>CallFunctionFast</item>
+      <item>CameraBackColor</item>
+      <item>CameraDirection</item>
+      <item>CameraDirectionX</item>
+      <item>CameraDirectionY</item>
+      <item>CameraDirectionZ</item>
+      <item>CameraFOV</item>
+      <item>CameraFixedYawAxis</item>
+      <item>CameraFollow</item>
+      <item>CameraID</item>
+      <item>CameraLookAt</item>
+      <item>CameraPitch</item>
+      <item>CameraProjectionMode</item>
+      <item>CameraProjectionX</item>
+      <item>CameraProjectionY</item>
+      <item>CameraRange</item>
+      <item>CameraRenderMode</item>
+      <item>CameraRoll</item>
+      <item>CameraViewHeight</item>
+      <item>CameraViewWidth</item>
+      <item>CameraViewX</item>
+      <item>CameraViewY</item>
+      <item>CameraX</item>
+      <item>CameraY</item>
+      <item>CameraYaw</item>
+      <item>CameraZ</item>
+      <item>CanvasGadget</item>
+      <item>CanvasOutput</item>
+      <item>CatchImage</item>
+      <item>CatchJSON</item>
+      <item>CatchMusic</item>
+      <item>CatchSound</item>
+      <item>CatchSprite</item>
+      <item>CatchXML</item>
+      <item>ChangeCurrentElement</item>
+      <item>ChangeGamma</item>
+      <item>ChangeListIconGadgetDisplay</item>
+      <item>ChangeSysTrayIcon</item>
+      <item>CheckBoxGadget</item>
+      <item>CheckBoxGadget3D</item>
+      <item>CheckDatabaseNull</item>
+      <item>CheckFTPConnection</item>
+      <item>CheckFilename</item>
+      <item>CheckObjectVisibility</item>
+      <item>ChildXMLNode</item>
+      <item>Chr</item>
+      <item>Circle</item>
+      <item>CircularGradient</item>
+      <item>ClearBillboards</item>
+      <item>ClearClipboard</item>
+      <item>ClearConsole</item>
+      <item>ClearDebugOutput</item>
+      <item>ClearGadgetItemList</item>
+      <item>ClearGadgetItems</item>
+      <item>ClearGadgetItems3D</item>
+      <item>ClearJSONElements</item>
+      <item>ClearJSONMembers</item>
+      <item>ClearList</item>
+      <item>ClearMap</item>
+      <item>ClearScreen</item>
+      <item>ClearSpline</item>
+      <item>ClipOutput</item>
+      <item>ClipSprite</item>
+      <item>CloseConsole</item>
+      <item>CloseCryptRandom</item>
+      <item>CloseDatabase</item>
+      <item>CloseFTP</item>
+      <item>CloseFile</item>
+      <item>CloseGadgetList</item>
+      <item>CloseGadgetList3D</item>
+      <item>CloseHelp</item>
+      <item>CloseLibrary</item>
+      <item>CloseNetworkConnection</item>
+      <item>CloseNetworkServer</item>
+      <item>ClosePack</item>
+      <item>ClosePreferences</item>
+      <item>CloseProgram</item>
+      <item>CloseScreen</item>
+      <item>CloseSerialPort</item>
+      <item>CloseSubMenu</item>
+      <item>CloseWindow</item>
+      <item>CloseWindow3D</item>
+      <item>CocoaMessage</item>
+      <item>ColorRequester</item>
+      <item>ComboBoxGadget</item>
+      <item>ComboBoxGadget3D</item>
+      <item>CompareMemory</item>
+      <item>CompareMemoryString</item>
+      <item>ComposeJSON</item>
+      <item>ComposeXML</item>
+      <item>CompositorEffectParameter</item>
+      <item>CompressMemory</item>
+      <item>ComputeSpline</item>
+      <item>ComputerName</item>
+      <item>ConeTwistJoint</item>
+      <item>ConicalGradient</item>
+      <item>ConnectionID</item>
+      <item>ConsoleColor</item>
+      <item>ConsoleCursor</item>
+      <item>ConsoleError</item>
+      <item>ConsoleLocate</item>
+      <item>ConsoleTitle</item>
+      <item>ContainerGadget</item>
+      <item>ContainerGadget3D</item>
+      <item>ConvertLocalToWorldPosition</item>
+      <item>ConvertWorldToLocalPosition</item>
+      <item>CopyArray</item>
+      <item>CopyDirectory</item>
+      <item>CopyEntity</item>
+      <item>CopyFile</item>
+      <item>CopyImage</item>
+      <item>CopyLight</item>
+      <item>CopyList</item>
+      <item>CopyMap</item>
+      <item>CopyMaterial</item>
+      <item>CopyMemory</item>
+      <item>CopyMemoryString</item>
+      <item>CopyMesh</item>
+      <item>CopySprite</item>
+      <item>CopyTexture</item>
+      <item>CopyXMLNode</item>
+      <item>Cos</item>
+      <item>CosH</item>
+      <item>CountBillboards</item>
+      <item>CountCPUs</item>
+      <item>CountGadgetItems</item>
+      <item>CountGadgetItems3D</item>
+      <item>CountLibraryFunctions</item>
+      <item>CountList</item>
+      <item>CountMaterialLayers</item>
+      <item>CountProgramParameters</item>
+      <item>CountRegularExpressionGroups</item>
+      <item>CountSplinePoints</item>
+      <item>CountString</item>
+      <item>CreateBillboardGroup</item>
+      <item>CreateCamera</item>
+      <item>CreateCompositorEffect</item>
+      <item>CreateCube</item>
+      <item>CreateCubeMapTexture</item>
+      <item>CreateCylinder</item>
+      <item>CreateDialog</item>
+      <item>CreateDirectory</item>
+      <item>CreateEntity</item>
+      <item>CreateFTPDirectory</item>
+      <item>CreateFile</item>
+      <item>CreateGadgetList</item>
+      <item>CreateImage</item>
+      <item>CreateImageMenu</item>
+      <item>CreateJSON</item>
+      <item>CreateLensFlareEffect</item>
+      <item>CreateLight</item>
+      <item>CreateLine3D</item>
+      <item>CreateMail</item>
+      <item>CreateMaterial</item>
+      <item>CreateMenu</item>
+      <item>CreateMesh</item>
+      <item>CreateMutex</item>
+      <item>CreateNetworkServer</item>
+      <item>CreateNode</item>
+      <item>CreateNodeAnimation</item>
+      <item>CreateNodeAnimationKeyFrame</item>
+      <item>CreatePack</item>
+      <item>CreateParticleEmitter</item>
+      <item>CreatePlane</item>
+      <item>CreatePopupImageMenu</item>
+      <item>CreatePopupMenu</item>
+      <item>CreatePreferences</item>
+      <item>CreateRegularExpression</item>
+      <item>CreateRenderTexture</item>
+      <item>CreateRibbonEffect</item>
+      <item>CreateSemaphore</item>
+      <item>CreateSphere</item>
+      <item>CreateSpline</item>
+      <item>CreateSprite</item>
+      <item>CreateStaticGeometry</item>
+      <item>CreateStatusBar</item>
+      <item>CreateTerrain</item>
+      <item>CreateText3D</item>
+      <item>CreateTexture</item>
+      <item>CreateThread</item>
+      <item>CreateToolBar</item>
+      <item>CreateVertexAnimation</item>
+      <item>CreateVertexPoseKeyFrame</item>
+      <item>CreateVertexTrack</item>
+      <item>CreateWater</item>
+      <item>CreateXML</item>
+      <item>CreateXMLNode</item>
+      <item>CryptRandom</item>
+      <item>CryptRandomData</item>
+      <item>CustomFilterCallback</item>
+      <item>CustomGradient</item>
+      <item>DESFingerprint</item>
+      <item>DatabaseColumnIndex</item>
+      <item>DatabaseColumnName</item>
+      <item>DatabaseColumnSize</item>
+      <item>DatabaseColumnType</item>
+      <item>DatabaseColumns</item>
+      <item>DatabaseDriverDescription</item>
+      <item>DatabaseDriverName</item>
+      <item>DatabaseError</item>
+      <item>DatabaseID</item>
+      <item>DatabaseQuery</item>
+      <item>DatabaseUpdate</item>
+      <item>Date</item>
+      <item>DateGadget</item>
+      <item>Day</item>
+      <item>DayOfWeek</item>
+      <item>DayOfYear</item>
+      <item>DefaultPrinter</item>
+      <item>DefineTerrainTile</item>
+      <item>Degree</item>
+      <item>Delay</item>
+      <item>DeleteDirectory</item>
+      <item>DeleteElement</item>
+      <item>DeleteFTPDirectory</item>
+      <item>DeleteFTPFile</item>
+      <item>DeleteFile</item>
+      <item>DeleteMapElement</item>
+      <item>DeleteXMLNode</item>
+      <item>DesktopDepth</item>
+      <item>DesktopFrequency</item>
+      <item>DesktopHeight</item>
+      <item>DesktopMouseX</item>
+      <item>DesktopMouseY</item>
+      <item>DesktopName</item>
+      <item>DesktopWidth</item>
+      <item>DesktopX</item>
+      <item>DesktopY</item>
+      <item>DetachEntityObject</item>
+      <item>DetachNodeObject</item>
+      <item>DetachRibbonEffect</item>
+      <item>DialogError</item>
+      <item>DialogGadget</item>
+      <item>DialogID</item>
+      <item>DialogWindow</item>
+      <item>DirectoryEntryAttributes</item>
+      <item>DirectoryEntryDate</item>
+      <item>DirectoryEntryName</item>
+      <item>DirectoryEntrySize</item>
+      <item>DirectoryEntryType</item>
+      <item>DisableEntityBody</item>
+      <item>DisableGadget</item>
+      <item>DisableGadget3D</item>
+      <item>DisableLightShadows</item>
+      <item>DisableMaterialLighting</item>
+      <item>DisableMenuItem</item>
+      <item>DisableParticleEmitter</item>
+      <item>DisableToolBarButton</item>
+      <item>DisableWindow</item>
+      <item>DisableWindow3D</item>
+      <item>DisplayPopupMenu</item>
+      <item>DisplaySprite</item>
+      <item>DisplayTransparentSprite</item>
+      <item>DoubleClickTime</item>
+      <item>DragFiles</item>
+      <item>DragImage</item>
+      <item>DragOSFormats</item>
+      <item>DragPrivate</item>
+      <item>DragText</item>
+      <item>DrawAlphaImage</item>
+      <item>DrawImage</item>
+      <item>DrawRotatedText</item>
+      <item>DrawText</item>
+      <item>DrawingBuffer</item>
+      <item>DrawingBufferPitch</item>
+      <item>DrawingBufferPixelFormat</item>
+      <item>DrawingFont</item>
+      <item>DrawingMode</item>
+      <item>EditorGadget</item>
+      <item>EditorGadget3D</item>
+      <item>EjectAudioCD</item>
+      <item>ElapsedMilliseconds</item>
+      <item>Ellipse</item>
+      <item>EllipticalGradient</item>
+      <item>EnableGadgetDrop</item>
+      <item>EnableGraphicalConsole</item>
+      <item>EnableHingeJointAngularMotor</item>
+      <item>EnableManualEntityBoneControl</item>
+      <item>EnableWindowDrop</item>
+      <item>EnableWorldCollisions</item>
+      <item>EnableWorldPhysics</item>
+      <item>EncodeImage</item>
+      <item>Engine3DStatus</item>
+      <item>EntityAngularFactor</item>
+      <item>EntityAnimationBlendMode</item>
+      <item>EntityAnimationStatus</item>
+      <item>EntityBonePitch</item>
+      <item>EntityBoneRoll</item>
+      <item>EntityBoneX</item>
+      <item>EntityBoneY</item>
+      <item>EntityBoneYaw</item>
+      <item>EntityBoneZ</item>
+      <item>EntityBoundingBox</item>
+      <item>EntityCollide</item>
+      <item>EntityCubeMapTexture</item>
+      <item>EntityCustomParameter</item>
+      <item>EntityFixedYawAxis</item>
+      <item>EntityID</item>
+      <item>EntityLinearFactor</item>
+      <item>EntityLookAt</item>
+      <item>EntityParentNode</item>
+      <item>EntityPhysicBody</item>
+      <item>EntityPitch</item>
+      <item>EntityRenderMode</item>
+      <item>EntityRoll</item>
+      <item>EntityVelocity</item>
+      <item>EntityX</item>
+      <item>EntityY</item>
+      <item>EntityYaw</item>
+      <item>EntityZ</item>
+      <item>EnvironmentVariableName</item>
+      <item>EnvironmentVariableValue</item>
+      <item>Eof</item>
+      <item>ErrorAddress</item>
+      <item>ErrorCode</item>
+      <item>ErrorFile</item>
+      <item>ErrorLine</item>
+      <item>ErrorMessage</item>
+      <item>ErrorRegister</item>
+      <item>ErrorTargetAddress</item>
+      <item>EventClient</item>
+      <item>EventData</item>
+      <item>EventDropAction</item>
+      <item>EventDropBuffer</item>
+      <item>EventDropFiles</item>
+      <item>EventDropImage</item>
+      <item>EventDropPrivate</item>
+      <item>EventDropSize</item>
+      <item>EventDropText</item>
+      <item>EventDropType</item>
+      <item>EventDropX</item>
+      <item>EventDropY</item>
+      <item>EventGadget</item>
+      <item>EventGadget3D</item>
+      <item>EventMenu</item>
+      <item>EventServer</item>
+      <item>EventTimer</item>
+      <item>EventType</item>
+      <item>EventType3D</item>
+      <item>EventWindow</item>
+      <item>EventWindow3D</item>
+      <item>EventlParam</item>
+      <item>EventwParam</item>
+      <item>ExamineAssembly</item>
+      <item>ExamineDatabaseDrivers</item>
+      <item>ExamineDesktops</item>
+      <item>ExamineDirectory</item>
+      <item>ExamineEnvironmentVariables</item>
+      <item>ExamineFTPDirectory</item>
+      <item>ExamineIPAddresses</item>
+      <item>ExamineJSONMembers</item>
+      <item>ExamineJoystick</item>
+      <item>ExamineKeyboard</item>
+      <item>ExamineLibraryFunctions</item>
+      <item>ExamineMD5Fingerprint</item>
+      <item>ExamineMouse</item>
+      <item>ExaminePack</item>
+      <item>ExaminePreferenceGroups</item>
+      <item>ExaminePreferenceKeys</item>
+      <item>ExamineRegularExpression</item>
+      <item>ExamineSHA1Fingerprint</item>
+      <item>ExamineScreenModes</item>
+      <item>ExamineWorldCollisions</item>
+      <item>ExamineXMLAttributes</item>
+      <item>Exp</item>
+      <item>ExplorerComboGadget</item>
+      <item>ExplorerListGadget</item>
+      <item>ExplorerTreeGadget</item>
+      <item>ExportJSON</item>
+      <item>ExportJSONSize</item>
+      <item>ExportXML</item>
+      <item>ExportXMLSize</item>
+      <item>ExtractJSONArray</item>
+      <item>ExtractJSONList</item>
+      <item>ExtractJSONMap</item>
+      <item>ExtractJSONStructure</item>
+      <item>ExtractRegularExpression</item>
+      <item>ExtractXMLArray</item>
+      <item>ExtractXMLList</item>
+      <item>ExtractXMLMap</item>
+      <item>ExtractXMLStructure</item>
+      <item>FTPDirectoryEntryAttributes</item>
+      <item>FTPDirectoryEntryDate</item>
+      <item>FTPDirectoryEntryName</item>
+      <item>FTPDirectoryEntryRaw</item>
+      <item>FTPDirectoryEntrySize</item>
+      <item>FTPDirectoryEntryType</item>
+      <item>FTPProgress</item>
+      <item>FetchEntityMaterial</item>
+      <item>FetchOrientation</item>
+      <item>FileBuffersSize</item>
+      <item>FileID</item>
+      <item>FileSeek</item>
+      <item>FileSize</item>
+      <item>FillArea</item>
+      <item>FillMemory</item>
+      <item>FindMapElement</item>
+      <item>FindString</item>
+      <item>FinishCipher</item>
+      <item>FinishDatabaseQuery</item>
+      <item>FinishDirectory</item>
+      <item>FinishFTPDirectory</item>
+      <item>FinishFingerprint</item>
+      <item>FinishMesh</item>
+      <item>FirstDatabaseRow</item>
+      <item>FirstElement</item>
+      <item>FirstWorldCollisionEntity</item>
+      <item>FlipBuffers</item>
+      <item>FlushFileBuffers</item>
+      <item>Fog</item>
+      <item>FontID</item>
+      <item>FontRequester</item>
+      <item>FormatDate</item>
+      <item>FormatXML</item>
+      <item>FrameGadget</item>
+      <item>FrameGadget3D</item>
+      <item>FreeArray</item>
+      <item>FreeBillboardGroup</item>
+      <item>FreeCamera</item>
+      <item>FreeDialog</item>
+      <item>FreeEffect</item>
+      <item>FreeEntity</item>
+      <item>FreeEntityJoints</item>
+      <item>FreeFont</item>
+      <item>FreeGadget</item>
+      <item>FreeGadget3D</item>
+      <item>FreeIP</item>
+      <item>FreeImage</item>
+      <item>FreeJSON</item>
+      <item>FreeJoint</item>
+      <item>FreeLight</item>
+      <item>FreeList</item>
+      <item>FreeMail</item>
+      <item>FreeMap</item>
+      <item>FreeMaterial</item>
+      <item>FreeMemory</item>
+      <item>FreeMenu</item>
+      <item>FreeMesh</item>
+      <item>FreeMovie</item>
+      <item>FreeMusic</item>
+      <item>FreeMutex</item>
+      <item>FreeNode</item>
+      <item>FreeNodeAnimation</item>
+      <item>FreeParticleEmitter</item>
+      <item>FreeRegularExpression</item>
+      <item>FreeSemaphore</item>
+      <item>FreeSound</item>
+      <item>FreeSound3D</item>
+      <item>FreeSpline</item>
+      <item>FreeSprite</item>
+      <item>FreeStaticGeometry</item>
+      <item>FreeStatusBar</item>
+      <item>FreeStructure</item>
+      <item>FreeTerrain</item>
+      <item>FreeText3D</item>
+      <item>FreeTexture</item>
+      <item>FreeToolBar</item>
+      <item>FreeWater</item>
+      <item>FreeXML</item>
+      <item>FrontColor</item>
+      <item>GadgetHeight</item>
+      <item>GadgetHeight3D</item>
+      <item>GadgetID</item>
+      <item>GadgetID3D</item>
+      <item>GadgetItemID</item>
+      <item>GadgetToolTip</item>
+      <item>GadgetToolTip3D</item>
+      <item>GadgetType</item>
+      <item>GadgetType3D</item>
+      <item>GadgetWidth</item>
+      <item>GadgetWidth3D</item>
+      <item>GadgetX</item>
+      <item>GadgetX3D</item>
+      <item>GadgetY</item>
+      <item>GadgetY3D</item>
+      <item>GetActiveGadget</item>
+      <item>GetActiveGadget3D</item>
+      <item>GetActiveWindow</item>
+      <item>GetActiveWindow3D</item>
+      <item>GetClientIP</item>
+      <item>GetClientPort</item>
+      <item>GetClipboardImage</item>
+      <item>GetClipboardText</item>
+      <item>GetCurrentDirectory</item>
+      <item>GetDatabaseBlob</item>
+      <item>GetDatabaseDouble</item>
+      <item>GetDatabaseFloat</item>
+      <item>GetDatabaseLong</item>
+      <item>GetDatabaseQuad</item>
+      <item>GetDatabaseString</item>
+      <item>GetEntityAnimationLength</item>
+      <item>GetEntityAnimationTime</item>
+      <item>GetEntityAnimationWeight</item>
+      <item>GetEntityAttribute</item>
+      <item>GetEntityCollisionGroup</item>
+      <item>GetEntityCollisionMask</item>
+      <item>GetEnvironmentVariable</item>
+      <item>GetExtensionPart</item>
+      <item>GetFTPDirectory</item>
+      <item>GetFileAttributes</item>
+      <item>GetFileDate</item>
+      <item>GetFilePart</item>
+      <item>GetFunction</item>
+      <item>GetFunctionEntry</item>
+      <item>GetGadgetAttribute</item>
+      <item>GetGadgetAttribute3D</item>
+      <item>GetGadgetColor</item>
+      <item>GetGadgetData</item>
+      <item>GetGadgetData3D</item>
+      <item>GetGadgetFont</item>
+      <item>GetGadgetItemAttribute</item>
+      <item>GetGadgetItemColor</item>
+      <item>GetGadgetItemData</item>
+      <item>GetGadgetItemData3D</item>
+      <item>GetGadgetItemState</item>
+      <item>GetGadgetItemState3D</item>
+      <item>GetGadgetItemText</item>
+      <item>GetGadgetItemText3D</item>
+      <item>GetGadgetState</item>
+      <item>GetGadgetState3D</item>
+      <item>GetGadgetText</item>
+      <item>GetGadgetText3D</item>
+      <item>GetHTTPHeader</item>
+      <item>GetHomeDirectory</item>
+      <item>GetJSONBoolean</item>
+      <item>GetJSONDouble</item>
+      <item>GetJSONElement</item>
+      <item>GetJSONFloat</item>
+      <item>GetJSONInteger</item>
+      <item>GetJSONMember</item>
+      <item>GetJSONQuad</item>
+      <item>GetJSONString</item>
+      <item>GetJointAttribute</item>
+      <item>GetLightColor</item>
+      <item>GetMailAttribute</item>
+      <item>GetMailBody</item>
+      <item>GetMaterialAttribute</item>
+      <item>GetMaterialColor</item>
+      <item>GetMenuItemState</item>
+      <item>GetMenuItemText</item>
+      <item>GetMenuTitleText</item>
+      <item>GetMeshData</item>
+      <item>GetMusicPosition</item>
+      <item>GetMusicRow</item>
+      <item>GetNodeAnimationKeyFrameTime</item>
+      <item>GetNodeAnimationLength</item>
+      <item>GetNodeAnimationTime</item>
+      <item>GetNodeAnimationWeight</item>
+      <item>GetOriginX</item>
+      <item>GetOriginY</item>
+      <item>GetPathPart</item>
+      <item>GetRuntimeDouble</item>
+      <item>GetRuntimeInteger</item>
+      <item>GetRuntimeString</item>
+      <item>GetScriptMaterial</item>
+      <item>GetScriptParticleEmitter</item>
+      <item>GetScriptTexture</item>
+      <item>GetSerialPortStatus</item>
+      <item>GetSoundFrequency</item>
+      <item>GetSoundPosition</item>
+      <item>GetTemporaryDirectory</item>
+      <item>GetTerrainTileHeightAtPoint</item>
+      <item>GetTerrainTileLayerBlend</item>
+      <item>GetToolBarButtonState</item>
+      <item>GetURLPart</item>
+      <item>GetW</item>
+      <item>GetWindowColor</item>
+      <item>GetWindowData</item>
+      <item>GetWindowState</item>
+      <item>GetWindowTitle</item>
+      <item>GetWindowTitle3D</item>
+      <item>GetX</item>
+      <item>GetXMLAttribute</item>
+      <item>GetXMLEncoding</item>
+      <item>GetXMLNodeName</item>
+      <item>GetXMLNodeOffset</item>
+      <item>GetXMLNodeText</item>
+      <item>GetXMLStandalone</item>
+      <item>GetY</item>
+      <item>GetZ</item>
+      <item>GrabDrawingImage</item>
+      <item>GrabImage</item>
+      <item>GrabSprite</item>
+      <item>GradientColor</item>
+      <item>Green</item>
+      <item>Hex</item>
+      <item>HideBillboardGroup</item>
+      <item>HideEffect</item>
+      <item>HideEntity</item>
+      <item>HideGadget</item>
+      <item>HideGadget3D</item>
+      <item>HideLight</item>
+      <item>HideMenu</item>
+      <item>HideParticleEmitter</item>
+      <item>HideWindow</item>
+      <item>HideWindow3D</item>
+      <item>HingeJoint</item>
+      <item>HingeJointMotorTarget</item>
+      <item>HostName</item>
+      <item>Hour</item>
+      <item>HyperLinkGadget</item>
+      <item>IPAddressField</item>
+      <item>IPAddressGadget</item>
+      <item>IPString</item>
+      <item>ImageDepth</item>
+      <item>ImageFormat</item>
+      <item>ImageGadget</item>
+      <item>ImageGadget3D</item>
+      <item>ImageHeight</item>
+      <item>ImageID</item>
+      <item>ImageOutput</item>
+      <item>ImageWidth</item>
+      <item>Infinity</item>
+      <item>InitAudioCD</item>
+      <item>InitEngine3D</item>
+      <item>InitJoystick</item>
+      <item>InitKeyboard</item>
+      <item>InitMouse</item>
+      <item>InitMovie</item>
+      <item>InitNetwork</item>
+      <item>InitScintilla</item>
+      <item>InitSound</item>
+      <item>InitSprite</item>
+      <item>Inkey</item>
+      <item>Input</item>
+      <item>InputEvent3D</item>
+      <item>InputRequester</item>
+      <item>InsertElement</item>
+      <item>InsertJSONArray</item>
+      <item>InsertJSONList</item>
+      <item>InsertJSONMap</item>
+      <item>InsertJSONStructure</item>
+      <item>InsertString</item>
+      <item>InsertXMLArray</item>
+      <item>InsertXMLList</item>
+      <item>InsertXMLMap</item>
+      <item>InsertXMLStructure</item>
+      <item>InstructionAddress</item>
+      <item>InstructionString</item>
+      <item>Int</item>
+      <item>IntQ</item>
+      <item>IsBillboardGroup</item>
+      <item>IsCamera</item>
+      <item>IsDatabase</item>
+      <item>IsDialog</item>
+      <item>IsDirectory</item>
+      <item>IsEffect</item>
+      <item>IsEntity</item>
+      <item>IsFile</item>
+      <item>IsFingerprint</item>
+      <item>IsFont</item>
+      <item>IsFtp</item>
+      <item>IsGadget</item>
+      <item>IsGadget3D</item>
+      <item>IsImage</item>
+      <item>IsInfinity</item>
+      <item>IsJSON</item>
+      <item>IsLibrary</item>
+      <item>IsLight</item>
+      <item>IsMail</item>
+      <item>IsMaterial</item>
+      <item>IsMenu</item>
+      <item>IsMesh</item>
+      <item>IsMovie</item>
+      <item>IsMusic</item>
+      <item>IsNaN</item>
+      <item>IsNode</item>
+      <item>IsParticleEmitter</item>
+      <item>IsProgram</item>
+      <item>IsRegularExpression</item>
+      <item>IsRuntime</item>
+      <item>IsScreenActive</item>
+      <item>IsSerialPort</item>
+      <item>IsSound</item>
+      <item>IsSound3D</item>
+      <item>IsSprite</item>
+      <item>IsStaticGeometry</item>
+      <item>IsStatusBar</item>
+      <item>IsSysTrayIcon</item>
+      <item>IsText3D</item>
+      <item>IsTexture</item>
+      <item>IsThread</item>
+      <item>IsToolBar</item>
+      <item>IsWindow</item>
+      <item>IsWindow3D</item>
+      <item>IsXML</item>
+      <item>JSONArraySize</item>
+      <item>JSONErrorLine</item>
+      <item>JSONErrorMessage</item>
+      <item>JSONErrorPosition</item>
+      <item>JSONMemberKey</item>
+      <item>JSONMemberValue</item>
+      <item>JSONObjectSize</item>
+      <item>JSONType</item>
+      <item>JSONValue</item>
+      <item>JoystickAxisX</item>
+      <item>JoystickAxisY</item>
+      <item>JoystickAxisZ</item>
+      <item>JoystickButton</item>
+      <item>JoystickName</item>
+      <item>KeyboardInkey</item>
+      <item>KeyboardMode</item>
+      <item>KeyboardPushed</item>
+      <item>KeyboardReleased</item>
+      <item>KillProgram</item>
+      <item>KillThread</item>
+      <item>LCase</item>
+      <item>LSet</item>
+      <item>LTrim</item>
+      <item>LastElement</item>
+      <item>Left</item>
+      <item>Len</item>
+      <item>LensFlareEffectColor</item>
+      <item>LibraryFunctionAddress</item>
+      <item>LibraryFunctionName</item>
+      <item>LibraryID</item>
+      <item>LightAttenuation</item>
+      <item>LightDirection</item>
+      <item>LightDirectionX</item>
+      <item>LightDirectionY</item>
+      <item>LightDirectionZ</item>
+      <item>LightID</item>
+      <item>LightLookAt</item>
+      <item>LightPitch</item>
+      <item>LightRoll</item>
+      <item>LightX</item>
+      <item>LightY</item>
+      <item>LightYaw</item>
+      <item>LightZ</item>
+      <item>Line</item>
+      <item>LineXY</item>
+      <item>LinearGradient</item>
+      <item>ListIconGadget</item>
+      <item>ListIndex</item>
+      <item>ListSize</item>
+      <item>ListViewGadget</item>
+      <item>ListViewGadget3D</item>
+      <item>LoadFont</item>
+      <item>LoadImage</item>
+      <item>LoadJSON</item>
+      <item>LoadMesh</item>
+      <item>LoadMovie</item>
+      <item>LoadMusic</item>
+      <item>LoadSound</item>
+      <item>LoadSound3D</item>
+      <item>LoadSprite</item>
+      <item>LoadTexture</item>
+      <item>LoadWorld</item>
+      <item>LoadXML</item>
+      <item>Loc</item>
+      <item>LockMutex</item>
+      <item>Lof</item>
+      <item>Log</item>
+      <item>Log10</item>
+      <item>MD5FileFingerprint</item>
+      <item>MD5Fingerprint</item>
+      <item>MDIGadget</item>
+      <item>MailProgress</item>
+      <item>MainXMLNode</item>
+      <item>MakeIPAddress</item>
+      <item>MapKey</item>
+      <item>MapSize</item>
+      <item>MatchRegularExpression</item>
+      <item>MaterialBlendingMode</item>
+      <item>MaterialCullingMode</item>
+      <item>MaterialFilteringMode</item>
+      <item>MaterialFog</item>
+      <item>MaterialID</item>
+      <item>MaterialShadingMode</item>
+      <item>MaterialShininess</item>
+      <item>MemorySize</item>
+      <item>MemoryStatus</item>
+      <item>MemoryStringLength</item>
+      <item>MenuBar</item>
+      <item>MenuHeight</item>
+      <item>MenuID</item>
+      <item>MenuItem</item>
+      <item>MenuTitle</item>
+      <item>MergeLists</item>
+      <item>MeshFace</item>
+      <item>MeshID</item>
+      <item>MeshIndex</item>
+      <item>MeshIndexCount</item>
+      <item>MeshPoseCount</item>
+      <item>MeshPoseName</item>
+      <item>MeshRadius</item>
+      <item>MeshVertexColor</item>
+      <item>MeshVertexCount</item>
+      <item>MeshVertexNormal</item>
+      <item>MeshVertexPosition</item>
+      <item>MeshVertexTangent</item>
+      <item>MeshVertexTextureCoordinate</item>
+      <item>MessageRequester</item>
+      <item>Mid</item>
+      <item>Minute</item>
+      <item>Mod</item>
+      <item>Month</item>
+      <item>MouseButton</item>
+      <item>MouseDeltaX</item>
+      <item>MouseDeltaY</item>
+      <item>MouseLocate</item>
+      <item>MousePick</item>
+      <item>MouseRayCast</item>
+      <item>MouseWheel</item>
+      <item>MouseX</item>
+      <item>MouseY</item>
+      <item>MoveBillboard</item>
+      <item>MoveBillboardGroup</item>
+      <item>MoveCamera</item>
+      <item>MoveElement</item>
+      <item>MoveEntity</item>
+      <item>MoveEntityBone</item>
+      <item>MoveLight</item>
+      <item>MoveMemory</item>
+      <item>MoveNode</item>
+      <item>MoveParticleEmitter</item>
+      <item>MoveText3D</item>
+      <item>MoveXMLNode</item>
+      <item>MovieAudio</item>
+      <item>MovieHeight</item>
+      <item>MovieInfo</item>
+      <item>MovieLength</item>
+      <item>MovieSeek</item>
+      <item>MovieStatus</item>
+      <item>MovieWidth</item>
+      <item>MusicVolume</item>
+      <item>NaN</item>
+      <item>NetworkClientEvent</item>
+      <item>NetworkServerEvent</item>
+      <item>NewPrinterPage</item>
+      <item>NextDatabaseDriver</item>
+      <item>NextDatabaseRow</item>
+      <item>NextDirectoryEntry</item>
+      <item>NextElement</item>
+      <item>NextEnvironmentVariable</item>
+      <item>NextFTPDirectoryEntry</item>
+      <item>NextFingerprint</item>
+      <item>NextIPAddress</item>
+      <item>NextInstruction</item>
+      <item>NextJSONMember</item>
+      <item>NextLibraryFunction</item>
+      <item>NextMapElement</item>
+      <item>NextPackEntry</item>
+      <item>NextPreferenceGroup</item>
+      <item>NextPreferenceKey</item>
+      <item>NextRegularExpressionMatch</item>
+      <item>NextScreenMode</item>
+      <item>NextSelectedFilename</item>
+      <item>NextWorldCollision</item>
+      <item>NextXMLAttribute</item>
+      <item>NextXMLNode</item>
+      <item>NodeAnimationKeyFramePitch</item>
+      <item>NodeAnimationKeyFrameRoll</item>
+      <item>NodeAnimationKeyFrameX</item>
+      <item>NodeAnimationKeyFrameY</item>
+      <item>NodeAnimationKeyFrameYaw</item>
+      <item>NodeAnimationKeyFrameZ</item>
+      <item>NodeAnimationStatus</item>
+      <item>NodeFixedYawAxis</item>
+      <item>NodeID</item>
+      <item>NodeLookAt</item>
+      <item>NodePitch</item>
+      <item>NodeRoll</item>
+      <item>NodeX</item>
+      <item>NodeY</item>
+      <item>NodeYaw</item>
+      <item>NodeZ</item>
+      <item>NormalX</item>
+      <item>NormalY</item>
+      <item>NormalZ</item>
+      <item>NormalizeMesh</item>
+      <item>OSVersion</item>
+      <item>OnErrorCall</item>
+      <item>OnErrorDefault</item>
+      <item>OnErrorExit</item>
+      <item>OnErrorGoto</item>
+      <item>OpenConsole</item>
+      <item>OpenCryptRandom</item>
+      <item>OpenDatabase</item>
+      <item>OpenDatabaseRequester</item>
+      <item>OpenFTP</item>
+      <item>OpenFile</item>
+      <item>OpenFileRequester</item>
+      <item>OpenGLGadget</item>
+      <item>OpenGadgetList</item>
+      <item>OpenGadgetList3D</item>
+      <item>OpenHelp</item>
+      <item>OpenLibrary</item>
+      <item>OpenNetworkConnection</item>
+      <item>OpenPack</item>
+      <item>OpenPreferences</item>
+      <item>OpenScreen</item>
+      <item>OpenSerialPort</item>
+      <item>OpenSubMenu</item>
+      <item>OpenWindow</item>
+      <item>OpenWindow3D</item>
+      <item>OpenWindowedScreen</item>
+      <item>OpenXMLDialog</item>
+      <item>OptionGadget</item>
+      <item>OptionGadget3D</item>
+      <item>OutputDepth</item>
+      <item>OutputHeight</item>
+      <item>OutputWidth</item>
+      <item>PackEntryName</item>
+      <item>PackEntrySize</item>
+      <item>PackEntryType</item>
+      <item>PanelGadget</item>
+      <item>PanelGadget3D</item>
+      <item>ParentXMLNode</item>
+      <item>Parse3DScripts</item>
+      <item>ParseDate</item>
+      <item>ParseJSON</item>
+      <item>ParseXML</item>
+      <item>ParticleColorFader</item>
+      <item>ParticleColorRange</item>
+      <item>ParticleEmissionRate</item>
+      <item>ParticleEmitterDirection</item>
+      <item>ParticleEmitterID</item>
+      <item>ParticleEmitterX</item>
+      <item>ParticleEmitterY</item>
+      <item>ParticleEmitterZ</item>
+      <item>ParticleMaterial</item>
+      <item>ParticleSize</item>
+      <item>ParticleSpeedFactor</item>
+      <item>ParticleTimeToLive</item>
+      <item>ParticleVelocity</item>
+      <item>PathRequester</item>
+      <item>PauseAudioCD</item>
+      <item>PauseMovie</item>
+      <item>PauseSound</item>
+      <item>PauseThread</item>
+      <item>PeekA</item>
+      <item>PeekB</item>
+      <item>PeekC</item>
+      <item>PeekD</item>
+      <item>PeekF</item>
+      <item>PeekI</item>
+      <item>PeekL</item>
+      <item>PeekQ</item>
+      <item>PeekS</item>
+      <item>PeekU</item>
+      <item>PeekW</item>
+      <item>PickX</item>
+      <item>PickY</item>
+      <item>PickZ</item>
+      <item>Pitch</item>
+      <item>PlayAudioCD</item>
+      <item>PlayMovie</item>
+      <item>PlayMusic</item>
+      <item>PlaySound</item>
+      <item>PlaySound3D</item>
+      <item>Plot</item>
+      <item>Point</item>
+      <item>PointJoint</item>
+      <item>PointPick</item>
+      <item>PokeA</item>
+      <item>PokeB</item>
+      <item>PokeC</item>
+      <item>PokeD</item>
+      <item>PokeF</item>
+      <item>PokeI</item>
+      <item>PokeL</item>
+      <item>PokeQ</item>
+      <item>PokeS</item>
+      <item>PokeU</item>
+      <item>PokeW</item>
+      <item>PopListPosition</item>
+      <item>PopMapPosition</item>
+      <item>PostEvent</item>
+      <item>Pow</item>
+      <item>PreferenceComment</item>
+      <item>PreferenceGroup</item>
+      <item>PreferenceGroupName</item>
+      <item>PreferenceKeyName</item>
+      <item>PreferenceKeyValue</item>
+      <item>PreviousDatabaseRow</item>
+      <item>PreviousElement</item>
+      <item>PreviousXMLNode</item>
+      <item>Print</item>
+      <item>PrintN</item>
+      <item>PrintRequester</item>
+      <item>PrinterOutput</item>
+      <item>PrinterPageHeight</item>
+      <item>PrinterPageWidth</item>
+      <item>ProgramExitCode</item>
+      <item>ProgramFilename</item>
+      <item>ProgramID</item>
+      <item>ProgramParameter</item>
+      <item>ProgramRunning</item>
+      <item>ProgressBarGadget</item>
+      <item>ProgressBarGadget3D</item>
+      <item>PurifierGranularity</item>
+      <item>PushListPosition</item>
+      <item>PushMapPosition</item>
+      <item>RGB</item>
+      <item>RGBA</item>
+      <item>RSet</item>
+      <item>RTrim</item>
+      <item>Radian</item>
+      <item>RaiseError</item>
+      <item>Random</item>
+      <item>RandomData</item>
+      <item>RandomSeed</item>
+      <item>RandomizeArray</item>
+      <item>RandomizeList</item>
+      <item>RawKey</item>
+      <item>RayCast</item>
+      <item>RayCollide</item>
+      <item>RayPick</item>
+      <item>ReAllocateMemory</item>
+      <item>ReadAsciiCharacter</item>
+      <item>ReadByte</item>
+      <item>ReadCharacter</item>
+      <item>ReadConsoleData</item>
+      <item>ReadData</item>
+      <item>ReadDouble</item>
+      <item>ReadFile</item>
+      <item>ReadFloat</item>
+      <item>ReadInteger</item>
+      <item>ReadLong</item>
+      <item>ReadPreferenceDouble</item>
+      <item>ReadPreferenceFloat</item>
+      <item>ReadPreferenceInteger</item>
+      <item>ReadPreferenceLong</item>
+      <item>ReadPreferenceQuad</item>
+      <item>ReadPreferenceString</item>
+      <item>ReadProgramData</item>
+      <item>ReadProgramError</item>
+      <item>ReadProgramString</item>
+      <item>ReadQuad</item>
+      <item>ReadSerialPortData</item>
+      <item>ReadString</item>
+      <item>ReadStringFormat</item>
+      <item>ReadUnicodeCharacter</item>
+      <item>ReadWord</item>
+      <item>ReceiveFTPFile</item>
+      <item>ReceiveHTTPFile</item>
+      <item>ReceiveNetworkData</item>
+      <item>Red</item>
+      <item>RegularExpressionError</item>
+      <item>RegularExpressionGroup</item>
+      <item>RegularExpressionGroupLength</item>
+      <item>RegularExpressionGroupPosition</item>
+      <item>RegularExpressionMatchLength</item>
+      <item>RegularExpressionMatchPosition</item>
+      <item>RegularExpressionMatchString</item>
+      <item>RegularExpressionNamedGroup</item>
+      <item>RegularExpressionNamedGroupLength</item>
+      <item>RegularExpressionNamedGroupPosition</item>
+      <item>ReleaseMouse</item>
+      <item>ReloadMaterial</item>
+      <item>RemoveBillboard</item>
+      <item>RemoveEnvironmentVariable</item>
+      <item>RemoveGadgetColumn</item>
+      <item>RemoveGadgetItem</item>
+      <item>RemoveGadgetItem3D</item>
+      <item>RemoveJSONElement</item>
+      <item>RemoveJSONMember</item>
+      <item>RemoveKeyboardShortcut</item>
+      <item>RemoveMailRecipient</item>
+      <item>RemoveMaterialLayer</item>
+      <item>RemovePackFile</item>
+      <item>RemovePreferenceGroup</item>
+      <item>RemovePreferenceKey</item>
+      <item>RemoveString</item>
+      <item>RemoveSysTrayIcon</item>
+      <item>RemoveWindowTimer</item>
+      <item>RemoveXMLAttribute</item>
+      <item>RenameFTPFile</item>
+      <item>RenameFile</item>
+      <item>RenderWorld</item>
+      <item>ReplaceRegularExpression</item>
+      <item>ReplaceString</item>
+      <item>ResetGradientColors</item>
+      <item>ResetList</item>
+      <item>ResetMap</item>
+      <item>ResetMaterial</item>
+      <item>ResetProfiler</item>
+      <item>ResizeBillboard</item>
+      <item>ResizeGadget</item>
+      <item>ResizeGadget3D</item>
+      <item>ResizeImage</item>
+      <item>ResizeJSONElements</item>
+      <item>ResizeMovie</item>
+      <item>ResizeParticleEmitter</item>
+      <item>ResizeWindow</item>
+      <item>ResizeWindow3D</item>
+      <item>ResolveXMLAttributeName</item>
+      <item>ResolveXMLNodeName</item>
+      <item>ResumeAudioCD</item>
+      <item>ResumeMovie</item>
+      <item>ResumeSound</item>
+      <item>ResumeThread</item>
+      <item>ReverseString</item>
+      <item>RibbonEffectColor</item>
+      <item>RibbonEffectWidth</item>
+      <item>Right</item>
+      <item>Roll</item>
+      <item>RootXMLNode</item>
+      <item>RotateBillboardGroup</item>
+      <item>RotateCamera</item>
+      <item>RotateEntity</item>
+      <item>RotateEntityBone</item>
+      <item>RotateLight</item>
+      <item>RotateMaterial</item>
+      <item>RotateNode</item>
+      <item>RotateSprite</item>
+      <item>Round</item>
+      <item>RoundBox</item>
+      <item>RunProgram</item>
+      <item>SHA1FileFingerprint</item>
+      <item>SHA1Fingerprint</item>
+      <item>SaveDebugOutput</item>
+      <item>SaveFileRequester</item>
+      <item>SaveImage</item>
+      <item>SaveJSON</item>
+      <item>SaveMesh</item>
+      <item>SaveRenderTexture</item>
+      <item>SaveSprite</item>
+      <item>SaveTerrain</item>
+      <item>SaveXML</item>
+      <item>ScaleEntity</item>
+      <item>ScaleMaterial</item>
+      <item>ScaleNode</item>
+      <item>ScaleText3D</item>
+      <item>ScintillaGadget</item>
+      <item>ScintillaSendMessage</item>
+      <item>ScreenDepth</item>
+      <item>ScreenHeight</item>
+      <item>ScreenID</item>
+      <item>ScreenModeDepth</item>
+      <item>ScreenModeHeight</item>
+      <item>ScreenModeRefreshRate</item>
+      <item>ScreenModeWidth</item>
+      <item>ScreenOutput</item>
+      <item>ScreenWidth</item>
+      <item>ScrollAreaGadget</item>
+      <item>ScrollAreaGadget3D</item>
+      <item>ScrollBarGadget</item>
+      <item>ScrollBarGadget3D</item>
+      <item>ScrollMaterial</item>
+      <item>Second</item>
+      <item>SecondWorldCollisionEntity</item>
+      <item>SelectElement</item>
+      <item>SelectedFilePattern</item>
+      <item>SelectedFontColor</item>
+      <item>SelectedFontName</item>
+      <item>SelectedFontSize</item>
+      <item>SelectedFontStyle</item>
+      <item>SendFTPFile</item>
+      <item>SendMail</item>
+      <item>SendNetworkData</item>
+      <item>SendNetworkString</item>
+      <item>SerialPortError</item>
+      <item>SerialPortID</item>
+      <item>SerialPortTimeouts</item>
+      <item>ServerID</item>
+      <item>SetActiveGadget</item>
+      <item>SetActiveGadget3D</item>
+      <item>SetActiveWindow</item>
+      <item>SetActiveWindow3D</item>
+      <item>SetClipboardImage</item>
+      <item>SetClipboardText</item>
+      <item>SetCurrentDirectory</item>
+      <item>SetDatabaseBlob</item>
+      <item>SetDragCallback</item>
+      <item>SetDropCallback</item>
+      <item>SetEntityAnimationLength</item>
+      <item>SetEntityAnimationTime</item>
+      <item>SetEntityAnimationWeight</item>
+      <item>SetEntityAttribute</item>
+      <item>SetEntityCollisionFilter</item>
+      <item>SetEntityMaterial</item>
+      <item>SetEnvironmentVariable</item>
+      <item>SetFTPDirectory</item>
+      <item>SetFileAttributes</item>
+      <item>SetFileDate</item>
+      <item>SetFrameRate</item>
+      <item>SetGUITheme3D</item>
+      <item>SetGadgetAttribute</item>
+      <item>SetGadgetAttribute3D</item>
+      <item>SetGadgetColor</item>
+      <item>SetGadgetData</item>
+      <item>SetGadgetData3D</item>
+      <item>SetGadgetFont</item>
+      <item>SetGadgetItemAttribute</item>
+      <item>SetGadgetItemColor</item>
+      <item>SetGadgetItemData</item>
+      <item>SetGadgetItemData3D</item>
+      <item>SetGadgetItemImage</item>
+      <item>SetGadgetItemState</item>
+      <item>SetGadgetItemState3D</item>
+      <item>SetGadgetItemText</item>
+      <item>SetGadgetItemText3D</item>
+      <item>SetGadgetState</item>
+      <item>SetGadgetState3D</item>
+      <item>SetGadgetText</item>
+      <item>SetGadgetText3D</item>
+      <item>SetJSONArray</item>
+      <item>SetJSONBoolean</item>
+      <item>SetJSONDouble</item>
+      <item>SetJSONFloat</item>
+      <item>SetJSONInteger</item>
+      <item>SetJSONNull</item>
+      <item>SetJSONObject</item>
+      <item>SetJSONQuad</item>
+      <item>SetJSONString</item>
+      <item>SetJointAttribute</item>
+      <item>SetLightColor</item>
+      <item>SetMailAttribute</item>
+      <item>SetMailBody</item>
+      <item>SetMaterialAttribute</item>
+      <item>SetMaterialColor</item>
+      <item>SetMenuItemState</item>
+      <item>SetMenuItemText</item>
+      <item>SetMenuTitleText</item>
+      <item>SetMeshData</item>
+      <item>SetMeshMaterial</item>
+      <item>SetMusicPosition</item>
+      <item>SetNodeAnimationKeyFramePosition</item>
+      <item>SetNodeAnimationKeyFrameRotation</item>
+      <item>SetNodeAnimationKeyFrameScale</item>
+      <item>SetNodeAnimationLength</item>
+      <item>SetNodeAnimationTime</item>
+      <item>SetNodeAnimationWeight</item>
+      <item>SetOrientation</item>
+      <item>SetOrigin</item>
+      <item>SetRenderQueue</item>
+      <item>SetRuntimeDouble</item>
+      <item>SetRuntimeInteger</item>
+      <item>SetRuntimeString</item>
+      <item>SetSerialPortStatus</item>
+      <item>SetSoundFrequency</item>
+      <item>SetSoundPosition</item>
+      <item>SetTerrainTileHeightAtPoint</item>
+      <item>SetTerrainTileLayerBlend</item>
+      <item>SetToolBarButtonState</item>
+      <item>SetURLPart</item>
+      <item>SetWindowCallback</item>
+      <item>SetWindowColor</item>
+      <item>SetWindowData</item>
+      <item>SetWindowState</item>
+      <item>SetWindowTitle</item>
+      <item>SetWindowTitle3D</item>
+      <item>SetXMLAttribute</item>
+      <item>SetXMLEncoding</item>
+      <item>SetXMLNodeName</item>
+      <item>SetXMLNodeOffset</item>
+      <item>SetXMLNodeText</item>
+      <item>SetXMLStandalone</item>
+      <item>SetupTerrains</item>
+      <item>ShortcutGadget</item>
+      <item>ShowAssemblyViewer</item>
+      <item>ShowCallstack</item>
+      <item>ShowDebugOutput</item>
+      <item>ShowGUI</item>
+      <item>ShowLibraryViewer</item>
+      <item>ShowMemoryViewer</item>
+      <item>ShowProfiler</item>
+      <item>ShowVariableViewer</item>
+      <item>ShowWatchlist</item>
+      <item>Sign</item>
+      <item>SignalSemaphore</item>
+      <item>Sin</item>
+      <item>SinH</item>
+      <item>SkyBox</item>
+      <item>SkyDome</item>
+      <item>SliderJoint</item>
+      <item>SmartWindowRefresh</item>
+      <item>SortArray</item>
+      <item>SortList</item>
+      <item>SortStructuredArray</item>
+      <item>SortStructuredList</item>
+      <item>SoundCone3D</item>
+      <item>SoundID3D</item>
+      <item>SoundLength</item>
+      <item>SoundListenerLocate</item>
+      <item>SoundPan</item>
+      <item>SoundRange3D</item>
+      <item>SoundStatus</item>
+      <item>SoundVolume</item>
+      <item>SoundVolume3D</item>
+      <item>Space</item>
+      <item>SpinGadget</item>
+      <item>SpinGadget3D</item>
+      <item>SplinePointX</item>
+      <item>SplinePointY</item>
+      <item>SplinePointZ</item>
+      <item>SplineX</item>
+      <item>SplineY</item>
+      <item>SplineZ</item>
+      <item>SplitList</item>
+      <item>SplitterGadget</item>
+      <item>SpotLightRange</item>
+      <item>SpriteBlendingMode</item>
+      <item>SpriteCollision</item>
+      <item>SpriteDepth</item>
+      <item>SpriteHeight</item>
+      <item>SpriteID</item>
+      <item>SpriteOutput</item>
+      <item>SpritePixelCollision</item>
+      <item>SpriteQuality</item>
+      <item>SpriteWidth</item>
+      <item>Sqr</item>
+      <item>StartAESCipher</item>
+      <item>StartDrawing</item>
+      <item>StartEntityAnimation</item>
+      <item>StartNodeAnimation</item>
+      <item>StartPrinting</item>
+      <item>StartProfiler</item>
+      <item>StatusBarHeight</item>
+      <item>StatusBarID</item>
+      <item>StatusBarImage</item>
+      <item>StatusBarProgress</item>
+      <item>StatusBarText</item>
+      <item>StickyWindow</item>
+      <item>StopAudioCD</item>
+      <item>StopDrawing</item>
+      <item>StopEntityAnimation</item>
+      <item>StopMovie</item>
+      <item>StopMusic</item>
+      <item>StopNodeAnimation</item>
+      <item>StopPrinting</item>
+      <item>StopProfiler</item>
+      <item>StopSound</item>
+      <item>StopSound3D</item>
+      <item>Str</item>
+      <item>StrD</item>
+      <item>StrF</item>
+      <item>StrU</item>
+      <item>StringByteLength</item>
+      <item>StringField</item>
+      <item>StringGadget</item>
+      <item>StringGadget3D</item>
+      <item>SubMeshCount</item>
+      <item>Sun</item>
+      <item>SwapElements</item>
+      <item>SwitchCamera</item>
+      <item>SysTrayIconToolTip</item>
+      <item>Tan</item>
+      <item>TanH</item>
+      <item>TerrainHeight</item>
+      <item>TerrainLocate</item>
+      <item>TerrainMousePick</item>
+      <item>TerrainPhysicBody</item>
+      <item>TerrainRenderMode</item>
+      <item>TerrainTileHeightAtPosition</item>
+      <item>TerrainTileLayerMapSize</item>
+      <item>TerrainTilePointX</item>
+      <item>TerrainTilePointY</item>
+      <item>TerrainTileSize</item>
+      <item>Text3DAlignment</item>
+      <item>Text3DCaption</item>
+      <item>Text3DColor</item>
+      <item>Text3DID</item>
+      <item>TextGadget</item>
+      <item>TextGadget3D</item>
+      <item>TextHeight</item>
+      <item>TextWidth</item>
+      <item>TextureHeight</item>
+      <item>TextureID</item>
+      <item>TextureOutput</item>
+      <item>TextureWidth</item>
+      <item>ThreadID</item>
+      <item>ThreadPriority</item>
+      <item>ToolBarHeight</item>
+      <item>ToolBarID</item>
+      <item>ToolBarImageButton</item>
+      <item>ToolBarSeparator</item>
+      <item>ToolBarStandardButton</item>
+      <item>ToolBarToolTip</item>
+      <item>TrackBarGadget</item>
+      <item>TransformMesh</item>
+      <item>TransformSprite</item>
+      <item>TransparentSpriteColor</item>
+      <item>TreeGadget</item>
+      <item>Trim</item>
+      <item>TruncateFile</item>
+      <item>TryLockMutex</item>
+      <item>TrySemaphore</item>
+      <item>UCase</item>
+      <item>URLDecoder</item>
+      <item>URLEncoder</item>
+      <item>UnbindEvent</item>
+      <item>UnbindGadgetEvent</item>
+      <item>UnbindMenuEvent</item>
+      <item>UnclipOutput</item>
+      <item>UncompressMemory</item>
+      <item>UncompressPackFile</item>
+      <item>UncompressPackMemory</item>
+      <item>UnlockMutex</item>
+      <item>UpdateEntityAnimation</item>
+      <item>UpdateMesh</item>
+      <item>UpdateMeshBoundingBox</item>
+      <item>UpdateRenderTexture</item>
+      <item>UpdateSplinePoint</item>
+      <item>UpdateTerrain</item>
+      <item>UpdateTerrainTileLayerBlend</item>
+      <item>UpdateVertexPoseReference</item>
+      <item>UseAudioCD</item>
+      <item>UseBriefLZPacker</item>
+      <item>UseFLACSoundDecoder</item>
+      <item>UseGadgetList</item>
+      <item>UseJCALG1Packer</item>
+      <item>UseJPEG2000ImageDecoder</item>
+      <item>UseJPEG2000ImageEncoder</item>
+      <item>UseJPEGImageDecoder</item>
+      <item>UseJPEGImageEncoder</item>
+      <item>UseLZMAPacker</item>
+      <item>UseODBCDatabase</item>
+      <item>UseOGGSoundDecoder</item>
+      <item>UsePNGImageDecoder</item>
+      <item>UsePNGImageEncoder</item>
+      <item>UsePostgreSQLDatabase</item>
+      <item>UseSQLiteDatabase</item>
+      <item>UseTGAImageDecoder</item>
+      <item>UseTIFFImageDecoder</item>
+      <item>UseZipPacker</item>
+      <item>UserName</item>
+      <item>Val</item>
+      <item>ValD</item>
+      <item>ValF</item>
+      <item>VertexPoseReferenceCount</item>
+      <item>WaitProgram</item>
+      <item>WaitSemaphore</item>
+      <item>WaitThread</item>
+      <item>WaitWindowEvent</item>
+      <item>WaterColor</item>
+      <item>WaterHeight</item>
+      <item>WebGadget</item>
+      <item>WebGadgetPath</item>
+      <item>WindowBounds</item>
+      <item>WindowEvent</item>
+      <item>WindowEvent3D</item>
+      <item>WindowHeight</item>
+      <item>WindowHeight3D</item>
+      <item>WindowID</item>
+      <item>WindowID3D</item>
+      <item>WindowMouseX</item>
+      <item>WindowMouseY</item>
+      <item>WindowOutput</item>
+      <item>WindowWidth</item>
+      <item>WindowWidth3D</item>
+      <item>WindowX</item>
+      <item>WindowX3D</item>
+      <item>WindowY</item>
+      <item>WindowY3D</item>
+      <item>WorldCollisionAppliedImpulse</item>
+      <item>WorldCollisionContact</item>
+      <item>WorldCollisionNormal</item>
+      <item>WorldDebug</item>
+      <item>WorldGravity</item>
+      <item>WorldShadows</item>
+      <item>WriteAsciiCharacter</item>
+      <item>WriteByte</item>
+      <item>WriteCharacter</item>
+      <item>WriteConsoleData</item>
+      <item>WriteData</item>
+      <item>WriteDouble</item>
+      <item>WriteFloat</item>
+      <item>WriteInteger</item>
+      <item>WriteLong</item>
+      <item>WritePreferenceDouble</item>
+      <item>WritePreferenceFloat</item>
+      <item>WritePreferenceInteger</item>
+      <item>WritePreferenceLong</item>
+      <item>WritePreferenceQuad</item>
+      <item>WritePreferenceString</item>
+      <item>WriteProgramData</item>
+      <item>WriteProgramString</item>
+      <item>WriteProgramStringN</item>
+      <item>WriteQuad</item>
+      <item>WriteSerialPortData</item>
+      <item>WriteSerialPortString</item>
+      <item>WriteString</item>
+      <item>WriteStringFormat</item>
+      <item>WriteStringN</item>
+      <item>WriteUnicodeCharacter</item>
+      <item>WriteWord</item>
+      <item>XMLAttributeName</item>
+      <item>XMLAttributeValue</item>
+      <item>XMLChildCount</item>
+      <item>XMLError</item>
+      <item>XMLErrorLine</item>
+      <item>XMLErrorPosition</item>
+      <item>XMLNodeFromID</item>
+      <item>XMLNodeFromPath</item>
+      <item>XMLNodePath</item>
+      <item>XMLNodeType</item>
+      <item>XMLStatus</item>
+      <item>Yaw</item>
+      <item>Year</item>
+      <item>ZoomSprite</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+
+        <AnyChar attribute="Operator" String="-+*/%|=!&lt;&gt;!^&amp;~" context="#stay"/>
+
+        <AnyChar attribute="Separator" String=",.:()[]\" context="#stay"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(if)([\s]|$)" insensitive="true" beginRegion="IfRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(endif)([\s]|$)" insensitive="true" endRegion="IfRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(while)([\s]|$)" insensitive="true" beginRegion="WhileRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(wend)([\s]|$)" insensitive="true" endRegion="WhileRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(repeat)([\s]|$)" insensitive="true" beginRegion="RepeatRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(until)([\s]|$)" insensitive="true" endRegion="RepeatRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(select)([\s]|$)" insensitive="true" beginRegion="SelectRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(endselect)([\s]|$)" insensitive="true" endRegion="SelectRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(for|foreach)([\s]|$)" insensitive="true" beginRegion="ForRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(next)([\s]|$)" insensitive="true" endRegion="ForRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(procedure|proceduredll)([.\s]|$)" insensitive="true" beginRegion="ProcedureRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(endprocedure)([\s]|$)" insensitive="true" endRegion="ProcedureRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(structure)([\s]|$)" insensitive="true" beginRegion="StructureRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(endstructure)([\s]|$)" insensitive="true" endRegion="StructureRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(interface)([\s]|$)" insensitive="true" beginRegion="InterfaceRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(endinterface)([\s]|$)" insensitive="true" endRegion="InterfaceRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(enumeration)([\s]|$)" insensitive="true" beginRegion="EnumerationRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(endenumeration)([\s]|$)" insensitive="true" endRegion="EnumerationRegion"/>
+
+        <RegExpr attribute="Keyword" context="#stay" String="\b(datasection)([\s]|$)" insensitive="true" beginRegion="DataSectionRegion"/>
+        <RegExpr attribute="Keyword" context="#stay" String="\b(enddatasection)([\s]|$)" insensitive="true" endRegion="DataSectionRegion"/>
+
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+
+        <RegExpr attribute="Compiler Keyword" context="#stay" String="\b(compilerif)([\s]|$)" insensitive="true" beginRegion="CompilerIfRegion"/>
+        <RegExpr attribute="Compiler Keyword" context="#stay" String="\b(compilerendif)([\s]|$)" insensitive="true" endRegion="CompilerIfRegion"/>
+
+        <RegExpr attribute="Compiler Keyword" context="#stay" String="\b(compilerselect)([\s]|$)" insensitive="true" beginRegion="CompilerSelectRegion"/>
+        <RegExpr attribute="Compiler Keyword" context="#stay" String="\b(compilerendselect)([\s]|$)" insensitive="true" endRegion="CompilerEndSelectRegion"/>
+
+        <keyword attribute="Compiler Keyword" context="#stay" String="compiler"/>
+
+        <keyword attribute="Functions" context="#stay" String="functions"/>
+
+        <keyword attribute="Debug Keyword" context="#stay" String="debug"/>
+
+        <RegExpr attribute="Constant" context="#stay" String="\#+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*"/>
+
+        <Float attribute="Number" context="#stay"/>
+        <Int attribute="Number" context="#stay"/>
+
+        <DetectChar attribute="String" context="String" char="&quot;" />
+
+        <RegExpr attribute="Region Marker" context="#stay" String="^\s*;+\s*BEGIN.*$" beginRegion="marker"/>
+        <RegExpr attribute="Region Marker" context="#stay" String="^\s*;+\s*END.*$" endRegion="marker"/>
+
+        <DetectChar attribute="Comment" context="Comment1" char=";"/>
+
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment1">
+        <keyword attribute="Number" context="#stay" String="attention" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Operator" defStyleNum="dsNormal"/>
+      <itemData name="Separator" defStyleNum="dsNormal"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Debug Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Compiler Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Functions" defStyleNum="dsFunction"/>
+      <itemData name="Constant" defStyleNum="dsDataType"/>
+      <itemData name="Number" defStyleNum="dsDecVal"/>
+      <itemData name="String" defStyleNum="dsString"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="0" />
+    <comments>
+      <comment name="singleLine" start=";" />
+    </comments>
+  </general>
+</language>
+<!-- // kate: space-indent on; indent-width 3; replace-tabs on; -->
diff --git a/xml/python.xml b/xml/python.xml
new file mode 100644
--- /dev/null
+++ b/xml/python.xml
@@ -0,0 +1,682 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language>
+<!-- Python syntax highlightning v0.9 by Per Wigren -->
+<!-- Python syntax highlighting v1.9 by Michael Bueker (improved keyword differentiation) -->
+<!-- Python syntax highlighting v1.97 by Paul Giannaros -->
+<!-- Python syntax highlighting v1.99 by Primoz Anzur -->
+<!-- Python syntax highlighting v2.01 by Paul Giannaros:
+	* full format character support
+	* unicode string modifier supported -->
+<!-- v2.02 remove RegExpr for nums and make indent consistent -->
+<!-- v2.03 highlight decorators, remove operator regex, don't highlight parens as operators -->
+<!-- v2.04 make alerts visible even if they are directly after ''' or # without a space -->
+<!-- v2.06 decorator names can (and often do) contain periods -->
+<!-- v2.07 add support for %prog and co, see bug 142832 -->
+<!-- v2.08 add missing overloaders, new Python 3 statements, builtins, and keywords -->
+<!-- v2.29 recognize escape sequenzes correctly -->
+<language name="Python" version="4" style="python" kateversion="5.0" section="Scripts" extensions="*.py;*.pyw;SConstruct;SConscript" mimetype="application/x-python;text/x-python" casesensitive="1" author="Michael Bueker" license="">
+	<highlighting>
+		<list name="import">
+			<item>import</item>
+			<item>from</item>
+			<item>as</item>
+		</list>
+		<list name="defs">
+			<item>class</item>
+			<item>def</item>
+			<item>del</item>
+			<item>global</item>
+			<item>lambda</item>
+			<item>nonlocal</item>
+		</list>
+		<list name="operators">
+			<item>and</item>
+			<item>in</item>
+			<item>is</item>
+			<item>not</item>
+			<item>or</item>
+		</list>
+		<list name="flow">
+			<item>assert</item>
+			<item>break</item>
+			<item>continue</item>
+			<item>elif</item>
+			<item>else</item>
+			<item>except</item>
+			<item>finally</item>
+			<item>for</item>
+			<item>if</item>
+			<item>pass</item>
+			<item>raise</item>
+			<item>return</item>
+			<item>try</item>
+			<item>while</item>
+			<item>with</item>
+			<item>yield</item>
+			<item>async</item>
+			<item>await</item>
+		</list>
+		<list name="builtinfuncs">
+			<item>__import__</item>
+			<item>abs</item>
+			<item>all</item>
+			<item>any</item>
+			<item>apply</item>
+			<item>ascii</item>
+			<item>basestring</item>
+			<item>bin</item>
+			<item>bool</item>
+			<item>buffer</item>
+			<item>bytearray</item>
+			<item>bytes</item>
+			<item>callable</item>
+			<item>chr</item>
+			<item>classmethod</item>
+			<item>cmp</item>
+			<item>coerce</item>
+			<item>compile</item>
+			<item>complex</item>
+			<item>delattr</item>
+			<item>dict</item>
+			<item>dir</item>
+			<item>divmod</item>
+			<item>enumerate</item>
+			<item>eval</item>
+			<item>exec</item>
+			<item>execfile</item>
+			<item>file</item>
+			<item>filter</item>
+			<item>float</item>
+			<item>format</item>
+			<item>frozenset</item>
+			<item>getattr</item>
+			<item>globals</item>
+			<item>hasattr</item>
+			<item>hash</item>
+			<item>help</item>
+			<item>hex</item>
+			<item>id</item>
+			<item>input</item>
+			<item>int</item>
+			<item>intern</item>
+			<item>isinstance</item>
+			<item>issubclass</item>
+			<item>iter</item>
+			<item>len</item>
+			<item>list</item>
+			<item>locals</item>
+			<item>long</item>
+			<item>map</item>
+			<item>max</item>
+			<item>memoryview</item>
+			<item>min</item>
+			<item>next</item>
+			<item>object</item>
+			<item>oct</item>
+			<item>open</item>
+			<item>ord</item>
+			<item>pow</item>
+			<item>print</item>
+			<item>property</item>
+			<item>range</item>
+			<item>raw_input</item>
+			<item>reduce</item>
+			<item>reload</item>
+			<item>repr</item>
+			<item>reversed</item>
+			<item>round</item>
+			<item>set</item>
+			<item>setattr</item>
+			<item>slice</item>
+			<item>sorted</item>
+			<item>staticmethod</item>
+			<item>str</item>
+			<item>sum</item>
+			<item>super</item>
+			<item>tuple</item>
+			<item>type</item>
+			<item>unichr</item>
+			<item>unicode</item>
+			<item>vars</item>
+			<item>xrange</item>
+			<item>zip</item>
+		</list>
+		<list name="specialvars">
+			<item>None</item>
+			<item>self</item>
+			<item>True</item>
+			<item>False</item>
+			<item>NotImplemented</item>
+			<item>Ellipsis</item>
+			<item>__debug__</item>
+			<item>__file__</item>
+			<item>__name__</item>
+		</list>
+		<list name="bindings">
+			<item>SIGNAL</item>
+			<item>SLOT</item>
+			<item>connect</item>
+		</list>
+		<list name="overloaders">
+			<item>__new__</item>
+			<item>__init__</item>
+			<item>__del__</item>
+			<item>__repr__</item>
+			<item>__str__</item>
+			<item>__lt__</item>
+			<item>__le__</item>
+			<item>__eq__</item>
+			<item>__ne__</item>
+			<item>__gt__</item>
+			<item>__ge__</item>
+			<item>__cmp__</item>
+			<item>__rcmp__</item>
+			<item>__hash__</item>
+			<item>__nonzero__</item>
+			<item>__unicode__</item>
+			<item>__getattr__</item>
+			<item>__setattr__</item>
+			<item>__delattr__</item>
+			<item>__getattribute__</item>
+			<item>__get__</item>
+			<item>__set__</item>
+			<item>__delete__</item>
+			<item>__call__</item>
+			<item>__len__</item>
+			<item>__getitem__</item>
+			<item>__setitem__</item>
+			<item>__delitem__</item>
+			<item>__iter__</item>
+			<item>__reversed__</item>
+			<item>__contains__</item>
+			<item>__getslice__</item>
+			<item>__setslice__</item>
+			<item>__delslice__</item>
+			<item>__add__</item>
+			<item>__sub__</item>
+			<item>__mul__</item>
+			<item>__floordiv__</item>
+			<item>__mod__</item>
+			<item>__divmod__</item>
+			<item>__pow__</item>
+			<item>__lshift__</item>
+			<item>__rshift__</item>
+			<item>__and__</item>
+			<item>__xor__</item>
+			<item>__or__</item>
+			<item>__div__</item>
+			<item>__truediv__</item>
+			<item>__radd__</item>
+			<item>__rsub__</item>
+			<item>__rmul__</item>
+			<item>__rdiv__</item>
+			<item>__rtruediv__</item>
+			<item>__rfloordiv__</item>
+			<item>__rmod__</item>
+			<item>__rdivmod__</item>
+			<item>__rpow__</item>
+			<item>__rlshift__</item>
+			<item>__rrshift__</item>
+			<item>__rand__</item>
+			<item>__rxor__</item>
+			<item>__ror__</item>
+			<item>__iadd__</item>
+			<item>__isub__</item>
+			<item>__imul__</item>
+			<item>__idiv__</item>
+			<item>__itruediv__</item>
+			<item>__ifloordiv__</item>
+			<item>__imod__</item>
+			<item>__ipow__</item>
+			<item>__ilshift__</item>
+			<item>__irshift__</item>
+			<item>__iand__</item>
+			<item>__ixor__</item>
+			<item>__ior__</item>
+			<item>__neg__</item>
+			<item>__pos__</item>
+			<item>__abs__</item>
+			<item>__invert__</item>
+			<item>__complex__</item>
+			<item>__int__</item>
+			<item>__long__</item>
+			<item>__float__</item>
+			<item>__oct__</item>
+			<item>__hex__</item>
+			<item>__index__</item>
+			<item>__coerce__</item>
+			<item>__enter__</item>
+			<item>__exit__</item>
+			<item>__bytes__</item>
+			<item>__format__</item>
+			<item>__next__</item>
+			<item>__dir__</item>
+			<item>__await__</item>
+			<item>__aiter__</item>
+			<item>__anext__</item>
+			<item>__aenter__</item>
+			<item>__aexit__</item>
+		</list>
+		<list name="exceptions">
+			<!--
+				Exceptions list resources used:
+				- http://docs.python.org/2.7/library/exceptions.html#exception-hierarchy
+				- http://docs.python.org/3.4/library/exceptions.html#exception-hierarchy
+			-->
+			<item>ArithmeticError</item>
+			<item>AssertionError</item>
+			<item>AttributeError</item>
+			<item>BaseException</item>
+			<item>BlockingIOError</item>
+			<item>BrokenPipeError</item>
+			<item>BufferError</item>
+			<item>BytesWarning</item>
+			<item>ChildProcessError</item>
+			<item>ConnectionAbortedError</item>
+			<item>ConnectionError</item>
+			<item>ConnectionRefusedError</item>
+			<item>ConnectionResetError</item>
+			<item>DeprecationWarning</item>
+			<item>EnvironmentError</item>
+			<item>EOFError</item>
+			<item>Exception</item>
+			<item>FileExistsError</item>
+			<item>FileNotFoundError</item>
+			<item>FloatingPointError</item>
+			<item>FutureWarning</item>
+			<item>GeneratorExit</item>
+			<item>ImportError</item>
+			<item>ImportWarning</item>
+			<item>IndentationError</item>
+			<item>IndexError</item>
+			<item>InterruptedError</item>
+			<item>IOError</item>
+			<item>IsADirectoryError</item>
+			<item>KeyboardInterrupt</item>
+			<item>KeyError</item>
+			<item>LookupError</item>
+			<item>MemoryError</item>
+			<item>NameError</item>
+			<item>NotADirectoryError</item>
+			<item>NotImplementedError</item>
+			<item>OSError</item>
+			<item>OverflowError</item>
+			<item>PendingDeprecationWarning</item>
+			<item>PermissionError</item>
+			<item>ProcessLookupError</item>
+			<item>ReferenceError</item>
+			<item>ResourceWarning</item>
+			<item>RuntimeError</item>
+			<item>RuntimeWarning</item>
+			<item>StandardError</item>
+			<item>StopIteration</item>
+			<item>SyntaxError</item>
+			<item>SyntaxWarning</item>
+			<item>SystemError</item>
+			<item>SystemExit</item>
+			<item>TabError</item>
+			<item>TimeoutError</item>
+			<item>TypeError</item>
+			<item>UnboundLocalError</item>
+			<item>UnicodeDecodeError</item>
+			<item>UnicodeEncodeError</item>
+			<item>UnicodeError</item>
+			<item>UnicodeTranslateError</item>
+			<item>UnicodeWarning</item>
+			<item>UserWarning</item>
+			<item>ValueError</item>
+			<item>Warning</item>
+			<item>WindowsError</item>
+			<item>ZeroDivisionError</item>
+		</list>
+		<contexts>
+			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+				<keyword attribute="Import" String="import" context="#stay"/>
+				<keyword attribute="Definition Keyword" String="defs" context="#stay"/>
+				<keyword attribute="Operator Keyword" String="operators" context="#stay"/>
+				<keyword attribute="Flow Control Keyword" String="flow" context="#stay"/>
+				<keyword attribute="Builtin Function" String="builtinfuncs" context="#stay"/>
+				<keyword attribute="Special Variable" String="specialvars" context="#stay"/>
+				<keyword attribute="Extensions" String="bindings" context="#stay"/>
+				<keyword attribute="Exceptions" String="exceptions" context="#stay"/>
+				<keyword attribute="Overloaders" String="overloaders" context="#stay"/>
+				<RegExpr attribute="Normal Text" String="[a-zA-Z_][a-zA-Z_0-9]{2,}" context="#stay"/>
+
+				<RegExpr attribute="Complex" String=" ((([0-9]*\.[0-9]+|[0-9]+\.)|([0-9]+|([0-9]*\.[0-9]+|[0-9]+\.))[eE](\+|-)?[0-9]+)|[0-9]+)[jJ]" context="#stay"/>
+				<Float attribute="Float" context="#stay" />
+				<HlCHex attribute="Hex" context="#stay"/>
+				<HlCOct attribute="Octal" context="#stay"/>
+				<Int attribute="Int" context="#stay">
+					<StringDetect attribute="Int" String="L" insensitive="true" context="#stay"/>
+				</Int>
+
+				<DetectChar attribute="Normal Text" char="{" context="Dictionary" beginRegion="Dictionary"/>
+				<DetectChar attribute="Normal Text" char="[" context="List" beginRegion="List"/>
+				<DetectChar attribute="Normal Text" char="(" context="Tuple" beginRegion="Tuple"/>
+
+				<IncludeRules context="CommentVariants" />
+
+				<DetectChar attribute="Comment" char="#" context="Hash comment"/>
+
+				<IncludeRules context="StringVariants" />
+
+				<RegExpr attribute="Decorator" String="@[_a-zA-Z][\._a-zA-Z0-9]*" firstNonSpace="true"/>
+				<AnyChar attribute="Operator" String="+*/%\|=;\!&lt;&gt;!^&amp;~-@" context="#stay"/>
+			</context>
+
+			<context name="#CheckForString" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+				<DetectSpaces/>
+				<LineContinue attribute="Normal Text" context="CheckForStringNext"/>
+			</context>
+
+			<context name="CheckForStringNext" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+				<DetectSpaces/>
+				<LineContinue attribute="Normal Text" context="CheckForStringNext"/>
+				<IncludeRules context="StringVariants"/>
+			</context>
+
+			<context name="StringVariants" attribute="Normal Text" lineEndContext="#stay">
+				<DetectSpaces/>
+
+				<RegExpr attribute="String" String="u?'''"                insensitive="true" context="Triple A-string" beginRegion="Triple A-region"/>
+				<RegExpr attribute="String" String="u?&quot;&quot;&quot;" insensitive="true" context="Triple Q-string" beginRegion="Triple Q-region"/>
+				<RegExpr attribute="String" String="u?'"                  insensitive="true" context="Single A-string"/>
+				<RegExpr attribute="String" String="u?&quot;"             insensitive="true" context="Single Q-string"/>
+
+				<RegExpr attribute="Raw String" String="(u?r|ru)'''"                insensitive="true" context="Raw Triple A-string" beginRegion="Triple A-region"/>
+				<RegExpr attribute="Raw String" String="(u?r|ru)&quot;&quot;&quot;" insensitive="true" context="Raw Triple Q-string" beginRegion="Triple Q-region"/>
+				<RegExpr attribute="Raw String" String="(u?r|ru)'"                  insensitive="true" context="Raw A-string"/>
+				<RegExpr attribute="Raw String" String="(u?r|ru)&quot;"             insensitive="true" context="Raw Q-string"/>
+
+				<StringDetect attribute="F-String" String="f'''"                insensitive="true" context="Triple A-F-String" beginRegion="Triple A-region"/>
+				<StringDetect attribute="F-String" String="f&quot;&quot;&quot;" insensitive="true" context="Triple Q-F-String" beginRegion="Triple Q-region"/>
+				<StringDetect attribute="F-String" String="f'"                  insensitive="true" context="Single A-F-String"/>
+				<StringDetect attribute="F-String" String="f&quot;"             insensitive="true" context="Single Q-F-String"/>
+
+				<RegExpr attribute="Raw F-String" String="(fr|rf)'''"                insensitive="true" context="Raw Triple A-F-String" beginRegion="Triple A-region"/>
+				<RegExpr attribute="Raw F-String" String="(fr|rf)&quot;&quot;&quot;" insensitive="true" context="Raw Triple Q-F-String" beginRegion="Triple Q-region"/>
+				<RegExpr attribute="Raw F-String" String="(fr|rf)'"                  insensitive="true" context="Raw A-F-String"/>
+				<RegExpr attribute="Raw F-String" String="(fr|rf)&quot;"             insensitive="true" context="Raw Q-F-String"/>
+			</context>
+
+			<context name="CommentVariants" attribute="Normal Text" lineEndContext="#stay">
+				<DetectSpaces/>
+
+				<RegExpr attribute="Comment" String="u?'''"                insensitive="true" firstNonSpace="true" context="Triple A-comment" beginRegion="Triple A-region"/>
+				<RegExpr attribute="Comment" String="u?&quot;&quot;&quot;" insensitive="true" firstNonSpace="true" context="Triple Q-comment" beginRegion="Triple Q-region"/>
+				<RegExpr attribute="Comment" String="u?'"                  insensitive="true" firstNonSpace="true" context="Single A-comment"/>
+				<RegExpr attribute="Comment" String="u?&quot;"             insensitive="true" firstNonSpace="true" context="Single Q-comment"/>
+
+				<RegExpr attribute="Comment" String="(u?r|ru)'''"                insensitive="true" firstNonSpace="true" context="Triple A-comment" beginRegion="Triple A-region"/>
+				<RegExpr attribute="Comment" String="(u?r|ru)&quot;&quot;&quot;" insensitive="true" firstNonSpace="true" context="Triple Q-comment" beginRegion="Triple Q-region"/>
+				<RegExpr attribute="Comment" String="(u?r|ru)'"                  insensitive="true" firstNonSpace="true" context="Single A-comment"/>
+				<RegExpr attribute="Comment" String="(u?r|ru)&quot;"             insensitive="true" firstNonSpace="true" context="Single Q-comment"/>
+			</context>
+
+			<context name="Dictionary" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<DetectSpaces/>
+				<DetectChar attribute="Normal Text" char="}" context="#pop" endRegion="Dictionary"/>
+				<IncludeRules context="StringVariants" />
+				<IncludeRules context="Normal" />
+			</context>
+
+			<context name="List" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<DetectSpaces/>
+				<DetectChar attribute="Normal Text" char="]" context="#pop" endRegion="List"/>
+				<IncludeRules context="StringVariants" />
+				<IncludeRules context="Normal" />
+			</context>
+
+			<context name="Tuple" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<DetectSpaces/>
+				<DetectChar attribute="Normal Text" char=")" context="#pop" endRegion="Tuple"/>
+				<IncludeRules context="StringVariants" />
+				<IncludeRules context="Normal" />
+			</context>
+
+			<!-- Comments -->
+
+			<context name="Hash comment" attribute="Comment" lineEndContext="#pop">
+				<IncludeRules context="##Alerts" />
+				<IncludeRules context="##Modelines" />
+			</context>
+
+			<context name="Triple A-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<StringDetect attribute="Comment" String="'''" context="#pop" endRegion="Triple A-region"/>
+				<IncludeRules context="##Alerts_indent" />
+			</context>
+
+			<context name="Triple Q-comment" attribute="Comment" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCChar attribute="Comment" context="#stay"/>
+				<StringDetect attribute="Comment" String="&quot;&quot;&quot;" context="#pop" endRegion="Triple Q-region"/>
+				<IncludeRules context="##Alerts_indent" />
+			</context>
+
+			<context name="Single A-comment" attribute="Comment" lineEndContext="#stay">
+				<HlCStringChar attribute="Comment" context="#stay"/>
+				<DetectChar attribute="Comment" char="'" context="#pop"/>
+				<IncludeRules context="##Alerts_indent" />
+			</context>
+
+			<context name="Single Q-comment" attribute="Comment" lineEndContext="#stay">
+				<HlCStringChar attribute="Comment" context="#stay"/>
+				<DetectChar attribute="Comment" char="&quot;" context="#pop"/>
+				<IncludeRules context="##Alerts_indent" />
+			</context>
+
+			<!-- Strings -->
+
+			<!-- format characters -->
+			<context name="stringformat" attribute="String Substitution" lineEndContext="#stay">
+				<!-- Python 2 style. Syntax:
+				     1. start character '%'
+				     2. [optional] Mapping key, e.g. '(foo)'
+				     3. [optional] Conversion flags, one of '#0- +'
+				     4. [optional] Minimum width, integer or '*'
+				     5. [optional] Precision, '.' followed by integer or '*'
+				     6. [optional] Length modifier, one of 'hlL'
+				     7. conversion type, one of 'crsdiouxXeEfFgG%'
+				     [Special cases: %prog and %default - see http://docs.python.org/library/optparse.html]
+				-->
+				<RegExpr attribute="String Substitution" String="%((\([a-zA-Z0-9_]+\))?[#0\- +]?([1-9][0-9]*|\*)?(\.([1-9][0-9]*|\*))?[hlL]?[crsdiouxXeEfFgG%]|prog|default)" context="#stay"/>
+				<!-- http://docs.python.org/2/library/string.html#format-string-syntax:
+				     replacement_field ::=  "{" [field_name] ["!" conversion] [":" format_spec] "}"
+				     field_name        ::=  arg_name ("." attribute_name | "[" element_index "]")*
+				     arg_name          ::=  [identifier | integer]
+				     attribute_name    ::=  identifier
+				     element_index     ::=  integer | index_string
+				     index_string      ::=  <any source character except "]"> +
+				     conversion        ::=  "r" | "s"
+				     format_spec       ::=  [[fill]align][sign][#][0][width][,][.precision][type]
+				     fill              ::=  <any character>
+				     align             ::=  "<" | ">" | "=" | "^"
+				     sign              ::=  "+" | "-" | " "
+				     width             ::=  integer
+				     precision         ::=  integer
+				     type              ::=  "b" | "c" | "d" | "e" | "E" | "f" | "F" | "g" | "G" | "n" | "o" | "s" | "x" | "X" | "%"
+				-->
+				<RegExpr attribute="String Substitution" String="\{(([a-zA-Z0-9_]+|[0-9]+)(\.[a-zA-Z0-9_]+|\[[^ \]]+\])*)?(![rs])?(:([^}]?[&lt;&gt;=^])?[ +-]?#?0?[0-9]*(\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\}" context="#stay"/>
+				<Detect2Chars attribute="String Substitution" char="{" char1="{" context="#stay" />
+				<Detect2Chars attribute="String Substitution" char="}" char1="}" context="#stay" />
+			</context>
+
+			<!-- escape characters -->
+			<context name="stringescape" attribute="String Char" lineEndContext="#stay">
+				<!-- As this highlighting style is for both, Python 2 and 3,
+				we do not know if a normal string is “unicode” or not. So we
+				-->
+				<RegExpr attribute="String Char" String="\\[\\'&quot;abfnrtv]" context="#stay"/>
+				<RegExpr attribute="String Char" String="\\[0-7]{1,3}" context="#stay"/>
+				<RegExpr attribute="String Char" String="\\x[0-9A-Fa-f]{2}" context="#stay"/>
+				<RegExpr attribute="String Char" String="\\u[0-9A-Fa-f]{4}" context="#stay"/>
+				<RegExpr attribute="String Char" String="\\U[0-9A-Fa-f]{8}" context="#stay"/>
+				<RegExpr attribute="String Char" String="\\N\{[a-zA-Z0-9\- ]+\}" context="#stay"/>
+			</context>
+
+			<!-- f-literals -->
+			<context name="stringinterpolation" attribute="F-String" lineEndContext="#stay">
+				<Detect2Chars attribute="String Char" char="{" char1="{" context="#stay"/>
+				<DetectChar attribute="String Substitution" char="{" context="String Interpolation"/>
+			</context>
+			<context name="String Interpolation" attribute="String Substitution" lineEndContext="#stay">
+				<DetectChar attribute="Error" char="\" context="#pop"/>
+				<RegExpr attribute="String Substitution" String="(![rs])?(:([^}]?[&lt;&gt;=^])?[ +-]?#?0?[0-9]*(\.[0-9]+)?[bcdeEfFgGnosxX%]?)?\}" context="#pop"/>
+				<IncludeRules context="Normal"/> <!-- TODO: create expression context instead -->
+			</context>
+
+
+			<!--
+			It follows a Binary tree of string kinds (not even touching byte literals).
+			The levels are:
+			1. triple- vs. single-quoted
+			2. apostrophe vs. quotation mark
+			3. static vs. interpolated (f-literal)
+			4. escaped vs. raw
+			Adding byte literals wouldn’t make the current 2⁴ into 2⁵ contexts, as there are no byte f-literals
+			-->
+
+
+			<!-- Triple-quoted A-strings -->
+			<context name="Triple A-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringformat"/>
+				<StringDetect attribute="String" String="'''" context="#pop#CheckForString" endRegion="Triple A-region"/>
+			</context>
+
+			<context name="Raw Triple A-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCStringChar attribute="Raw String" context="#stay"/>
+				<IncludeRules context="stringformat"/>
+				<StringDetect attribute="Raw String" String="'''" context="#pop#CheckForString" endRegion="Triple A-region"/>
+			</context>
+
+			<context name="Triple A-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringinterpolation"/>
+				<StringDetect attribute="F-String" String="'''" context="#pop#CheckForString" endRegion="Triple A-region"/>
+			</context>
+
+			<context name="Raw Triple A-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCStringChar attribute="Raw F-String" context="#stay"/>
+				<IncludeRules context="stringinterpolation"/>
+				<StringDetect attribute="Raw F-String" String="'''" context="#pop#CheckForString" endRegion="Triple A-region"/>
+			</context>
+
+			<!-- Triple-quoted Q-strings -->
+			<context name="Triple Q-string" attribute="String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringformat"/>
+				<StringDetect attribute="String" String="&quot;&quot;&quot;" context="#pop#CheckForString" endRegion="Triple Q-region"/>
+			</context>
+
+			<context name="Raw Triple Q-string" attribute="Raw String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCStringChar attribute="Raw String" context="#stay"/>
+				<IncludeRules context="stringformat"/>
+				<StringDetect attribute="Raw String" String="&quot;&quot;&quot;" context="#pop#CheckForString" endRegion="Triple Q-region"/>
+			</context>
+
+			<context name="Triple Q-F-String" attribute="F-String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringinterpolation"/>
+				<StringDetect attribute="F-String" String="&quot;&quot;&quot;" context="#pop#CheckForString" endRegion="Triple Q-region"/>
+			</context>
+
+			<context name="Raw Triple Q-F-String" attribute="Raw F-String" lineEndContext="#stay" noIndentationBasedFolding="true">
+				<HlCStringChar attribute="Raw F-String" context="#stay"/>
+				<IncludeRules context="stringinterpolation"/>
+				<StringDetect attribute="Raw F-String" String="&quot;&quot;&quot;" context="#pop#CheckForString" endRegion="Triple Q-region"/>
+			</context>
+
+
+			<!-- Single-quoted A-strings -->
+			<context name="Single A-string" attribute="String" lineEndContext="#stay">
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringformat"/>
+				<DetectChar attribute="String" char="'" context="#pop#CheckForString"/>
+			</context>
+
+			<context name="Raw A-string" attribute="Raw String" lineEndContext="#stay">
+				<HlCStringChar attribute="Raw String" context="#stay"/>
+				<IncludeRules context="stringformat"/>
+				<DetectChar attribute="Raw String" char="'" context="#pop#CheckForString"/>
+			</context>
+
+			<context name="Single A-F-String" attribute="F-String" lineEndContext="#stay">
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringinterpolation"/>
+				<DetectChar attribute="F-String" char="'" context="#pop#CheckForString"/>
+			</context>
+
+			<context name="Raw A-F-String" attribute="Raw F-String" lineEndContext="#stay">
+				<HlCStringChar attribute="Raw F-String" context="#stay"/>
+				<IncludeRules context="stringinterpolation"/>
+				<DetectChar attribute="Raw F-String" char="'" context="#pop#CheckForString"/>
+			</context>
+
+			<!-- Single-quoted Q-strings -->
+			<context name="Single Q-string" attribute="String" lineEndContext="#stay">
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringformat"/>
+				<DetectChar attribute="String" char="&quot;" context="#pop#CheckForString"/>
+			</context>
+
+			<context name="Raw Q-string" attribute="Raw String" lineEndContext="#stay">
+				<HlCStringChar attribute="Raw String" context="#stay"/>
+				<IncludeRules context="stringformat"/>
+				<DetectChar attribute="Raw String" char="&quot;" context="#pop#CheckForString"/>
+			</context>
+
+			<context name="Single Q-F-String" attribute="F-String" lineEndContext="#stay">
+				<IncludeRules context="stringescape"/>
+				<IncludeRules context="stringinterpolation"/>
+				<DetectChar attribute="F-String" char="&quot;" context="#pop#CheckForString"/>
+			</context>
+
+			<context name="Raw Q-F-String" attribute="Raw F-String" lineEndContext="#stay">
+				<HlCStringChar attribute="Raw F-String" context="#stay"/>
+				<IncludeRules context="stringinterpolation"/>
+				<DetectChar attribute="Raw F-String" char="&quot;" context="#pop#CheckForString"/>
+			</context>
+		</contexts>
+
+		<itemDatas>
+			<itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false"/>
+			<itemData name="Definition Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+			<itemData name="Operator" defStyleNum="dsOperator" spellChecking="false"/>
+			<itemData name="Operator Keyword" defStyleNum="dsKeyword" spellChecking="false"/>
+			<itemData name="Flow Control Keyword" defStyleNum="dsControlFlow" spellChecking="false"/>
+			<itemData name="Builtin Function" defStyleNum="dsBuiltIn" spellChecking="false"/>
+			<itemData name="Special Variable" defStyleNum="dsVariable" spellChecking="false"/>
+			<itemData name="Extensions" defStyleNum="dsExtension" spellChecking="false"/>
+			<itemData name="Exceptions" defStyleNum="dsPreprocessor" spellChecking="false"/>
+			<itemData name="Overloaders" defStyleNum="dsFunction" spellChecking="false"/>
+			<itemData name="Import" defStyleNum="dsImport" spellChecking="false"/>
+			<itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>
+			<itemData name="Int" defStyleNum="dsDecVal" spellChecking="false"/>
+			<itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>
+			<itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>
+			<itemData name="Complex" defStyleNum="dsOthers" spellChecking="false"/>
+			<itemData name="Comment" defStyleNum="dsComment"/>
+			<itemData name="String" defStyleNum="dsString"/>
+			<itemData name="Raw String" defStyleNum="dsVerbatimString"/>
+			<itemData name="F-String" defStyleNum="dsSpecialString"/>
+			<itemData name="Raw F-String" defStyleNum="dsVerbatimString"/>
+			<itemData name="String Char" defStyleNum="dsChar" spellChecking="false"/>
+			<itemData name="String Substitution" defStyleNum="dsSpecialChar" spellChecking="false"/>
+			<itemData name="Decorator" defStyleNum="dsAttribute" spellChecking="false"/>
+			<itemData name="Error" defStyleNum="dsError"/>
+		</itemDatas>
+	</highlighting>
+	<general>
+		<folding indentationsensitive="1" />
+		<emptyLines>
+			<emptyLine regexpr="(?:\s+|\s*#.*)"/>
+		</emptyLines>
+		<comments>
+			<comment name="singleLine" start="#" position="afterwhitespace"/>
+		</comments>
+		<indentation mode="python" />
+		<keywords casesensitive="1" additionalDeliminator="#'"/>
+	</general>
+</language>
+
+<!-- kate: space-indent off; indent-width 4; -->
diff --git a/xml/r.xml b/xml/r.xml
new file mode 100644
--- /dev/null
+++ b/xml/r.xml
@@ -0,0 +1,152 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Kate 2.5 (KDE 3.5) highlighting module for R
+	based on an earlier version by E.L. Willighagen. Code folding code by Ben Goodrich
+	version 2.0: (c) 2006 Thomas Friedrichsmeier, Arne Henningsen, and the RKWard Team
+	license: GPL v2
+	Kate   : http://kate.kde.org/
+	R      : http://www.r-project.org/
+	RKWard : http://rkward.sourceforge.net/
+	-->
+<language version="7" kateversion="5.0" name="R Script" section="Scientific" extensions="*.R;*.r;*.S;*.s;*.q" mimetype="" license="GPLv2">
+<highlighting>
+
+	<list name="controls">
+		<item>for</item>
+		<item>in</item>
+		<item>next</item>
+		<item>break</item>
+		<item>while</item>
+		<item>repeat</item>
+		<item>if</item>
+		<item>else</item>
+		<item>switch</item>
+		<item>function</item>
+	</list>
+	<list name="words">
+		<item>TRUE</item>
+		<item>FALSE</item>
+		<item>NULL</item>
+		<item>NA</item>
+		<item>NA_integer_</item>
+		<item>NA_real_</item>
+		<item>NA_complex_</item>
+		<item>NA_character_</item>
+		<item>Inf</item>
+		<item>NaN</item>
+	</list>
+
+	<contexts>
+		<!-- This context is really only good for detecting unexpected closing braces '}'. Since opening braces go to ctx0 (and nesting in there), this context is only active on the base level -->
+		<context attribute="Normal Text" lineEndContext="#stay" name="level0">
+			<IncludeRules context="CommonRules"/>
+
+			<DetectChar attribute="Error" context="#stay" char="}" />
+			<DetectChar attribute="Error" context="#stay" char=")"/>
+		</context>
+
+		<context attribute="Normal Text" lineEndContext="#stay" name="ctx0">
+			<IncludeRules context="CommonRules"/>
+
+			<DetectChar attribute="Symbol" context="#pop" char="}" endRegion="Brace1" />
+			<DetectChar attribute="Error" context="#stay" char=")"/>
+		</context>
+
+		<context attribute="Normal Text" lineEndContext="#stay" name="parenthesis">
+			<LineContinue attribute="Operator" context="#stay"/>
+			<DetectChar attribute="Symbol" context="#pop" char=")"/>
+
+			<RegExpr attribute="Identifier" context="#stay" String="[a-zA-Z_\.][0-9a-zA-Z_\.]*[\s]*=(?=([^=]|$))"/>
+
+			<IncludeRules context="CommonRules"/>
+			<DetectChar attribute="Error" context="#stay" char="}" />
+		</context>
+
+		<context attribute="String" lineEndContext="#stay" name="string">
+			<DetectChar attribute="String" context="#pop" char="&quot;"/>
+			<HlCStringChar attribute="String Char" context="#stay"/>
+		</context>
+
+		<context attribute="String" lineEndContext="#stay" name="string2">
+			<DetectChar attribute="String" context="#pop" char="'"/>
+			<HlCStringChar attribute="String Char" context="#stay"/>
+		</context>
+
+		<context attribute="Identifier" lineEndContext="#stay" name="backquotedsymbol">
+			<DetectChar attribute="String" context="#pop" char="`"/>
+			<HlCStringChar attribute="String Char" context="#stay"/>
+		</context>
+
+		<context attribute="Normal Text" lineEndContext="#stay" name="operator_rhs" fallthrough="true" fallthroughContext="#pop">
+			<!-- While there is nothing of interest, stay in the context -->
+			<StringDetect attribute="Headline" context="Headline" String="##"/>
+			<DetectChar attribute="Comment" context="Comment" char="#"/>
+			<DetectChar attribute="String" context="#stay" char=" "/>
+			<!-- Operators other than +, -, and ! directly after another operator are an error. -->
+			<RegExpr attribute="Error" context="#stay" String="(\*|/|&lt;|&gt;|\!=|=|\||&amp;|:|\^|@|\$|~)"/>
+		</context>
+
+		<context attribute="Headline" lineEndContext="#pop" name="Headline">
+			<IncludeRules context="##Alerts" />
+		</context>
+		<context attribute="Comment" lineEndContext="#pop" name="Comment">
+			<IncludeRules context="##Alerts" />
+		</context>
+
+		<!-- This context is not really used, but contains the common rules -->
+		<context name="CommonRules" lineEndContext="#stay" attribute="Normal Text" >
+			<DetectChar attribute="String" context="string" char="&quot;"/>
+			<DetectChar attribute="String" context="string2" char="'"/>
+			<DetectChar attribute="String" context="backquotedsymbol" char="`"/>
+			<keyword attribute="Control Structure" context="#stay" String="controls"/>
+			<keyword attribute="Reserved Words" context="#stay" String="words"/>
+			<Float attribute="Float" context="#stay"/>
+			<Int attribute="Int" context="#stay"/>
+			<RegExpr attribute="Keyword" context="#stay" String="[a-zA-Z_]+[a-zA-Z_\.0-9]*(?=[\s]*[(])"/>
+			<RegExpr attribute="Keyword" context="#stay" String="\.[a-zA-Z_\.]+[a-zA-Z_\.0-9]*(?=[\s]*[(])"/>
+			<RegExpr attribute="Symbol" context="parenthesis" String="\("/>
+			<StringDetect attribute="Headline" context="Headline" String="##"/>
+			<DetectChar attribute="Comment" context="Comment" char="#"/>
+
+			<!-- For (assignment) operators, enter a new context operator_rhs to check what follows (generally, that should not be another op) -->
+			<RegExpr attribute="Assign" context="operator_rhs" String="[&lt;]{1,2}\-"/>
+			<RegExpr attribute="Assign" context="operator_rhs" String="\-[&gt;]{1,2}"/>
+			<RegExpr attribute="Assign" context="operator_rhs" String="=(?!=)"/>
+			<RegExpr attribute="Operator" context="operator_rhs" String="(\+|\-|\*{1,2}|/|&lt;=?|&gt;=?|={1,2}|\!=?|\|{1,2}|&amp;{1,2}|:{1,3}|\^|@|\$|~)"/>
+			<RegExpr attribute="Operator" context="operator_rhs" String="%[^%]*%"/>
+
+			<DetectChar attribute="Symbol" context="ctx0" char="{" beginRegion="Brace1" />
+
+			<!-- This is needed only to assist variable based indentation -->
+			<DetectChar attribute="Symbol" context="#stay" char="[" />
+			<DetectChar attribute="Symbol" context="#stay" char="]" />
+		</context>
+	</contexts>
+
+	<itemDatas>
+	<!-- KDE default colors: http://accessibility.kde.org/oxygen.php?color=white -->
+		<itemData name="Normal Text" defStyleNum="dsNormal"/>
+		<itemData name="Symbol" defStyleNum="dsNormal"/>
+		<itemData name="Keyword" defStyleNum="dsKeyword"/>
+		<itemData name="Identifier" defStyleNum="dsDataType"/>
+		<itemData name="String" defStyleNum="dsString"/>
+		<itemData name="Headline" defStyleNum="dsNormal" color="#b00000" selColor="#b00000" bold="1" italic="0"/> <!-- KDE default color: text 5 -->
+		<itemData name="Comment" defStyleNum="dsComment"/>
+		<itemData name="Assign" defStyleNum="dsNormal" color="#336366" selColor="#ccc099" bold="1" italic="0"/> <!-- KDE default color: text 7 -->
+		<itemData name="Control Structure" defStyleNum="dsControlFlow"/>
+		<itemData name="Reserved Words" defStyleNum="dsOthers"/>
+		<itemData name="Error" defStyleNum="dsError"/>
+		<itemData name="Operator" defStyleNum="dsOperator"/>
+		<itemData name="String Char"  defStyleNum="dsChar"/>
+		<itemData name="Float" defStyleNum="dsFloat"/>
+		<itemData name="Int" defStyleNum="dsDecVal"/>
+	</itemDatas>
+</highlighting>
+
+<general>
+	<comments>
+		<comment name="singleLine" start="#" end=""/>
+	</comments>
+	<keywords casesensitive="true" weakDeliminator="." additionalDeliminator="$"/>
+</general>
+</language>
diff --git a/xml/relaxng.xml b/xml/relaxng.xml
new file mode 100644
--- /dev/null
+++ b/xml/relaxng.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!ENTITY qname    "[A-Za-z_:][\w.:_-]*">
+	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&qname;);">
+]>
+
+<!--
+  Kate syntax highlighting for RELAX NG
+  2007 by Thomas Schraitle (tom_schr AT web DOT de)
+  Derived from the XSLT syntax file from Peter Lammich
+  Published under the LGPL
+
+  TODO:
+   - More modularization (how?)
+   - Namespace rules
+-->
+
+<language version="2"
+          kateversion="2.4"
+          name="RELAX NG"
+          section="Markup"
+          extensions="*.rng;*.RNG"
+          license="LGPL"
+          author="Thomas Schraitle (tom_schr AT web DOT de)">
+  <highlighting>
+    <list name="relaxngnames">
+      <item>anyName</item>
+      <item>attribute</item>
+      <item>choice</item>
+      <item>data</item>
+      <item>define</item>
+      <item>div</item>
+      <item>element</item>
+      <item>empty</item>
+      <item>except</item>
+      <item>externalRef</item>
+      <item>grammar</item>
+      <item>group</item>
+      <item>include</item>
+      <item>interleave</item>
+      <item>list</item>
+      <item>mixed</item>
+      <item>name</item>
+      <item>notAllowed</item>
+      <item>nsName</item>
+      <item>oneOrMore</item>
+      <item>optional</item>
+      <item>param</item>
+      <item>parentRef</item>
+      <item>ref</item>
+      <item>start</item>
+      <item>text</item>
+      <item>value</item>
+      <item>zeroOrMore</item>
+    </list>
+
+    <contexts>
+      <context name="normalText" attribute="Normal Text" lineEndContext="#stay">
+         <StringDetect attribute="Comment" context="comment" String="&lt;!--" beginRegion="comment"/>
+         <DetectChar attribute="Tag" context="tagname" char="&lt;" />
+         <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />
+      </context>
+
+      <context name="detectEntRef" attribute="Normal Text" lineEndContext="#stay">
+         <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />
+      </context>
+
+      <context name="tagname" attribute="Tag" lineEndContext="#stay">
+         <keyword attribute="RELAX NG Tag" context="attributes" String="relaxngnames" />
+         <RegExpr attribute="Attribute" context="attributes" String="\s*" />
+         <DetectChar attribute="Tag" context="#pop" char="&gt;" />
+      </context>
+      
+      <context name="attributes" attribute="Attribute" lineEndContext="#stay">
+         <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1="&gt;" />
+         <DetectChar attribute="Tag" context="#pop#pop" char="&gt;" />
+         <RegExpr attribute="Normal Text" context="attrValue" String="\s*=\s*" />
+      </context>
+      
+      <context name="attrValue" attribute="Invalid" lineEndContext="#stay">
+         <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1="&gt;" />
+         <DetectChar attribute="Invalid" context="#pop#pop#pop" char="&gt;" />
+         <DetectChar attribute="Attribute Value" context="string" char="&quot;" />
+      </context>
+      
+      <context name="string" attribute="Attribute Value" lineEndContext="#stay">
+         <DetectChar attribute="Attribute Value" context="#pop#pop" char="&quot;" />
+         <IncludeRules context="detectEntRef" />
+      </context>
+      
+      <context name="comment" attribute="Comment" lineEndContext="#stay">
+        <DetectSpaces/>
+        <StringDetect attribute="Comment" context="#pop"  String="--&gt;" endRegion="comment"/>
+        <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+"/>
+        <IncludeRules context="##Alerts"/>
+        <DetectIdentifier/>
+      </context>      
+    </contexts>
+    
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Tag" defStyleNum="dsKeyword"/>
+      <itemData name="Invalid" defStyleNum="dsError"/>
+      <itemData name="Attribute" defStyleNum="dsOthers"/>
+      <itemData name="Attribute Value" defStyleNum="dsString" color="#800000" selColor="#ffffff" bold="0" italic="0"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="RELAX NG Tag" defStyleNum="dsKeyword" color="#000080" selColor="#ffffff" bold="1" italic="0" />
+      <itemData name="Error" defStyleNum="dsError" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="multiLine" start="&lt;!--" end="--&gt;" />
+    </comments>
+    <keywords casesensitive="0" weakDeliminator="-:" additionalDeliminator="&quot;{}"/>
+  </general>
+</language>
diff --git a/xml/relaxngcompact.xml b/xml/relaxngcompact.xml
new file mode 100644
--- /dev/null
+++ b/xml/relaxngcompact.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="RelaxNG-Compact" version="1" kateversion="2.4" section="Markup" extensions="*.rnc" casesensitive="1" author="Rintze Zelle" license="LGPL">
+  <highlighting>
+    <list name="Keywords">
+      <item>default</item>
+      <item>datatypes</item>
+      <item>div</item>
+      <item>empty</item>
+      <item>external</item>
+      <item>grammar</item>
+      <item>include</item>
+      <item>inherit</item>
+      <item>list</item>
+      <item>mixed</item>
+      <item>namespace</item>
+      <item>notAllowed</item>
+      <item>parent</item>
+      <item>start</item>
+      <item>token</item>      
+    </list>
+    <list name="Node Names">
+      <item>attribute</item>
+      <item>element</item>    
+    </list>    
+    <list name="Datatypes">
+      <item>string</item>
+      <item>text</item>    
+      <item>xsd:anyURI</item>
+      <item>xsd:base64Binary</item>
+      <item>xsd:boolean</item>
+      <item>xsd:byte</item>
+      <item>xsd:date</item>
+      <item>xsd:dateTime</item>
+      <item>xsd:decimal</item>
+      <item>xsd:double</item>
+      <item>xsd:duration</item>
+      <item>xsd:ENTITIES</item>
+      <item>xsd:ENTITY</item>
+      <item>xsd:float</item>
+      <item>xsd:gDay</item>
+      <item>xsd:gMonth</item>
+      <item>xsd:gMonthDay</item>
+      <item>xsd:gYear</item>
+      <item>xsd:gYearMonth</item>
+      <item>xsd:hexBinary</item>
+      <item>xsd:ID</item>
+      <item>xsd:IDREF</item>
+      <item>xsd:IDREFS</item>
+      <item>xsd:int</item>
+      <item>xsd:integer</item>
+      <item>xsd:language</item>
+      <item>xsd:long</item>
+      <item>xsd:Name</item>
+      <item>xsd:NCName</item>
+      <item>xsd:negativeInteger</item>
+      <item>xsd:NMTOKEN</item>
+      <item>xsd:NMTOKENS</item>
+      <item>xsd:nonNegativeInteger</item>
+      <item>xsd:nonPositiveInteger</item>
+      <item>xsd:normalizedString</item>
+      <item>xsd:NOTATION</item>
+      <item>xsd:positiveInteger</item>
+      <item>xsd:QName</item>
+      <item>xsd:short</item>
+      <item>xsd:string</item> 
+      <item>xsd:time</item>
+      <item>xsd:token</item>
+      <item>xsd:unsignedByte</item>
+      <item>xsd:unsignedInt</item>
+      <item>xsd:unsignedLong</item>
+      <item>xsd:unsignedShort</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >
+        <DetectChar attribute="Comments" char="#" firstNonSpace="true" context="Comments"/>
+	<DetectChar attribute="String" char="&quot;" context="String" />
+	<keyword attribute="Keywords" context="#stay" String="Keywords" />
+	<keyword attribute="Keywords" context="Node Names" String="Node Names" />
+	<keyword attribute="Datatypes" context="#stay" String="Datatypes" />
+	<RegExpr attribute="Definitions" context="Definitions" String="[\w\.-]+[\s]+=" lookAhead="true" />
+      </context>
+      <context attribute="Comments" lineEndContext="#pop" name="Comments" >
+      </context>
+      <context attribute="String" lineEndContext="#stay" name="String" >
+        <DetectChar attribute="String" context="#pop" char="&quot;" />
+      </context>
+      <context attribute="Node Names" lineEndContext="#pop" name="Node Names" >
+        <DetectChar attribute="Node Names" context="#pop" char="{" lookAhead="true" />
+      </context>
+      <context attribute="Definitions" lineEndContext="#pop" name="Definitions" >
+        <DetectChar attribute="Definitions" context="#pop#pop" char="=" lookAhead="true" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Comments" defStyleNum="dsComment" />
+      <itemData name="String" defStyleNum="dsString" />
+      <itemData name="Keywords" defStyleNum="dsKeyword" />
+      <itemData name="Datatypes" defStyleNum="dsDataType" />
+      <itemData name="Node Names" defStyleNum="dsOthers" />
+      <itemData name="Definitions" defStyleNum="dsFunction" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords weakDeliminator="-:"/>
+  </general>
+</language>
diff --git a/xml/rest.xml b/xml/rest.xml
new file mode 100644
--- /dev/null
+++ b/xml/rest.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+        <!ENTITY inlinestart "(^|[-\s&apos;&quot;\(\[{&lt;/:‘“’«¡¿‐‑‒–— ])">
+        <!ENTITY inlineend "(?=[-\s’”»‐‑‒–— &apos;&quot;\)\]}&gt;/:\.,;!\?\\]|$)">
+        <!ENTITY SimpleReferenceNameChars "\w_\.:\+\-">
+]>
+<!--
+  This file is part of KDE's kate project.
+
+  Copyright 2010 Matt Williams (matt@milliams.com)
+  Copyright 2014 Matthew Woehlke (mw_triad@users.sourceforge.net)
+  -->
+<language name="reStructuredText" extensions="*.rst" section="Markup" mimetype="text/x-rst" version="3" kateversion="2.4" casesensitive="1">
+
+  <highlighting>
+
+    <contexts>
+      <context name="Normal" attribute="Normal" lineEndContext="#stay">
+        <RegExpr attribute="Bold" context="#stay" String="&inlinestart;\*\*[^\s].*\*\*&inlineend;" minimal="true"/>
+        <RegExpr attribute="Italic" context="#stay" String="&inlinestart;\*[^\s].*\*&inlineend;" minimal="true"/>
+        <IncludeRules context="InlineMarkup"/>
+        <RegExpr attribute="Footnote" context="#stay" String="^\s*\.\. \[(\d+|#|\*|#[&SimpleReferenceNameChars;]+)\]\s" minimal="true" column="0"/>
+        <RegExpr attribute="Citation" context="#stay" String="^\s*\.\. \[[&SimpleReferenceNameChars;]+\]\s" minimal="true" column="0"/>
+        <RegExpr attribute="HyperlinkTarget" context="#stay" String="^\s*(\.\. (__:|_[&SimpleReferenceNameChars; ]+:(\s|$))|__ )" minimal="true" column="0"/>
+        <RegExpr attribute="Code" String="^\s*\.\. code-block::" context="CodeBlock" column="0"/>
+        <RegExpr attribute="Directive" context="#stay" String="^\s*\.\. [\w\-_\.]+::(\s|$)" minimal="true" column="0"/>
+        <RegExpr attribute="Code" String="::$" context="CodeBlock" />
+        <RegExpr attribute="SubstitutionDefinition" context="#stay" String="^\s*\.\. \|[&SimpleReferenceNameChars; ]+\|\s+[&SimpleReferenceNameChars;]+::\s" minimal="true" column="0"/>
+        <RegExpr attribute="Field" String=":(?=([^:]*\\:)*[^:]*:(\s|$))" context="Field" firstNonSpace="true"/>
+        <RegExpr attribute="Comment" context="Comment" String="^(\s*)\.\.\s(?![\w\-_\.]+::(\s|$))" column="0"/>
+      </context>
+
+      <context name="InlineMarkup" attribute="Normal" lineEndContext="#stay">
+        <RegExpr attribute="InlineLiteral" context="#stay" String="&inlinestart;``[^\s].*``&inlineend;" minimal="true"/>
+        <RegExpr attribute="SubstitutionReference" context="#stay" String="&inlinestart;\|[^\s].*\|&inlineend;" minimal="true"/>
+        <RegExpr attribute="InlineInternalTarget" context="#stay" String="&inlinestart;_`[^\s].*`&inlineend;" minimal="true"/>
+        <RegExpr attribute="FootnoteReference" context="#stay" String="&inlinestart;\[[&SimpleReferenceNameChars;]+\]_&inlineend;" minimal="true"/>
+        <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;`[^\s].*`_&inlineend;" minimal="true"/>
+        <RegExpr attribute="HyperlinkReference" context="#stay" String="&inlinestart;\w+_&inlineend;" minimal="true"/>
+        <RegExpr attribute="InterpretedText" context="TrailingRole" String="&inlinestart;`[^\s].*`(?=:[\w\-_\.\+]+:)" minimal="true"/>
+        <RegExpr attribute="Role" String=":[\w\-_\.\+]+:(?=`)" context="Role"/>
+      </context>
+
+      <context name="Field" attribute="Field" lineEndContext="#stay">
+        <DetectChar attribute="Field" context="#pop" char=":"/>
+        <Detect2Chars attribute="Field" context="#stay" char="\" char1=":"/>
+        <RegExpr attribute="FieldBold" context="#stay" String="&inlinestart;\*\*[^\s].*\*\*&inlineend;" minimal="true"/>
+        <RegExpr attribute="FieldItalic" context="#stay" String="&inlinestart;\*[^\s].*\*&inlineend;" minimal="true"/>
+        <IncludeRules context="InlineMarkup"/>
+      </context>
+      <context name="InterpretedText" attribute="InterpretedText" lineEndContext="#pop">
+        <DetectChar attribute="InterpretedText" char="`" context="#pop" />
+      </context>
+      <context name="Role" attribute="Role" lineEndContext="#pop">
+        <DetectChar attribute="InterpretedText" char="`" context="#pop!InterpretedText" />
+      </context>
+      <context name="TrailingRole" attribute="Role" lineEndContext="#pop">
+        <RegExpr attribute="Role" String=":[\w\-_\.\+]+:" context="#pop"/>
+      </context>
+      <context name="Comment" attribute="Comment" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Code" String="^%1   " context="#stay" column="0" dynamic="true"/>
+        <RegExpr attribute="Normal" String="^(.|$)" lookAhead="true" column="0" context="#pop"/>
+        <IncludeRules context="##Alerts"/>
+      </context>
+
+      <context name="CodeBlock" attribute="Code" lineEndContext="#stay">
+        <RegExpr attribute="Code" String="^(\s+)(?=\S)" context="Code" column="0"/>
+      </context>
+
+      <context name="Code" attribute="Code" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Code" String="^%1" context="#stay" column="0" dynamic="true"/>
+        <RegExpr attribute="Normal" String="^(.|$)" lookAhead="true" context="#pop#pop" column="0"/>
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal" defStyleNum="dsNormal" />
+      <itemData name="Bold" defStyleNum="dsNormal" bold="1" />
+      <itemData name="Italic" defStyleNum="dsNormal" italic="1" />
+      <itemData name="InlineLiteral" defStyleNum="dsDataType" />
+      <itemData name="SubstitutionReference" defStyleNum="dsFunction" />
+      <itemData name="InlineInternalTarget" defStyleNum="dsFunction" />
+      <itemData name="FootnoteReference" defStyleNum="dsOthers" />
+      <itemData name="InterpretedText" defStyleNum="dsDecVal" />
+      <itemData name="HyperlinkReference" defStyleNum="dsOthers" />
+      <itemData name="Field" defStyleNum="dsFunction" />
+      <itemData name="FieldBold" defStyleNum="dsFunction" bold="1" />
+      <itemData name="FieldItalic" defStyleNum="dsFunction" italic="1" />
+      <itemData name="Footnote" defStyleNum="dsDataType" />
+      <itemData name="Citation" defStyleNum="dsDataType" />
+      <itemData name="HyperlinkTarget" defStyleNum="dsDataType" />
+      <itemData name="Directive" defStyleNum="dsDataType" />
+      <itemData name="SubstitutionDefinition" defStyleNum="dsDataType" />
+      <itemData name="Role" defStyleNum="dsKeyword" />
+      <itemData name="Code" defStyleNum="dsDataType" />
+      <itemData name="Comment" defStyleNum="dsComment" />
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+    <folding indentationsensitive="true" />
+    <comments>
+      <comment name="singleLine" start=".."/>
+    </comments>
+  </general>
+
+</language>
diff --git a/xml/rhtml.xml b/xml/rhtml.xml
new file mode 100644
--- /dev/null
+++ b/xml/rhtml.xml
@@ -0,0 +1,1234 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
+	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
+]>
+	
+<!--
+	RHTML syntax highlighting definition for Kate. It combines the ruby and
+	html syntax grammars. Some ideas, and the list of Rails method names were 
+	taken from an rhtml kate grammar for Quanta based on earlier versions of
+	the syntax highlighters.
+	
+	Copyright (C) 2004  by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi)
+	Copyright (C) 2004  by Stefan Lang (langstefan@gmx.at)
+	Copyright (C) 2006  by Wilbert Berendsen (wilbert@kde.nl
+	Copyright (C) 2005  by Chris Martin (linux@chriscodes.com
+	Copyright (C) 2006  by Richard Dale (rdale@foton.es)
+	
+	This library is free software; you can redistribute it and/or
+	modify it under the terms of the GNU Library General Public
+	License as published by the Free Software Foundation; either
+	version 2 of the License, or (at your option) any later version.
+	
+	This library is distributed in the hope that it will be useful,
+	but WITHOUT ANY WARRANTY; without even the implied warranty of
+	MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+	Library General Public License for more details.
+	
+	You should have received a copy of the GNU Library General Public
+	License along with this library; if not, write to the
+	Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+	Boston, MA  02110-1301, USA.
+-->
+	
+<!--
+	TODO:	* Regular expressions spanning over multiple lines
+	work only if newlines are escaped.
+	* "Nested" HERE documents aren't recognized.
+	* Division is detected correctly only, if whitespace
+	is around the "/" operator.
+	E.g.:	detected correctly:				1 / 2
+	"/" interpreted as regex start:		1/2
+-->
+	
+<!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
+<language name="Ruby/Rails/RHTML" version="6" kateversion="2.4" section="Markup" extensions="*.rhtml;*.RHTML;*.html.erb" mimetype="" author="Richard Dale rdale@foton.es" license="LGPLv2+">
+	
+	<highlighting>
+	
+		<list name="keywords">
+			<item>BEGIN</item>
+			<item>END</item>
+			<item>and</item>
+			<item>begin</item>
+			<item>break</item>
+			<item>case</item>
+			<item>defined?</item>
+			<item>do</item>
+			<item>else</item>
+			<item>elsif</item>
+			<item>end</item>
+			<item>ensure</item>
+			<item>for</item>
+			<item>if</item>
+			<item>in</item>
+			<item>include</item>
+			<item>next</item>
+			<item>not</item>
+			<item>or</item>
+			<item>redo</item>
+			<item>rescue</item>
+			<item>retry</item>
+			<item>return</item>
+			<item>then</item>
+			<item>unless</item>
+			<item>until</item>
+			<item>when</item>
+			<item>while</item>
+			<item>yield</item>
+		</list>
+		
+		<list name="access-control">
+			<item>private_class_method</item>
+			<item>private</item>
+			<item>protected</item>
+			<item>public_class_method</item>
+			<item>public</item>
+		</list>
+
+		<list name="attribute-definitions">
+			<item>attr_reader</item>
+			<item>attr_writer</item>
+			<item>attr_accessor</item>
+		</list>
+		
+		<list name="definitions">
+			<item>alias</item>
+			<item>module</item>
+			<item>class</item>
+			<item>def</item>
+			<item>undef</item>
+		</list>
+		
+		<list name="pseudo-variables">
+			<item>self</item>
+			<item>super</item>
+			<item>nil</item>
+			<item>false</item>
+			<item>true</item>
+			<item>caller</item>
+			<item>__FILE__</item>
+			<item>__LINE__</item>
+		</list>
+		
+		<list name="default-globals">
+			<item>$stdout</item>
+			<item>$defout</item>
+			<item>$stderr</item>
+			<item>$deferr</item>
+			<item>$stdin</item>
+		</list>
+		
+		<!-- Kernel module methods.
+			NOTE: Methods ending in ? or !
+				are included below as regexes.
+		-->
+		<list name="kernel-methods">
+			<!-- backquote ` -->
+			<item>abort</item>
+			<item>at_exit</item>
+			<item>autoload</item>
+			<item>autoload?</item>
+			<item>binding</item>
+			<item>block_given?</item>
+			<item>callcc</item>
+			<item>caller</item>
+			<item>catch</item>
+			<item>chomp</item>
+			<item>chomp!</item>
+			<item>chop</item>
+			<item>chop!</item>
+			<item>eval</item>
+			<item>exec</item>
+			<item>exit</item>
+			<item>exit!</item>
+			<item>fail</item>
+			<item>fork</item>
+			<item>format</item>
+			<item>getc</item>
+			<item>gets</item>
+			<item>global_variables</item>
+			<item>gsub</item>
+			<item>gsub!</item>
+			<item>iterator?</item>
+			<item>lambda</item>
+			<item>load</item>
+			<item>local_variables</item>
+			<item>loop</item>
+			<item>method_missing</item>
+			<item>open</item>
+			<item>p</item>
+			<item>print</item>
+			<item>printf</item>
+			<item>proc</item>
+			<item>putc</item>
+			<item>puts</item>
+			<item>raise</item>
+			<item>rand</item>
+			<item>readline</item>
+			<item>readlines</item>
+			<item>require</item>
+			<item>scan</item>
+			<item>select</item>
+			<item>set_trace_func</item>
+			<item>sleep</item>
+			<item>split</item>
+			<item>sprintf</item>
+			<item>srand</item>
+			<item>sub</item>
+			<item>sub!</item>
+			<item>syscall</item>
+			<item>system</item>
+			<item>test</item>
+			<item>throw</item>
+			<item>trace_var</item>
+			<item>trap</item>
+			<item>untrace_var</item>
+			<item>warn</item>
+			
+			<!-- ActionView methods from Rails docs -->
+			<item>auto_complete_field</item>
+			<item>auto_complete_result</item>
+			<item>auto_discovery_link_tag</item>
+			<item>auto_link</item>
+			<item>benchmark</item>
+			<item>button_to</item>
+			<item>cache</item>
+			<item>capture</item>
+			<item>check_box</item>
+			<item>check_box_tag</item>
+			<item>collection_select</item>
+			<item>concat</item>
+			<item>content_for</item>
+			<item>content_tag</item>
+			<item>country_options_for_select</item>
+			<item>country_select</item>
+			<item>current_page?</item>
+			<item>date_select</item>
+			<item>datetime_select</item>
+			<item>debug</item>
+			<item>define_javascript_functions</item>
+			<item>distance_of_time_in_words</item>
+			<item>distance_of_time_in_words_to_now</item>
+			<item>draggable_element</item>
+			<item>drop_receiving_element</item>
+			<item>end_form_tag</item>
+			<item>error_message_on</item>
+			<item>error_messages_for</item>
+			<item>escape_javascript</item>
+			<item>evaluate_remote_response</item>
+			<item>excerpt</item>
+			<item>file_field</item>
+			<item>file_field_tag</item>
+			<item>finish_upload_status</item>
+			<item>form</item>
+			<item>form_remote_tag</item>
+			<item>form_tag</item>
+			<item>form_tag_with_upload_progress</item>
+			<item>h</item>
+			<item>hidden_field</item>
+			<item>hidden_field_tag</item>
+			<item>highlight</item>
+			<item>human_size</item>
+			<item>image_path</item>
+			<item>image_submit_tag</item>
+			<item>image_tag</item>
+			<item>input</item>
+			<item>javascript_include_tag</item>
+			<item>javascript_path</item>
+			<item>javascript_tag</item>
+			<item>link_image_to</item>
+			<item>link_to</item>
+			<item>link_to_function</item>
+			<item>link_to_if</item>
+			<item>link_to_image</item>
+			<item>link_to_remote</item>
+			<item>link_to_unless</item>
+			<item>link_to_unless_current</item>
+			<item>mail_to</item>
+			<item>markdown</item>
+			<item>number_to_currency</item>
+			<item>number_to_human_size</item>
+			<item>number_to_percentage</item>
+			<item>number_to_phone</item>
+			<item>number_with_delimiter</item>
+			<item>number_with_precision</item>
+			<item>observe_field</item>
+			<item>observe_form</item>
+			<item>option_groups_from_collection_for_select</item>
+			<item>options_for_select</item>
+			<item>options_from_collection_for_select</item>
+			<item>pagination_links</item>
+			<item>password_field</item>
+			<item>password_field_tag</item>
+			<item>periodically_call_remote</item>
+			<item>pluralize</item>
+			<item>radio_button</item>
+			<item>radio_button_tag</item>
+			<item>register_template_handler</item>
+			<item>render</item>
+			<item>render_file</item>
+			<item>render_template</item>
+			<item>sanitize</item>
+			<item>select</item>
+			<item>select_date</item>
+			<item>select_datetime</item>
+			<item>select_day</item>
+			<item>select_hour</item>
+			<item>select_minute</item>
+			<item>select_month</item>
+			<item>select_second</item>
+			<item>select_tag</item>
+			<item>select_time</item>
+			<item>select_year</item>
+			<item>simple_format</item>
+			<item>sortable_element</item>
+			<item>start_form_tag</item>
+			<item>strip_links</item>
+			<item>stylesheet_link_tag</item>
+			<item>stylesheet_path</item>
+			<item>submit_tag</item>
+			<item>submit_to_remote</item>
+			<item>tag</item>
+			<item>text_area</item>
+			<item>text_area_tag</item>
+			<item>text_field</item>
+			<item>text_field_tag</item>
+			<item>text_field_with_auto_complete</item>
+			<item>textilize</item>
+			<item>textilize_without_paragraph</item>
+			<item>time_ago_in_words</item>
+			<item>time_zone_options_for_select</item>
+			<item>time_zone_select</item>
+			<item>truncate</item>
+			<item>update_element_function</item>
+			<item>upload_progress_status</item>
+			<item>upload_progress_text</item>
+			<item>upload_progress_update_bar_js</item>
+			<item>upload_status_progress_bar_tag</item>
+			<item>upload_status_tag</item>
+			<item>upload_status_text_tag</item>
+			<item>url_for</item>
+			<item>visual_effect</item>
+			<item>word_wrap</item>
+		</list>
+		
+		<list name="attention">
+			<item>TODO</item>
+			<item>FIXME</item>
+			<item>NOTE</item>
+		</list>
+		
+		<contexts>
+			
+		<!-- BEGIN HTML contexts -->
+			<context name="Start" attribute="Normal Text" lineEndContext="#stay">
+				<IncludeRules context="FindHTML" />
+			</context>
+			
+			<context name="FindHTML" attribute="Normal Text" lineEndContext="#stay">
+				<DetectSpaces/>
+				<DetectIdentifier/>
+				
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				<StringDetect attribute="Keyword" context="rubysourceline" String="%" />
+				
+				<StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+				<StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+				<RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
+				<RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
+				<RegExpr attribute="Element" context="CSS" String="&lt;style\b" insensitive="true" beginRegion="style" />
+				<RegExpr attribute="Element" context="JS" String="&lt;script\b" insensitive="true" beginRegion="script" />
+				<RegExpr attribute="Element" context="El Open" String="&lt;pre\b" insensitive="true" beginRegion="pre" />
+				<RegExpr attribute="Element" context="El Open" String="&lt;div\b" insensitive="true" beginRegion="div" />
+				<RegExpr attribute="Element" context="El Open" String="&lt;table\b" insensitive="true" beginRegion="table" />
+				<RegExpr attribute="Element" context="El Open" String="&lt;&name;" />
+				<RegExpr attribute="Element" context="El Close" String="&lt;/pre\b" insensitive="true" endRegion="pre" />
+				<RegExpr attribute="Element" context="El Close" String="&lt;/div\b" insensitive="true" endRegion="div" />
+				<RegExpr attribute="Element" context="El Close" String="&lt;/table\b" insensitive="true" endRegion="table" />
+				<RegExpr attribute="Element" context="El Close" String="&lt;/&name;" />
+				<!-- as long as kde gives DTDs the text/html mimetype--><IncludeRules context="FindDTDRules" />
+				<IncludeRules context="FindEntityRefs" />
+			</context>
+			
+			<context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+				<AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
+			</context>
+			
+			<context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+				<RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
+				<AnyChar attribute="Error" context="#stay" String="&amp;%" />
+			</context>
+			
+			<context name="FindAttributes" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Attribute" context="#stay" String="&name;" column="0"/>
+				<RegExpr attribute="Attribute" context="#stay" String="\s+&name;" />
+				<DetectChar attribute="Attribute" context="Value" char="=" />
+			</context>
+			
+			<context name="FindDTDRules" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
+			</context>
+			
+			
+			<context name="Comment" attribute="Comment" lineEndContext="#stay">
+				<DetectSpaces/>
+				<IncludeRules context="##Alerts" />
+				<DetectIdentifier/>
+				<StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+				<RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
+			</context>
+			
+			<context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
+				<DetectSpaces/>
+				<DetectIdentifier/>
+				<StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
+				<StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
+			</context>
+			
+			<context name="PI" attribute="Normal Text" lineEndContext="#stay">
+				<Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
+			</context>
+			
+			<context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
+				<DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
+				<DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
+			</context>
+			
+			<context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
+				<DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
+				<IncludeRules context="FindDTDRules" />
+				<StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+				<RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:-]*" beginRegion="pi" />
+				<IncludeRules context="FindPEntityRefs" />
+			</context>
+			
+			<context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
+				<DetectChar attribute="Doctype" context="#pop" char="&gt;" />
+				<DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
+				<DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
+			</context>
+			
+			<context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<DetectChar attribute="Value" context="#pop" char="&quot;" />
+				<IncludeRules context="FindPEntityRefs" />
+			</context>
+			
+			<context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<DetectChar attribute="Value" context="#pop" char="&apos;" />
+				<IncludeRules context="FindPEntityRefs" />
+			</context>
+			
+			<context name="El Open" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" />
+				<DetectChar attribute="Element" context="#pop" char="&gt;" />
+				<IncludeRules context="FindAttributes" />
+				<RegExpr attribute="Error" context="#stay" String="\S" />
+			</context>
+			
+			<context name="El Close" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<DetectChar attribute="Element" context="#pop" char="&gt;" />
+				<RegExpr attribute="Error" context="#stay" String="\S" />
+			</context>
+			
+			<context name="El Close 2" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" />
+				<RegExpr attribute="Error" context="#stay" String="\S" />
+			</context>
+			
+			<context name="El Close 3" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<DetectChar attribute="Element" context="#pop#pop#pop#pop" char="&gt;" />
+				<RegExpr attribute="Error" context="#stay" String="\S" />
+			</context>
+			
+			<context name="CSS" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="style" />
+				<DetectChar attribute="Element" context="CSS content" char="&gt;" />
+				<IncludeRules context="FindAttributes" />
+				<RegExpr attribute="Error" context="#stay" String="\S" />
+			</context>
+			
+			<context name="CSS content" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<RegExpr attribute="Element" context="El Close 2" String="&lt;/style\b" insensitive="true" endRegion="style" />
+				<IncludeRules context="##CSS" includeAttrib="true"/>
+			</context>
+			
+			<context name="JS" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="script" />
+				<DetectChar attribute="Element" context="JS content" char="&gt;" />
+				<IncludeRules context="FindAttributes" />
+				<RegExpr attribute="Error" context="#stay" String="\S" />
+			</context>
+			
+			<context name="JS content" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<RegExpr attribute="Element" context="El Close 2" String="&lt;/script\b" insensitive="true" endRegion="script" />
+				<RegExpr attribute="Comment" context="JS comment close" String="//(?=.*&lt;/script\b)" insensitive="true" />
+				<IncludeRules context="Normal##JavaScript" includeAttrib="true"/>
+			</context>
+			
+			<context name="JS comment close" attribute="Comment" lineEndContext="#pop">
+				<RegExpr attribute="Element" context="El Close 3" String="&lt;/script\b" insensitive="true" endRegion="script" />
+				<IncludeRules context="##Alerts" />
+			</context>
+			
+			<context name="Value" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="Value NQ">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<DetectChar attribute="Value" context="Value DQ" char="&quot;" />
+				<DetectChar attribute="Value" context="Value SQ" char="&apos;" />
+				<DetectSpaces />
+			</context>
+			
+			<context name="Value NQ" attribute="Normal Text" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<IncludeRules context="FindEntityRefs" />
+				<RegExpr attribute="Value" context="#stay" String="/(?!&gt;)" />
+				<RegExpr attribute="Value" context="#stay" String="[^/&gt;&lt;&quot;&apos;\s]" />
+			</context>
+			
+			<context name="Value DQ" attribute="Value" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<DetectChar attribute="Value" context="#pop#pop" char="&quot;" />
+				<IncludeRules context="FindEntityRefs" />
+			</context>
+			
+			<context name="Value SQ" attribute="Value" lineEndContext="#stay">
+				<RegExpr attribute="Keyword" context="rubysource" String="&lt;%=?" />
+				
+				<DetectChar attribute="Value" context="#pop#pop" char="&apos;" />
+				<IncludeRules context="FindEntityRefs" />
+  			</context>	
+		<!-- END HTML contexts -->
+		
+		<!-- BEGIN Ruby contexts -->
+		
+			<!-- A single line of ruby source after a '%' ERB tag -->
+			<context name="rubysourceline" attribute="RUBY RAILS ERB Text" lineEndContext="#pop">
+				<IncludeRules context="rubysource" />
+			</context>
+			
+			<context name="rubysource" attribute="RUBY RAILS ERB Text" lineEndContext="#stay">
+				<!-- ruby ignores newline after \ -->
+				<LineContinue attribute="Ruby Normal Text" context="Line Continue"/>
+				
+				<RegExpr attribute="Keyword" context="#pop" String="-?%&gt;" />
+				
+				<!-- __END__ token on own line. -->
+				<RegExpr attribute="Keyword" String="__END__$" context="DATA" column="0"/>
+				
+				<!-- "shebang" line -->
+				<RegExpr attribute="Keyword" String="#!\/.*" context="#stay" column="0"/>
+				
+				<!-- "def" - "end" blocks -->
+				<!-- check for statement modifiers with regexes -->
+				<RegExpr attribute="Keyword" String="(\=|\(|\[|\{)\s*(if|unless|while|until)\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block" firstNonSpace="true"/>
+				<RegExpr attribute="Keyword" String="\;\s*(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>
+				<RegExpr attribute="Keyword" String="\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bclass\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bmodule\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bbegin\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bcase\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bdo\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bdef\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bend\b" context="#stay" endRegion="def block"/>
+				<!-- elsif/else close the current block and start a new one -->
+				<RegExpr attribute="Keyword" String="(\b|^\s*)(else|elsif|rescue|ensure)(\s+|$)" context="#stay" endRegion="def block" beginRegion="def block"/>
+				
+				<StringDetect attribute="Operator" String="..." context="#stay"/>
+				<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>
+				
+				<!-- marks a message (being sent, not defined) -->
+				<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="#stay"/>
+				
+				<!-- Check for "ASCII code operator". e.g.: ?a -->
+				<RegExpr attribute="Dec" String="\s\?(\\M\-)?(\\C\-)?\\?\S" context="#stay"/>
+				
+				<keyword attribute="Keyword" String="keywords" context="#stay"/>
+				<keyword attribute="Attribute Definition" String="attribute-definitions"  context="#stay"/>
+				<keyword attribute="Access Control" String="access-control" context="#stay"/>
+				<keyword attribute="Definition" String="definitions"  context="#stay" />
+				<keyword attribute="Pseudo variable" String="pseudo-variables"  context="#stay"/>
+				<keyword attribute="Default globals" String="default-globals" context="#stay"/>
+				<keyword attribute="Kernel methods" String="kernel-methods" context="#stay"/>
+				
+				<!-- (global) vars starting with $
+					Match them before $_.
+					-->
+				<RegExpr attribute="Global Variable" String="\$[a-zA-Z_0-9]+" context="#stay"/>
+				<RegExpr attribute="Global Variable" String="\$\-[a-zA-Z_]\b" context="#stay"/>
+				<!-- special-character globals -->
+				<RegExpr attribute="Default globals" String="\$[\d_*`\!:?'/\\\-\&amp;]" context="#stay"/>
+				<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="#stay"/>
+				<!-- Generally a module or class name like "File", "MyModule_1", .. -->
+				<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="#stay"/>
+				
+				<RegExpr attribute="Hex" String="\b\-?0[xX][_0-9a-fA-F]+" context="#stay"/>
+				<RegExpr attribute="Bin" String="\b\-?0[bB][_01]+" context="#stay"/>
+				<RegExpr attribute="Octal" String="\b\-?0[1-7][_0-7]*" context="#stay"/>
+				<RegExpr attribute="Float" String="\b\-?[0-9][0-9_]*\.[0-9][0-9_]*([eE]\-?[1-9][0-9]*(\.[0-9]*)?)?" context="#stay"/>
+				<RegExpr attribute="Dec" String="\b\-?[1-9][0-9_]*\b" context="#stay"/>
+				<Int attribute="Dec" context="#stay"/>
+				<HlCChar attribute="Char" context="#stay"/>
+				
+				<!-- Check for =begin before assignment operator. -->
+				<StringDetect attribute="Blockcomment" String="=begin" context="Embedded documentation" beginRegion="comment block" column="0"/>
+				
+				<!-- recognize the beginning of a HEREDOC
+					This uses new features in Kate 2.3 and later
+					
+					There is no other chance of keeping heredoc apart from the
+					push operator '<<' than requiring to put space between the operator
+										and the string.
+										-->
+				<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*&lt;&lt;-(?=\w+|[&quot;'])" beginRegion="HereDocument" />
+				<RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'])" beginRegion="HereDocument" />
+				
+				<DetectChar attribute="Operator" char="." context="#stay"/>
+				<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>
+				<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
+				<RegExpr attribute="Operator" String="\s[\?\:\%/]\s" context="#stay"/>
+				<RegExpr attribute="Operator" String="[|&amp;&lt;&gt;\^\+*~\-=]+" context="#stay"/>
+				<!-- regexp hack -->
+				<RegExpr attribute="Operator" String="\s!" context="#stay"/>
+				<RegExpr attribute="Operator" String="/=\s" context="#stay" insensitive="0"/>
+				<StringDetect attribute="Operator" String="%=" context="#stay" insensitive="0"/>
+				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>
+				
+				<RegExpr attribute="Symbol" String=":[a-zA-Z_][a-zA-Z0-9_]*" context="#stay"/>
+				
+				<DetectChar attribute="String" char="&quot;" context="Quoted String"/>
+				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
+				<DetectChar attribute="Command" char="`" context="Command String"/>
+				
+				<StringDetect attribute="Normal Text" String="?#" context="#stay"/>
+				
+				<RegExpr attribute="Comment" String="#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/>
+				<RegExpr attribute="Comment" String="#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>
+				<RegExpr attribute="Comment" String="#"  context="Comment Line" firstNonSpace="true"/>
+				<RegExpr attribute="Comment" String="\s#"  context="General Comment"/>
+				
+				<RegExpr attribute="Delimiter" String="[\[\]]+"  context="#stay"/>
+				<DetectChar attribute="Delimiter" char="{" context="#stay" beginRegion="def block"/>
+				<DetectChar attribute="Delimiter" char="}" context="#stay" endRegion="def block"/>
+				
+				<RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="#stay"/>
+				<RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="#stay"/>
+				
+				<!-- handle the different regular expression formats -->
+				<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>
+				
+				<!-- recognize the beginning of a general delimited input format -->
+				<!-- this moves to the next context to separate out the exact nature of the GDL input -->
+				<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[Qqxw]?[^\s&gt;])" beginRegion="GdlInput" />
+			</context>
+			
+			<context name="Line Continue" attribute="Ruby Normal Text" lineEndContext="#pop">
+				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" firstNonSpace="true"/>
+				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" firstNonSpace="true"/>
+				<IncludeRules context="rubysource"/>
+			</context>
+			
+			<context name="Quoted String" attribute="String" lineEndContext="#stay">
+				<StringDetect attribute="String" String="\\" context="#stay"/>
+				<RegExpr attribute="String" String="\\\&quot;" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<!--HlCChar attribute="Char" context="#pop"/-->
+				<DetectChar char="&quot;" attribute="String" context="#pop"/>
+			</context>
+			
+			<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay">
+				<!-- <HlCChar attribute="Char" context="#pop"/> -->
+				<StringDetect attribute="String" String="\\" context="#stay"/>
+				<RegExpr attribute="String" String="\\\'" context="#stay"/>
+				<DetectChar char="'" attribute="Raw String" context="#pop"/>
+			</context>
+			
+			<context name="Command String" attribute="Command" lineEndContext="#stay">
+				<StringDetect attribute="String" String="\\" context="#stay"/>
+				<RegExpr attribute="String" String="\\\`" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<HlCChar attribute="Char" context="#pop"/>
+				<DetectChar char="`" attribute="Command" context="#pop"/>
+			</context>
+			
+			<context name="Embedded documentation" attribute="Ruby Comment" lineEndContext="#stay">
+				<StringDetect attribute="Ruby Comment" String="=end" context="#pop" endRegion="comment block" column="0"/>
+			</context>
+			
+			<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">
+				<RegExpr attribute="Regular Expression" String="\\\/" context="#stay"/>
+				<RegExpr attribute="Regular Expression" String="[^\\]$" context="#pop"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="#pop"/>
+			</context>
+			
+			<!-- Substitutions can be nested -->
+			<context name="Subst" attribute="Ruby Normal Text" lineEndContext="#stay">
+				<DetectChar attribute="Substitution" char="}" context="#pop"/>
+				<!-- Highlight substitution as code. -->
+				<IncludeRules context="rubysource"/>
+			</context>
+			
+			<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">
+				<!-- Check for e.g.: "#@var#@@xy" -->
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/>
+				<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>
+			</context>
+			
+			<!-- This handles access of nested module classes and class methods -->
+			<context name="Member Access" attribute="Member" lineEndContext="#pop">
+				<!-- marks a message (being sent, not defined) -->
+				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])" context="#pop"/>
+				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?" context="#stay"/>
+				<RegExpr attribute="Constant" String="[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])" context="#pop"/>
+				<RegExpr attribute="Constant" String="[A-Z]+_*([0-9]|[a-z])\w*" context="#stay"/>
+				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" context="#pop"/>
+				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*" context="#stay"/>
+				<Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>
+				<DetectChar attribute="Member" char="." context="#stay"/>
+				
+				<AnyChar attribute="Operator" String="=+-*/%|&amp;[]{}~" context="#pop"/>
+				<DetectChar attribute="Ruby Comment" char="#" context="#pop"/>
+				<AnyChar attribute="Ruby Normal Text" String="()\" context="#pop"/>
+				<RegExpr attribute="Member" String="\W" context="#pop"/>
+			</context>
+			
+			<context name="Comment Line" attribute="Ruby Comment" lineEndContext="#pop">
+				<RegExpr attribute="Ruby Comment" String="\w\:\:\s" context="RDoc Label"/>
+				<keyword attribute="Alert" String="attention" context="#stay"/>
+				<RegExpr attribute="Keyword" context="#pop#pop" String="-?%&gt;" />
+			</context>
+			
+			<context name="General Comment" attribute="Ruby Comment" lineEndContext="#pop">
+				<keyword attribute="Dec" String="attention" context="#stay"/>
+			</context>
+			
+			<context name="RDoc Label" attribute="RDoc Value" lineEndContext="#pop"/>
+			
+			<!-- HEREDOC support
+				The contexts below support both normal and indented heredocs
+				-->
+			<!-- here we markup the heredoc markers -->
+			<context name="find_heredoc" attribute="Ruby Normal Text" lineEndContext="#pop" >
+				<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" />
+				<RegExpr attribute="Keyword" context="normal_heredoc" String="&quot;?(\w+)&quot;?" />
+			</context>
+			<context name="find_indented_heredoc" attribute="Ruby Normal Text" lineEndContext="#pop" >
+				<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" />
+				<RegExpr attribute="Keyword" context="indented_heredoc" String="&quot;?(\w+)&quot;?" />
+			</context>
+			<!-- these are the real heredoc contexts -->
+			<context name="indented_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true">
+				<!--				<RegExpr attribute="Keyword" context="#pop#pop" String="^\s*%1$" dynamic="true" endRegion="HereDocument"/>-->
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
+				<IncludeRules context="heredoc_rules" />
+			</context>
+			<context name="apostrophed_indented_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true">
+				<!--				<RegExpr attribute="Keyword" context="#pop#pop" String="^\s*%1$" dynamic="true" endRegion="HereDocument"/>-->
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
+			</context>
+			
+			<context name="normal_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true">
+				<!--				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument"/>-->
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" column="0"/>
+				<IncludeRules context="heredoc_rules" />
+			</context>
+			<context name="apostrophed_normal_heredoc" attribute="Ruby Normal Text" lineEndContext="#stay" dynamic="true">
+				<!--				<RegExpr attribute="Keyword" context="#pop#pop" String="^%1$" dynamic="true" endRegion="HereDocument"/>-->
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" column="0"/>
+			</context>
+			
+			<!-- rules for heredoc types -->
+			<context name="heredoc_rules" attribute="Ruby Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+			
+			<!-- General delimited input support
+				The contexts below handle the various gdl formats
+				-->
+			<context name="find_gdl_input" attribute="Ruby Normal Text" lineEndContext="#pop">
+				
+				<!-- handle token arrays -->
+				<RegExpr attribute="GDL input" context="gdl_token_array_1" String="w\(" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_2" String="w\{" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_3" String="w\[" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_4" String="w&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" />
+				
+				<!-- handle apostrophed strings -->
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_1" String="q\(" />
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_2" String="q\{" />
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_3" String="q\[" />
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_4" String="q&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" />
+				
+				<!-- handle shell commands -->
+				<RegExpr attribute="GDL input" context="gdl_shell_command_1" String="x\(" />
+				<RegExpr attribute="GDL input" context="gdl_shell_command_2" String="x\{" />
+				<RegExpr attribute="GDL input" context="gdl_shell_command_3" String="x\[" />
+				<RegExpr attribute="GDL input" context="gdl_shell_command_4" String="x&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" />
+				
+				<!-- handle regular expressions -->
+				<RegExpr attribute="GDL input" context="gdl_regexpr_1" String="r\(" />
+				<RegExpr attribute="GDL input" context="gdl_regexpr_2" String="r\{" />
+				<RegExpr attribute="GDL input" context="gdl_regexpr_3" String="r\[" />
+				<RegExpr attribute="GDL input" context="gdl_regexpr_4" String="r&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" />
+				
+				<!-- handle double-quoted strings -->
+				<!-- 
+					be careful to make this the last GDL ruleset, because the rule for
+					the short form %?foo? will otherwise catch any of the other formats
+					-->
+				<RegExpr attribute="GDL input" context="gdl_dq_string_1" String="Q?\(" />
+				<RegExpr attribute="GDL input" context="gdl_dq_string_2" String="Q?\{" />
+				<RegExpr attribute="GDL input" context="gdl_dq_string_3" String="Q?\[" />
+				<RegExpr attribute="GDL input" context="gdl_dq_string_4" String="Q?&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" />
+				
+			</context>
+			<!-- double-quoted string specific contexts follow -->
+			<context name="gdl_dq_string_1" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_1_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
+				<DetectChar attribute="String" context="#pop" char=")" />
+			</context>
+			<!-- note that here substitution should win over nesting -->
+			<context name="gdl_dq_string_2" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
+			</context>
+			<context name="gdl_dq_string_2_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
+				<DetectChar attribute="String" context="#pop" char="}" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+			
+			<context name="gdl_dq_string_3" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_3_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
+				<DetectChar attribute="String" context="#pop" char="]" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+			
+			<context name="gdl_dq_string_4" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_4_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
+				<DetectChar attribute="String" context="#pop" char="&gt;" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+			
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+				-->
+			<context name="gdl_dq_string_5" attribute="String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="dq_string_rules" />
+				<RegExpr attribute="String" String="\\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+			<!-- rules to be included in all dq_string contexts -->
+			<context name="dq_string_rules" attribute="String" lineEndContext="#stay" >
+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+			
+			<!-- token array specific contexts -->
+			
+			<context name="gdl_token_array_1" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_1_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
+				<DetectChar attribute="String" context="#pop" char=")" />
+			</context>
+			
+			<context name="gdl_token_array_2" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
+			</context>
+			<context name="gdl_token_array_2_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
+				<DetectChar attribute="String" context="#pop" char="}" />
+			</context>
+			
+			<context name="gdl_token_array_3" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_3_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
+				<DetectChar attribute="String" context="#pop" char="]" />
+			</context>
+			
+			<context name="gdl_token_array_4" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_4_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
+				<DetectChar attribute="String" context="#pop" char="&gt;" />
+			</context>
+			
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+				-->
+			<context name="gdl_token_array_5" attribute="String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="token_array_rules" />
+				<RegExpr attribute="String" String="\\%1" context="#stay" dynamic="true"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+			
+			<!-- rules to be included in all token_array contexts -->
+			<context name="token_array_rules" attribute="String" lineEndContext="#stay" >
+				<StringDetect attribute="String" String="\\" context="#stay"/>
+			</context>
+			
+			<!-- apostrophed string specific contexts -->
+			
+			<context name="gdl_apostrophed_1" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_1_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
+				<DetectChar attribute="Raw String" context="#pop" char=")" />
+			</context>
+			
+			<context name="gdl_apostrophed_2" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
+			</context>
+			<context name="gdl_apostrophed_2_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
+				<DetectChar attribute="Raw String" context="#pop" char="}" />
+			</context>
+			
+			<context name="gdl_apostrophed_3" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_3_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
+				<DetectChar attribute="Raw String" context="#pop" char="]" />
+			</context>
+			
+			<context name="gdl_apostrophed_4" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_4_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
+				<DetectChar attribute="Raw String" context="#pop" char="&gt;" />
+			</context>
+			
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+				-->
+			<context name="gdl_apostrophed_5" attribute="Raw String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="apostrophed_rules" />
+				<RegExpr attribute="Raw String" String="\\%1" context="#stay" dynamic="true"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+			
+			<!-- rules to be included in all apostrophed contexts -->
+			<context name="apostrophed_rules" attribute="Raw String" lineEndContext="#stay" >
+				<Detect2Chars attribute="Raw String" char="\" char1="\" context="#stay"/>
+			</context>
+			
+			<!-- shell command specific contexts -->
+			
+			<context name="gdl_shell_command_1" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_1_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
+				<DetectChar attribute="Command" context="#pop" char=")" />
+			</context>
+			
+			<context name="gdl_shell_command_2" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
+			</context>
+			<context name="gdl_shell_command_2_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
+				<DetectChar attribute="Command" context="#pop" char="}" />
+			</context>
+			
+			<context name="gdl_shell_command_3" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_3_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
+				<DetectChar attribute="Command" context="#pop" char="]" />
+			</context>
+			
+			<context name="gdl_shell_command_4" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_4_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
+				<DetectChar attribute="Command" context="#pop" char="&gt;" />
+			</context>
+			
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+				-->
+			<context name="gdl_shell_command_5" attribute="Command" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="shell_command_rules" />
+				<RegExpr attribute="Command" String="\\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+			
+			<!-- rules to be included in all shell_command contexts -->
+			<context name="shell_command_rules" attribute="Command" lineEndContext="#stay" >
+				<Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+			
+			<!-- regular expression specific contexts -->
+			
+			<context name="gdl_regexpr_1" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\)[uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_1_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
+				<DetectChar attribute="Regular Expression" context="#pop" char=")" />
+			</context>
+			
+			<context name="gdl_regexpr_2" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="}" context="#stay"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\}[uiomxn]*" endRegion="GdlInput" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
+			</context>
+			<context name="gdl_regexpr_2_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="}" />
+			</context>
+			
+			<context name="gdl_regexpr_3" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\][uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_3_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="]" />
+			</context>
+			
+			<context name="gdl_regexpr_4" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="&gt;[uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_4_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="&gt;" />
+			</context>
+			
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+				-->
+			<context name="gdl_regexpr_5" attribute="Regular Expression" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="regexpr_rules" />
+				<RegExpr attribute="Regular Expression" String="\\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1[uiomxn]*" dynamic="true" endRegion="GdlInput" />
+			</context>
+			
+			<!-- rules to be included in all regexpr contexts -->
+			<context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" >
+				<Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+			
+			<!-- END of General delimited input support -->
+			
+			<!-- handle data in script -->
+			<context name="DATA" attribute="Data" lineEndContext="#stay"/>
+		<!-- END Ruby contexts -->			
+		</contexts>
+		
+		<itemDatas>
+		<!-- BEGIN Ruby itemData -->
+			<itemData name="Ruby Normal Text" defStyleNum="dsNormal"/>
+			
+			<itemData name="Keyword" defStyleNum="dsKeyword"/>
+			<itemData name="Attribute Definition" defStyleNum="dsOthers"/>
+			<itemData name="Access Control" defStyleNum="dsKeyword" color="#0000FF"/>
+			<itemData name="Definition" defStyleNum="dsKeyword"/>
+			<itemData name="Pseudo variable" defStyleNum="dsDecVal"/>
+			
+			<itemData name="Dec" defStyleNum="dsDecVal"/>
+			<itemData name="Float" defStyleNum="dsFloat"/>
+			<itemData name="Char" defStyleNum="dsChar"/>
+			<itemData name="Octal" defStyleNum="dsBaseN"/>
+			<itemData name="Hex" defStyleNum="dsBaseN"/>
+			<itemData name="Bin" defStyleNum="dsBaseN"/>
+			
+			<itemData name="Symbol" defStyleNum="dsString" color="#D40000"/>
+			<itemData name="String" defStyleNum="dsString"/>
+			<itemData name="Raw String" defStyleNum="dsString" color="#DD4A4A" selColor="#DD4A4A"/>
+			<itemData name="Command" defStyleNum="dsString" color="#AA3000"/>
+			<itemData name="Message" defStyleNum="dsNormal" color="#4000A7"/> <!-- #4A00C0 -->
+			<itemData name="Regular Expression" defStyleNum="dsOthers" color="#4A5704"/>
+			<itemData name="Substitution"	defStyleNum="dsOthers"/>
+			<itemData name="Data" defStyleNum="dsNormal"/>
+			<!-- short for 'general delimited input' -->
+			<itemData name="GDL input" defStyleNum="dsOthers" />
+			
+			<itemData name="Default globals" defStyleNum="dsDataType" color="#C00000" bold="1"/>
+			<itemData name="Global Variable" defStyleNum="dsDataType" color="#C00000"/>
+			<itemData name="Global Constant" defStyleNum="dsDataType" color="#bb1188" bold="1"/>
+			<itemData name="Constant" defStyleNum="dsDataType"/>
+			<itemData name="Constant Value" defStyleNum="dsDataType" color="#bb1188"/>
+			<itemData name="Kernel methods" defStyleNum="dsNormal" color="#000080" selColor="#ffffff"/> <!-- #CC0E86 -->
+			<itemData name="Member" defStyleNum="dsNormal"/>
+			<itemData name="Instance Variable" defStyleNum="dsOthers"/>
+			<itemData name="Class Variable" defStyleNum="dsOthers"/>
+			
+			<itemData name="Ruby Comment" defStyleNum="dsComment"/>
+			<itemData name="Blockcomment" defStyleNum="dsComment"/>
+			<itemData name="Region Marker" defStyleNum="dsNormal" color="#0000ff"/>
+			<itemData name="RDoc Value" defStyleNum="dsOthers"/>
+			
+			<!-- use these to mark errors and alerts things -->
+			<itemData name="Error" defStyleNum="dsError" />
+			<itemData name="Alert" defStyleNum="dsAlert" />
+
+			<itemData name="Delimiter" defStyleNum="dsChar"/>
+			<itemData name="Expression" defStyleNum="dsOthers"/>
+			<itemData name="Operator" defStyleNum="dsChar"/>
+		<!-- END Ruby itemData -->
+			
+		<!-- BEGIN HTML itemData -->
+			<itemData name="Normal Text" defStyleNum="dsNormal" />
+			<itemData name="Comment" defStyleNum="dsComment" />
+			<itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
+			<itemData name="Processing Instruction" defStyleNum="dsKeyword" />
+			<itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
+			<itemData name="Element" defStyleNum="dsKeyword" />
+			<itemData name="Attribute" defStyleNum="dsOthers" />
+			<itemData name="Value" defStyleNum="dsString" />
+			<itemData name="EntityRef" defStyleNum="dsDecVal" />
+			<itemData name="PEntityRef" defStyleNum="dsDecVal" />
+			<itemData name="Error" defStyleNum="dsError" />
+		<!-- END HTML itemData -->
+		
+		</itemDatas>
+	</highlighting>
+	<general>
+		<comments>
+			<comment name="multiLine" start="&lt;!--" end="--&gt;" />
+		</comments>
+		<keywords casesensitive="1" weakDeliminator="!?"/> 
+	</general>
+</language>
diff --git a/xml/roff.xml b/xml/roff.xml
new file mode 100644
--- /dev/null
+++ b/xml/roff.xml
@@ -0,0 +1,197 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+  <!ENTITY roffidc "[^]\s]">
+  <!ENTITY roffid  "(&roffidc;|\(&roffidc;{2}|\[&roffidc;+\])">
+  <!ENTITY roffnum "([0-9]+)">
+  <!ENTITY argsep1 "([^\\]|\\[&#37; |\^{}'`\-!?@)/,&amp;:~0E_acdeprtu])">
+  <!ENTITY argsep2 "([^\\0-9]|\\[&#37;:{}'`\-_!@/cep])">
+]>
+<language name="Roff" section="Markup" version="2" kateversion="2.4" extensions="" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="GPL">
+
+  <highlighting>
+
+    <list name="layout">
+      <item>br</item>
+      <item>sp</item>
+    </list>
+
+    <list name="formatting">
+    </list>
+
+    <list name="gnuext">
+    </list>
+
+    <contexts>
+
+      <!-- root context -->
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="DetectComments"/>
+        <DetectChar attribute="Other Macros" context="DetectDirective" char="." column="0"/>
+        <IncludeRules context="DetectOthers"/>
+      </context>
+
+      <context name="DetectComments" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="Comment" String="\.\s*\\&quot;" column="0"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="\\" char1="&quot;"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="\\" char1="#"/>
+      </context>
+
+      <!-- catch glyphc, registers, strings, etc -->
+      <context name="DetectOthers" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="DetectComments"/>
+        <DetectChar attribute="Escape" context="DetectEscape" char="\\" lookAhead="true"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+      </context>
+
+      <!-- detect escapes -->
+      <context name="DetectEscape" attribute="Error" lineEndContext="#pop">
+        <RegExpr attribute="Register" context="#pop" String="\\(\*|n[+-]?)&roffid;"/>
+        <RegExpr attribute="Font" context="#pop" String="\\[fF]&roffid;"/>
+        <RegExpr attribute="Font" context="#pop" String="\\f([0-9]|\([0-9][0-9]|\[[0-9]+\])"/>
+        <RegExpr attribute="Font" context="#pop" String="\\s(\[([1-3][0-9]|[04-9])\]|[04-9]|[+-][0-9]|([+-]?\(|\([+-])[0-9][0-9])"/>
+        <Detect2Chars attribute="Escape" context="#pop" char="\\" char1="\\"/>
+        <RegExpr attribute="Escape" context="#pop" String="\\(\$[0-9*@]|[.:&#37; |^{}_!?@)/,&amp;:~0acdeEprtu])"/>
+        <RegExpr attribute="Escape" context="Argument" String="\\[ABDXZbow]&argsep1;"/>
+        <RegExpr attribute="Escape" context="#pop" String="\\[gkmMVYz]&roffid;"/>
+        <RegExpr attribute="Escape" context="#pop" String="\\O([0-4]|\[5[lrci][^]]\])"/>
+        <RegExpr attribute="Escape" context="Measurement" String="\\[hHSvx]&argsep1;"/>
+        <RegExpr attribute="Escape" context="Measurement" String="\\[lL]&argsep1;\|?"/> <!-- TODO - optional trailing &glyph; -->
+        <RegExpr attribute="Escape" context="Argument" String="\\R&argsep1;"/> <!-- TODO - &roffid; (register), measurement -->
+        <RegExpr attribute="Glyph" context="GlyphArgument" String="\\C&argsep1;"/>
+        <RegExpr attribute="Glyph" context="#pop" String="\\N&argsep2;[0-9]+\1"/>
+        <RegExpr attribute="Glyph" context="#pop" String="\\&roffid;"/>
+        <RegExpr attribute="Escape" context="#pop" String="\\$"/>
+        <DetectChar attribute="Error" context="#pop" char="\\"/>
+      </context>
+
+      <!-- directive start -->
+      <context name="DetectDirective" attribute="Other Macros" lineEndContext="#pop">
+        <keyword attribute="Layout Macros" context="Directive" String="layout"/>
+        <keyword attribute="Format Macros" context="Directive" String="formatting"/>
+        <keyword attribute="GNU Macros" context="Directive" String="gnuext"/>
+        <RegExpr attribute="Other Macros" context="dsDirective" String="\s*ds\b" column="1"/>
+        <RegExpr attribute="Other Macros" context="deDirective" String="\s*de\b" column="1" beginRegion="de"/>
+        <RegExpr attribute="Other Macros" context="daDirective" String="\s*da(?=\s+[A-Za-z]+)" column="1" beginRegion="di"/>
+        <RegExpr attribute="Other Macros" context="diDirective" String="\s*di(?=\s+[A-Za-z]+)" column="1" beginRegion="di"/>
+        <RegExpr attribute="Other Macros" context="Directive" String="\s*[A-Za-z]+\b" column="1"/>
+      </context>
+
+      <!-- comment -->
+      <context name="Comment" attribute="Comment" lineEndContext="#pop">
+        <IncludeRules context="##Alerts"/>
+      </context>
+
+      <!-- error -->
+      <context name="Error" attribute="Error" lineEndContext="#stay"/>
+
+      <!-- generic directive -->
+      <context name="Directive" attribute="Identifier" lineEndContext="#pop">
+        <Float attribute="Number" context="#stay"/>
+        <Int attribute="Number" context="#stay"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="\\" char1="&quot;"/>
+        <IncludeRules context="DetectOthers"/>
+      </context>
+
+      <!-- quoted string -->
+      <context name="String" attribute="String" lineEndContext="#pop">
+        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="&quot;"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+        <IncludeRules context="DetectOthers"/>
+      </context>
+
+      <!-- \!, \? escapes -->
+      <context name="LiteralSL" attribute="Normal Text" lineEndContext="#pop"/>
+      <context name="LiteralIL" attribute="Normal Text" lineEndContext="Error">
+        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="\\"/>
+        <Detect2Chars attribute="Escape" context="#pop" char="\\" char1="?"/>
+      </context>
+
+      <!-- escape argument -->
+      <context name="Argument" attribute="String" lineEndContext="Error" dynamic="true">
+        <RegExpr attribute="Escape" context="#pop#pop" String="%1" dynamic="true"/>
+        <IncludeRules context="DetectOthers"/>
+      </context>
+
+      <!-- glyph escape argument -->
+      <context name="GlyphArgument" attribute="Glyph" lineEndContext="Error" dynamic="true">
+        <RegExpr attribute="Glyph" context="#pop#pop" String="%1" dynamic="true"/>
+      </context>
+
+      <!-- measurement (or expression) escape argument -->
+      <context name="Measurement" attribute="Error" lineEndContext="Error" dynamic="true">
+        <RegExpr attribute="Escape" context="#pop#pop" String="%1" dynamic="true"/>
+        <!-- TODO -->
+      </context>
+
+      <!-- .de directive -->
+      <context name="deDirective" attribute="Identifier" lineEndContext="deBody"/>
+      <context name="deBody" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars attribute="Other Macros" context="#pop#pop" char="." char1="." column="0" endRegion="de"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <!-- .di directives -->
+      <context name="diDirective" attribute="Identifier" lineEndContext="diBody"/>
+      <context name="diBody" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Other Macros" context="#pop#pop" String="\.\s*di\b" column="0" endRegion="di"/>
+        <Detect2Chars attribute="Escape" context="LiteralSL" char="\\" char1="!"/>
+        <Detect2Chars attribute="Escape" context="LiteralIL" char="\\" char1="?"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <!-- .da directives -->
+      <context name="daDirective" attribute="Identifier" lineEndContext="daBody"/>
+      <context name="daBody" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Other Macros" context="#pop#pop" String="\.\s*da\b" column="0" endRegion="di"/>
+        <Detect2Chars attribute="Escape" context="LiteralSL" char="\\" char1="!"/>
+        <Detect2Chars attribute="Escape" context="LiteralIL" char="\\" char1="?"/>
+        <IncludeRules context="Normal"/>
+      </context>
+
+      <!-- .ds directive -->
+      <context name="dsDirective" attribute="Identifier" lineEndContext="#pop">
+        <Int attribute="Number" context="#stay"/>
+        <Float attribute="Number" context="#stay"/>
+        <Detect2Chars attribute="Comment" context="Comment" char="\\" char1="&quot;"/>
+        <DetectChar attribute="String" context="dsString" char="&quot;"/>
+        <IncludeRules context="DetectOthers"/>
+      </context>
+
+      <!-- .ds quoted value -->
+      <context name="dsString" attribute="String" lineEndContext="#pop">
+        <IncludeRules context="DetectOthers"/>
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"    defStyleNum="dsNormal"/>
+      <itemData name="Comment"        defStyleNum="dsComment"/>
+      <itemData name="Layout Macros"  defStyleNum="dsKeyword"/>
+      <itemData name="Format Macros"  defStyleNum="dsKeyword"/>
+      <itemData name="GNU Macros"     defStyleNum="dsDataType"/>
+      <itemData name="Other Macros"   defStyleNum="dsFunction"/>
+      <itemData name="Identifier"     defStyleNum="dsString"/>
+      <itemData name="Number"         defStyleNum="dsDecVal"/>
+      <itemData name="Register"       defStyleNum="dsOthers"/>
+      <itemData name="Font"           defStyleNum="dsOthers"/>
+      <itemData name="Glyph"          defStyleNum="dsOthers"/>
+      <itemData name="Escape"         defStyleNum="dsChar"/>
+      <itemData name="String"         defStyleNum="dsString"/>
+      <itemData name="Error"          defStyleNum="dsError"/>
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+
+    <comments>
+      <comment name="singleLine" start=".\&quot;" />
+    </comments>
+
+    <keywords casesensitive="1"/>
+
+  </general>
+
+</language>
diff --git a/xml/ruby.xml b/xml/ruby.xml
new file mode 100644
--- /dev/null
+++ b/xml/ruby.xml
@@ -0,0 +1,924 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<!--
+  Ruby syntax highlighting definition for Kate.
+
+  Copyright (C) 2004  by Sebastian Vuorinen (sebastian dot vuorinen at helsinki dot fi)
+  Copyright (C) 2004  by Stefan Lang (langstefan@gmx.at)
+  Copyright (C) 2008  by Robin Pedersen (robinpeder@gmail.com)
+  Copyright (C) 2011  by Miquel Sabaté (mikisabate@gmail.com)
+
+  This library is free software; you can redistribute it and/or
+  modify it under the terms of the GNU Library General Public
+  License as published by the Free Software Foundation; either
+  version 2 of the License, or (at your option) any later version.
+
+  This library is distributed in the hope that it will be useful,
+  but WITHOUT ANY WARRANTY; without even the implied warranty of
+  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+  Library General Public License for more details.
+
+  You should have received a copy of the GNU Library General Public
+  License along with this library; if not, write to the
+  Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
+  Boston, MA  02110-1301, USA.
+-->
+
+<!--
+    TODO: Division after gdl contexts is interpreted as regexp
+-->
+
+<!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". -->
+<language name="Ruby" section="Scripts"
+	  version="5" kateversion="3.3"
+	  extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile"
+	  mimetype="application/x-ruby"
+	  style="ruby" indenter="ruby"
+	  author="Stefan Lang (langstefan@gmx.at), Sebastian Vuorinen (sebastian.vuorinen@helsinki.fi), Robin Pedersen (robinpeder@gmail.com), Miquel Sabaté (mikisabate@gmail.com)" license="LGPLv2+">
+
+	<highlighting>
+
+		<list name="keywords">
+			<item>BEGIN</item>
+			<item>END</item>
+			<item>and</item>
+			<item>begin</item>
+			<item>break</item>
+			<item>case</item>
+			<item>defined?</item>
+			<item>do</item>
+			<item>else</item>
+			<item>elsif</item>
+			<item>end</item>
+			<item>ensure</item>
+			<item>for</item>
+			<item>if</item>
+			<item>in</item>
+			<item>next</item>
+			<item>not</item>
+			<item>or</item>
+			<item>redo</item>
+			<item>rescue</item>
+			<item>retry</item>
+			<item>return</item>
+			<item>then</item>
+			<item>unless</item>
+			<item>until</item>
+			<item>when</item>
+			<item>yield</item>
+		</list>
+
+		<list name="access-control">
+			<item>private_class_method</item>
+			<item>private</item>
+			<item>protected</item>
+			<item>public_class_method</item>
+			<item>public</item>
+		</list>
+
+		<list name="attribute-definitions">
+			<item>attr_reader</item>
+			<item>attr_writer</item>
+			<item>attr_accessor</item>
+		</list>
+
+		<list name="definitions">
+			<item>alias</item>
+			<item>module</item>
+			<item>class</item>
+			<item>def</item>
+			<item>undef</item>
+		</list>
+
+		<list name="pseudo-variables">
+			<item>self</item>
+			<item>super</item>
+			<item>nil</item>
+			<item>false</item>
+			<item>true</item>
+			<item>caller</item>
+			<item>__FILE__</item>
+			<item>__LINE__</item>
+		</list>
+
+		<list name="default-globals">
+			<item>$stdout</item>
+			<item>$defout</item>
+			<item>$stderr</item>
+			<item>$deferr</item>
+			<item>$stdin</item>
+		</list>
+
+		<!-- Kernel module methods.
+			NOTE: Methods ending in ? or !
+				are included below as regexes.
+		-->
+		<list name="kernel-methods">
+			<!-- backquote ` -->
+			<item>abort</item>
+			<item>at_exit</item>
+			<item>autoload</item>
+			<item>autoload?</item>
+			<item>binding</item>
+			<item>block_given?</item>
+			<item>callcc</item>
+			<item>caller</item>
+			<item>catch</item>
+			<item>chomp</item>
+			<item>chomp!</item>
+			<item>chop</item>
+			<item>chop!</item>
+			<item>eval</item>
+			<item>exec</item>
+			<item>exit</item>
+			<item>exit!</item>
+			<item>fail</item>
+			<item>fork</item>
+			<item>format</item>
+			<item>getc</item>
+			<item>gets</item>
+			<item>global_variables</item>
+			<item>gsub</item>
+			<item>gsub!</item>
+			<item>iterator?</item>
+			<item>lambda</item>
+			<item>load</item>
+			<item>local_variables</item>
+			<item>loop</item>
+			<item>method_missing</item>
+			<item>open</item>
+			<item>p</item>
+			<item>print</item>
+			<item>printf</item>
+			<item>proc</item>
+			<item>putc</item>
+			<item>puts</item>
+			<item>raise</item>
+			<item>rand</item>
+			<item>readline</item>
+			<item>readlines</item>
+			<item>require</item>
+			<item>require_relative</item>
+			<item>scan</item>
+			<item>select</item>
+			<item>set_trace_func</item>
+			<item>sleep</item>
+			<item>split</item>
+			<item>sprintf</item>
+			<item>srand</item>
+			<item>sub</item>
+			<item>sub!</item>
+			<item>syscall</item>
+			<item>system</item>
+			<item>test</item>
+			<item>throw</item>
+			<item>trace_var</item>
+			<item>trap</item>
+			<item>untrace_var</item>
+			<item>warn</item>
+		</list>
+
+                <list name="mixin-methods">
+                  <item>extend</item>
+                  <item>include</item>
+                  <item>prepend</item>
+                </list>
+
+		<contexts>
+			<context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+				<!-- ruby ignores newline after \ -->
+				<LineContinue attribute="Normal Text" context="Line Continue"/>
+
+				<!-- __END__ token on own line. -->
+				<RegExpr attribute="Keyword" String="__END__$" context="DATA" column="0"/>
+
+				<!-- "shebang" line -->
+				<RegExpr attribute="Keyword" String="#!\/.*" context="#stay" column="0"/>
+
+				<!-- "def" - "end" blocks -->
+				<!-- check for statement modifiers with regexes -->
+				<DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="(\=|\(|\[|\{)\s*(if|unless|while|until)\b" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block" />
+				<RegExpr attribute="Keyword" String="\;\s*(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>
+				<RegExpr attribute="Keyword" String="\;\s*(if|unless)\b" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="class" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="module" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="begin" context="#stay" beginRegion="def block"/>
+				<RegExpr attribute="Keyword" String="\bfor\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="case" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="do" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="def" context="#stay" beginRegion="def block"/>
+				<WordDetect attribute="Keyword" String="end" context="#stay" endRegion="def block"/>
+				<!-- elsif/else close the current block and start a new one -->
+				<RegExpr attribute="Keyword" String="\b(else|elsif|rescue|ensure)\b" context="#stay" endRegion="def block" beginRegion="def block"/>
+
+				<StringDetect attribute="Operator" String="..." context="#stay"/>
+				<Detect2Chars attribute="Operator" char="." char1="." context="#stay"/>
+
+				<!-- marks a message (being sent, not defined) -->
+				<RegExpr attribute="Message" String="\.[_a-z][_a-zA-Z0-9]*(\?|\!|\b)" context="check_div_2"/>
+
+				<!-- Check for "ASCII code operator". e.g.: ?a -->
+				<RegExpr attribute="Dec" String="\s\?(\\M\-)?(\\C\-)?\\?\S" context="check_div_1"/>
+
+				<keyword attribute="Keyword" String="keywords" context="#stay"/>
+				<keyword attribute="Attribute Definition" String="attribute-definitions"  context="check_div_2"/>
+				<keyword attribute="Access Control" String="access-control" context="check_div_2"/>
+				<keyword attribute="Definition" String="definitions"  context="#stay" />
+				<keyword attribute="Pseudo variable" String="pseudo-variables"  context="check_div_1"/>
+				<keyword attribute="Default globals" String="default-globals" context="check_div_2"/>
+				<keyword attribute="Kernel methods" String="kernel-methods" context="check_div_2"/>
+                                <keyword attribute="Module mixin methods" String="mixin-methods" context="check_div_2"/>
+
+				<!-- (global) vars starting with $
+						Match them before $_.
+				-->
+				<RegExpr attribute="Global Variable" String="\$[a-zA-Z_0-9]+" context="check_div_1"/>
+				<RegExpr attribute="Global Variable" String="\$\-[a-zA-Z_]\b" context="check_div_1"/>
+				<!-- special-character globals -->
+				<RegExpr attribute="Default globals" String="\$[\d_*`+@;,.~=\!\$:?'/\\\-\&amp;&quot;&gt;&lt;]" context="check_div_1"/>
+				<RegExpr attribute="Global Constant" String="\b[_A-Z]+[A-Z_0-9]+\b" context="check_div_2"/>
+				<!-- Generally a module or class name like "File", "MyModule_1", .. -->
+				<RegExpr attribute="Constant" String="\b[A-Z]+_*([0-9]|[a-z])[_a-zA-Z0-9]*\b" context="check_div_2"/>
+
+				<!-- Numeric values. Note that we have to allow underscores between two digits (thus the creepy regular expressions). -->
+				<RegExpr attribute="Hex" String="\b\-?0[xX]([0-9a-fA-F]|_[0-9a-fA-F])+" context="check_div_1"/>
+				<RegExpr attribute="Bin" String="\b\-?0[bB]([01]|_[01])+" context="check_div_1"/>
+				<RegExpr attribute="Octal" String="\b\-?0[1-7]([0-7]|_[0-7])*" context="check_div_1"/>
+				<RegExpr attribute="Float" String="\b\-?[0-9]([0-9]|_[0-9])*\.[0-9]([0-9]|_[0-9])*([eE]\-?[1-9]([0-9]|_[0-9])*(\.[0-9]*)?)?" context="check_div_1"/>
+				<RegExpr attribute="Dec" String="\b\-?[1-9]([0-9]|_[0-9])*\b" context="check_div_1"/>
+				<Int attribute="Dec" context="check_div_1"/>
+				<HlCChar attribute="Char" context="check_div_1"/>
+
+				<!-- Check for =begin before assignment operator. -->
+				<RegExpr attribute="Blockcomment" String="^=begin(?:\s|$)" context="Embedded documentation" beginRegion="comment block" column="0"/>
+
+				<!-- recognize the beginning of a HEREDOC
+					This uses new features in Kate 2.3 and later
+
+					There is no other chance of keeping heredoc apart from the
+					push operator '<<' than requiring to put space between the operator
+					and the string.
+				-->
+				<RegExpr attribute="Operator" context="find_indented_heredoc" String="\s*&lt;&lt;-(?=\w+|[&quot;'])" beginRegion="HereDocument" />
+				<RegExpr attribute="Operator" context="find_heredoc" String="\s*&lt;&lt;(?=\w+|[&quot;'])" beginRegion="HereDocument" />
+
+				<DetectChar attribute="Operator" char="." context="#stay"/>
+				<Detect2Chars attribute="Operator" char="&amp;" char1="&amp;" context="#stay"/>
+				<Detect2Chars attribute="Operator" char="|" char1="|" context="#stay"/>
+				<RegExpr attribute="Operator" String="\s[\?\:\%]\s" context="#stay"/>
+				<RegExpr attribute="Operator" String="[|&amp;&lt;&gt;\^\+*~\-=]+" context="#stay"/>
+				<!-- regexp hack -->
+				<RegExpr attribute="Operator" String="\s!" context="#stay"/>
+				<RegExpr attribute="Operator" String="/=\s" context="#stay" insensitive="0"/>
+				<StringDetect attribute="Operator" String="%=" context="#stay" insensitive="0"/>
+				<Detect2Chars attribute="Operator" char=":" char1=":" context="Member Access"/>
+
+				<RegExpr attribute="Symbol" String=":(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?" context="check_div_1"/>
+				<RegExpr attribute="Symbol" String=":\[\]=?" context="check_div_1"/>
+
+				<RegExpr attribute="Symbol" String="(@{1,2}|\$)?[a-zA-Z_][a-zA-Z0-9_]*[=?!]?: " context="check_div_1"/>
+				<RegExpr attribute="Symbol" String="\[\]=?: " context="check_div_1"/>
+
+				<DetectChar attribute="String" char="&quot;" context="Quoted String"/>
+				<DetectChar attribute="Raw String" char="'" context="Apostrophed String"/>
+				<DetectChar attribute="Command" char="`" context="Command String"/>
+
+				<StringDetect attribute="Normal Text" String="?#" context="#stay"/>
+
+				<RegExpr attribute="Comment" String="#\s*BEGIN.*$"  context="#stay" beginRegion="marker" column="0"/>
+				<RegExpr attribute="Comment" String="#\s*END.*$"  context="#stay" endRegion="marker" column="0"/>
+				<DetectChar attribute="Comment" char="#" context="General Comment"/>
+
+				<DetectChar attribute="Delimiter" char="["  context="#stay"/>
+				<DetectChar attribute="Delimiter" char="]"  context="check_div_1"/>
+				<DetectChar attribute="Delimiter" char="{" context="#stay" beginRegion="def block"/>
+				<DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>
+
+				<RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="check_div_1"/>
+				<RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="check_div_1"/>
+
+				<!-- handle the different regular expression formats -->
+				<DetectChar attribute="Regular Expression" char="/" context="RegEx 1"/>
+
+				<!-- recognize the beginning of a general delimited input format -->
+				<!-- this moves to the next context to separate out the exact nature of the GDL input -->
+				<RegExpr attribute="GDL input" context="find_gdl_input" String="\s*[%](?=[QqxwW]?[^\s])" beginRegion="GdlInput" />
+
+				<DetectChar attribute="Normal Text" char=")" context="check_div_1"/>
+				<DetectIdentifier attribute="Normal Text" context="check_div_2"/>
+
+			</context>
+
+			<!-- In the following contexts, a slash character ('/') is a division operator -->
+			<!-- Everywhere else, it's a regular expression delimiter -->
+
+			<!-- A slash is always a division operator, even if preceeded by whitespace -->
+			<context name="check_div_1" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
+				<RegExpr attribute="Normal Text" String="\s*" context="#stay"/>
+				<AnyChar attribute="Operator" String="/%" context="#pop"/>
+			</context>
+
+			<!-- Same as check_div_1, but with double pop to exit the surrounding context -->
+			<context name="check_div_1_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+				<RegExpr attribute="Normal Text" String="\s*" context="#stay"/>
+				<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>
+			</context>
+
+			<!-- A slash is division operator if it's the first character, or if preceeded and followed by whitespace -->
+			<context name="check_div_2" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop" lineEndContext="#pop">
+				<AnyChar attribute="Operator" String="/%" context="#pop"/>
+				<RegExpr attribute="Normal Text" String="\s+" context="check_div_2_internal"/>
+			</context>
+
+			<!-- Internal context used by check_div_2 -->
+			<context name="check_div_2_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+<!-- 				<DetectChar attribute="Operator" char="%" context="#pop#pop"/> -->
+				<RegExpr attribute="Operator" String="[/%](?=\s)" context="#pop#pop"/>
+			</context>
+
+			<!-- Same as check_div_2, but with double pop to exit the surrounding context -->
+			<context name="check_div_2_pop" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop" lineEndContext="#pop#pop">
+				<AnyChar attribute="Operator" String="/%" context="#pop#pop"/>
+				<RegExpr attribute="Normal Text" String="\s+" context="check_div_2_pop_internal"/>
+			</context>
+
+			<!-- Internal context used by check_div_2_pop -->
+			<context name="check_div_2_pop_internal" attribute="Normal Text" fallthrough="true" fallthroughContext="#pop#pop#pop" lineEndContext="#pop#pop#pop">
+				<DetectChar attribute="Operator" char="%" context="#pop#pop#pop"/>
+				<RegExpr attribute="Operator" String="/(?=\s)" context="#pop#pop#pop"/>
+			</context>
+
+			<context name="Line Continue" attribute="Normal Text" lineEndContext="#pop">
+				<RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" firstNonSpace="true"/>
+				<RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" firstNonSpace="true"/>
+				<IncludeRules context="Normal"/>
+			</context>
+
+			<context name="Find closing block brace" attribute="Normal Text" lineEndContext="#stay">
+				<DetectChar attribute="Operator" char="}" context="check_div_1_pop" endRegion="def block"/>
+				<IncludeRules context="Normal"/>
+			</context>
+
+			<context name="Quoted String" attribute="String" lineEndContext="#stay">
+				<StringDetect attribute="String" String="\\" context="#stay"/>
+				<RegExpr attribute="String" String="\\\&quot;" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<DetectChar char="&quot;" attribute="String" context="check_div_1_pop"/>
+			</context>
+
+			<context name="Apostrophed String" attribute="Raw String" lineEndContext="#stay">
+				<StringDetect attribute="String" String="\\" context="#stay"/>
+				<RegExpr attribute="String" String="\\\'" context="#stay"/>
+				<DetectChar char="'" attribute="Raw String" context="check_div_1_pop"/>
+			</context>
+
+			<context name="Command String" attribute="Command" lineEndContext="#stay">
+				<StringDetect attribute="String" String="\\" context="#stay"/>
+				<RegExpr attribute="String" String="\\\`" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<DetectChar char="`" attribute="Command" context="check_div_1_pop"/>
+			</context>
+
+			<context name="Embedded documentation" attribute="Blockcomment" lineEndContext="#stay">
+				<RegExpr attribute="Comment" String="^=end(?:\s.*|$)" context="#pop" endRegion="comment block" column="0"/>
+				<IncludeRules context="##Alerts" />
+			</context>
+
+			<context name="RegEx 1" attribute="Regular Expression" lineEndContext="#stay">
+				<RegExpr attribute="Regular Expression" String="\\\/" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+				<RegExpr attribute="Regular Expression" String="/[uiomxn]*" context="check_div_1_pop"/>
+			</context>
+
+			<!-- Substitutions can be nested -->
+			<context name="Subst" attribute="Normal Text" lineEndContext="#stay">
+				<DetectChar attribute="Substitution" char="}" context="#pop"/>
+				<!-- Highlight substitution as code. -->
+				<IncludeRules context="Normal"/>
+			</context>
+
+			<context name="Short Subst" attribute="Substitution" lineEndContext="#pop">
+				<!-- Check for e.g.: "#@var#@@xy" -->
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="#stay"/>
+				<RegExpr attribute="Substitution" String="\w(?!\w)" context="#pop"/>
+			</context>
+
+			<!-- This handles access of nested module classes and class methods -->
+			<context name="Member Access" attribute="Member" lineEndContext="#pop">
+				<!-- marks a message (being sent, not defined) -->
+				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?(?=[^\w\d\.\:])" context="check_div_2_pop"/>
+				<RegExpr attribute="Message" String="\.?[_a-z]\w*(\?|\!)?" context="#stay"/>
+				<RegExpr attribute="Constant" String="[A-Z]+_*(\d|[a-z])\w*(?=[^\w\d\.\:])" context="check_div_2_pop"/>
+				<RegExpr attribute="Constant" String="[A-Z]+_*([0-9]|[a-z])\w*" context="#stay"/>
+				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*(?=[^\w\d\.\:])" context="check_div_2_pop"/>
+				<RegExpr attribute="Constant Value" String="[_A-Z][_A-Z0-9]*" context="#stay"/>
+				<Detect2Chars attribute="Operator" char=":" char1=":" context="#stay"/>
+				<DetectChar attribute="Member" char="." context="#stay"/>
+
+				<AnyChar attribute="Operator" String="=+-*/%|&amp;[]{}~" context="#pop"/>
+				<DetectChar attribute="Comment" char="#" context="#pop"/>
+				<AnyChar attribute="Normal Text" String="()\" context="#pop"/>
+				<RegExpr attribute="Member" String="\W" context="#pop"/>
+			</context>
+
+			<context name="Comment Line" attribute="Comment" lineEndContext="#pop">
+				<RegExpr attribute="Comment" String="\w\:\:\s" context="RDoc Label"/>
+				<IncludeRules context="##Alerts" />
+			</context>
+
+			<context name="General Comment" attribute="Comment" lineEndContext="#pop">
+				<IncludeRules context="##Alerts" />
+			</context>
+
+			<context name="RDoc Label" attribute="RDoc Value" lineEndContext="#pop"/>
+
+			<!-- HEREDOC support
+				The contexts below support both normal and indented heredocs
+			 -->
+			<!-- here we markup the heredoc markers -->
+			<context name="find_heredoc" attribute="Normal Text" lineEndContext="#pop" >
+				<RegExpr attribute="Keyword" context="apostrophed_normal_heredoc" String="'(\w+)'" />
+				<RegExpr attribute="Keyword" context="normal_heredoc" String="&quot;?(\w+)&quot;?" />
+			</context>
+			<context name="find_indented_heredoc" attribute="Normal Text" lineEndContext="#pop" >
+				<RegExpr attribute="Keyword" context="apostrophed_indented_heredoc" String="'(\w+)'" />
+				<RegExpr attribute="Keyword" context="indented_heredoc" String="&quot;?(\w+)&quot;?" />
+			</context>
+			<!-- these are the real heredoc contexts -->
+			<context name="indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
+				<IncludeRules context="heredoc_rules" />
+			</context>
+			<context name="apostrophed_indented_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" firstNonSpace="true"/>
+			</context>
+
+			<context name="normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" column="0"/>
+				<IncludeRules context="heredoc_rules" />
+			</context>
+			<context name="apostrophed_normal_heredoc" attribute="Here Document" lineEndContext="#stay" dynamic="true">
+				<RegExpr attribute="Keyword" context="#pop#pop" String="%1$" dynamic="true" endRegion="HereDocument" column="0"/>
+			</context>
+
+			<!-- rules for heredoc types -->
+			<context name="heredoc_rules" attribute="Normal Text" lineEndContext="#stay">
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+
+			<!-- General delimited input support
+				The contexts below handle the various gdl formats
+			 -->
+			<context name="find_gdl_input" attribute="Normal Text" lineEndContext="#pop">
+
+				<!-- handle token arrays -->
+				<RegExpr attribute="GDL input" context="gdl_token_array_1" String="w\(" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_2" String="w\{" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_3" String="w\[" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_4" String="w&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="w([^\s\w])" />
+
+				<!-- handle token arrays -->
+				<RegExpr attribute="GDL input" context="gdl_token_array_1" String="W\(" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_2" String="W\{" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_3" String="W\[" />
+				<RegExpr attribute="GDL input" context="gdl_token_array_4" String="W&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_token_array_5" String="W([^\s\w])" />
+
+				<!-- handle apostrophed strings -->
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_1" String="q\(" />
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_2" String="q\{" />
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_3" String="q\[" />
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_4" String="q&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_apostrophed_5" String="q([^\s\w])" />
+
+				<!-- handle shell commands -->
+				<RegExpr attribute="GDL input" context="gdl_shell_command_1" String="x\(" />
+				<RegExpr attribute="GDL input" context="gdl_shell_command_2" String="x\{" />
+				<RegExpr attribute="GDL input" context="gdl_shell_command_3" String="x\[" />
+				<RegExpr attribute="GDL input" context="gdl_shell_command_4" String="x&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_shell_command_5" String="x([^\s\w])" />
+
+				<!-- handle regular expressions -->
+				<RegExpr attribute="GDL input" context="gdl_regexpr_1" String="r\(" />
+				<RegExpr attribute="GDL input" context="gdl_regexpr_2" String="r\{" />
+				<RegExpr attribute="GDL input" context="gdl_regexpr_3" String="r\[" />
+				<RegExpr attribute="GDL input" context="gdl_regexpr_4" String="r&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_regexpr_5" String="r([^\s\w])" />
+
+				<!-- handle double-quoted strings -->
+				<!--
+					  be careful to make this the last GDL ruleset, because the rule for
+					  the short form %?foo? will otherwise catch any of the other formats
+				-->
+				<RegExpr attribute="GDL input" context="gdl_dq_string_1" String="Q?\(" />
+				<RegExpr attribute="GDL input" context="gdl_dq_string_2" String="Q?\{" />
+				<RegExpr attribute="GDL input" context="gdl_dq_string_3" String="Q?\[" />
+				<RegExpr attribute="GDL input" context="gdl_dq_string_4" String="Q?&lt;" />
+				<!-- then we handle the 'any char' format -->
+				<RegExpr attribute="GDL input" context="gdl_dq_string_5" String="Q?([^\s\w])" />
+
+			</context>
+			<!-- double-quoted string specific contexts follow -->
+			<context name="gdl_dq_string_1" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_1_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<DetectChar attribute="String" context="gdl_dq_string_1_nested" char="(" />
+				<DetectChar attribute="String" context="#pop" char=")" />
+			</context>
+			<!-- note that here substitution should win over nesting -->
+			<context name="gdl_dq_string_2" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
+			</context>
+			<context name="gdl_dq_string_2_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_2_nested" char="{" />
+				<DetectChar attribute="String" context="#pop" char="}" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+
+			<context name="gdl_dq_string_3" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_3_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_3_nested" char="[" />
+				<DetectChar attribute="String" context="#pop" char="]" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+
+			<context name="gdl_dq_string_4" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="dq_string_rules" />
+				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_dq_string_4_nested" attribute="String" lineEndContext="#stay" >
+				<DetectChar attribute="String" context="gdl_dq_string_4_nested" char="&lt;" />
+				<DetectChar attribute="String" context="#pop" char="&gt;" />
+				<IncludeRules context="dq_string_rules" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_dq_string_5" attribute="String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="dq_string_rules" />
+				<RegExpr attribute="String" String="\\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+			<!-- rules to be included in all dq_string contexts -->
+			<context name="dq_string_rules" attribute="String" lineEndContext="#stay" >
+				<Detect2Chars attribute="String" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+
+			<!-- token array specific contexts -->
+
+			<context name="gdl_token_array_1" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_1_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_1_nested" char="(" />
+				<DetectChar attribute="String" context="#pop" char=")" />
+			</context>
+
+			<context name="gdl_token_array_2" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
+			</context>
+			<context name="gdl_token_array_2_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_2_nested" char="{" />
+				<DetectChar attribute="String" context="#pop" char="}" />
+			</context>
+
+			<context name="gdl_token_array_3" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_3_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_3_nested" char="[" />
+				<DetectChar attribute="String" context="#pop" char="]" />
+			</context>
+
+			<context name="gdl_token_array_4" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<Detect2Chars attribute="String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_token_array_4_nested" attribute="String" lineEndContext="#stay" >
+				<IncludeRules context="token_array_rules" />
+				<DetectChar attribute="String" context="gdl_token_array_4_nested" char="&lt;" />
+				<DetectChar attribute="String" context="#pop" char="&gt;" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_token_array_5" attribute="String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="token_array_rules" />
+				<RegExpr attribute="String" String="\\%1" context="#stay" dynamic="true"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+
+			<!-- rules to be included in all token_array contexts -->
+			<context name="token_array_rules" attribute="String" lineEndContext="#stay" >
+				<StringDetect attribute="String" String="\\" context="#stay"/>
+			</context>
+
+			<!-- apostrophed string specific contexts -->
+
+			<context name="gdl_apostrophed_1" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_1_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_1_nested" char="(" />
+				<DetectChar attribute="Raw String" context="#pop" char=")" />
+			</context>
+
+			<context name="gdl_apostrophed_2" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
+			</context>
+			<context name="gdl_apostrophed_2_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_2_nested" char="{" />
+				<DetectChar attribute="Raw String" context="#pop" char="}" />
+			</context>
+
+			<context name="gdl_apostrophed_3" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_3_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_3_nested" char="[" />
+				<DetectChar attribute="Raw String" context="#pop" char="]" />
+			</context>
+
+			<context name="gdl_apostrophed_4" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<Detect2Chars attribute="Raw String" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_apostrophed_4_nested" attribute="Raw String" lineEndContext="#stay" >
+				<IncludeRules context="apostrophed_rules" />
+				<DetectChar attribute="Raw String" context="gdl_apostrophed_4_nested" char="&lt;" />
+				<DetectChar attribute="Raw String" context="#pop" char="&gt;" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_apostrophed_5" attribute="Raw String" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="apostrophed_rules" />
+				<RegExpr attribute="Raw String" String="\\%1" context="#stay" dynamic="true"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+
+			<!-- rules to be included in all apostrophed contexts -->
+			<context name="apostrophed_rules" attribute="Raw String" lineEndContext="#stay" >
+				<Detect2Chars attribute="Raw String" char="\" char1="\" context="#stay"/>
+			</context>
+
+			<!-- shell command specific contexts -->
+
+			<context name="gdl_shell_command_1" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char=")" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_1_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_1_nested" char="(" />
+				<DetectChar attribute="Command" context="#pop" char=")" />
+			</context>
+
+			<context name="gdl_shell_command_2" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="}" context="#stay"/>
+				<DetectChar attribute="GDL input" context="#pop#pop" char="}" endRegion="GdlInput" />
+				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
+			</context>
+			<context name="gdl_shell_command_2_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_2_nested" char="{" />
+				<DetectChar attribute="Command" context="#pop" char="}" />
+			</context>
+
+			<context name="gdl_shell_command_3" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="]" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_3_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_3_nested" char="[" />
+				<DetectChar attribute="Command" context="#pop" char="]" />
+			</context>
+
+			<context name="gdl_shell_command_4" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<Detect2Chars attribute="Command" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
+				<DetectChar attribute="GDL input" context="#pop#pop" char="&gt;" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_shell_command_4_nested" attribute="Command" lineEndContext="#stay" >
+				<IncludeRules context="shell_command_rules" />
+				<DetectChar attribute="Command" context="gdl_shell_command_4_nested" char="&lt;" />
+				<DetectChar attribute="Command" context="#pop" char="&gt;" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_shell_command_5" attribute="Command" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="shell_command_rules" />
+				<RegExpr attribute="Command" String="\\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1" dynamic="true" endRegion="GdlInput" />
+			</context>
+
+			<!-- rules to be included in all shell_command contexts -->
+			<context name="shell_command_rules" attribute="Command" lineEndContext="#stay" >
+				<Detect2Chars attribute="Command" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+
+			<!-- regular expression specific contexts -->
+
+			<context name="gdl_regexpr_1" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1=")" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\)[uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_1_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_1_nested" char="(" />
+				<DetectChar attribute="Regular Expression" context="#pop" char=")" />
+			</context>
+
+			<context name="gdl_regexpr_2" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="}" context="#stay"/>
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\}[uiomxn]*" endRegion="GdlInput" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
+			</context>
+			<context name="gdl_regexpr_2_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_2_nested" char="{" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="}" />
+			</context>
+
+			<context name="gdl_regexpr_3" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="]" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\][uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_3_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_3_nested" char="[" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="]" />
+			</context>
+
+			<context name="gdl_regexpr_4" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<Detect2Chars attribute="Regular Expression" char="\" char1="&gt;" context="#stay"/>
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="&gt;[uiomxn]*" endRegion="GdlInput" />
+			</context>
+			<context name="gdl_regexpr_4_nested" attribute="Regular Expression" lineEndContext="#stay" >
+				<IncludeRules context="regexpr_rules" />
+				<DetectChar attribute="Regular Expression" context="gdl_regexpr_4_nested" char="&lt;" />
+				<DetectChar attribute="Regular Expression" context="#pop" char="&gt;" />
+			</context>
+
+			<!-- this format doesn't allow nesting. it is terminated by the next occurrence of the
+				delimiter character
+			 -->
+			<context name="gdl_regexpr_5" attribute="Regular Expression" lineEndContext="#stay" dynamic="true">
+				<IncludeRules context="regexpr_rules" />
+				<RegExpr attribute="Regular Expression" String="\\%1" context="#stay" dynamic="true" />
+				<RegExpr attribute="GDL input" context="#pop#pop" String="\s*%1[uiomxn]*" dynamic="true" endRegion="GdlInput" />
+			</context>
+
+			<!-- rules to be included in all regexpr contexts -->
+			<context name="regexpr_rules" attribute="Regular Expression" lineEndContext="#stay" >
+				<Detect2Chars attribute="Regular Expression" char="\" char1="\" context="#stay"/>
+				<RegExpr attribute="Substitution" String="#@{1,2}" context="Short Subst"/>
+				<Detect2Chars attribute="Substitution" char="#" char1="{" context="Subst"/>
+			</context>
+
+			<!-- END of General delimited input support -->
+
+			<!-- handle data in script -->
+			<context name="DATA" attribute="Data" lineEndContext="#stay"/>
+		</contexts>
+
+		<itemDatas>
+			<itemData name="Normal Text" defStyleNum="dsNormal"/>
+
+			<itemData name="Keyword" defStyleNum="dsKeyword"/>
+			<itemData name="Attribute Definition" defStyleNum="dsOthers"/>
+			<itemData name="Access Control" defStyleNum="dsKeyword" color="#0000FF"/>
+			<itemData name="Definition" defStyleNum="dsKeyword"/>
+			<itemData name="Pseudo variable" defStyleNum="dsDecVal"/>
+
+			<itemData name="Dec" defStyleNum="dsDecVal"/>
+			<itemData name="Float" defStyleNum="dsFloat"/>
+			<itemData name="Char" defStyleNum="dsChar"/>
+			<itemData name="Octal" defStyleNum="dsBaseN"/>
+			<itemData name="Hex" defStyleNum="dsBaseN"/>
+			<itemData name="Bin" defStyleNum="dsBaseN"/>
+
+			<itemData name="Symbol" defStyleNum="dsString" color="#D40000"/>
+			<itemData name="String" defStyleNum="dsString"/>
+			<itemData name="Raw String" defStyleNum="dsString" color="#DD4A4A" selColor="#DD4A4A"/>
+			<itemData name="Command" defStyleNum="dsString" color="#AA3000"/>
+			<itemData name="Message" defStyleNum="dsNormal" color="#4000A7"/> <!-- #4A00C0 -->
+			<itemData name="Regular Expression" defStyleNum="dsOthers" color="#4A5704"/>
+			<itemData name="Substitution"	defStyleNum="dsOthers"/>
+			<itemData name="Data" defStyleNum="dsNormal"/>
+			<!-- short for 'general delimited input' -->
+			<itemData name="GDL input" defStyleNum="dsOthers" />
+
+			<itemData name="Default globals" defStyleNum="dsDataType" color="#C00000" bold="1"/>
+			<itemData name="Global Variable" defStyleNum="dsDataType" color="#C00000"/>
+			<itemData name="Global Constant" defStyleNum="dsDataType" color="#bb1188" bold="1"/>
+			<itemData name="Constant" defStyleNum="dsDataType"/>
+			<itemData name="Constant Value" defStyleNum="dsDataType" color="#bb1188"/>
+			<itemData name="Kernel methods" defStyleNum="dsNormal" color="#000080" selColor="#ffffff"/> <!-- #CC0E86 -->
+                        <itemData name="Module mixin methods" defStyleNum="dsNormal" color="#000080" selColor="#ffffff"/> <!-- #CC0E86 -->
+			<itemData name="Member" defStyleNum="dsNormal"/>
+			<itemData name="Instance Variable" defStyleNum="dsOthers"/>
+			<itemData name="Class Variable" defStyleNum="dsOthers"/>
+
+			<itemData name="Comment" defStyleNum="dsComment"/>
+			<itemData name="Blockcomment" defStyleNum="dsComment"/>
+			<itemData name="Region Marker" defStyleNum="dsNormal" color="#0000ff"/>
+			<itemData name="RDoc Value" defStyleNum="dsOthers"/>
+
+			<itemData name="Here Document" defStyleNum="dsOthers"/>
+
+			<!-- use these to mark errors and alerts things -->
+			<itemData name="Error" defStyleNum="dsError" />
+
+			<itemData name="Delimiter" defStyleNum="dsNormal" color="#FF9FEC"/>
+			<itemData name="Expression" defStyleNum="dsOthers"/>
+			<itemData name="Operator" defStyleNum="dsNormal" color="#FF9FEC"/>
+		</itemDatas>
+	</highlighting>
+	<general>
+		<comments>
+			<comment name="singleLine" start="#"/>
+		</comments>
+		<keywords casesensitive="1" weakDeliminator="!?"/>
+	</general>
+</language>
diff --git a/xml/rust.xml b/xml/rust.xml
new file mode 100644
--- /dev/null
+++ b/xml/rust.xml
@@ -0,0 +1,366 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+    Copyright (c) 2015 The Rust Project Developers
+
+    Permission is hereby granted, free of charge, to any
+    person obtaining a copy of this software and associated
+    documentation files (the "Software"), to deal in the
+    Software without restriction, including without
+    limitation the rights to use, copy, modify, merge,
+    publish, distribute, sublicense, and/or sell copies of
+    the Software, and to permit persons to whom the Software
+    is furnished to do so, subject to the following
+    conditions:
+
+    The above copyright notice and this permission notice
+    shall be included in all copies or substantial portions
+    of the Software.
+
+    THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF
+    ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED
+    TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A
+    PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT
+    SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
+    CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
+    OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR
+    IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
+    DEALINGS IN THE SOFTWARE.
+-->
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!-- FIXME: Kate's regex engine has very limited support for
+	predefined char classes, so making rustIdent consistent with actual
+	Rust identifiers will be a bit difficult -->
+	<!ENTITY rustIdent "[a-zA-Z_][a-zA-Z_0-9]*">
+	<!ENTITY rustIntSuf "([iu](8|16|32|64)?)?">
+]>
+<language name="Rust" version="4" kateversion="5.0" section="Sources" extensions="*.rs" mimetype="text/rust" priority="15" license="MIT" author="The Rust Project Developers">
+<highlighting>
+	<list name="fn">
+		<item>fn</item>
+	</list>
+	<list name="type">
+		<item>type</item>
+	</list>
+	<list name="keywords">
+		<item>abstract</item>
+		<item>alignof</item>
+		<item>as</item>
+		<item>become</item>
+		<item>box</item>
+		<item>break</item>
+		<item>const</item>
+		<item>continue</item>
+		<item>crate</item>
+		<item>do</item>
+		<item>else</item>
+		<item>enum</item>
+		<item>extern</item>
+		<item>final</item>
+		<item>for</item>
+		<item>if</item>
+		<item>impl</item>
+		<item>in</item>
+		<item>let</item>
+		<item>loop</item>
+		<item>macro</item>
+		<item>match</item>
+		<item>mod</item>
+		<item>move</item>
+		<item>mut</item>
+		<item>offsetof</item>
+		<item>override</item>
+		<item>priv</item>
+		<item>proc</item>
+		<item>pub</item>
+		<item>pure</item>
+		<item>ref</item>
+		<item>return</item>
+		<item>Self</item>
+		<item>self</item>
+		<item>sizeof</item>
+		<item>static</item>
+		<item>struct</item>
+		<item>super</item>
+		<item>trait</item>
+		<item>type</item>
+		<item>typeof</item>
+		<item>unsafe</item>
+		<item>unsized</item>
+		<item>use</item>
+		<item>virtual</item>
+		<item>where</item>
+		<item>while</item>
+		<item>yield</item>
+	</list>
+	<list name="traits">
+		<item>AsSlice</item>
+		<item>CharExt</item>
+		<item>Clone</item>
+		<item>Copy</item>
+		<item>Debug</item>
+		<item>Decodable</item>
+		<item>Default</item>
+		<item>Display</item>
+		<item>DoubleEndedIterator</item>
+		<item>Drop</item>
+		<item>Encodable</item>
+		<item>Eq</item>
+		<item>Default</item>
+		<item>Extend</item>
+		<item>Fn</item>
+		<item>FnMut</item>
+		<item>FnOnce</item>
+		<item>FromPrimitive</item>
+		<item>Hash</item>
+		<item>Iterator</item>
+		<item>IteratorExt</item>
+		<item>MutPtrExt</item>
+		<item>Ord</item>
+		<item>PartialEq</item>
+		<item>PartialOrd</item>
+		<item>PtrExt</item>
+		<item>Rand</item>
+		<item>Send</item>
+		<item>Sized</item>
+		<item>SliceConcatExt</item>
+		<item>SliceExt</item>
+		<item>Str</item>
+		<item>StrExt</item>
+		<item>Sync</item>
+		<item>ToString</item>
+	</list>
+	<list name="types">
+		<item>bool</item>
+		<item>int</item>
+		<item>isize</item>
+		<item>uint</item>
+		<item>usize</item>
+		<item>i8</item>
+		<item>i16</item>
+		<item>i32</item>
+		<item>i64</item>
+		<item>u8</item>
+		<item>u16</item>
+		<item>u32</item>
+		<item>u64</item>
+		<item>f32</item>
+		<item>f64</item>
+		<item>float</item>
+		<item>char</item>
+		<item>str</item>
+		<item>Option</item>
+		<item>Result</item>
+		<item>Self</item>
+		<item>Box</item>
+		<item>Vec</item>
+		<item>String</item>
+	</list>
+	<list name="ctypes">
+		<item>c_float</item>
+		<item>c_double</item>
+		<item>c_void</item>
+		<item>FILE</item>
+		<item>fpos_t</item>
+		<item>DIR</item>
+		<item>dirent</item>
+		<item>c_char</item>
+		<item>c_schar</item>
+		<item>c_uchar</item>
+		<item>c_short</item>
+		<item>c_ushort</item>
+		<item>c_int</item>
+		<item>c_uint</item>
+		<item>c_long</item>
+		<item>c_ulong</item>
+		<item>size_t</item>
+		<item>ptrdiff_t</item>
+		<item>clock_t</item>
+		<item>time_t</item>
+		<item>c_longlong</item>
+		<item>c_ulonglong</item>
+		<item>intptr_t</item>
+		<item>uintptr_t</item>
+		<item>off_t</item>
+		<item>dev_t</item>
+		<item>ino_t</item>
+		<item>pid_t</item>
+		<item>mode_t</item>
+		<item>ssize_t</item>
+	</list>
+	<list name="self">
+		<item>self</item>
+	</list>
+	<list name="constants">
+		<item>true</item>
+		<item>false</item>
+		<item>Some</item>
+		<item>None</item>
+		<item>Ok</item>
+		<item>Err</item>
+		<item>Success</item>
+		<item>Failure</item>
+		<item>Cons</item>
+		<item>Nil</item>
+	</list>
+	<list name="cconstants">
+		<item>EXIT_FAILURE</item>
+		<item>EXIT_SUCCESS</item>
+		<item>RAND_MAX</item>
+		<item>EOF</item>
+		<item>SEEK_SET</item>
+		<item>SEEK_CUR</item>
+		<item>SEEK_END</item>
+		<item>_IOFBF</item>
+		<item>_IONBF</item>
+		<item>_IOLBF</item>
+		<item>BUFSIZ</item>
+		<item>FOPEN_MAX</item>
+		<item>FILENAME_MAX</item>
+		<item>L_tmpnam</item>
+		<item>TMP_MAX</item>
+		<item>O_RDONLY</item>
+		<item>O_WRONLY</item>
+		<item>O_RDWR</item>
+		<item>O_APPEND</item>
+		<item>O_CREAT</item>
+		<item>O_EXCL</item>
+		<item>O_TRUNC</item>
+		<item>S_IFIFO</item>
+		<item>S_IFCHR</item>
+		<item>S_IFBLK</item>
+		<item>S_IFDIR</item>
+		<item>S_IFREG</item>
+		<item>S_IFMT</item>
+		<item>S_IEXEC</item>
+		<item>S_IWRITE</item>
+		<item>S_IREAD</item>
+		<item>S_IRWXU</item>
+		<item>S_IXUSR</item>
+		<item>S_IWUSR</item>
+		<item>S_IRUSR</item>
+		<item>F_OK</item>
+		<item>R_OK</item>
+		<item>W_OK</item>
+		<item>X_OK</item>
+		<item>STDIN_FILENO</item>
+		<item>STDOUT_FILENO</item>
+		<item>STDERR_FILENO</item>
+	</list>
+	<contexts>
+		<context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+			<DetectSpaces/>
+			<keyword String="fn" attribute="Keyword" context="Function"/>
+			<keyword String="type" attribute="Keyword" context="Type"/>
+			<keyword String="keywords" attribute="Keyword" context="#stay"/>
+			<keyword String="types" attribute="Type" context="#stay"/>
+			<keyword String="traits" attribute="Trait" context="#stay"/>
+			<keyword String="ctypes" attribute="CType" context="#stay"/>
+			<keyword String="self" attribute="Self" context="#stay"/>
+			<keyword String="constants" attribute="Constant" context="#stay"/>
+			<keyword String="cconstants" attribute="CConstant" context="#stay"/>
+			<Detect2Chars char="/" char1="/" attribute="Comment" context="Commentar 1"/>
+			<Detect2Chars char="/" char1="*" attribute="Comment" context="Commentar 2" beginRegion="Comment"/>
+			<RegExpr String="0x[0-9a-fA-F_]+&rustIntSuf;" attribute="Number" context="#stay"/>
+			<RegExpr String="0o[0-7_]+&rustIntSuf;" attribute="Number" context="#stay"/>
+			<RegExpr String="0b[0-1_]+&rustIntSuf;" attribute="Number" context="#stay"/>
+			<RegExpr String="[0-9][0-9_]*\.[0-9_]*([eE][+-]?[0-9_]+)?(f32|f64|f)?" attribute="Number" context="#stay"/>
+			<RegExpr String="[0-9][0-9_]*&rustIntSuf;" attribute="Number" context="#stay"/>
+			<Detect2Chars char="#" char1="[" attribute="Attribute" context="Attribute" beginRegion="Attribute"/>
+			<StringDetect String="#![" attribute="Attribute" context="Attribute" beginRegion="Attribute"/>
+			<RegExpr String="&rustIdent;::" attribute="Scope"/>
+			<RegExpr String="&rustIdent;!" attribute="Macro"/>
+			<RegExpr String="&apos;&rustIdent;(?!&apos;)" attribute="Lifetime"/>
+			<DetectChar char="{" attribute="Symbol" context="#stay" beginRegion="Brace" />
+			<DetectChar char="}" attribute="Symbol" context="#stay" endRegion="Brace" />
+                        <Detect2Chars char="r" char1="&quot;" attribute="String" context="RawString"/>
+                        <StringDetect String="r##&quot;" attribute="String" context="RawHashed2"/>
+                        <StringDetect String="r#&quot;" attribute="String" context="RawHashed1"/>
+			<DetectChar char="&quot;" attribute="String" context="String"/>
+			<DetectChar char="&apos;" attribute="Character" context="Character"/>
+			<DetectChar char="[" attribute="Symbol" context="#stay" beginRegion="Bracket" />
+			<DetectChar char="]" attribute="Symbol" context="#stay" endRegion="Bracket" />
+			<DetectIdentifier/>
+		</context>
+		<context attribute="Attribute" lineEndContext="#stay" name="Attribute">
+			<DetectChar char="]" attribute="Attribute" context="#pop" endRegion="Attribute"/>
+			<IncludeRules context="Normal"/>
+		</context>
+		<context attribute="Definition" lineEndContext="#stay" name="Function">
+			<DetectSpaces/>
+			<DetectChar char="(" attribute="Normal Text" context="#pop"/>
+			<DetectChar char="&lt;" attribute="Normal Text" context="#pop"/>
+		</context>
+		<context attribute="Definition" lineEndContext="#stay" name="Type">
+			<DetectSpaces/>
+			<DetectChar char="=" attribute="Normal Text" context="#pop"/>
+			<DetectChar char="&lt;" attribute="Normal Text" context="#pop"/>
+			<DetectChar char=";" attribute="Normal Text" context="#pop"/>
+		</context>
+                <!-- Rustc allows strings to extend over multiple lines, and the
+                only thing a backshash at end-of-line does is remove the whitespace. -->
+                <context attribute="String" lineEndContext="#stay" name="String">
+                        <DetectChar char="\" attribute="CharEscape" context="CharEscape"/>
+                        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+                </context>
+		<context attribute="String" lineEndContext="#stay" name="RawString">
+			<DetectChar attribute="String" context="#pop" char="&quot;"/>
+		</context>
+                <!-- These rules are't complete: they won't match r###"abc"### -->
+                <context attribute="String" lineEndContext="#stay" name="RawHashed1">
+                        <Detect2Chars attribute="String" context="#pop" char="&quot;" char1="#"/>
+                </context>
+                <context attribute="String" lineEndContext="#stay" name="RawHashed2">
+                        <StringDetect attribute="String" context="#pop" String="&quot;##"/>
+                </context>
+		<context attribute="Character" lineEndContext="#pop" name="Character">
+			<DetectChar char="\" attribute="CharEscape" context="CharEscape"/>
+			<DetectChar attribute="Character" context="#pop" char="&apos;"/>
+		</context>
+		<context attribute="CharEscape" lineEndContext="#pop" name="CharEscape">
+			<AnyChar String="nrt\&apos;&quot;" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="x[0-9a-fA-F]{2}" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="u\{[0-9a-fA-F]{1,6}\}" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="u[0-9a-fA-F]{4}" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="U[0-9a-fA-F]{8}" attribute="CharEscape" context="#pop"/>
+			<RegExpr String="." attribute="Error" context="#pop"/>
+		</context>
+		<context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
+		<context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+			<DetectSpaces/>
+			<Detect2Chars char="/" char1="*" attribute="Comment" context="Commentar 2" beginRegion="Comment"/>
+			<Detect2Chars char="*" char1="/" attribute="Comment" context="#pop" endRegion="Comment"/>
+		</context>
+	</contexts>
+	<itemDatas>
+		<itemData name="Normal Text"  defStyleNum="dsNormal"/>
+		<itemData name="Keyword"      defStyleNum="dsKeyword" spellChecking="0"/>
+		<itemData name="Self"         defStyleNum="dsKeyword" spellChecking="0"/>
+		<itemData name="Type"         defStyleNum="dsDataType" spellChecking="0"/>
+		<itemData name="Trait"        defStyleNum="dsBuiltIn" spellChecking="0"/>
+		<itemData name="CType"        defStyleNum="dsDataType" spellChecking="0"/>
+		<itemData name="Constant"     defStyleNum="dsConstant" spellChecking="0"/>
+		<itemData name="CConstant"    defStyleNum="dsConstant" spellChecking="0"/>
+		<itemData name="Definition"   defStyleNum="dsNormal"/>
+		<itemData name="Comment"      defStyleNum="dsComment"/>
+		<itemData name="Scope"        defStyleNum="dsNormal"/>
+		<itemData name="Number"       defStyleNum="dsDecVal"/>
+		<itemData name="String"       defStyleNum="dsString"/>
+		<itemData name="CharEscape"   defStyleNum="dsSpecialChar"/>
+		<itemData name="Character"    defStyleNum="dsChar"/>
+		<itemData name="Macro"        defStyleNum="dsPreprocessor"/>
+		<itemData name="Symbol"       defStyleNum="dsOperator"/>
+		<itemData name="Attribute"    defStyleNum="dsAttribute"/>
+		<itemData name="Lifetime"     defStyleNum="dsOthers" spellChecking="0"/>
+		<itemData name="Error"        defStyleNum="dsError"/>
+	</itemDatas>
+</highlighting>
+<general>
+	<comments>
+		<comment name="singleLine" start="//" />
+		<comment name="multiLine" start="/*" end="*/" region="Comment"/>
+	</comments>
+	<keywords casesensitive="1" />
+</general>
+</language>
+
diff --git a/xml/scala.xml b/xml/scala.xml
new file mode 100644
--- /dev/null
+++ b/xml/scala.xml
@@ -0,0 +1,3503 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Scala" version="4" kateversion="2.3" section="Sources"
+          extensions="*.scala;*.sbt" mimetype="text/x-scala" license="LGPL"
+          author="Stephane Micheloud (stephane.micheloud@epfl.ch)">
+<!--
+First version added to reository was 1.0 downloaded from
+https://lampsvn.epfl.ch/trac/scala/browser/scala-tool-support/trunk/src/kate/scala.xml?format=raw
+
+adapted from "java.xml" by Alfredo Luiz Foltran Fialho (alfoltran@ig.com.br)
+-->
+  <highlighting>
+    <list name="scala2">
+      <item>Actor</item>
+      <item>ActorProxy</item>
+      <item>ActorTask</item>
+      <item>ActorThread</item>
+      <item>AllRef</item>
+      <item>Any</item>
+      <item>AnyRef</item>
+      <item>Application</item>
+      <item>AppliedType</item>
+      <item>Array</item>
+      <item>ArrayBuffer</item>
+      <item>Attribute</item>
+      <item>BoxedArray</item>
+      <item>BoxedBooleanArray</item>
+      <item>BoxedByteArray</item>
+      <item>BoxedCharArray</item>
+      <item>Buffer</item>
+      <item>BufferedIterator</item>
+      <item>Char</item>
+      <item>Console</item>
+      <item>Enumeration</item>
+      <item>Fluid</item>
+      <item>Function</item>
+      <item>IScheduler</item>
+      <item>ImmutableMapAdaptor</item>
+      <item>ImmutableSetAdaptor</item>
+      <item>Int</item>
+      <item>Iterable</item>
+      <item>List</item>
+      <item>ListBuffer</item>
+      <item>None</item>
+      <item>Option</item>
+      <item>Ordered</item>
+      <item>Pair</item>
+      <item>PartialFunction</item>
+      <item>Pid</item>
+      <item>Predef</item>
+      <item>PriorityQueue</item>
+      <item>PriorityQueueProxy</item>
+      <item>Reaction</item>
+      <item>Ref</item>
+      <item>Responder</item>
+      <item>RichInt</item>
+      <item>RichString</item>
+      <item>Rule</item>
+      <item>RuleTransformer</item>
+      <item>Script</item>
+      <item>Seq</item>
+      <item>SerialVersionUID</item>
+      <item>Some</item>
+      <item>Stream</item>
+      <item>Symbol</item>
+      <item>TcpService</item>
+      <item>TcpServiceWorker</item>
+      <item>Triple</item>
+      <item>Unit</item>
+      <item>Value</item>
+      <item>WorkerThread</item>
+      <item>serializable</item>
+      <item>transient</item>
+      <item>volatile</item>
+    </list>
+    <list name="java15">
+      <item>ACTIVE</item>
+      <item>ACTIVITY_COMPLETED</item>
+      <item>ACTIVITY_REQUIRED</item>
+      <item>ARG_IN</item>
+      <item>ARG_INOUT</item>
+      <item>ARG_OUT</item>
+      <item>AWTError</item>
+      <item>AWTEvent</item>
+      <item>AWTEventListener</item>
+      <item>AWTEventListenerProxy</item>
+      <item>AWTEventMulticaster</item>
+      <item>AWTException</item>
+      <item>AWTKeyStroke</item>
+      <item>AWTPermission</item>
+      <item>AbstractAction</item>
+      <item>AbstractBorder</item>
+      <item>AbstractButton</item>
+      <item>AbstractCellEditor</item>
+      <item>AbstractCollection</item>
+      <item>AbstractColorChooserPanel</item>
+      <item>AbstractDocument</item>
+      <item>AbstractDocument.AttributeContext</item>
+      <item>AbstractDocument.Content</item>
+      <item>AbstractDocument.ElementEdit</item>
+      <item>AbstractExecutorService</item>
+      <item>AbstractInterruptibleChannel</item>
+      <item>AbstractLayoutCache</item>
+      <item>AbstractLayoutCache.NodeDimensions</item>
+      <item>AbstractList</item>
+      <item>AbstractListModel</item>
+      <item>AbstractMap</item>
+      <item>AbstractMethodError</item>
+      <item>AbstractPreferences</item>
+      <item>AbstractQueue</item>
+      <item>AbstractQueuedSynchronizer</item>
+      <item>AbstractSelectableChannel</item>
+      <item>AbstractSelectionKey</item>
+      <item>AbstractSelector</item>
+      <item>AbstractSequentialList</item>
+      <item>AbstractSet</item>
+      <item>AbstractSpinnerModel</item>
+      <item>AbstractTableModel</item>
+      <item>AbstractUndoableEdit</item>
+      <item>AbstractWriter</item>
+      <item>AccessControlContext</item>
+      <item>AccessControlException</item>
+      <item>AccessController</item>
+      <item>AccessException</item>
+      <item>Accessible</item>
+      <item>AccessibleAction</item>
+      <item>AccessibleAttributeSequence</item>
+      <item>AccessibleBundle</item>
+      <item>AccessibleComponent</item>
+      <item>AccessibleContext</item>
+      <item>AccessibleEditableText</item>
+      <item>AccessibleExtendedComponent</item>
+      <item>AccessibleExtendedTable</item>
+      <item>AccessibleExtendedText</item>
+      <item>AccessibleHyperlink</item>
+      <item>AccessibleHypertext</item>
+      <item>AccessibleIcon</item>
+      <item>AccessibleKeyBinding</item>
+      <item>AccessibleObject</item>
+      <item>AccessibleRelation</item>
+      <item>AccessibleRelationSet</item>
+      <item>AccessibleResourceBundle</item>
+      <item>AccessibleRole</item>
+      <item>AccessibleSelection</item>
+      <item>AccessibleState</item>
+      <item>AccessibleStateSet</item>
+      <item>AccessibleStreamable</item>
+      <item>AccessibleTable</item>
+      <item>AccessibleTableModelChange</item>
+      <item>AccessibleText</item>
+      <item>AccessibleTextSequence</item>
+      <item>AccessibleValue</item>
+      <item>AccountException</item>
+      <item>AccountExpiredException</item>
+      <item>AccountLockedException</item>
+      <item>AccountNotFoundException</item>
+      <item>Acl</item>
+      <item>AclEntry</item>
+      <item>AclNotFoundException</item>
+      <item>Action</item>
+      <item>ActionEvent</item>
+      <item>ActionListener</item>
+      <item>ActionMap</item>
+      <item>ActionMapUIResource</item>
+      <item>Activatable</item>
+      <item>ActivateFailedException</item>
+      <item>ActivationDesc</item>
+      <item>ActivationException</item>
+      <item>ActivationGroup</item>
+      <item>ActivationGroupDesc</item>
+      <item>ActivationGroupDesc.CommandEnvironment</item>
+      <item>ActivationGroupID</item>
+      <item>ActivationGroup_Stub</item>
+      <item>ActivationID</item>
+      <item>ActivationInstantiator</item>
+      <item>ActivationMonitor</item>
+      <item>ActivationSystem</item>
+      <item>Activator</item>
+      <item>ActiveEvent</item>
+      <item>ActivityCompletedException</item>
+      <item>ActivityRequiredException</item>
+      <item>AdapterActivator</item>
+      <item>AdapterActivatorOperations</item>
+      <item>AdapterAlreadyExists</item>
+      <item>AdapterAlreadyExistsHelper</item>
+      <item>AdapterInactive</item>
+      <item>AdapterInactiveHelper</item>
+      <item>AdapterManagerIdHelper</item>
+      <item>AdapterNameHelper</item>
+      <item>AdapterNonExistent</item>
+      <item>AdapterNonExistentHelper</item>
+      <item>AdapterStateHelper</item>
+      <item>AddressHelper</item>
+      <item>Adjustable</item>
+      <item>AdjustmentEvent</item>
+      <item>AdjustmentListener</item>
+      <item>Adler32</item>
+      <item>AffineTransform</item>
+      <item>AffineTransformOp</item>
+      <item>AlgorithmParameterGenerator</item>
+      <item>AlgorithmParameterGeneratorSpi</item>
+      <item>AlgorithmParameterSpec</item>
+      <item>AlgorithmParameters</item>
+      <item>AlgorithmParametersSpi</item>
+      <item>AllPermission</item>
+      <item>AlphaComposite</item>
+      <item>AlreadyBound</item>
+      <item>AlreadyBoundException</item>
+      <item>AlreadyBoundHelper</item>
+      <item>AlreadyBoundHolder</item>
+      <item>AlreadyConnectedException</item>
+      <item>AncestorEvent</item>
+      <item>AncestorListener</item>
+      <item>AnnotatedElement</item>
+      <item>Annotation</item>
+      <item>Annotation</item>
+      <item>AnnotationFormatError</item>
+      <item>AnnotationTypeMismatchException</item>
+      <item>Any</item>
+      <item>AnyHolder</item>
+      <item>AnySeqHelper</item>
+      <item>AnySeqHelper</item>
+      <item>AnySeqHolder</item>
+      <item>AppConfigurationEntry</item>
+      <item>AppConfigurationEntry.LoginModuleControlFlag</item>
+      <item>Appendable</item>
+      <item>Applet</item>
+      <item>AppletContext</item>
+      <item>AppletInitializer</item>
+      <item>AppletStub</item>
+      <item>ApplicationException</item>
+      <item>Arc2D</item>
+      <item>Arc2D.Double</item>
+      <item>Arc2D.Float</item>
+      <item>Area</item>
+      <item>AreaAveragingScaleFilter</item>
+      <item>ArithmeticException</item>
+      <item>Array</item>
+      <item>Array</item>
+      <item>ArrayBlockingQueue</item>
+      <item>ArrayIndexOutOfBoundsException</item>
+      <item>ArrayList</item>
+      <item>ArrayStoreException</item>
+      <item>ArrayType</item>
+      <item>Arrays</item>
+      <item>AssertionError</item>
+      <item>AsyncBoxView</item>
+      <item>AsynchronousCloseException</item>
+      <item>AtomicBoolean</item>
+      <item>AtomicInteger</item>
+      <item>AtomicIntegerArray</item>
+      <item>AtomicIntegerFieldUpdater</item>
+      <item>AtomicLong</item>
+      <item>AtomicLongArray</item>
+      <item>AtomicLongFieldUpdater</item>
+      <item>AtomicMarkableReference</item>
+      <item>AtomicReference</item>
+      <item>AtomicReferenceArray</item>
+      <item>AtomicReferenceFieldUpdater</item>
+      <item>AtomicStampedReference</item>
+      <item>Attr</item>
+      <item>Attribute</item>
+      <item>Attribute</item>
+      <item>Attribute</item>
+      <item>AttributeChangeNotification</item>
+      <item>AttributeChangeNotificationFilter</item>
+      <item>AttributeException</item>
+      <item>AttributeInUseException</item>
+      <item>AttributeList</item>
+      <item>AttributeList</item>
+      <item>AttributeList</item>
+      <item>AttributeListImpl</item>
+      <item>AttributeModificationException</item>
+      <item>AttributeNotFoundException</item>
+      <item>AttributeSet</item>
+      <item>AttributeSet</item>
+      <item>AttributeSet.CharacterAttribute</item>
+      <item>AttributeSet.ColorAttribute</item>
+      <item>AttributeSet.FontAttribute</item>
+      <item>AttributeSet.ParagraphAttribute</item>
+      <item>AttributeSetUtilities</item>
+      <item>AttributeValueExp</item>
+      <item>AttributedCharacterIterator</item>
+      <item>AttributedCharacterIterator.Attribute</item>
+      <item>AttributedString</item>
+      <item>Attributes</item>
+      <item>Attributes</item>
+      <item>Attributes</item>
+      <item>Attributes.Name</item>
+      <item>Attributes2</item>
+      <item>Attributes2Impl</item>
+      <item>AttributesImpl</item>
+      <item>AudioClip</item>
+      <item>AudioFileFormat</item>
+      <item>AudioFileFormat.Type</item>
+      <item>AudioFileReader</item>
+      <item>AudioFileWriter</item>
+      <item>AudioFormat</item>
+      <item>AudioFormat.Encoding</item>
+      <item>AudioInputStream</item>
+      <item>AudioPermission</item>
+      <item>AudioSystem</item>
+      <item>AuthPermission</item>
+      <item>AuthProvider</item>
+      <item>AuthenticationException</item>
+      <item>AuthenticationException</item>
+      <item>AuthenticationNotSupportedException</item>
+      <item>Authenticator</item>
+      <item>Authenticator.RequestorType</item>
+      <item>AuthorizeCallback</item>
+      <item>Autoscroll</item>
+      <item>BAD_CONTEXT</item>
+      <item>BAD_INV_ORDER</item>
+      <item>BAD_OPERATION</item>
+      <item>BAD_PARAM</item>
+      <item>BAD_POLICY</item>
+      <item>BAD_POLICY_TYPE</item>
+      <item>BAD_POLICY_VALUE</item>
+      <item>BAD_QOS</item>
+      <item>BAD_TYPECODE</item>
+      <item>BMPImageWriteParam</item>
+      <item>BackingStoreException</item>
+      <item>BadAttributeValueExpException</item>
+      <item>BadBinaryOpValueExpException</item>
+      <item>BadKind</item>
+      <item>BadLocationException</item>
+      <item>BadPaddingException</item>
+      <item>BadStringOperationException</item>
+      <item>BandCombineOp</item>
+      <item>BandedSampleModel</item>
+      <item>BaseRowSet</item>
+      <item>BasicArrowButton</item>
+      <item>BasicAttribute</item>
+      <item>BasicAttributes</item>
+      <item>BasicBorders</item>
+      <item>BasicBorders.ButtonBorder</item>
+      <item>BasicBorders.FieldBorder</item>
+      <item>BasicBorders.MarginBorder</item>
+      <item>BasicBorders.MenuBarBorder</item>
+      <item>BasicBorders.RadioButtonBorder</item>
+      <item>BasicBorders.RolloverButtonBorder</item>
+      <item>BasicBorders.SplitPaneBorder</item>
+      <item>BasicBorders.ToggleButtonBorder</item>
+      <item>BasicButtonListener</item>
+      <item>BasicButtonUI</item>
+      <item>BasicCheckBoxMenuItemUI</item>
+      <item>BasicCheckBoxUI</item>
+      <item>BasicColorChooserUI</item>
+      <item>BasicComboBoxEditor</item>
+      <item>BasicComboBoxEditor.UIResource</item>
+      <item>BasicComboBoxRenderer</item>
+      <item>BasicComboBoxRenderer.UIResource</item>
+      <item>BasicComboBoxUI</item>
+      <item>BasicComboPopup</item>
+      <item>BasicControl</item>
+      <item>BasicDesktopIconUI</item>
+      <item>BasicDesktopPaneUI</item>
+      <item>BasicDirectoryModel</item>
+      <item>BasicEditorPaneUI</item>
+      <item>BasicFileChooserUI</item>
+      <item>BasicFormattedTextFieldUI</item>
+      <item>BasicGraphicsUtils</item>
+      <item>BasicHTML</item>
+      <item>BasicIconFactory</item>
+      <item>BasicInternalFrameTitlePane</item>
+      <item>BasicInternalFrameUI</item>
+      <item>BasicLabelUI</item>
+      <item>BasicListUI</item>
+      <item>BasicLookAndFeel</item>
+      <item>BasicMenuBarUI</item>
+      <item>BasicMenuItemUI</item>
+      <item>BasicMenuUI</item>
+      <item>BasicOptionPaneUI</item>
+      <item>BasicOptionPaneUI.ButtonAreaLayout</item>
+      <item>BasicPanelUI</item>
+      <item>BasicPasswordFieldUI</item>
+      <item>BasicPermission</item>
+      <item>BasicPopupMenuSeparatorUI</item>
+      <item>BasicPopupMenuUI</item>
+      <item>BasicProgressBarUI</item>
+      <item>BasicRadioButtonMenuItemUI</item>
+      <item>BasicRadioButtonUI</item>
+      <item>BasicRootPaneUI</item>
+      <item>BasicScrollBarUI</item>
+      <item>BasicScrollPaneUI</item>
+      <item>BasicSeparatorUI</item>
+      <item>BasicSliderUI</item>
+      <item>BasicSpinnerUI</item>
+      <item>BasicSplitPaneDivider</item>
+      <item>BasicSplitPaneUI</item>
+      <item>BasicStroke</item>
+      <item>BasicTabbedPaneUI</item>
+      <item>BasicTableHeaderUI</item>
+      <item>BasicTableUI</item>
+      <item>BasicTextAreaUI</item>
+      <item>BasicTextFieldUI</item>
+      <item>BasicTextPaneUI</item>
+      <item>BasicTextUI</item>
+      <item>BasicTextUI.BasicCaret</item>
+      <item>BasicTextUI.BasicHighlighter</item>
+      <item>BasicToggleButtonUI</item>
+      <item>BasicToolBarSeparatorUI</item>
+      <item>BasicToolBarUI</item>
+      <item>BasicToolTipUI</item>
+      <item>BasicTreeUI</item>
+      <item>BasicViewportUI</item>
+      <item>BatchUpdateException</item>
+      <item>BeanContext</item>
+      <item>BeanContextChild</item>
+      <item>BeanContextChildComponentProxy</item>
+      <item>BeanContextChildSupport</item>
+      <item>BeanContextContainerProxy</item>
+      <item>BeanContextEvent</item>
+      <item>BeanContextMembershipEvent</item>
+      <item>BeanContextMembershipListener</item>
+      <item>BeanContextProxy</item>
+      <item>BeanContextServiceAvailableEvent</item>
+      <item>BeanContextServiceProvider</item>
+      <item>BeanContextServiceProviderBeanInfo</item>
+      <item>BeanContextServiceRevokedEvent</item>
+      <item>BeanContextServiceRevokedListener</item>
+      <item>BeanContextServices</item>
+      <item>BeanContextServicesListener</item>
+      <item>BeanContextServicesSupport</item>
+      <item>BeanContextServicesSupport.BCSSServiceProvider</item>
+      <item>BeanContextSupport</item>
+      <item>BeanContextSupport.BCSIterator</item>
+      <item>BeanDescriptor</item>
+      <item>BeanInfo</item>
+      <item>Beans</item>
+      <item>BevelBorder</item>
+      <item>Bidi</item>
+      <item>BigDecimal</item>
+      <item>BigInteger</item>
+      <item>BinaryRefAddr</item>
+      <item>BindException</item>
+      <item>Binding</item>
+      <item>Binding</item>
+      <item>BindingHelper</item>
+      <item>BindingHolder</item>
+      <item>BindingIterator</item>
+      <item>BindingIteratorHelper</item>
+      <item>BindingIteratorHolder</item>
+      <item>BindingIteratorOperations</item>
+      <item>BindingIteratorPOA</item>
+      <item>BindingListHelper</item>
+      <item>BindingListHolder</item>
+      <item>BindingType</item>
+      <item>BindingTypeHelper</item>
+      <item>BindingTypeHolder</item>
+      <item>BitSet</item>
+      <item>Blob</item>
+      <item>BlockView</item>
+      <item>BlockingQueue</item>
+      <item>Book</item>
+      <item>Boolean</item>
+      <item>BooleanControl</item>
+      <item>BooleanControl.Type</item>
+      <item>BooleanHolder</item>
+      <item>BooleanSeqHelper</item>
+      <item>BooleanSeqHolder</item>
+      <item>Border</item>
+      <item>BorderFactory</item>
+      <item>BorderLayout</item>
+      <item>BorderUIResource</item>
+      <item>BorderUIResource.BevelBorderUIResource</item>
+      <item>BorderUIResource.CompoundBorderUIResource</item>
+      <item>BorderUIResource.EmptyBorderUIResource</item>
+      <item>BorderUIResource.EtchedBorderUIResource</item>
+      <item>BorderUIResource.LineBorderUIResource</item>
+      <item>BorderUIResource.MatteBorderUIResource</item>
+      <item>BorderUIResource.TitledBorderUIResource</item>
+      <item>BoundedRangeModel</item>
+      <item>Bounds</item>
+      <item>Bounds</item>
+      <item>Box</item>
+      <item>Box.Filler</item>
+      <item>BoxLayout</item>
+      <item>BoxView</item>
+      <item>BoxedValueHelper</item>
+      <item>BreakIterator</item>
+      <item>BrokenBarrierException</item>
+      <item>Buffer</item>
+      <item>BufferCapabilities</item>
+      <item>BufferCapabilities.FlipContents</item>
+      <item>BufferOverflowException</item>
+      <item>BufferStrategy</item>
+      <item>BufferUnderflowException</item>
+      <item>BufferedImage</item>
+      <item>BufferedImageFilter</item>
+      <item>BufferedImageOp</item>
+      <item>BufferedInputStream</item>
+      <item>BufferedOutputStream</item>
+      <item>BufferedReader</item>
+      <item>BufferedWriter</item>
+      <item>Button</item>
+      <item>ButtonGroup</item>
+      <item>ButtonModel</item>
+      <item>ButtonUI</item>
+      <item>Byte</item>
+      <item>ByteArrayInputStream</item>
+      <item>ByteArrayOutputStream</item>
+      <item>ByteBuffer</item>
+      <item>ByteChannel</item>
+      <item>ByteHolder</item>
+      <item>ByteLookupTable</item>
+      <item>ByteOrder</item>
+      <item>CDATASection</item>
+      <item>CMMException</item>
+      <item>CODESET_INCOMPATIBLE</item>
+      <item>COMM_FAILURE</item>
+      <item>CRC32</item>
+      <item>CRL</item>
+      <item>CRLException</item>
+      <item>CRLSelector</item>
+      <item>CSS</item>
+      <item>CSS.Attribute</item>
+      <item>CTX_RESTRICT_SCOPE</item>
+      <item>CacheRequest</item>
+      <item>CacheResponse</item>
+      <item>CachedRowSet</item>
+      <item>Calendar</item>
+      <item>Callable</item>
+      <item>CallableStatement</item>
+      <item>Callback</item>
+      <item>CallbackHandler</item>
+      <item>CancelablePrintJob</item>
+      <item>CancellationException</item>
+      <item>CancelledKeyException</item>
+      <item>CannotProceed</item>
+      <item>CannotProceedException</item>
+      <item>CannotProceedHelper</item>
+      <item>CannotProceedHolder</item>
+      <item>CannotRedoException</item>
+      <item>CannotUndoException</item>
+      <item>Canvas</item>
+      <item>CardLayout</item>
+      <item>Caret</item>
+      <item>CaretEvent</item>
+      <item>CaretListener</item>
+      <item>CellEditor</item>
+      <item>CellEditorListener</item>
+      <item>CellRendererPane</item>
+      <item>CertPath</item>
+      <item>CertPath.CertPathRep</item>
+      <item>CertPathBuilder</item>
+      <item>CertPathBuilderException</item>
+      <item>CertPathBuilderResult</item>
+      <item>CertPathBuilderSpi</item>
+      <item>CertPathParameters</item>
+      <item>CertPathTrustManagerParameters</item>
+      <item>CertPathValidator</item>
+      <item>CertPathValidatorException</item>
+      <item>CertPathValidatorResult</item>
+      <item>CertPathValidatorSpi</item>
+      <item>CertSelector</item>
+      <item>CertStore</item>
+      <item>CertStoreException</item>
+      <item>CertStoreParameters</item>
+      <item>CertStoreSpi</item>
+      <item>Certificate</item>
+      <item>Certificate</item>
+      <item>Certificate</item>
+      <item>Certificate.CertificateRep</item>
+      <item>CertificateEncodingException</item>
+      <item>CertificateEncodingException</item>
+      <item>CertificateException</item>
+      <item>CertificateException</item>
+      <item>CertificateExpiredException</item>
+      <item>CertificateExpiredException</item>
+      <item>CertificateFactory</item>
+      <item>CertificateFactorySpi</item>
+      <item>CertificateNotYetValidException</item>
+      <item>CertificateNotYetValidException</item>
+      <item>CertificateParsingException</item>
+      <item>CertificateParsingException</item>
+      <item>ChangeEvent</item>
+      <item>ChangeListener</item>
+      <item>ChangedCharSetException</item>
+      <item>Channel</item>
+      <item>ChannelBinding</item>
+      <item>Channels</item>
+      <item>CharArrayReader</item>
+      <item>CharArrayWriter</item>
+      <item>CharBuffer</item>
+      <item>CharConversionException</item>
+      <item>CharHolder</item>
+      <item>CharSeqHelper</item>
+      <item>CharSeqHolder</item>
+      <item>CharSequence</item>
+      <item>Character</item>
+      <item>Character.Subset</item>
+      <item>Character.UnicodeBlock</item>
+      <item>CharacterCodingException</item>
+      <item>CharacterData</item>
+      <item>CharacterIterator</item>
+      <item>Charset</item>
+      <item>CharsetDecoder</item>
+      <item>CharsetEncoder</item>
+      <item>CharsetProvider</item>
+      <item>Checkbox</item>
+      <item>CheckboxGroup</item>
+      <item>CheckboxMenuItem</item>
+      <item>CheckedInputStream</item>
+      <item>CheckedOutputStream</item>
+      <item>Checksum</item>
+      <item>Choice</item>
+      <item>ChoiceCallback</item>
+      <item>ChoiceFormat</item>
+      <item>Chromaticity</item>
+      <item>Cipher</item>
+      <item>CipherInputStream</item>
+      <item>CipherOutputStream</item>
+      <item>CipherSpi</item>
+      <item>Class</item>
+      <item>ClassCastException</item>
+      <item>ClassCircularityError</item>
+      <item>ClassDefinition</item>
+      <item>ClassDesc</item>
+      <item>ClassFileTransformer</item>
+      <item>ClassFormatError</item>
+      <item>ClassLoader</item>
+      <item>ClassLoaderRepository</item>
+      <item>ClassLoadingMXBean</item>
+      <item>ClassNotFoundException</item>
+      <item>ClientRequestInfo</item>
+      <item>ClientRequestInfoOperations</item>
+      <item>ClientRequestInterceptor</item>
+      <item>ClientRequestInterceptorOperations</item>
+      <item>Clip</item>
+      <item>Clipboard</item>
+      <item>ClipboardOwner</item>
+      <item>Clob</item>
+      <item>CloneNotSupportedException</item>
+      <item>Cloneable</item>
+      <item>Closeable</item>
+      <item>ClosedByInterruptException</item>
+      <item>ClosedChannelException</item>
+      <item>ClosedSelectorException</item>
+      <item>CodeSets</item>
+      <item>CodeSigner</item>
+      <item>CodeSource</item>
+      <item>Codec</item>
+      <item>CodecFactory</item>
+      <item>CodecFactoryHelper</item>
+      <item>CodecFactoryOperations</item>
+      <item>CodecOperations</item>
+      <item>CoderMalfunctionError</item>
+      <item>CoderResult</item>
+      <item>CodingErrorAction</item>
+      <item>CollationElementIterator</item>
+      <item>CollationKey</item>
+      <item>Collator</item>
+      <item>Collection</item>
+      <item>CollectionCertStoreParameters</item>
+      <item>Collections</item>
+      <item>Color</item>
+      <item>ColorChooserComponentFactory</item>
+      <item>ColorChooserUI</item>
+      <item>ColorConvertOp</item>
+      <item>ColorModel</item>
+      <item>ColorSelectionModel</item>
+      <item>ColorSpace</item>
+      <item>ColorSupported</item>
+      <item>ColorType</item>
+      <item>ColorUIResource</item>
+      <item>ComboBoxEditor</item>
+      <item>ComboBoxModel</item>
+      <item>ComboBoxUI</item>
+      <item>ComboPopup</item>
+      <item>Comment</item>
+      <item>CommunicationException</item>
+      <item>Comparable</item>
+      <item>Comparator</item>
+      <item>CompilationMXBean</item>
+      <item>Compiler</item>
+      <item>CompletionService</item>
+      <item>CompletionStatus</item>
+      <item>CompletionStatusHelper</item>
+      <item>Component</item>
+      <item>ComponentAdapter</item>
+      <item>ComponentColorModel</item>
+      <item>ComponentEvent</item>
+      <item>ComponentIdHelper</item>
+      <item>ComponentInputMap</item>
+      <item>ComponentInputMapUIResource</item>
+      <item>ComponentListener</item>
+      <item>ComponentOrientation</item>
+      <item>ComponentSampleModel</item>
+      <item>ComponentUI</item>
+      <item>ComponentView</item>
+      <item>Composite</item>
+      <item>CompositeContext</item>
+      <item>CompositeData</item>
+      <item>CompositeDataSupport</item>
+      <item>CompositeName</item>
+      <item>CompositeType</item>
+      <item>CompositeView</item>
+      <item>CompoundBorder</item>
+      <item>CompoundControl</item>
+      <item>CompoundControl.Type</item>
+      <item>CompoundEdit</item>
+      <item>CompoundName</item>
+      <item>Compression</item>
+      <item>ConcurrentHashMap</item>
+      <item>ConcurrentLinkedQueue</item>
+      <item>ConcurrentMap</item>
+      <item>ConcurrentModificationException</item>
+      <item>Condition</item>
+      <item>Configuration</item>
+      <item>ConfigurationException</item>
+      <item>ConfirmationCallback</item>
+      <item>ConnectException</item>
+      <item>ConnectException</item>
+      <item>ConnectIOException</item>
+      <item>Connection</item>
+      <item>ConnectionEvent</item>
+      <item>ConnectionEventListener</item>
+      <item>ConnectionPendingException</item>
+      <item>ConnectionPoolDataSource</item>
+      <item>ConsoleHandler</item>
+      <item>Constructor</item>
+      <item>Container</item>
+      <item>ContainerAdapter</item>
+      <item>ContainerEvent</item>
+      <item>ContainerListener</item>
+      <item>ContainerOrderFocusTraversalPolicy</item>
+      <item>ContentHandler</item>
+      <item>ContentHandler</item>
+      <item>ContentHandlerFactory</item>
+      <item>ContentModel</item>
+      <item>Context</item>
+      <item>Context</item>
+      <item>ContextList</item>
+      <item>ContextNotEmptyException</item>
+      <item>ContextualRenderedImageFactory</item>
+      <item>Control</item>
+      <item>Control</item>
+      <item>Control.Type</item>
+      <item>ControlFactory</item>
+      <item>ControllerEventListener</item>
+      <item>ConvolveOp</item>
+      <item>CookieHandler</item>
+      <item>CookieHolder</item>
+      <item>Copies</item>
+      <item>CopiesSupported</item>
+      <item>CopyOnWriteArrayList</item>
+      <item>CopyOnWriteArraySet</item>
+      <item>CountDownLatch</item>
+      <item>CounterMonitor</item>
+      <item>CounterMonitorMBean</item>
+      <item>CredentialException</item>
+      <item>CredentialExpiredException</item>
+      <item>CredentialNotFoundException</item>
+      <item>CropImageFilter</item>
+      <item>CubicCurve2D</item>
+      <item>CubicCurve2D.Double</item>
+      <item>CubicCurve2D.Float</item>
+      <item>Currency</item>
+      <item>Current</item>
+      <item>Current</item>
+      <item>Current</item>
+      <item>CurrentHelper</item>
+      <item>CurrentHelper</item>
+      <item>CurrentHelper</item>
+      <item>CurrentHolder</item>
+      <item>CurrentOperations</item>
+      <item>CurrentOperations</item>
+      <item>CurrentOperations</item>
+      <item>Cursor</item>
+      <item>CustomMarshal</item>
+      <item>CustomValue</item>
+      <item>Customizer</item>
+      <item>CyclicBarrier</item>
+      <item>DATA_CONVERSION</item>
+      <item>DESKeySpec</item>
+      <item>DESedeKeySpec</item>
+      <item>DGC</item>
+      <item>DHGenParameterSpec</item>
+      <item>DHKey</item>
+      <item>DHParameterSpec</item>
+      <item>DHPrivateKey</item>
+      <item>DHPrivateKeySpec</item>
+      <item>DHPublicKey</item>
+      <item>DHPublicKeySpec</item>
+      <item>DISCARDING</item>
+      <item>DOMConfiguration</item>
+      <item>DOMError</item>
+      <item>DOMErrorHandler</item>
+      <item>DOMException</item>
+      <item>DOMImplementation</item>
+      <item>DOMImplementationLS</item>
+      <item>DOMImplementationList</item>
+      <item>DOMImplementationRegistry</item>
+      <item>DOMImplementationSource</item>
+      <item>DOMLocator</item>
+      <item>DOMLocator</item>
+      <item>DOMResult</item>
+      <item>DOMSource</item>
+      <item>DOMStringList</item>
+      <item>DSAKey</item>
+      <item>DSAKeyPairGenerator</item>
+      <item>DSAParameterSpec</item>
+      <item>DSAParams</item>
+      <item>DSAPrivateKey</item>
+      <item>DSAPrivateKeySpec</item>
+      <item>DSAPublicKey</item>
+      <item>DSAPublicKeySpec</item>
+      <item>DTD</item>
+      <item>DTDConstants</item>
+      <item>DTDHandler</item>
+      <item>DataBuffer</item>
+      <item>DataBufferByte</item>
+      <item>DataBufferDouble</item>
+      <item>DataBufferFloat</item>
+      <item>DataBufferInt</item>
+      <item>DataBufferShort</item>
+      <item>DataBufferUShort</item>
+      <item>DataFlavor</item>
+      <item>DataFormatException</item>
+      <item>DataInput</item>
+      <item>DataInputStream</item>
+      <item>DataInputStream</item>
+      <item>DataLine</item>
+      <item>DataLine.Info</item>
+      <item>DataOutput</item>
+      <item>DataOutputStream</item>
+      <item>DataOutputStream</item>
+      <item>DataSource</item>
+      <item>DataTruncation</item>
+      <item>DatabaseMetaData</item>
+      <item>DatagramChannel</item>
+      <item>DatagramPacket</item>
+      <item>DatagramSocket</item>
+      <item>DatagramSocketImpl</item>
+      <item>DatagramSocketImplFactory</item>
+      <item>DatatypeConfigurationException</item>
+      <item>DatatypeConstants</item>
+      <item>DatatypeConstants.Field</item>
+      <item>DatatypeFactory</item>
+      <item>Date</item>
+      <item>Date</item>
+      <item>DateFormat</item>
+      <item>DateFormat.Field</item>
+      <item>DateFormatSymbols</item>
+      <item>DateFormatter</item>
+      <item>DateTimeAtCompleted</item>
+      <item>DateTimeAtCreation</item>
+      <item>DateTimeAtProcessing</item>
+      <item>DateTimeSyntax</item>
+      <item>DebugGraphics</item>
+      <item>DecimalFormat</item>
+      <item>DecimalFormatSymbols</item>
+      <item>DeclHandler</item>
+      <item>DefaultBoundedRangeModel</item>
+      <item>DefaultButtonModel</item>
+      <item>DefaultCaret</item>
+      <item>DefaultCellEditor</item>
+      <item>DefaultColorSelectionModel</item>
+      <item>DefaultComboBoxModel</item>
+      <item>DefaultDesktopManager</item>
+      <item>DefaultEditorKit</item>
+      <item>DefaultEditorKit.BeepAction</item>
+      <item>DefaultEditorKit.CopyAction</item>
+      <item>DefaultEditorKit.CutAction</item>
+      <item>DefaultEditorKit.DefaultKeyTypedAction</item>
+      <item>DefaultEditorKit.InsertBreakAction</item>
+      <item>DefaultEditorKit.InsertContentAction</item>
+      <item>DefaultEditorKit.InsertTabAction</item>
+      <item>DefaultEditorKit.PasteAction</item>
+      <item>DefaultFocusManager</item>
+      <item>DefaultFocusTraversalPolicy</item>
+      <item>DefaultFormatter</item>
+      <item>DefaultFormatterFactory</item>
+      <item>DefaultHandler</item>
+      <item>DefaultHandler2</item>
+      <item>DefaultHighlighter</item>
+      <item>DefaultHighlighter.DefaultHighlightPainter</item>
+      <item>DefaultKeyboardFocusManager</item>
+      <item>DefaultListCellRenderer</item>
+      <item>DefaultListCellRenderer.UIResource</item>
+      <item>DefaultListModel</item>
+      <item>DefaultListSelectionModel</item>
+      <item>DefaultLoaderRepository</item>
+      <item>DefaultLoaderRepository</item>
+      <item>DefaultMenuLayout</item>
+      <item>DefaultMetalTheme</item>
+      <item>DefaultMutableTreeNode</item>
+      <item>DefaultPersistenceDelegate</item>
+      <item>DefaultSingleSelectionModel</item>
+      <item>DefaultStyledDocument</item>
+      <item>DefaultStyledDocument.AttributeUndoableEdit</item>
+      <item>DefaultStyledDocument.ElementSpec</item>
+      <item>DefaultTableCellRenderer</item>
+      <item>DefaultTableCellRenderer.UIResource</item>
+      <item>DefaultTableColumnModel</item>
+      <item>DefaultTableModel</item>
+      <item>DefaultTextUI</item>
+      <item>DefaultTreeCellEditor</item>
+      <item>DefaultTreeCellRenderer</item>
+      <item>DefaultTreeModel</item>
+      <item>DefaultTreeSelectionModel</item>
+      <item>DefinitionKind</item>
+      <item>DefinitionKindHelper</item>
+      <item>Deflater</item>
+      <item>DeflaterOutputStream</item>
+      <item>DelayQueue</item>
+      <item>Delayed</item>
+      <item>Delegate</item>
+      <item>Delegate</item>
+      <item>Delegate</item>
+      <item>DelegationPermission</item>
+      <item>Deprecated</item>
+      <item>Descriptor</item>
+      <item>DescriptorAccess</item>
+      <item>DescriptorSupport</item>
+      <item>DesignMode</item>
+      <item>DesktopIconUI</item>
+      <item>DesktopManager</item>
+      <item>DesktopPaneUI</item>
+      <item>Destination</item>
+      <item>DestroyFailedException</item>
+      <item>Destroyable</item>
+      <item>Dialog</item>
+      <item>Dictionary</item>
+      <item>DigestException</item>
+      <item>DigestInputStream</item>
+      <item>DigestOutputStream</item>
+      <item>Dimension</item>
+      <item>Dimension2D</item>
+      <item>DimensionUIResource</item>
+      <item>DirContext</item>
+      <item>DirObjectFactory</item>
+      <item>DirStateFactory</item>
+      <item>DirStateFactory.Result</item>
+      <item>DirectColorModel</item>
+      <item>DirectoryManager</item>
+      <item>DisplayMode</item>
+      <item>DnDConstants</item>
+      <item>Doc</item>
+      <item>DocAttribute</item>
+      <item>DocAttributeSet</item>
+      <item>DocFlavor</item>
+      <item>DocFlavor.BYTE_ARRAY</item>
+      <item>DocFlavor.CHAR_ARRAY</item>
+      <item>DocFlavor.INPUT_STREAM</item>
+      <item>DocFlavor.READER</item>
+      <item>DocFlavor.SERVICE_FORMATTED</item>
+      <item>DocFlavor.STRING</item>
+      <item>DocFlavor.URL</item>
+      <item>DocPrintJob</item>
+      <item>Document</item>
+      <item>Document</item>
+      <item>DocumentBuilder</item>
+      <item>DocumentBuilderFactory</item>
+      <item>DocumentEvent</item>
+      <item>DocumentEvent.ElementChange</item>
+      <item>DocumentEvent.EventType</item>
+      <item>DocumentFilter</item>
+      <item>DocumentFilter.FilterBypass</item>
+      <item>DocumentFragment</item>
+      <item>DocumentHandler</item>
+      <item>DocumentListener</item>
+      <item>DocumentName</item>
+      <item>DocumentParser</item>
+      <item>DocumentType</item>
+      <item>Documented</item>
+      <item>DomainCombiner</item>
+      <item>DomainManager</item>
+      <item>DomainManagerOperations</item>
+      <item>Double</item>
+      <item>DoubleBuffer</item>
+      <item>DoubleHolder</item>
+      <item>DoubleSeqHelper</item>
+      <item>DoubleSeqHolder</item>
+      <item>DragGestureEvent</item>
+      <item>DragGestureListener</item>
+      <item>DragGestureRecognizer</item>
+      <item>DragSource</item>
+      <item>DragSourceAdapter</item>
+      <item>DragSourceContext</item>
+      <item>DragSourceDragEvent</item>
+      <item>DragSourceDropEvent</item>
+      <item>DragSourceEvent</item>
+      <item>DragSourceListener</item>
+      <item>DragSourceMotionListener</item>
+      <item>Driver</item>
+      <item>DriverManager</item>
+      <item>DriverPropertyInfo</item>
+      <item>DropTarget</item>
+      <item>DropTarget.DropTargetAutoScroller</item>
+      <item>DropTargetAdapter</item>
+      <item>DropTargetContext</item>
+      <item>DropTargetDragEvent</item>
+      <item>DropTargetDropEvent</item>
+      <item>DropTargetEvent</item>
+      <item>DropTargetListener</item>
+      <item>DuplicateFormatFlagsException</item>
+      <item>DuplicateName</item>
+      <item>DuplicateNameHelper</item>
+      <item>Duration</item>
+      <item>DynAny</item>
+      <item>DynAny</item>
+      <item>DynAnyFactory</item>
+      <item>DynAnyFactoryHelper</item>
+      <item>DynAnyFactoryOperations</item>
+      <item>DynAnyHelper</item>
+      <item>DynAnyOperations</item>
+      <item>DynAnySeqHelper</item>
+      <item>DynArray</item>
+      <item>DynArray</item>
+      <item>DynArrayHelper</item>
+      <item>DynArrayOperations</item>
+      <item>DynEnum</item>
+      <item>DynEnum</item>
+      <item>DynEnumHelper</item>
+      <item>DynEnumOperations</item>
+      <item>DynFixed</item>
+      <item>DynFixed</item>
+      <item>DynFixedHelper</item>
+      <item>DynFixedOperations</item>
+      <item>DynSequence</item>
+      <item>DynSequence</item>
+      <item>DynSequenceHelper</item>
+      <item>DynSequenceOperations</item>
+      <item>DynStruct</item>
+      <item>DynStruct</item>
+      <item>DynStructHelper</item>
+      <item>DynStructOperations</item>
+      <item>DynUnion</item>
+      <item>DynUnion</item>
+      <item>DynUnionHelper</item>
+      <item>DynUnionOperations</item>
+      <item>DynValue</item>
+      <item>DynValue</item>
+      <item>DynValueBox</item>
+      <item>DynValueBoxOperations</item>
+      <item>DynValueCommon</item>
+      <item>DynValueCommonOperations</item>
+      <item>DynValueHelper</item>
+      <item>DynValueOperations</item>
+      <item>DynamicImplementation</item>
+      <item>DynamicImplementation</item>
+      <item>DynamicMBean</item>
+      <item>ECField</item>
+      <item>ECFieldF2m</item>
+      <item>ECFieldFp</item>
+      <item>ECGenParameterSpec</item>
+      <item>ECKey</item>
+      <item>ECParameterSpec</item>
+      <item>ECPoint</item>
+      <item>ECPrivateKey</item>
+      <item>ECPrivateKeySpec</item>
+      <item>ECPublicKey</item>
+      <item>ECPublicKeySpec</item>
+      <item>ENCODING_CDR_ENCAPS</item>
+      <item>EOFException</item>
+      <item>EditorKit</item>
+      <item>Element</item>
+      <item>Element</item>
+      <item>Element</item>
+      <item>ElementIterator</item>
+      <item>ElementType</item>
+      <item>Ellipse2D</item>
+      <item>Ellipse2D.Double</item>
+      <item>Ellipse2D.Float</item>
+      <item>EllipticCurve</item>
+      <item>EmptyBorder</item>
+      <item>EmptyStackException</item>
+      <item>EncodedKeySpec</item>
+      <item>Encoder</item>
+      <item>Encoding</item>
+      <item>EncryptedPrivateKeyInfo</item>
+      <item>Entity</item>
+      <item>Entity</item>
+      <item>EntityReference</item>
+      <item>EntityResolver</item>
+      <item>EntityResolver2</item>
+      <item>Enum</item>
+      <item>EnumConstantNotPresentException</item>
+      <item>EnumControl</item>
+      <item>EnumControl.Type</item>
+      <item>EnumMap</item>
+      <item>EnumSet</item>
+      <item>EnumSyntax</item>
+      <item>Enumeration</item>
+      <item>Environment</item>
+      <item>Error</item>
+      <item>ErrorHandler</item>
+      <item>ErrorListener</item>
+      <item>ErrorManager</item>
+      <item>EtchedBorder</item>
+      <item>Event</item>
+      <item>EventContext</item>
+      <item>EventDirContext</item>
+      <item>EventHandler</item>
+      <item>EventListener</item>
+      <item>EventListenerList</item>
+      <item>EventListenerProxy</item>
+      <item>EventObject</item>
+      <item>EventQueue</item>
+      <item>EventSetDescriptor</item>
+      <item>Exception</item>
+      <item>ExceptionDetailMessage</item>
+      <item>ExceptionInInitializerError</item>
+      <item>ExceptionList</item>
+      <item>ExceptionListener</item>
+      <item>Exchanger</item>
+      <item>ExecutionException</item>
+      <item>Executor</item>
+      <item>ExecutorCompletionService</item>
+      <item>ExecutorService</item>
+      <item>Executors</item>
+      <item>ExemptionMechanism</item>
+      <item>ExemptionMechanismException</item>
+      <item>ExemptionMechanismSpi</item>
+      <item>ExpandVetoException</item>
+      <item>ExportException</item>
+      <item>Expression</item>
+      <item>ExtendedRequest</item>
+      <item>ExtendedResponse</item>
+      <item>Externalizable</item>
+      <item>FREE_MEM</item>
+      <item>FactoryConfigurationError</item>
+      <item>FailedLoginException</item>
+      <item>FeatureDescriptor</item>
+      <item>Fidelity</item>
+      <item>Field</item>
+      <item>FieldNameHelper</item>
+      <item>FieldNameHelper</item>
+      <item>FieldPosition</item>
+      <item>FieldView</item>
+      <item>File</item>
+      <item>FileCacheImageInputStream</item>
+      <item>FileCacheImageOutputStream</item>
+      <item>FileChannel</item>
+      <item>FileChannel.MapMode</item>
+      <item>FileChooserUI</item>
+      <item>FileDescriptor</item>
+      <item>FileDialog</item>
+      <item>FileFilter</item>
+      <item>FileFilter</item>
+      <item>FileHandler</item>
+      <item>FileImageInputStream</item>
+      <item>FileImageOutputStream</item>
+      <item>FileInputStream</item>
+      <item>FileLock</item>
+      <item>FileLockInterruptionException</item>
+      <item>FileNameMap</item>
+      <item>FileNotFoundException</item>
+      <item>FileOutputStream</item>
+      <item>FilePermission</item>
+      <item>FileReader</item>
+      <item>FileSystemView</item>
+      <item>FileView</item>
+      <item>FileWriter</item>
+      <item>FilenameFilter</item>
+      <item>Filter</item>
+      <item>FilterInputStream</item>
+      <item>FilterOutputStream</item>
+      <item>FilterReader</item>
+      <item>FilterWriter</item>
+      <item>FilteredImageSource</item>
+      <item>FilteredRowSet</item>
+      <item>Finishings</item>
+      <item>FixedHeightLayoutCache</item>
+      <item>FixedHolder</item>
+      <item>FlatteningPathIterator</item>
+      <item>FlavorEvent</item>
+      <item>FlavorException</item>
+      <item>FlavorListener</item>
+      <item>FlavorMap</item>
+      <item>FlavorTable</item>
+      <item>Float</item>
+      <item>FloatBuffer</item>
+      <item>FloatControl</item>
+      <item>FloatControl.Type</item>
+      <item>FloatHolder</item>
+      <item>FloatSeqHelper</item>
+      <item>FloatSeqHolder</item>
+      <item>FlowLayout</item>
+      <item>FlowView</item>
+      <item>FlowView.FlowStrategy</item>
+      <item>Flushable</item>
+      <item>FocusAdapter</item>
+      <item>FocusEvent</item>
+      <item>FocusListener</item>
+      <item>FocusManager</item>
+      <item>FocusTraversalPolicy</item>
+      <item>Font</item>
+      <item>FontFormatException</item>
+      <item>FontMetrics</item>
+      <item>FontRenderContext</item>
+      <item>FontUIResource</item>
+      <item>FormSubmitEvent</item>
+      <item>FormSubmitEvent.MethodType</item>
+      <item>FormView</item>
+      <item>Format</item>
+      <item>Format.Field</item>
+      <item>FormatConversionProvider</item>
+      <item>FormatFlagsConversionMismatchException</item>
+      <item>FormatMismatch</item>
+      <item>FormatMismatchHelper</item>
+      <item>Formattable</item>
+      <item>FormattableFlags</item>
+      <item>Formatter</item>
+      <item>Formatter</item>
+      <item>FormatterClosedException</item>
+      <item>ForwardRequest</item>
+      <item>ForwardRequest</item>
+      <item>ForwardRequestHelper</item>
+      <item>ForwardRequestHelper</item>
+      <item>Frame</item>
+      <item>Future</item>
+      <item>FutureTask</item>
+      <item>GSSContext</item>
+      <item>GSSCredential</item>
+      <item>GSSException</item>
+      <item>GSSManager</item>
+      <item>GSSName</item>
+      <item>GZIPInputStream</item>
+      <item>GZIPOutputStream</item>
+      <item>GapContent</item>
+      <item>GarbageCollectorMXBean</item>
+      <item>GatheringByteChannel</item>
+      <item>GaugeMonitor</item>
+      <item>GaugeMonitorMBean</item>
+      <item>GeneralPath</item>
+      <item>GeneralSecurityException</item>
+      <item>GenericArrayType</item>
+      <item>GenericDeclaration</item>
+      <item>GenericSignatureFormatError</item>
+      <item>GlyphJustificationInfo</item>
+      <item>GlyphMetrics</item>
+      <item>GlyphVector</item>
+      <item>GlyphView</item>
+      <item>GlyphView.GlyphPainter</item>
+      <item>GradientPaint</item>
+      <item>GraphicAttribute</item>
+      <item>Graphics</item>
+      <item>Graphics2D</item>
+      <item>GraphicsConfigTemplate</item>
+      <item>GraphicsConfiguration</item>
+      <item>GraphicsDevice</item>
+      <item>GraphicsEnvironment</item>
+      <item>GrayFilter</item>
+      <item>GregorianCalendar</item>
+      <item>GridBagConstraints</item>
+      <item>GridBagLayout</item>
+      <item>GridLayout</item>
+      <item>Group</item>
+      <item>Guard</item>
+      <item>GuardedObject</item>
+      <item>HOLDING</item>
+      <item>HTML</item>
+      <item>HTML.Attribute</item>
+      <item>HTML.Tag</item>
+      <item>HTML.UnknownTag</item>
+      <item>HTMLDocument</item>
+      <item>HTMLDocument.Iterator</item>
+      <item>HTMLEditorKit</item>
+      <item>HTMLEditorKit.HTMLFactory</item>
+      <item>HTMLEditorKit.HTMLTextAction</item>
+      <item>HTMLEditorKit.InsertHTMLTextAction</item>
+      <item>HTMLEditorKit.LinkController</item>
+      <item>HTMLEditorKit.Parser</item>
+      <item>HTMLEditorKit.ParserCallback</item>
+      <item>HTMLFrameHyperlinkEvent</item>
+      <item>HTMLWriter</item>
+      <item>Handler</item>
+      <item>HandlerBase</item>
+      <item>HandshakeCompletedEvent</item>
+      <item>HandshakeCompletedListener</item>
+      <item>HasControls</item>
+      <item>HashAttributeSet</item>
+      <item>HashDocAttributeSet</item>
+      <item>HashMap</item>
+      <item>HashPrintJobAttributeSet</item>
+      <item>HashPrintRequestAttributeSet</item>
+      <item>HashPrintServiceAttributeSet</item>
+      <item>HashSet</item>
+      <item>Hashtable</item>
+      <item>HeadlessException</item>
+      <item>HierarchyBoundsAdapter</item>
+      <item>HierarchyBoundsListener</item>
+      <item>HierarchyEvent</item>
+      <item>HierarchyListener</item>
+      <item>Highlighter</item>
+      <item>Highlighter.Highlight</item>
+      <item>Highlighter.HighlightPainter</item>
+      <item>HostnameVerifier</item>
+      <item>HttpRetryException</item>
+      <item>HttpURLConnection</item>
+      <item>HttpsURLConnection</item>
+      <item>HyperlinkEvent</item>
+      <item>HyperlinkEvent.EventType</item>
+      <item>HyperlinkListener</item>
+      <item>ICC_ColorSpace</item>
+      <item>ICC_Profile</item>
+      <item>ICC_ProfileGray</item>
+      <item>ICC_ProfileRGB</item>
+      <item>IDLEntity</item>
+      <item>IDLType</item>
+      <item>IDLTypeHelper</item>
+      <item>IDLTypeOperations</item>
+      <item>ID_ASSIGNMENT_POLICY_ID</item>
+      <item>ID_UNIQUENESS_POLICY_ID</item>
+      <item>IIOByteBuffer</item>
+      <item>IIOException</item>
+      <item>IIOImage</item>
+      <item>IIOInvalidTreeException</item>
+      <item>IIOMetadata</item>
+      <item>IIOMetadataController</item>
+      <item>IIOMetadataFormat</item>
+      <item>IIOMetadataFormatImpl</item>
+      <item>IIOMetadataNode</item>
+      <item>IIOParam</item>
+      <item>IIOParamController</item>
+      <item>IIOReadProgressListener</item>
+      <item>IIOReadUpdateListener</item>
+      <item>IIOReadWarningListener</item>
+      <item>IIORegistry</item>
+      <item>IIOServiceProvider</item>
+      <item>IIOWriteProgressListener</item>
+      <item>IIOWriteWarningListener</item>
+      <item>IMPLICIT_ACTIVATION_POLICY_ID</item>
+      <item>IMP_LIMIT</item>
+      <item>INACTIVE</item>
+      <item>INITIALIZE</item>
+      <item>INTERNAL</item>
+      <item>INTF_REPOS</item>
+      <item>INVALID_ACTIVITY</item>
+      <item>INVALID_TRANSACTION</item>
+      <item>INV_FLAG</item>
+      <item>INV_IDENT</item>
+      <item>INV_OBJREF</item>
+      <item>INV_POLICY</item>
+      <item>IOException</item>
+      <item>IOR</item>
+      <item>IORHelper</item>
+      <item>IORHolder</item>
+      <item>IORInfo</item>
+      <item>IORInfoOperations</item>
+      <item>IORInterceptor</item>
+      <item>IORInterceptorOperations</item>
+      <item>IORInterceptor_3_0</item>
+      <item>IORInterceptor_3_0Helper</item>
+      <item>IORInterceptor_3_0Holder</item>
+      <item>IORInterceptor_3_0Operations</item>
+      <item>IRObject</item>
+      <item>IRObjectOperations</item>
+      <item>Icon</item>
+      <item>IconUIResource</item>
+      <item>IconView</item>
+      <item>IdAssignmentPolicy</item>
+      <item>IdAssignmentPolicyOperations</item>
+      <item>IdAssignmentPolicyValue</item>
+      <item>IdUniquenessPolicy</item>
+      <item>IdUniquenessPolicyOperations</item>
+      <item>IdUniquenessPolicyValue</item>
+      <item>IdentifierHelper</item>
+      <item>Identity</item>
+      <item>IdentityHashMap</item>
+      <item>IdentityScope</item>
+      <item>IllegalAccessError</item>
+      <item>IllegalAccessException</item>
+      <item>IllegalArgumentException</item>
+      <item>IllegalBlockSizeException</item>
+      <item>IllegalBlockingModeException</item>
+      <item>IllegalCharsetNameException</item>
+      <item>IllegalClassFormatException</item>
+      <item>IllegalComponentStateException</item>
+      <item>IllegalFormatCodePointException</item>
+      <item>IllegalFormatConversionException</item>
+      <item>IllegalFormatException</item>
+      <item>IllegalFormatFlagsException</item>
+      <item>IllegalFormatPrecisionException</item>
+      <item>IllegalFormatWidthException</item>
+      <item>IllegalMonitorStateException</item>
+      <item>IllegalPathStateException</item>
+      <item>IllegalSelectorException</item>
+      <item>IllegalStateException</item>
+      <item>IllegalThreadStateException</item>
+      <item>Image</item>
+      <item>ImageCapabilities</item>
+      <item>ImageConsumer</item>
+      <item>ImageFilter</item>
+      <item>ImageGraphicAttribute</item>
+      <item>ImageIO</item>
+      <item>ImageIcon</item>
+      <item>ImageInputStream</item>
+      <item>ImageInputStreamImpl</item>
+      <item>ImageInputStreamSpi</item>
+      <item>ImageObserver</item>
+      <item>ImageOutputStream</item>
+      <item>ImageOutputStreamImpl</item>
+      <item>ImageOutputStreamSpi</item>
+      <item>ImageProducer</item>
+      <item>ImageReadParam</item>
+      <item>ImageReader</item>
+      <item>ImageReaderSpi</item>
+      <item>ImageReaderWriterSpi</item>
+      <item>ImageTranscoder</item>
+      <item>ImageTranscoderSpi</item>
+      <item>ImageTypeSpecifier</item>
+      <item>ImageView</item>
+      <item>ImageWriteParam</item>
+      <item>ImageWriter</item>
+      <item>ImageWriterSpi</item>
+      <item>ImagingOpException</item>
+      <item>ImplicitActivationPolicy</item>
+      <item>ImplicitActivationPolicyOperations</item>
+      <item>ImplicitActivationPolicyValue</item>
+      <item>IncompatibleClassChangeError</item>
+      <item>IncompleteAnnotationException</item>
+      <item>InconsistentTypeCode</item>
+      <item>InconsistentTypeCode</item>
+      <item>InconsistentTypeCodeHelper</item>
+      <item>IndexColorModel</item>
+      <item>IndexOutOfBoundsException</item>
+      <item>IndexedPropertyChangeEvent</item>
+      <item>IndexedPropertyDescriptor</item>
+      <item>IndirectionException</item>
+      <item>Inet4Address</item>
+      <item>Inet6Address</item>
+      <item>InetAddress</item>
+      <item>InetSocketAddress</item>
+      <item>Inflater</item>
+      <item>InflaterInputStream</item>
+      <item>InheritableThreadLocal</item>
+      <item>Inherited</item>
+      <item>InitialContext</item>
+      <item>InitialContextFactory</item>
+      <item>InitialContextFactoryBuilder</item>
+      <item>InitialDirContext</item>
+      <item>InitialLdapContext</item>
+      <item>InlineView</item>
+      <item>InputContext</item>
+      <item>InputEvent</item>
+      <item>InputMap</item>
+      <item>InputMapUIResource</item>
+      <item>InputMethod</item>
+      <item>InputMethodContext</item>
+      <item>InputMethodDescriptor</item>
+      <item>InputMethodEvent</item>
+      <item>InputMethodHighlight</item>
+      <item>InputMethodListener</item>
+      <item>InputMethodRequests</item>
+      <item>InputMismatchException</item>
+      <item>InputSource</item>
+      <item>InputStream</item>
+      <item>InputStream</item>
+      <item>InputStream</item>
+      <item>InputStreamReader</item>
+      <item>InputSubset</item>
+      <item>InputVerifier</item>
+      <item>Insets</item>
+      <item>InsetsUIResource</item>
+      <item>InstanceAlreadyExistsException</item>
+      <item>InstanceNotFoundException</item>
+      <item>InstantiationError</item>
+      <item>InstantiationException</item>
+      <item>Instrument</item>
+      <item>Instrumentation</item>
+      <item>InsufficientResourcesException</item>
+      <item>IntBuffer</item>
+      <item>IntHolder</item>
+      <item>Integer</item>
+      <item>IntegerSyntax</item>
+      <item>Interceptor</item>
+      <item>InterceptorOperations</item>
+      <item>InternalError</item>
+      <item>InternalFrameAdapter</item>
+      <item>InternalFrameEvent</item>
+      <item>InternalFrameFocusTraversalPolicy</item>
+      <item>InternalFrameListener</item>
+      <item>InternalFrameUI</item>
+      <item>InternationalFormatter</item>
+      <item>InterruptedException</item>
+      <item>InterruptedIOException</item>
+      <item>InterruptedNamingException</item>
+      <item>InterruptibleChannel</item>
+      <item>IntrospectionException</item>
+      <item>IntrospectionException</item>
+      <item>Introspector</item>
+      <item>Invalid</item>
+      <item>InvalidActivityException</item>
+      <item>InvalidAddress</item>
+      <item>InvalidAddressHelper</item>
+      <item>InvalidAddressHolder</item>
+      <item>InvalidAlgorithmParameterException</item>
+      <item>InvalidApplicationException</item>
+      <item>InvalidAttributeIdentifierException</item>
+      <item>InvalidAttributeValueException</item>
+      <item>InvalidAttributeValueException</item>
+      <item>InvalidAttributesException</item>
+      <item>InvalidClassException</item>
+      <item>InvalidDnDOperationException</item>
+      <item>InvalidKeyException</item>
+      <item>InvalidKeyException</item>
+      <item>InvalidKeySpecException</item>
+      <item>InvalidMarkException</item>
+      <item>InvalidMidiDataException</item>
+      <item>InvalidName</item>
+      <item>InvalidName</item>
+      <item>InvalidName</item>
+      <item>InvalidNameException</item>
+      <item>InvalidNameHelper</item>
+      <item>InvalidNameHelper</item>
+      <item>InvalidNameHolder</item>
+      <item>InvalidObjectException</item>
+      <item>InvalidOpenTypeException</item>
+      <item>InvalidParameterException</item>
+      <item>InvalidParameterSpecException</item>
+      <item>InvalidPolicy</item>
+      <item>InvalidPolicyHelper</item>
+      <item>InvalidPreferencesFormatException</item>
+      <item>InvalidPropertiesFormatException</item>
+      <item>InvalidRelationIdException</item>
+      <item>InvalidRelationServiceException</item>
+      <item>InvalidRelationTypeException</item>
+      <item>InvalidRoleInfoException</item>
+      <item>InvalidRoleValueException</item>
+      <item>InvalidSearchControlsException</item>
+      <item>InvalidSearchFilterException</item>
+      <item>InvalidSeq</item>
+      <item>InvalidSlot</item>
+      <item>InvalidSlotHelper</item>
+      <item>InvalidTargetObjectTypeException</item>
+      <item>InvalidTransactionException</item>
+      <item>InvalidTypeForEncoding</item>
+      <item>InvalidTypeForEncodingHelper</item>
+      <item>InvalidValue</item>
+      <item>InvalidValue</item>
+      <item>InvalidValueHelper</item>
+      <item>InvocationEvent</item>
+      <item>InvocationHandler</item>
+      <item>InvocationTargetException</item>
+      <item>InvokeHandler</item>
+      <item>IstringHelper</item>
+      <item>ItemEvent</item>
+      <item>ItemListener</item>
+      <item>ItemSelectable</item>
+      <item>Iterable</item>
+      <item>Iterator</item>
+      <item>IvParameterSpec</item>
+      <item>JApplet</item>
+      <item>JButton</item>
+      <item>JCheckBox</item>
+      <item>JCheckBoxMenuItem</item>
+      <item>JColorChooser</item>
+      <item>JComboBox</item>
+      <item>JComboBox.KeySelectionManager</item>
+      <item>JComponent</item>
+      <item>JDesktopPane</item>
+      <item>JDialog</item>
+      <item>JEditorPane</item>
+      <item>JFileChooser</item>
+      <item>JFormattedTextField</item>
+      <item>JFormattedTextField.AbstractFormatter</item>
+      <item>JFormattedTextField.AbstractFormatterFactory</item>
+      <item>JFrame</item>
+      <item>JInternalFrame</item>
+      <item>JInternalFrame.JDesktopIcon</item>
+      <item>JLabel</item>
+      <item>JLayeredPane</item>
+      <item>JList</item>
+      <item>JMException</item>
+      <item>JMRuntimeException</item>
+      <item>JMXAuthenticator</item>
+      <item>JMXConnectionNotification</item>
+      <item>JMXConnector</item>
+      <item>JMXConnectorFactory</item>
+      <item>JMXConnectorProvider</item>
+      <item>JMXConnectorServer</item>
+      <item>JMXConnectorServerFactory</item>
+      <item>JMXConnectorServerMBean</item>
+      <item>JMXConnectorServerProvider</item>
+      <item>JMXPrincipal</item>
+      <item>JMXProviderException</item>
+      <item>JMXServerErrorException</item>
+      <item>JMXServiceURL</item>
+      <item>JMenu</item>
+      <item>JMenuBar</item>
+      <item>JMenuItem</item>
+      <item>JOptionPane</item>
+      <item>JPEGHuffmanTable</item>
+      <item>JPEGImageReadParam</item>
+      <item>JPEGImageWriteParam</item>
+      <item>JPEGQTable</item>
+      <item>JPanel</item>
+      <item>JPasswordField</item>
+      <item>JPopupMenu</item>
+      <item>JPopupMenu.Separator</item>
+      <item>JProgressBar</item>
+      <item>JRadioButton</item>
+      <item>JRadioButtonMenuItem</item>
+      <item>JRootPane</item>
+      <item>JScrollBar</item>
+      <item>JScrollPane</item>
+      <item>JSeparator</item>
+      <item>JSlider</item>
+      <item>JSpinner</item>
+      <item>JSpinner.DateEditor</item>
+      <item>JSpinner.DefaultEditor</item>
+      <item>JSpinner.ListEditor</item>
+      <item>JSpinner.NumberEditor</item>
+      <item>JSplitPane</item>
+      <item>JTabbedPane</item>
+      <item>JTable</item>
+      <item>JTable.PrintMode</item>
+      <item>JTableHeader</item>
+      <item>JTextArea</item>
+      <item>JTextComponent</item>
+      <item>JTextComponent.KeyBinding</item>
+      <item>JTextField</item>
+      <item>JTextPane</item>
+      <item>JToggleButton</item>
+      <item>JToggleButton.ToggleButtonModel</item>
+      <item>JToolBar</item>
+      <item>JToolBar.Separator</item>
+      <item>JToolTip</item>
+      <item>JTree</item>
+      <item>JTree.DynamicUtilTreeNode</item>
+      <item>JTree.EmptySelectionModel</item>
+      <item>JViewport</item>
+      <item>JWindow</item>
+      <item>JarEntry</item>
+      <item>JarException</item>
+      <item>JarFile</item>
+      <item>JarInputStream</item>
+      <item>JarOutputStream</item>
+      <item>JarURLConnection</item>
+      <item>JdbcRowSet</item>
+      <item>JobAttributes</item>
+      <item>JobAttributes.DefaultSelectionType</item>
+      <item>JobAttributes.DestinationType</item>
+      <item>JobAttributes.DialogType</item>
+      <item>JobAttributes.MultipleDocumentHandlingType</item>
+      <item>JobAttributes.SidesType</item>
+      <item>JobHoldUntil</item>
+      <item>JobImpressions</item>
+      <item>JobImpressionsCompleted</item>
+      <item>JobImpressionsSupported</item>
+      <item>JobKOctets</item>
+      <item>JobKOctetsProcessed</item>
+      <item>JobKOctetsSupported</item>
+      <item>JobMediaSheets</item>
+      <item>JobMediaSheetsCompleted</item>
+      <item>JobMediaSheetsSupported</item>
+      <item>JobMessageFromOperator</item>
+      <item>JobName</item>
+      <item>JobOriginatingUserName</item>
+      <item>JobPriority</item>
+      <item>JobPrioritySupported</item>
+      <item>JobSheets</item>
+      <item>JobState</item>
+      <item>JobStateReason</item>
+      <item>JobStateReasons</item>
+      <item>JoinRowSet</item>
+      <item>Joinable</item>
+      <item>KerberosKey</item>
+      <item>KerberosPrincipal</item>
+      <item>KerberosTicket</item>
+      <item>Kernel</item>
+      <item>Key</item>
+      <item>KeyAdapter</item>
+      <item>KeyAgreement</item>
+      <item>KeyAgreementSpi</item>
+      <item>KeyAlreadyExistsException</item>
+      <item>KeyEvent</item>
+      <item>KeyEventDispatcher</item>
+      <item>KeyEventPostProcessor</item>
+      <item>KeyException</item>
+      <item>KeyFactory</item>
+      <item>KeyFactorySpi</item>
+      <item>KeyGenerator</item>
+      <item>KeyGeneratorSpi</item>
+      <item>KeyListener</item>
+      <item>KeyManagementException</item>
+      <item>KeyManager</item>
+      <item>KeyManagerFactory</item>
+      <item>KeyManagerFactorySpi</item>
+      <item>KeyPair</item>
+      <item>KeyPairGenerator</item>
+      <item>KeyPairGeneratorSpi</item>
+      <item>KeyRep</item>
+      <item>KeyRep.Type</item>
+      <item>KeySpec</item>
+      <item>KeyStore</item>
+      <item>KeyStore.Builder</item>
+      <item>KeyStore.CallbackHandlerProtection</item>
+      <item>KeyStore.Entry</item>
+      <item>KeyStore.LoadStoreParameter</item>
+      <item>KeyStore.PasswordProtection</item>
+      <item>KeyStore.PrivateKeyEntry</item>
+      <item>KeyStore.ProtectionParameter</item>
+      <item>KeyStore.SecretKeyEntry</item>
+      <item>KeyStore.TrustedCertificateEntry</item>
+      <item>KeyStoreBuilderParameters</item>
+      <item>KeyStoreException</item>
+      <item>KeyStoreSpi</item>
+      <item>KeyStroke</item>
+      <item>KeyboardFocusManager</item>
+      <item>Keymap</item>
+      <item>LDAPCertStoreParameters</item>
+      <item>LIFESPAN_POLICY_ID</item>
+      <item>LOCATION_FORWARD</item>
+      <item>LSException</item>
+      <item>LSInput</item>
+      <item>LSLoadEvent</item>
+      <item>LSOutput</item>
+      <item>LSParser</item>
+      <item>LSParserFilter</item>
+      <item>LSProgressEvent</item>
+      <item>LSResourceResolver</item>
+      <item>LSSerializer</item>
+      <item>LSSerializerFilter</item>
+      <item>Label</item>
+      <item>LabelUI</item>
+      <item>LabelView</item>
+      <item>LanguageCallback</item>
+      <item>LastOwnerException</item>
+      <item>LayeredHighlighter</item>
+      <item>LayeredHighlighter.LayerPainter</item>
+      <item>LayoutFocusTraversalPolicy</item>
+      <item>LayoutManager</item>
+      <item>LayoutManager2</item>
+      <item>LayoutQueue</item>
+      <item>LdapContext</item>
+      <item>LdapName</item>
+      <item>LdapReferralException</item>
+      <item>Lease</item>
+      <item>Level</item>
+      <item>LexicalHandler</item>
+      <item>LifespanPolicy</item>
+      <item>LifespanPolicyOperations</item>
+      <item>LifespanPolicyValue</item>
+      <item>LimitExceededException</item>
+      <item>Line</item>
+      <item>Line.Info</item>
+      <item>Line2D</item>
+      <item>Line2D.Double</item>
+      <item>Line2D.Float</item>
+      <item>LineBorder</item>
+      <item>LineBreakMeasurer</item>
+      <item>LineEvent</item>
+      <item>LineEvent.Type</item>
+      <item>LineListener</item>
+      <item>LineMetrics</item>
+      <item>LineNumberInputStream</item>
+      <item>LineNumberReader</item>
+      <item>LineUnavailableException</item>
+      <item>LinkException</item>
+      <item>LinkLoopException</item>
+      <item>LinkRef</item>
+      <item>LinkageError</item>
+      <item>LinkedBlockingQueue</item>
+      <item>LinkedHashMap</item>
+      <item>LinkedHashSet</item>
+      <item>LinkedList</item>
+      <item>List</item>
+      <item>List</item>
+      <item>ListCellRenderer</item>
+      <item>ListDataEvent</item>
+      <item>ListDataListener</item>
+      <item>ListIterator</item>
+      <item>ListModel</item>
+      <item>ListResourceBundle</item>
+      <item>ListSelectionEvent</item>
+      <item>ListSelectionListener</item>
+      <item>ListSelectionModel</item>
+      <item>ListUI</item>
+      <item>ListView</item>
+      <item>ListenerNotFoundException</item>
+      <item>LoaderHandler</item>
+      <item>LocalObject</item>
+      <item>Locale</item>
+      <item>LocateRegistry</item>
+      <item>Locator</item>
+      <item>Locator2</item>
+      <item>Locator2Impl</item>
+      <item>LocatorImpl</item>
+      <item>Lock</item>
+      <item>LockSupport</item>
+      <item>LogManager</item>
+      <item>LogRecord</item>
+      <item>LogStream</item>
+      <item>Logger</item>
+      <item>LoggingMXBean</item>
+      <item>LoggingPermission</item>
+      <item>LoginContext</item>
+      <item>LoginException</item>
+      <item>LoginModule</item>
+      <item>Long</item>
+      <item>LongBuffer</item>
+      <item>LongHolder</item>
+      <item>LongLongSeqHelper</item>
+      <item>LongLongSeqHolder</item>
+      <item>LongSeqHelper</item>
+      <item>LongSeqHolder</item>
+      <item>LookAndFeel</item>
+      <item>LookupOp</item>
+      <item>LookupTable</item>
+      <item>MARSHAL</item>
+      <item>MBeanAttributeInfo</item>
+      <item>MBeanConstructorInfo</item>
+      <item>MBeanException</item>
+      <item>MBeanFeatureInfo</item>
+      <item>MBeanInfo</item>
+      <item>MBeanNotificationInfo</item>
+      <item>MBeanOperationInfo</item>
+      <item>MBeanParameterInfo</item>
+      <item>MBeanPermission</item>
+      <item>MBeanRegistration</item>
+      <item>MBeanRegistrationException</item>
+      <item>MBeanServer</item>
+      <item>MBeanServerBuilder</item>
+      <item>MBeanServerConnection</item>
+      <item>MBeanServerDelegate</item>
+      <item>MBeanServerDelegateMBean</item>
+      <item>MBeanServerFactory</item>
+      <item>MBeanServerForwarder</item>
+      <item>MBeanServerInvocationHandler</item>
+      <item>MBeanServerNotification</item>
+      <item>MBeanServerNotificationFilter</item>
+      <item>MBeanServerPermission</item>
+      <item>MBeanTrustPermission</item>
+      <item>MGF1ParameterSpec</item>
+      <item>MLet</item>
+      <item>MLetMBean</item>
+      <item>Mac</item>
+      <item>MacSpi</item>
+      <item>MalformedInputException</item>
+      <item>MalformedLinkException</item>
+      <item>MalformedObjectNameException</item>
+      <item>MalformedParameterizedTypeException</item>
+      <item>MalformedURLException</item>
+      <item>ManageReferralControl</item>
+      <item>ManagementFactory</item>
+      <item>ManagementPermission</item>
+      <item>ManagerFactoryParameters</item>
+      <item>Manifest</item>
+      <item>Map</item>
+      <item>Map.Entry</item>
+      <item>MappedByteBuffer</item>
+      <item>MarshalException</item>
+      <item>MarshalledObject</item>
+      <item>MaskFormatter</item>
+      <item>MatchResult</item>
+      <item>Matcher</item>
+      <item>Math</item>
+      <item>MathContext</item>
+      <item>MatteBorder</item>
+      <item>Media</item>
+      <item>MediaName</item>
+      <item>MediaPrintableArea</item>
+      <item>MediaSize</item>
+      <item>MediaSize.Engineering</item>
+      <item>MediaSize.ISO</item>
+      <item>MediaSize.JIS</item>
+      <item>MediaSize.NA</item>
+      <item>MediaSize.Other</item>
+      <item>MediaSizeName</item>
+      <item>MediaTracker</item>
+      <item>MediaTray</item>
+      <item>Member</item>
+      <item>MemoryCacheImageInputStream</item>
+      <item>MemoryCacheImageOutputStream</item>
+      <item>MemoryHandler</item>
+      <item>MemoryImageSource</item>
+      <item>MemoryMXBean</item>
+      <item>MemoryManagerMXBean</item>
+      <item>MemoryNotificationInfo</item>
+      <item>MemoryPoolMXBean</item>
+      <item>MemoryType</item>
+      <item>MemoryUsage</item>
+      <item>Menu</item>
+      <item>MenuBar</item>
+      <item>MenuBarUI</item>
+      <item>MenuComponent</item>
+      <item>MenuContainer</item>
+      <item>MenuDragMouseEvent</item>
+      <item>MenuDragMouseListener</item>
+      <item>MenuElement</item>
+      <item>MenuEvent</item>
+      <item>MenuItem</item>
+      <item>MenuItemUI</item>
+      <item>MenuKeyEvent</item>
+      <item>MenuKeyListener</item>
+      <item>MenuListener</item>
+      <item>MenuSelectionManager</item>
+      <item>MenuShortcut</item>
+      <item>MessageDigest</item>
+      <item>MessageDigestSpi</item>
+      <item>MessageFormat</item>
+      <item>MessageFormat.Field</item>
+      <item>MessageProp</item>
+      <item>MetaEventListener</item>
+      <item>MetaMessage</item>
+      <item>MetalBorders</item>
+      <item>MetalBorders.ButtonBorder</item>
+      <item>MetalBorders.Flush3DBorder</item>
+      <item>MetalBorders.InternalFrameBorder</item>
+      <item>MetalBorders.MenuBarBorder</item>
+      <item>MetalBorders.MenuItemBorder</item>
+      <item>MetalBorders.OptionDialogBorder</item>
+      <item>MetalBorders.PaletteBorder</item>
+      <item>MetalBorders.PopupMenuBorder</item>
+      <item>MetalBorders.RolloverButtonBorder</item>
+      <item>MetalBorders.ScrollPaneBorder</item>
+      <item>MetalBorders.TableHeaderBorder</item>
+      <item>MetalBorders.TextFieldBorder</item>
+      <item>MetalBorders.ToggleButtonBorder</item>
+      <item>MetalBorders.ToolBarBorder</item>
+      <item>MetalButtonUI</item>
+      <item>MetalCheckBoxIcon</item>
+      <item>MetalCheckBoxUI</item>
+      <item>MetalComboBoxButton</item>
+      <item>MetalComboBoxEditor</item>
+      <item>MetalComboBoxEditor.UIResource</item>
+      <item>MetalComboBoxIcon</item>
+      <item>MetalComboBoxUI</item>
+      <item>MetalDesktopIconUI</item>
+      <item>MetalFileChooserUI</item>
+      <item>MetalIconFactory</item>
+      <item>MetalIconFactory.FileIcon16</item>
+      <item>MetalIconFactory.FolderIcon16</item>
+      <item>MetalIconFactory.PaletteCloseIcon</item>
+      <item>MetalIconFactory.TreeControlIcon</item>
+      <item>MetalIconFactory.TreeFolderIcon</item>
+      <item>MetalIconFactory.TreeLeafIcon</item>
+      <item>MetalInternalFrameTitlePane</item>
+      <item>MetalInternalFrameUI</item>
+      <item>MetalLabelUI</item>
+      <item>MetalLookAndFeel</item>
+      <item>MetalMenuBarUI</item>
+      <item>MetalPopupMenuSeparatorUI</item>
+      <item>MetalProgressBarUI</item>
+      <item>MetalRadioButtonUI</item>
+      <item>MetalRootPaneUI</item>
+      <item>MetalScrollBarUI</item>
+      <item>MetalScrollButton</item>
+      <item>MetalScrollPaneUI</item>
+      <item>MetalSeparatorUI</item>
+      <item>MetalSliderUI</item>
+      <item>MetalSplitPaneUI</item>
+      <item>MetalTabbedPaneUI</item>
+      <item>MetalTextFieldUI</item>
+      <item>MetalTheme</item>
+      <item>MetalToggleButtonUI</item>
+      <item>MetalToolBarUI</item>
+      <item>MetalToolTipUI</item>
+      <item>MetalTreeUI</item>
+      <item>Method</item>
+      <item>MethodDescriptor</item>
+      <item>MidiChannel</item>
+      <item>MidiDevice</item>
+      <item>MidiDevice.Info</item>
+      <item>MidiDeviceProvider</item>
+      <item>MidiEvent</item>
+      <item>MidiFileFormat</item>
+      <item>MidiFileReader</item>
+      <item>MidiFileWriter</item>
+      <item>MidiMessage</item>
+      <item>MidiSystem</item>
+      <item>MidiUnavailableException</item>
+      <item>MimeTypeParseException</item>
+      <item>MinimalHTMLWriter</item>
+      <item>MissingFormatArgumentException</item>
+      <item>MissingFormatWidthException</item>
+      <item>MissingResourceException</item>
+      <item>Mixer</item>
+      <item>Mixer.Info</item>
+      <item>MixerProvider</item>
+      <item>ModelMBean</item>
+      <item>ModelMBeanAttributeInfo</item>
+      <item>ModelMBeanConstructorInfo</item>
+      <item>ModelMBeanInfo</item>
+      <item>ModelMBeanInfoSupport</item>
+      <item>ModelMBeanNotificationBroadcaster</item>
+      <item>ModelMBeanNotificationInfo</item>
+      <item>ModelMBeanOperationInfo</item>
+      <item>ModificationItem</item>
+      <item>Modifier</item>
+      <item>Monitor</item>
+      <item>MonitorMBean</item>
+      <item>MonitorNotification</item>
+      <item>MonitorSettingException</item>
+      <item>MouseAdapter</item>
+      <item>MouseDragGestureRecognizer</item>
+      <item>MouseEvent</item>
+      <item>MouseInfo</item>
+      <item>MouseInputAdapter</item>
+      <item>MouseInputListener</item>
+      <item>MouseListener</item>
+      <item>MouseMotionAdapter</item>
+      <item>MouseMotionListener</item>
+      <item>MouseWheelEvent</item>
+      <item>MouseWheelListener</item>
+      <item>MultiButtonUI</item>
+      <item>MultiColorChooserUI</item>
+      <item>MultiComboBoxUI</item>
+      <item>MultiDesktopIconUI</item>
+      <item>MultiDesktopPaneUI</item>
+      <item>MultiDoc</item>
+      <item>MultiDocPrintJob</item>
+      <item>MultiDocPrintService</item>
+      <item>MultiFileChooserUI</item>
+      <item>MultiInternalFrameUI</item>
+      <item>MultiLabelUI</item>
+      <item>MultiListUI</item>
+      <item>MultiLookAndFeel</item>
+      <item>MultiMenuBarUI</item>
+      <item>MultiMenuItemUI</item>
+      <item>MultiOptionPaneUI</item>
+      <item>MultiPanelUI</item>
+      <item>MultiPixelPackedSampleModel</item>
+      <item>MultiPopupMenuUI</item>
+      <item>MultiProgressBarUI</item>
+      <item>MultiRootPaneUI</item>
+      <item>MultiScrollBarUI</item>
+      <item>MultiScrollPaneUI</item>
+      <item>MultiSeparatorUI</item>
+      <item>MultiSliderUI</item>
+      <item>MultiSpinnerUI</item>
+      <item>MultiSplitPaneUI</item>
+      <item>MultiTabbedPaneUI</item>
+      <item>MultiTableHeaderUI</item>
+      <item>MultiTableUI</item>
+      <item>MultiTextUI</item>
+      <item>MultiToolBarUI</item>
+      <item>MultiToolTipUI</item>
+      <item>MultiTreeUI</item>
+      <item>MultiViewportUI</item>
+      <item>MulticastSocket</item>
+      <item>MultipleComponentProfileHelper</item>
+      <item>MultipleComponentProfileHolder</item>
+      <item>MultipleDocumentHandling</item>
+      <item>MultipleMaster</item>
+      <item>MutableAttributeSet</item>
+      <item>MutableComboBoxModel</item>
+      <item>MutableTreeNode</item>
+      <item>NON_EXISTENT</item>
+      <item>NO_IMPLEMENT</item>
+      <item>NO_MEMORY</item>
+      <item>NO_PERMISSION</item>
+      <item>NO_RESOURCES</item>
+      <item>NO_RESPONSE</item>
+      <item>NVList</item>
+      <item>Name</item>
+      <item>NameAlreadyBoundException</item>
+      <item>NameCallback</item>
+      <item>NameClassPair</item>
+      <item>NameComponent</item>
+      <item>NameComponentHelper</item>
+      <item>NameComponentHolder</item>
+      <item>NameDynAnyPair</item>
+      <item>NameDynAnyPairHelper</item>
+      <item>NameDynAnyPairSeqHelper</item>
+      <item>NameHelper</item>
+      <item>NameHolder</item>
+      <item>NameList</item>
+      <item>NameNotFoundException</item>
+      <item>NameParser</item>
+      <item>NameValuePair</item>
+      <item>NameValuePair</item>
+      <item>NameValuePairHelper</item>
+      <item>NameValuePairHelper</item>
+      <item>NameValuePairSeqHelper</item>
+      <item>NamedNodeMap</item>
+      <item>NamedValue</item>
+      <item>NamespaceChangeListener</item>
+      <item>NamespaceContext</item>
+      <item>NamespaceSupport</item>
+      <item>Naming</item>
+      <item>NamingContext</item>
+      <item>NamingContextExt</item>
+      <item>NamingContextExtHelper</item>
+      <item>NamingContextExtHolder</item>
+      <item>NamingContextExtOperations</item>
+      <item>NamingContextExtPOA</item>
+      <item>NamingContextHelper</item>
+      <item>NamingContextHolder</item>
+      <item>NamingContextOperations</item>
+      <item>NamingContextPOA</item>
+      <item>NamingEnumeration</item>
+      <item>NamingEvent</item>
+      <item>NamingException</item>
+      <item>NamingExceptionEvent</item>
+      <item>NamingListener</item>
+      <item>NamingManager</item>
+      <item>NamingSecurityException</item>
+      <item>NavigationFilter</item>
+      <item>NavigationFilter.FilterBypass</item>
+      <item>NegativeArraySizeException</item>
+      <item>NetPermission</item>
+      <item>NetworkInterface</item>
+      <item>NoClassDefFoundError</item>
+      <item>NoConnectionPendingException</item>
+      <item>NoContext</item>
+      <item>NoContextHelper</item>
+      <item>NoInitialContextException</item>
+      <item>NoPermissionException</item>
+      <item>NoRouteToHostException</item>
+      <item>NoServant</item>
+      <item>NoServantHelper</item>
+      <item>NoSuchAlgorithmException</item>
+      <item>NoSuchAttributeException</item>
+      <item>NoSuchElementException</item>
+      <item>NoSuchFieldError</item>
+      <item>NoSuchFieldException</item>
+      <item>NoSuchMethodError</item>
+      <item>NoSuchMethodException</item>
+      <item>NoSuchObjectException</item>
+      <item>NoSuchPaddingException</item>
+      <item>NoSuchProviderException</item>
+      <item>Node</item>
+      <item>NodeChangeEvent</item>
+      <item>NodeChangeListener</item>
+      <item>NodeList</item>
+      <item>NonReadableChannelException</item>
+      <item>NonWritableChannelException</item>
+      <item>NoninvertibleTransformException</item>
+      <item>NotActiveException</item>
+      <item>NotBoundException</item>
+      <item>NotCompliantMBeanException</item>
+      <item>NotContextException</item>
+      <item>NotEmpty</item>
+      <item>NotEmptyHelper</item>
+      <item>NotEmptyHolder</item>
+      <item>NotFound</item>
+      <item>NotFoundHelper</item>
+      <item>NotFoundHolder</item>
+      <item>NotFoundReason</item>
+      <item>NotFoundReasonHelper</item>
+      <item>NotFoundReasonHolder</item>
+      <item>NotOwnerException</item>
+      <item>NotSerializableException</item>
+      <item>NotYetBoundException</item>
+      <item>NotYetConnectedException</item>
+      <item>Notation</item>
+      <item>Notification</item>
+      <item>NotificationBroadcaster</item>
+      <item>NotificationBroadcasterSupport</item>
+      <item>NotificationEmitter</item>
+      <item>NotificationFilter</item>
+      <item>NotificationFilterSupport</item>
+      <item>NotificationListener</item>
+      <item>NotificationResult</item>
+      <item>NullCipher</item>
+      <item>NullPointerException</item>
+      <item>Number</item>
+      <item>NumberFormat</item>
+      <item>NumberFormat.Field</item>
+      <item>NumberFormatException</item>
+      <item>NumberFormatter</item>
+      <item>NumberOfDocuments</item>
+      <item>NumberOfInterveningJobs</item>
+      <item>NumberUp</item>
+      <item>NumberUpSupported</item>
+      <item>NumericShaper</item>
+      <item>OAEPParameterSpec</item>
+      <item>OBJECT_NOT_EXIST</item>
+      <item>OBJ_ADAPTER</item>
+      <item>OMGVMCID</item>
+      <item>ORB</item>
+      <item>ORB</item>
+      <item>ORBIdHelper</item>
+      <item>ORBInitInfo</item>
+      <item>ORBInitInfoOperations</item>
+      <item>ORBInitializer</item>
+      <item>ORBInitializerOperations</item>
+      <item>ObjID</item>
+      <item>Object</item>
+      <item>Object</item>
+      <item>ObjectAlreadyActive</item>
+      <item>ObjectAlreadyActiveHelper</item>
+      <item>ObjectChangeListener</item>
+      <item>ObjectFactory</item>
+      <item>ObjectFactoryBuilder</item>
+      <item>ObjectHelper</item>
+      <item>ObjectHolder</item>
+      <item>ObjectIdHelper</item>
+      <item>ObjectIdHelper</item>
+      <item>ObjectImpl</item>
+      <item>ObjectImpl</item>
+      <item>ObjectInput</item>
+      <item>ObjectInputStream</item>
+      <item>ObjectInputStream.GetField</item>
+      <item>ObjectInputValidation</item>
+      <item>ObjectInstance</item>
+      <item>ObjectName</item>
+      <item>ObjectNotActive</item>
+      <item>ObjectNotActiveHelper</item>
+      <item>ObjectOutput</item>
+      <item>ObjectOutputStream</item>
+      <item>ObjectOutputStream.PutField</item>
+      <item>ObjectReferenceFactory</item>
+      <item>ObjectReferenceFactoryHelper</item>
+      <item>ObjectReferenceFactoryHolder</item>
+      <item>ObjectReferenceTemplate</item>
+      <item>ObjectReferenceTemplateHelper</item>
+      <item>ObjectReferenceTemplateHolder</item>
+      <item>ObjectReferenceTemplateSeqHelper</item>
+      <item>ObjectReferenceTemplateSeqHolder</item>
+      <item>ObjectStreamClass</item>
+      <item>ObjectStreamConstants</item>
+      <item>ObjectStreamException</item>
+      <item>ObjectStreamField</item>
+      <item>ObjectView</item>
+      <item>Observable</item>
+      <item>Observer</item>
+      <item>OceanTheme</item>
+      <item>OctetSeqHelper</item>
+      <item>OctetSeqHolder</item>
+      <item>Oid</item>
+      <item>OpenDataException</item>
+      <item>OpenMBeanAttributeInfo</item>
+      <item>OpenMBeanAttributeInfoSupport</item>
+      <item>OpenMBeanConstructorInfo</item>
+      <item>OpenMBeanConstructorInfoSupport</item>
+      <item>OpenMBeanInfo</item>
+      <item>OpenMBeanInfoSupport</item>
+      <item>OpenMBeanOperationInfo</item>
+      <item>OpenMBeanOperationInfoSupport</item>
+      <item>OpenMBeanParameterInfo</item>
+      <item>OpenMBeanParameterInfoSupport</item>
+      <item>OpenType</item>
+      <item>OpenType</item>
+      <item>OperatingSystemMXBean</item>
+      <item>Operation</item>
+      <item>OperationNotSupportedException</item>
+      <item>OperationsException</item>
+      <item>Option</item>
+      <item>OptionPaneUI</item>
+      <item>OptionalDataException</item>
+      <item>OrientationRequested</item>
+      <item>OutOfMemoryError</item>
+      <item>OutputDeviceAssigned</item>
+      <item>OutputKeys</item>
+      <item>OutputStream</item>
+      <item>OutputStream</item>
+      <item>OutputStream</item>
+      <item>OutputStreamWriter</item>
+      <item>OverlappingFileLockException</item>
+      <item>OverlayLayout</item>
+      <item>Override</item>
+      <item>Owner</item>
+      <item>PBEKey</item>
+      <item>PBEKeySpec</item>
+      <item>PBEParameterSpec</item>
+      <item>PDLOverrideSupported</item>
+      <item>PERSIST_STORE</item>
+      <item>PKCS8EncodedKeySpec</item>
+      <item>PKIXBuilderParameters</item>
+      <item>PKIXCertPathBuilderResult</item>
+      <item>PKIXCertPathChecker</item>
+      <item>PKIXCertPathValidatorResult</item>
+      <item>PKIXParameters</item>
+      <item>POA</item>
+      <item>POAHelper</item>
+      <item>POAManager</item>
+      <item>POAManagerOperations</item>
+      <item>POAOperations</item>
+      <item>PRIVATE_MEMBER</item>
+      <item>PSSParameterSpec</item>
+      <item>PSource</item>
+      <item>PSource.PSpecified</item>
+      <item>PUBLIC_MEMBER</item>
+      <item>Pack200</item>
+      <item>Pack200.Packer</item>
+      <item>Pack200.Unpacker</item>
+      <item>Package</item>
+      <item>PackedColorModel</item>
+      <item>PageAttributes</item>
+      <item>PageAttributes.ColorType</item>
+      <item>PageAttributes.MediaType</item>
+      <item>PageAttributes.OrientationRequestedType</item>
+      <item>PageAttributes.OriginType</item>
+      <item>PageAttributes.PrintQualityType</item>
+      <item>PageFormat</item>
+      <item>PageRanges</item>
+      <item>Pageable</item>
+      <item>PagedResultsControl</item>
+      <item>PagedResultsResponseControl</item>
+      <item>PagesPerMinute</item>
+      <item>PagesPerMinuteColor</item>
+      <item>Paint</item>
+      <item>PaintContext</item>
+      <item>PaintEvent</item>
+      <item>Panel</item>
+      <item>PanelUI</item>
+      <item>Paper</item>
+      <item>ParagraphView</item>
+      <item>ParagraphView</item>
+      <item>Parameter</item>
+      <item>ParameterBlock</item>
+      <item>ParameterDescriptor</item>
+      <item>ParameterMetaData</item>
+      <item>ParameterMode</item>
+      <item>ParameterModeHelper</item>
+      <item>ParameterModeHolder</item>
+      <item>ParameterizedType</item>
+      <item>ParseException</item>
+      <item>ParsePosition</item>
+      <item>Parser</item>
+      <item>Parser</item>
+      <item>ParserAdapter</item>
+      <item>ParserConfigurationException</item>
+      <item>ParserDelegator</item>
+      <item>ParserFactory</item>
+      <item>PartialResultException</item>
+      <item>PasswordAuthentication</item>
+      <item>PasswordCallback</item>
+      <item>PasswordView</item>
+      <item>Patch</item>
+      <item>PathIterator</item>
+      <item>Pattern</item>
+      <item>PatternSyntaxException</item>
+      <item>Permission</item>
+      <item>Permission</item>
+      <item>PermissionCollection</item>
+      <item>Permissions</item>
+      <item>PersistenceDelegate</item>
+      <item>PersistentMBean</item>
+      <item>PhantomReference</item>
+      <item>Pipe</item>
+      <item>Pipe.SinkChannel</item>
+      <item>Pipe.SourceChannel</item>
+      <item>PipedInputStream</item>
+      <item>PipedOutputStream</item>
+      <item>PipedReader</item>
+      <item>PipedWriter</item>
+      <item>PixelGrabber</item>
+      <item>PixelInterleavedSampleModel</item>
+      <item>PlainDocument</item>
+      <item>PlainView</item>
+      <item>Point</item>
+      <item>Point2D</item>
+      <item>Point2D.Double</item>
+      <item>Point2D.Float</item>
+      <item>PointerInfo</item>
+      <item>Policy</item>
+      <item>Policy</item>
+      <item>Policy</item>
+      <item>PolicyError</item>
+      <item>PolicyErrorCodeHelper</item>
+      <item>PolicyErrorHelper</item>
+      <item>PolicyErrorHolder</item>
+      <item>PolicyFactory</item>
+      <item>PolicyFactoryOperations</item>
+      <item>PolicyHelper</item>
+      <item>PolicyHolder</item>
+      <item>PolicyListHelper</item>
+      <item>PolicyListHolder</item>
+      <item>PolicyNode</item>
+      <item>PolicyOperations</item>
+      <item>PolicyQualifierInfo</item>
+      <item>PolicyTypeHelper</item>
+      <item>Polygon</item>
+      <item>PooledConnection</item>
+      <item>Popup</item>
+      <item>PopupFactory</item>
+      <item>PopupMenu</item>
+      <item>PopupMenuEvent</item>
+      <item>PopupMenuListener</item>
+      <item>PopupMenuUI</item>
+      <item>Port</item>
+      <item>Port.Info</item>
+      <item>PortUnreachableException</item>
+      <item>PortableRemoteObject</item>
+      <item>PortableRemoteObjectDelegate</item>
+      <item>Position</item>
+      <item>Position.Bias</item>
+      <item>Predicate</item>
+      <item>PreferenceChangeEvent</item>
+      <item>PreferenceChangeListener</item>
+      <item>Preferences</item>
+      <item>PreferencesFactory</item>
+      <item>PreparedStatement</item>
+      <item>PresentationDirection</item>
+      <item>Principal</item>
+      <item>Principal</item>
+      <item>PrincipalHolder</item>
+      <item>PrintEvent</item>
+      <item>PrintException</item>
+      <item>PrintGraphics</item>
+      <item>PrintJob</item>
+      <item>PrintJobAdapter</item>
+      <item>PrintJobAttribute</item>
+      <item>PrintJobAttributeEvent</item>
+      <item>PrintJobAttributeListener</item>
+      <item>PrintJobAttributeSet</item>
+      <item>PrintJobEvent</item>
+      <item>PrintJobListener</item>
+      <item>PrintQuality</item>
+      <item>PrintRequestAttribute</item>
+      <item>PrintRequestAttributeSet</item>
+      <item>PrintService</item>
+      <item>PrintServiceAttribute</item>
+      <item>PrintServiceAttributeEvent</item>
+      <item>PrintServiceAttributeListener</item>
+      <item>PrintServiceAttributeSet</item>
+      <item>PrintServiceLookup</item>
+      <item>PrintStream</item>
+      <item>PrintWriter</item>
+      <item>Printable</item>
+      <item>PrinterAbortException</item>
+      <item>PrinterException</item>
+      <item>PrinterGraphics</item>
+      <item>PrinterIOException</item>
+      <item>PrinterInfo</item>
+      <item>PrinterIsAcceptingJobs</item>
+      <item>PrinterJob</item>
+      <item>PrinterLocation</item>
+      <item>PrinterMakeAndModel</item>
+      <item>PrinterMessageFromOperator</item>
+      <item>PrinterMoreInfo</item>
+      <item>PrinterMoreInfoManufacturer</item>
+      <item>PrinterName</item>
+      <item>PrinterResolution</item>
+      <item>PrinterState</item>
+      <item>PrinterStateReason</item>
+      <item>PrinterStateReasons</item>
+      <item>PrinterURI</item>
+      <item>PriorityBlockingQueue</item>
+      <item>PriorityQueue</item>
+      <item>PrivateClassLoader</item>
+      <item>PrivateCredentialPermission</item>
+      <item>PrivateKey</item>
+      <item>PrivateMLet</item>
+      <item>PrivilegedAction</item>
+      <item>PrivilegedActionException</item>
+      <item>PrivilegedExceptionAction</item>
+      <item>Process</item>
+      <item>ProcessBuilder</item>
+      <item>ProcessingInstruction</item>
+      <item>ProfileDataException</item>
+      <item>ProfileIdHelper</item>
+      <item>ProgressBarUI</item>
+      <item>ProgressMonitor</item>
+      <item>ProgressMonitorInputStream</item>
+      <item>Properties</item>
+      <item>PropertyChangeEvent</item>
+      <item>PropertyChangeListener</item>
+      <item>PropertyChangeListenerProxy</item>
+      <item>PropertyChangeSupport</item>
+      <item>PropertyDescriptor</item>
+      <item>PropertyEditor</item>
+      <item>PropertyEditorManager</item>
+      <item>PropertyEditorSupport</item>
+      <item>PropertyPermission</item>
+      <item>PropertyResourceBundle</item>
+      <item>PropertyVetoException</item>
+      <item>ProtectionDomain</item>
+      <item>ProtocolException</item>
+      <item>Provider</item>
+      <item>Provider.Service</item>
+      <item>ProviderException</item>
+      <item>Proxy</item>
+      <item>Proxy</item>
+      <item>Proxy.Type</item>
+      <item>ProxySelector</item>
+      <item>PublicKey</item>
+      <item>PushbackInputStream</item>
+      <item>PushbackReader</item>
+      <item>QName</item>
+      <item>QuadCurve2D</item>
+      <item>QuadCurve2D.Double</item>
+      <item>QuadCurve2D.Float</item>
+      <item>Query</item>
+      <item>QueryEval</item>
+      <item>QueryExp</item>
+      <item>Queue</item>
+      <item>QueuedJobCount</item>
+      <item>RC2ParameterSpec</item>
+      <item>RC5ParameterSpec</item>
+      <item>REBIND</item>
+      <item>REQUEST_PROCESSING_POLICY_ID</item>
+      <item>RGBImageFilter</item>
+      <item>RMIClassLoader</item>
+      <item>RMIClassLoaderSpi</item>
+      <item>RMIClientSocketFactory</item>
+      <item>RMIConnection</item>
+      <item>RMIConnectionImpl</item>
+      <item>RMIConnectionImpl_Stub</item>
+      <item>RMIConnector</item>
+      <item>RMIConnectorServer</item>
+      <item>RMICustomMaxStreamFormat</item>
+      <item>RMIFailureHandler</item>
+      <item>RMIIIOPServerImpl</item>
+      <item>RMIJRMPServerImpl</item>
+      <item>RMISecurityException</item>
+      <item>RMISecurityManager</item>
+      <item>RMIServer</item>
+      <item>RMIServerImpl</item>
+      <item>RMIServerImpl_Stub</item>
+      <item>RMIServerSocketFactory</item>
+      <item>RMISocketFactory</item>
+      <item>RSAKey</item>
+      <item>RSAKeyGenParameterSpec</item>
+      <item>RSAMultiPrimePrivateCrtKey</item>
+      <item>RSAMultiPrimePrivateCrtKeySpec</item>
+      <item>RSAOtherPrimeInfo</item>
+      <item>RSAPrivateCrtKey</item>
+      <item>RSAPrivateCrtKeySpec</item>
+      <item>RSAPrivateKey</item>
+      <item>RSAPrivateKeySpec</item>
+      <item>RSAPublicKey</item>
+      <item>RSAPublicKeySpec</item>
+      <item>RTFEditorKit</item>
+      <item>Random</item>
+      <item>RandomAccess</item>
+      <item>RandomAccessFile</item>
+      <item>Raster</item>
+      <item>RasterFormatException</item>
+      <item>RasterOp</item>
+      <item>Rdn</item>
+      <item>ReadOnlyBufferException</item>
+      <item>ReadWriteLock</item>
+      <item>Readable</item>
+      <item>ReadableByteChannel</item>
+      <item>Reader</item>
+      <item>RealmCallback</item>
+      <item>RealmChoiceCallback</item>
+      <item>Receiver</item>
+      <item>Rectangle</item>
+      <item>Rectangle2D</item>
+      <item>Rectangle2D.Double</item>
+      <item>Rectangle2D.Float</item>
+      <item>RectangularShape</item>
+      <item>ReentrantLock</item>
+      <item>ReentrantReadWriteLock</item>
+      <item>ReentrantReadWriteLock.ReadLock</item>
+      <item>ReentrantReadWriteLock.WriteLock</item>
+      <item>Ref</item>
+      <item>RefAddr</item>
+      <item>Reference</item>
+      <item>Reference</item>
+      <item>ReferenceQueue</item>
+      <item>ReferenceUriSchemesSupported</item>
+      <item>Referenceable</item>
+      <item>ReferralException</item>
+      <item>ReflectPermission</item>
+      <item>ReflectionException</item>
+      <item>RefreshFailedException</item>
+      <item>Refreshable</item>
+      <item>Region</item>
+      <item>RegisterableService</item>
+      <item>Registry</item>
+      <item>RegistryHandler</item>
+      <item>RejectedExecutionException</item>
+      <item>RejectedExecutionHandler</item>
+      <item>Relation</item>
+      <item>RelationException</item>
+      <item>RelationNotFoundException</item>
+      <item>RelationNotification</item>
+      <item>RelationService</item>
+      <item>RelationServiceMBean</item>
+      <item>RelationServiceNotRegisteredException</item>
+      <item>RelationSupport</item>
+      <item>RelationSupportMBean</item>
+      <item>RelationType</item>
+      <item>RelationTypeNotFoundException</item>
+      <item>RelationTypeSupport</item>
+      <item>RemarshalException</item>
+      <item>Remote</item>
+      <item>RemoteCall</item>
+      <item>RemoteException</item>
+      <item>RemoteObject</item>
+      <item>RemoteObjectInvocationHandler</item>
+      <item>RemoteRef</item>
+      <item>RemoteServer</item>
+      <item>RemoteStub</item>
+      <item>RenderContext</item>
+      <item>RenderableImage</item>
+      <item>RenderableImageOp</item>
+      <item>RenderableImageProducer</item>
+      <item>RenderedImage</item>
+      <item>RenderedImageFactory</item>
+      <item>Renderer</item>
+      <item>RenderingHints</item>
+      <item>RenderingHints.Key</item>
+      <item>RepaintManager</item>
+      <item>ReplicateScaleFilter</item>
+      <item>RepositoryIdHelper</item>
+      <item>Request</item>
+      <item>RequestInfo</item>
+      <item>RequestInfoOperations</item>
+      <item>RequestProcessingPolicy</item>
+      <item>RequestProcessingPolicyOperations</item>
+      <item>RequestProcessingPolicyValue</item>
+      <item>RequestingUserName</item>
+      <item>RequiredModelMBean</item>
+      <item>RescaleOp</item>
+      <item>ResolutionSyntax</item>
+      <item>ResolveResult</item>
+      <item>Resolver</item>
+      <item>ResourceBundle</item>
+      <item>ResponseCache</item>
+      <item>ResponseHandler</item>
+      <item>Result</item>
+      <item>ResultSet</item>
+      <item>ResultSetMetaData</item>
+      <item>Retention</item>
+      <item>RetentionPolicy</item>
+      <item>ReverbType</item>
+      <item>Robot</item>
+      <item>Role</item>
+      <item>RoleInfo</item>
+      <item>RoleInfoNotFoundException</item>
+      <item>RoleList</item>
+      <item>RoleNotFoundException</item>
+      <item>RoleResult</item>
+      <item>RoleStatus</item>
+      <item>RoleUnresolved</item>
+      <item>RoleUnresolvedList</item>
+      <item>RootPaneContainer</item>
+      <item>RootPaneUI</item>
+      <item>RoundRectangle2D</item>
+      <item>RoundRectangle2D.Double</item>
+      <item>RoundRectangle2D.Float</item>
+      <item>RoundingMode</item>
+      <item>RowMapper</item>
+      <item>RowSet</item>
+      <item>RowSetEvent</item>
+      <item>RowSetInternal</item>
+      <item>RowSetListener</item>
+      <item>RowSetMetaData</item>
+      <item>RowSetMetaDataImpl</item>
+      <item>RowSetReader</item>
+      <item>RowSetWarning</item>
+      <item>RowSetWriter</item>
+      <item>RuleBasedCollator</item>
+      <item>RunTime</item>
+      <item>RunTimeOperations</item>
+      <item>Runnable</item>
+      <item>Runtime</item>
+      <item>RuntimeErrorException</item>
+      <item>RuntimeException</item>
+      <item>RuntimeMBeanException</item>
+      <item>RuntimeMXBean</item>
+      <item>RuntimeOperationsException</item>
+      <item>RuntimePermission</item>
+      <item>SAXException</item>
+      <item>SAXNotRecognizedException</item>
+      <item>SAXNotSupportedException</item>
+      <item>SAXParseException</item>
+      <item>SAXParser</item>
+      <item>SAXParserFactory</item>
+      <item>SAXResult</item>
+      <item>SAXSource</item>
+      <item>SAXTransformerFactory</item>
+      <item>SERVANT_RETENTION_POLICY_ID</item>
+      <item>SQLData</item>
+      <item>SQLException</item>
+      <item>SQLInput</item>
+      <item>SQLInputImpl</item>
+      <item>SQLOutput</item>
+      <item>SQLOutputImpl</item>
+      <item>SQLPermission</item>
+      <item>SQLWarning</item>
+      <item>SSLContext</item>
+      <item>SSLContextSpi</item>
+      <item>SSLEngine</item>
+      <item>SSLEngineResult</item>
+      <item>SSLEngineResult.HandshakeStatus</item>
+      <item>SSLEngineResult.Status</item>
+      <item>SSLException</item>
+      <item>SSLHandshakeException</item>
+      <item>SSLKeyException</item>
+      <item>SSLPeerUnverifiedException</item>
+      <item>SSLPermission</item>
+      <item>SSLProtocolException</item>
+      <item>SSLServerSocket</item>
+      <item>SSLServerSocketFactory</item>
+      <item>SSLSession</item>
+      <item>SSLSessionBindingEvent</item>
+      <item>SSLSessionBindingListener</item>
+      <item>SSLSessionContext</item>
+      <item>SSLSocket</item>
+      <item>SSLSocketFactory</item>
+      <item>SUCCESSFUL</item>
+      <item>SYNC_WITH_TRANSPORT</item>
+      <item>SYSTEM_EXCEPTION</item>
+      <item>SampleModel</item>
+      <item>Sasl</item>
+      <item>SaslClient</item>
+      <item>SaslClientFactory</item>
+      <item>SaslException</item>
+      <item>SaslServer</item>
+      <item>SaslServerFactory</item>
+      <item>Savepoint</item>
+      <item>Scanner</item>
+      <item>ScatteringByteChannel</item>
+      <item>ScheduledExecutorService</item>
+      <item>ScheduledFuture</item>
+      <item>ScheduledThreadPoolExecutor</item>
+      <item>Schema</item>
+      <item>SchemaFactory</item>
+      <item>SchemaFactoryLoader</item>
+      <item>SchemaViolationException</item>
+      <item>ScrollBarUI</item>
+      <item>ScrollPane</item>
+      <item>ScrollPaneAdjustable</item>
+      <item>ScrollPaneConstants</item>
+      <item>ScrollPaneLayout</item>
+      <item>ScrollPaneLayout.UIResource</item>
+      <item>ScrollPaneUI</item>
+      <item>Scrollable</item>
+      <item>Scrollbar</item>
+      <item>SealedObject</item>
+      <item>SearchControls</item>
+      <item>SearchResult</item>
+      <item>SecretKey</item>
+      <item>SecretKeyFactory</item>
+      <item>SecretKeyFactorySpi</item>
+      <item>SecretKeySpec</item>
+      <item>SecureCacheResponse</item>
+      <item>SecureClassLoader</item>
+      <item>SecureRandom</item>
+      <item>SecureRandomSpi</item>
+      <item>Security</item>
+      <item>SecurityException</item>
+      <item>SecurityManager</item>
+      <item>SecurityPermission</item>
+      <item>Segment</item>
+      <item>SelectableChannel</item>
+      <item>SelectionKey</item>
+      <item>Selector</item>
+      <item>SelectorProvider</item>
+      <item>Semaphore</item>
+      <item>SeparatorUI</item>
+      <item>Sequence</item>
+      <item>SequenceInputStream</item>
+      <item>Sequencer</item>
+      <item>Sequencer.SyncMode</item>
+      <item>SerialArray</item>
+      <item>SerialBlob</item>
+      <item>SerialClob</item>
+      <item>SerialDatalink</item>
+      <item>SerialException</item>
+      <item>SerialJavaObject</item>
+      <item>SerialRef</item>
+      <item>SerialStruct</item>
+      <item>Serializable</item>
+      <item>SerializablePermission</item>
+      <item>Servant</item>
+      <item>ServantActivator</item>
+      <item>ServantActivatorHelper</item>
+      <item>ServantActivatorOperations</item>
+      <item>ServantActivatorPOA</item>
+      <item>ServantAlreadyActive</item>
+      <item>ServantAlreadyActiveHelper</item>
+      <item>ServantLocator</item>
+      <item>ServantLocatorHelper</item>
+      <item>ServantLocatorOperations</item>
+      <item>ServantLocatorPOA</item>
+      <item>ServantManager</item>
+      <item>ServantManagerOperations</item>
+      <item>ServantNotActive</item>
+      <item>ServantNotActiveHelper</item>
+      <item>ServantObject</item>
+      <item>ServantRetentionPolicy</item>
+      <item>ServantRetentionPolicyOperations</item>
+      <item>ServantRetentionPolicyValue</item>
+      <item>ServerCloneException</item>
+      <item>ServerError</item>
+      <item>ServerException</item>
+      <item>ServerIdHelper</item>
+      <item>ServerNotActiveException</item>
+      <item>ServerRef</item>
+      <item>ServerRequest</item>
+      <item>ServerRequestInfo</item>
+      <item>ServerRequestInfoOperations</item>
+      <item>ServerRequestInterceptor</item>
+      <item>ServerRequestInterceptorOperations</item>
+      <item>ServerRuntimeException</item>
+      <item>ServerSocket</item>
+      <item>ServerSocketChannel</item>
+      <item>ServerSocketFactory</item>
+      <item>ServiceContext</item>
+      <item>ServiceContextHelper</item>
+      <item>ServiceContextHolder</item>
+      <item>ServiceContextListHelper</item>
+      <item>ServiceContextListHolder</item>
+      <item>ServiceDetail</item>
+      <item>ServiceDetailHelper</item>
+      <item>ServiceIdHelper</item>
+      <item>ServiceInformation</item>
+      <item>ServiceInformationHelper</item>
+      <item>ServiceInformationHolder</item>
+      <item>ServiceNotFoundException</item>
+      <item>ServicePermission</item>
+      <item>ServiceRegistry</item>
+      <item>ServiceRegistry.Filter</item>
+      <item>ServiceUI</item>
+      <item>ServiceUIFactory</item>
+      <item>ServiceUnavailableException</item>
+      <item>Set</item>
+      <item>SetOfIntegerSyntax</item>
+      <item>SetOverrideType</item>
+      <item>SetOverrideTypeHelper</item>
+      <item>Severity</item>
+      <item>Shape</item>
+      <item>ShapeGraphicAttribute</item>
+      <item>SheetCollate</item>
+      <item>Short</item>
+      <item>ShortBuffer</item>
+      <item>ShortBufferException</item>
+      <item>ShortHolder</item>
+      <item>ShortLookupTable</item>
+      <item>ShortMessage</item>
+      <item>ShortSeqHelper</item>
+      <item>ShortSeqHolder</item>
+      <item>Sides</item>
+      <item>Signature</item>
+      <item>SignatureException</item>
+      <item>SignatureSpi</item>
+      <item>SignedObject</item>
+      <item>Signer</item>
+      <item>SimpleAttributeSet</item>
+      <item>SimpleBeanInfo</item>
+      <item>SimpleDateFormat</item>
+      <item>SimpleDoc</item>
+      <item>SimpleFormatter</item>
+      <item>SimpleTimeZone</item>
+      <item>SimpleType</item>
+      <item>SinglePixelPackedSampleModel</item>
+      <item>SingleSelectionModel</item>
+      <item>Size2DSyntax</item>
+      <item>SizeLimitExceededException</item>
+      <item>SizeRequirements</item>
+      <item>SizeSequence</item>
+      <item>Skeleton</item>
+      <item>SkeletonMismatchException</item>
+      <item>SkeletonNotFoundException</item>
+      <item>SliderUI</item>
+      <item>Socket</item>
+      <item>SocketAddress</item>
+      <item>SocketChannel</item>
+      <item>SocketException</item>
+      <item>SocketFactory</item>
+      <item>SocketHandler</item>
+      <item>SocketImpl</item>
+      <item>SocketImplFactory</item>
+      <item>SocketOptions</item>
+      <item>SocketPermission</item>
+      <item>SocketSecurityException</item>
+      <item>SocketTimeoutException</item>
+      <item>SoftBevelBorder</item>
+      <item>SoftReference</item>
+      <item>SortControl</item>
+      <item>SortKey</item>
+      <item>SortResponseControl</item>
+      <item>SortedMap</item>
+      <item>SortedSet</item>
+      <item>SortingFocusTraversalPolicy</item>
+      <item>Soundbank</item>
+      <item>SoundbankReader</item>
+      <item>SoundbankResource</item>
+      <item>Source</item>
+      <item>SourceDataLine</item>
+      <item>SourceLocator</item>
+      <item>SpinnerDateModel</item>
+      <item>SpinnerListModel</item>
+      <item>SpinnerModel</item>
+      <item>SpinnerNumberModel</item>
+      <item>SpinnerUI</item>
+      <item>SplitPaneUI</item>
+      <item>Spring</item>
+      <item>SpringLayout</item>
+      <item>SpringLayout.Constraints</item>
+      <item>SslRMIClientSocketFactory</item>
+      <item>SslRMIServerSocketFactory</item>
+      <item>Stack</item>
+      <item>StackOverflowError</item>
+      <item>StackTraceElement</item>
+      <item>StandardMBean</item>
+      <item>StartTlsRequest</item>
+      <item>StartTlsResponse</item>
+      <item>State</item>
+      <item>StateEdit</item>
+      <item>StateEditable</item>
+      <item>StateFactory</item>
+      <item>Statement</item>
+      <item>Statement</item>
+      <item>StreamCorruptedException</item>
+      <item>StreamHandler</item>
+      <item>StreamPrintService</item>
+      <item>StreamPrintServiceFactory</item>
+      <item>StreamResult</item>
+      <item>StreamSource</item>
+      <item>StreamTokenizer</item>
+      <item>Streamable</item>
+      <item>StreamableValue</item>
+      <item>StrictMath</item>
+      <item>String</item>
+      <item>StringBuffer</item>
+      <item>StringBufferInputStream</item>
+      <item>StringBuilder</item>
+      <item>StringCharacterIterator</item>
+      <item>StringContent</item>
+      <item>StringHolder</item>
+      <item>StringIndexOutOfBoundsException</item>
+      <item>StringMonitor</item>
+      <item>StringMonitorMBean</item>
+      <item>StringNameHelper</item>
+      <item>StringReader</item>
+      <item>StringRefAddr</item>
+      <item>StringSelection</item>
+      <item>StringSeqHelper</item>
+      <item>StringSeqHolder</item>
+      <item>StringTokenizer</item>
+      <item>StringValueExp</item>
+      <item>StringValueHelper</item>
+      <item>StringWriter</item>
+      <item>Stroke</item>
+      <item>Struct</item>
+      <item>StructMember</item>
+      <item>StructMemberHelper</item>
+      <item>Stub</item>
+      <item>StubDelegate</item>
+      <item>StubNotFoundException</item>
+      <item>Style</item>
+      <item>StyleConstants</item>
+      <item>StyleConstants.CharacterConstants</item>
+      <item>StyleConstants.ColorConstants</item>
+      <item>StyleConstants.FontConstants</item>
+      <item>StyleConstants.ParagraphConstants</item>
+      <item>StyleContext</item>
+      <item>StyleSheet</item>
+      <item>StyleSheet.BoxPainter</item>
+      <item>StyleSheet.ListPainter</item>
+      <item>StyledDocument</item>
+      <item>StyledEditorKit</item>
+      <item>StyledEditorKit.AlignmentAction</item>
+      <item>StyledEditorKit.BoldAction</item>
+      <item>StyledEditorKit.FontFamilyAction</item>
+      <item>StyledEditorKit.FontSizeAction</item>
+      <item>StyledEditorKit.ForegroundAction</item>
+      <item>StyledEditorKit.ItalicAction</item>
+      <item>StyledEditorKit.StyledTextAction</item>
+      <item>StyledEditorKit.UnderlineAction</item>
+      <item>Subject</item>
+      <item>SubjectDelegationPermission</item>
+      <item>SubjectDomainCombiner</item>
+      <item>SupportedValuesAttribute</item>
+      <item>SuppressWarnings</item>
+      <item>SwingConstants</item>
+      <item>SwingPropertyChangeSupport</item>
+      <item>SwingUtilities</item>
+      <item>SyncFactory</item>
+      <item>SyncFactoryException</item>
+      <item>SyncFailedException</item>
+      <item>SyncProvider</item>
+      <item>SyncProviderException</item>
+      <item>SyncResolver</item>
+      <item>SyncScopeHelper</item>
+      <item>SynchronousQueue</item>
+      <item>SynthConstants</item>
+      <item>SynthContext</item>
+      <item>SynthGraphicsUtils</item>
+      <item>SynthLookAndFeel</item>
+      <item>SynthPainter</item>
+      <item>SynthStyle</item>
+      <item>SynthStyleFactory</item>
+      <item>Synthesizer</item>
+      <item>SysexMessage</item>
+      <item>System</item>
+      <item>SystemColor</item>
+      <item>SystemException</item>
+      <item>SystemFlavorMap</item>
+      <item>TAG_ALTERNATE_IIOP_ADDRESS</item>
+      <item>TAG_CODE_SETS</item>
+      <item>TAG_INTERNET_IOP</item>
+      <item>TAG_JAVA_CODEBASE</item>
+      <item>TAG_MULTIPLE_COMPONENTS</item>
+      <item>TAG_ORB_TYPE</item>
+      <item>TAG_POLICIES</item>
+      <item>TAG_RMI_CUSTOM_MAX_STREAM_FORMAT</item>
+      <item>TCKind</item>
+      <item>THREAD_POLICY_ID</item>
+      <item>TIMEOUT</item>
+      <item>TRANSACTION_MODE</item>
+      <item>TRANSACTION_REQUIRED</item>
+      <item>TRANSACTION_ROLLEDBACK</item>
+      <item>TRANSACTION_UNAVAILABLE</item>
+      <item>TRANSIENT</item>
+      <item>TRANSPORT_RETRY</item>
+      <item>TabExpander</item>
+      <item>TabSet</item>
+      <item>TabStop</item>
+      <item>TabableView</item>
+      <item>TabbedPaneUI</item>
+      <item>TableCellEditor</item>
+      <item>TableCellRenderer</item>
+      <item>TableColumn</item>
+      <item>TableColumnModel</item>
+      <item>TableColumnModelEvent</item>
+      <item>TableColumnModelListener</item>
+      <item>TableHeaderUI</item>
+      <item>TableModel</item>
+      <item>TableModelEvent</item>
+      <item>TableModelListener</item>
+      <item>TableUI</item>
+      <item>TableView</item>
+      <item>TabularData</item>
+      <item>TabularDataSupport</item>
+      <item>TabularType</item>
+      <item>TagElement</item>
+      <item>TaggedComponent</item>
+      <item>TaggedComponentHelper</item>
+      <item>TaggedComponentHolder</item>
+      <item>TaggedProfile</item>
+      <item>TaggedProfileHelper</item>
+      <item>TaggedProfileHolder</item>
+      <item>Target</item>
+      <item>TargetDataLine</item>
+      <item>TargetedNotification</item>
+      <item>Templates</item>
+      <item>TemplatesHandler</item>
+      <item>Text</item>
+      <item>TextAction</item>
+      <item>TextArea</item>
+      <item>TextAttribute</item>
+      <item>TextComponent</item>
+      <item>TextEvent</item>
+      <item>TextField</item>
+      <item>TextHitInfo</item>
+      <item>TextInputCallback</item>
+      <item>TextLayout</item>
+      <item>TextLayout.CaretPolicy</item>
+      <item>TextListener</item>
+      <item>TextMeasurer</item>
+      <item>TextOutputCallback</item>
+      <item>TextSyntax</item>
+      <item>TextUI</item>
+      <item>TexturePaint</item>
+      <item>Thread</item>
+      <item>Thread.State</item>
+      <item>Thread.UncaughtExceptionHandler</item>
+      <item>ThreadDeath</item>
+      <item>ThreadFactory</item>
+      <item>ThreadGroup</item>
+      <item>ThreadInfo</item>
+      <item>ThreadLocal</item>
+      <item>ThreadMXBean</item>
+      <item>ThreadPolicy</item>
+      <item>ThreadPolicyOperations</item>
+      <item>ThreadPolicyValue</item>
+      <item>ThreadPoolExecutor</item>
+      <item>ThreadPoolExecutor.AbortPolicy</item>
+      <item>ThreadPoolExecutor.CallerRunsPolicy</item>
+      <item>ThreadPoolExecutor.DiscardOldestPolicy</item>
+      <item>ThreadPoolExecutor.DiscardPolicy</item>
+      <item>Throwable</item>
+      <item>Tie</item>
+      <item>TileObserver</item>
+      <item>Time</item>
+      <item>TimeLimitExceededException</item>
+      <item>TimeUnit</item>
+      <item>TimeZone</item>
+      <item>TimeoutException</item>
+      <item>Timer</item>
+      <item>Timer</item>
+      <item>Timer</item>
+      <item>TimerAlarmClockNotification</item>
+      <item>TimerMBean</item>
+      <item>TimerNotification</item>
+      <item>TimerTask</item>
+      <item>Timestamp</item>
+      <item>Timestamp</item>
+      <item>TitledBorder</item>
+      <item>TooManyListenersException</item>
+      <item>ToolBarUI</item>
+      <item>ToolTipManager</item>
+      <item>ToolTipUI</item>
+      <item>Toolkit</item>
+      <item>Track</item>
+      <item>TransactionRequiredException</item>
+      <item>TransactionRolledbackException</item>
+      <item>TransactionService</item>
+      <item>TransactionalWriter</item>
+      <item>TransferHandler</item>
+      <item>Transferable</item>
+      <item>TransformAttribute</item>
+      <item>Transformer</item>
+      <item>TransformerConfigurationException</item>
+      <item>TransformerException</item>
+      <item>TransformerFactory</item>
+      <item>TransformerFactoryConfigurationError</item>
+      <item>TransformerHandler</item>
+      <item>Transmitter</item>
+      <item>Transparency</item>
+      <item>TreeCellEditor</item>
+      <item>TreeCellRenderer</item>
+      <item>TreeExpansionEvent</item>
+      <item>TreeExpansionListener</item>
+      <item>TreeMap</item>
+      <item>TreeModel</item>
+      <item>TreeModelEvent</item>
+      <item>TreeModelListener</item>
+      <item>TreeNode</item>
+      <item>TreePath</item>
+      <item>TreeSelectionEvent</item>
+      <item>TreeSelectionListener</item>
+      <item>TreeSelectionModel</item>
+      <item>TreeSet</item>
+      <item>TreeUI</item>
+      <item>TreeWillExpandListener</item>
+      <item>TrustAnchor</item>
+      <item>TrustManager</item>
+      <item>TrustManagerFactory</item>
+      <item>TrustManagerFactorySpi</item>
+      <item>Type</item>
+      <item>TypeCode</item>
+      <item>TypeCodeHolder</item>
+      <item>TypeInfo</item>
+      <item>TypeInfoProvider</item>
+      <item>TypeMismatch</item>
+      <item>TypeMismatch</item>
+      <item>TypeMismatch</item>
+      <item>TypeMismatchHelper</item>
+      <item>TypeMismatchHelper</item>
+      <item>TypeNotPresentException</item>
+      <item>TypeVariable</item>
+      <item>Types</item>
+      <item>UID</item>
+      <item>UIDefaults</item>
+      <item>UIDefaults.ActiveValue</item>
+      <item>UIDefaults.LazyInputMap</item>
+      <item>UIDefaults.LazyValue</item>
+      <item>UIDefaults.ProxyLazyValue</item>
+      <item>UIManager</item>
+      <item>UIManager.LookAndFeelInfo</item>
+      <item>UIResource</item>
+      <item>ULongLongSeqHelper</item>
+      <item>ULongLongSeqHolder</item>
+      <item>ULongSeqHelper</item>
+      <item>ULongSeqHolder</item>
+      <item>UNKNOWN</item>
+      <item>UNKNOWN</item>
+      <item>UNSUPPORTED_POLICY</item>
+      <item>UNSUPPORTED_POLICY_VALUE</item>
+      <item>URI</item>
+      <item>URIException</item>
+      <item>URIResolver</item>
+      <item>URISyntax</item>
+      <item>URISyntaxException</item>
+      <item>URL</item>
+      <item>URLClassLoader</item>
+      <item>URLConnection</item>
+      <item>URLDecoder</item>
+      <item>URLEncoder</item>
+      <item>URLStreamHandler</item>
+      <item>URLStreamHandlerFactory</item>
+      <item>URLStringHelper</item>
+      <item>USER_EXCEPTION</item>
+      <item>UShortSeqHelper</item>
+      <item>UShortSeqHolder</item>
+      <item>UTFDataFormatException</item>
+      <item>UUID</item>
+      <item>UndeclaredThrowableException</item>
+      <item>UndoManager</item>
+      <item>UndoableEdit</item>
+      <item>UndoableEditEvent</item>
+      <item>UndoableEditListener</item>
+      <item>UndoableEditSupport</item>
+      <item>UnexpectedException</item>
+      <item>UnicastRemoteObject</item>
+      <item>UnionMember</item>
+      <item>UnionMemberHelper</item>
+      <item>UnknownEncoding</item>
+      <item>UnknownEncodingHelper</item>
+      <item>UnknownError</item>
+      <item>UnknownException</item>
+      <item>UnknownFormatConversionException</item>
+      <item>UnknownFormatFlagsException</item>
+      <item>UnknownGroupException</item>
+      <item>UnknownHostException</item>
+      <item>UnknownHostException</item>
+      <item>UnknownObjectException</item>
+      <item>UnknownServiceException</item>
+      <item>UnknownUserException</item>
+      <item>UnknownUserExceptionHelper</item>
+      <item>UnknownUserExceptionHolder</item>
+      <item>UnmappableCharacterException</item>
+      <item>UnmarshalException</item>
+      <item>UnmodifiableClassException</item>
+      <item>UnmodifiableSetException</item>
+      <item>UnrecoverableEntryException</item>
+      <item>UnrecoverableKeyException</item>
+      <item>Unreferenced</item>
+      <item>UnresolvedAddressException</item>
+      <item>UnresolvedPermission</item>
+      <item>UnsatisfiedLinkError</item>
+      <item>UnsolicitedNotification</item>
+      <item>UnsolicitedNotificationEvent</item>
+      <item>UnsolicitedNotificationListener</item>
+      <item>UnsupportedAddressTypeException</item>
+      <item>UnsupportedAudioFileException</item>
+      <item>UnsupportedCallbackException</item>
+      <item>UnsupportedCharsetException</item>
+      <item>UnsupportedClassVersionError</item>
+      <item>UnsupportedEncodingException</item>
+      <item>UnsupportedFlavorException</item>
+      <item>UnsupportedLookAndFeelException</item>
+      <item>UnsupportedOperationException</item>
+      <item>UserDataHandler</item>
+      <item>UserException</item>
+      <item>Util</item>
+      <item>UtilDelegate</item>
+      <item>Utilities</item>
+      <item>VMID</item>
+      <item>VM_ABSTRACT</item>
+      <item>VM_CUSTOM</item>
+      <item>VM_NONE</item>
+      <item>VM_TRUNCATABLE</item>
+      <item>Validator</item>
+      <item>ValidatorHandler</item>
+      <item>ValueBase</item>
+      <item>ValueBaseHelper</item>
+      <item>ValueBaseHolder</item>
+      <item>ValueExp</item>
+      <item>ValueFactory</item>
+      <item>ValueHandler</item>
+      <item>ValueHandlerMultiFormat</item>
+      <item>ValueInputStream</item>
+      <item>ValueMember</item>
+      <item>ValueMemberHelper</item>
+      <item>ValueOutputStream</item>
+      <item>VariableHeightLayoutCache</item>
+      <item>Vector</item>
+      <item>VerifyError</item>
+      <item>VersionSpecHelper</item>
+      <item>VetoableChangeListener</item>
+      <item>VetoableChangeListenerProxy</item>
+      <item>VetoableChangeSupport</item>
+      <item>View</item>
+      <item>ViewFactory</item>
+      <item>ViewportLayout</item>
+      <item>ViewportUI</item>
+      <item>VirtualMachineError</item>
+      <item>Visibility</item>
+      <item>VisibilityHelper</item>
+      <item>VoiceStatus</item>
+      <item>Void</item>
+      <item>VolatileImage</item>
+      <item>WCharSeqHelper</item>
+      <item>WCharSeqHolder</item>
+      <item>WStringSeqHelper</item>
+      <item>WStringSeqHolder</item>
+      <item>WStringValueHelper</item>
+      <item>WeakHashMap</item>
+      <item>WeakReference</item>
+      <item>WebRowSet</item>
+      <item>WildcardType</item>
+      <item>Window</item>
+      <item>WindowAdapter</item>
+      <item>WindowConstants</item>
+      <item>WindowEvent</item>
+      <item>WindowFocusListener</item>
+      <item>WindowListener</item>
+      <item>WindowStateListener</item>
+      <item>WrappedPlainView</item>
+      <item>WritableByteChannel</item>
+      <item>WritableRaster</item>
+      <item>WritableRenderedImage</item>
+      <item>WriteAbortedException</item>
+      <item>Writer</item>
+      <item>WrongAdapter</item>
+      <item>WrongAdapterHelper</item>
+      <item>WrongPolicy</item>
+      <item>WrongPolicyHelper</item>
+      <item>WrongTransaction</item>
+      <item>WrongTransactionHelper</item>
+      <item>WrongTransactionHolder</item>
+      <item>X500Principal</item>
+      <item>X500PrivateCredential</item>
+      <item>X509CRL</item>
+      <item>X509CRLEntry</item>
+      <item>X509CRLSelector</item>
+      <item>X509CertSelector</item>
+      <item>X509Certificate</item>
+      <item>X509Certificate</item>
+      <item>X509EncodedKeySpec</item>
+      <item>X509ExtendedKeyManager</item>
+      <item>X509Extension</item>
+      <item>X509KeyManager</item>
+      <item>X509TrustManager</item>
+      <item>XAConnection</item>
+      <item>XADataSource</item>
+      <item>XAException</item>
+      <item>XAResource</item>
+      <item>XMLConstants</item>
+      <item>XMLDecoder</item>
+      <item>XMLEncoder</item>
+      <item>XMLFilter</item>
+      <item>XMLFilterImpl</item>
+      <item>XMLFormatter</item>
+      <item>XMLGregorianCalendar</item>
+      <item>XMLParseException</item>
+      <item>XMLReader</item>
+      <item>XMLReaderAdapter</item>
+      <item>XMLReaderFactory</item>
+      <item>XPath</item>
+      <item>XPathConstants</item>
+      <item>XPathException</item>
+      <item>XPathExpression</item>
+      <item>XPathExpressionException</item>
+      <item>XPathFactory</item>
+      <item>XPathFactoryConfigurationException</item>
+      <item>XPathFunction</item>
+      <item>XPathFunctionException</item>
+      <item>XPathFunctionResolver</item>
+      <item>XPathVariableResolver</item>
+      <item>Xid</item>
+      <item>XmlReader</item>
+      <item>XmlWriter</item>
+      <item>ZipEntry</item>
+      <item>ZipException</item>
+      <item>ZipFile</item>
+      <item>ZipInputStream</item>
+      <item>ZipOutputStream</item>
+      <item>ZoneView</item>
+      <item>_BindingIteratorImplBase</item>
+      <item>_BindingIteratorStub</item>
+      <item>_DynAnyFactoryStub</item>
+      <item>_DynAnyStub</item>
+      <item>_DynArrayStub</item>
+      <item>_DynEnumStub</item>
+      <item>_DynFixedStub</item>
+      <item>_DynSequenceStub</item>
+      <item>_DynStructStub</item>
+      <item>_DynUnionStub</item>
+      <item>_DynValueStub</item>
+      <item>_IDLTypeStub</item>
+      <item>_NamingContextExtStub</item>
+      <item>_NamingContextImplBase</item>
+      <item>_NamingContextStub</item>
+      <item>_PolicyStub</item>
+      <item>_Remote_Stub</item>
+      <item>_ServantActivatorStub</item>
+      <item>_ServantLocatorStub</item>
+    </list>
+    <list name="keywords">
+      <item>abstract</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>class</item>
+      <item>def</item>
+      <item>do</item>
+      <item>else</item>
+      <item>extends</item>
+      <item>false</item>
+      <item>final</item>
+      <item>finally</item>
+      <item>for</item>
+      <item>forSome</item>
+      <item>if</item>
+      <item>implicit</item>
+      <item>import</item>
+      <item>lazy</item>
+      <item>match</item>
+      <item>new</item>
+      <item>null</item>
+      <item>object</item>
+      <item>override</item>
+      <item>package</item>
+      <item>private</item>
+      <item>protected</item>
+      <item>requires</item>
+      <item>return</item>
+      <item>sealed</item>
+      <item>super</item>
+      <item>this</item>
+      <item>throw</item>
+      <item>trait</item>
+      <item>true</item>
+      <item>try</item>
+      <item>type</item>
+      <item>val</item>
+      <item>var</item>
+      <item>while</item>
+      <item>with</item>
+      <item>yield</item>
+    </list>
+    <list name="types">
+      <item>boolean</item>
+      <item>byte</item>
+      <item>char</item>
+      <item>double</item>
+      <item>float</item>
+      <item>int</item>
+      <item>long</item>
+      <item>short</item>
+      <item>unit</item>
+    </list>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <!-- Comment next line if you don't use Javadoc tool -->
+        <IncludeRules context="##Javadoc"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <keyword attribute="Java15" context="#stay" String="java15"/>
+        <keyword attribute="Scala2" context="#stay" String="scala2"/>
+        <Float attribute="Float" context="#stay">
+          <AnyChar String="fF" attribute="Float" context="#stay"/>
+        </Float>
+        <HlCOct attribute="Octal" context="#stay"/>
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Int attribute="Decimal" context="#stay">
+          <StringDetect attribute="Decimal" context="#stay" String="ULL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LUL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LLU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="UL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LU" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="LL" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="U" insensitive="true"/>
+          <StringDetect attribute="Decimal" context="#stay" String="L" insensitive="true"/>
+        </Int>
+        <HlCChar attribute="Char" context="#stay"/>
+        <RegExpr attribute="Decimal" context="#stay" String="//\s*BEGIN.*$" beginRegion="Region1"/>
+        <RegExpr attribute="Decimal" context="#stay" String="//\s*END.*$" endRegion="Region1"/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <RegExpr attribute="Function" context="Printf" String="\.(format|printf)\b" />
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1"/>
+        <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1"/>
+<!--
+        <RegExpr attribute="Keyword" context="#stay" String="\.{3,3}\s+" />
+        <RegExpr attribute="Keyword" context="StaticImports" String="\b(import\s+static)\b" />
+        <RegExpr attribute="Keyword" context="Imports" String="\b(package|import)\b" />
+-->
+        <RegExpr attribute="Function" context="#stay" String="\b[_\w][_\w\d]*(?=[\s]*(/\*\s*\d+\s*\*/\s*)?[(])" />
+        <RegExpr attribute="Symbol" context="Member" String="[.]{1,1}" />
+        <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;()+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Printf">
+        <DetectChar attribute="Normal Text" context="#pop" char="&#059;" />
+        <DetectChar attribute="String" context="PrintfString" char="&quot;"/>
+      </context>
+      <context attribute="PrintfString" lineEndContext="#pop" name="PrintfString">
+        <LineContinue attribute="String" context="#stay"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+        <RegExpr attribute="String Char" context="#stay" String="%(\d+\$)?(-|#|\+|\ |0|,|\()*\d*(\.\d+)?[a-hosxA-CEGHSX]" />
+        <RegExpr attribute="String Char" context="#stay" String="%(\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)" />
+        <RegExpr attribute="String Char" context="#stay" String="%(%|n)" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Member" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="Function" context="#pop" String="\b[_a-zA-Z]\w*(?=[\s]*)" />
+      </context>
+<!--
+      <context attribute="Normal Text" lineEndContext="#pop" name="StaticImports">
+        <RegExpr attribute="StaticImports" context="#pop" String="\s*.*$" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Imports">
+        <RegExpr attribute="Imports" context="#pop" String="\s*.*$" />
+      </context>
+-->
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1"/>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"  defStyleNum="dsNormal"/>
+      <itemData name="Keyword"      defStyleNum="dsKeyword"/>
+      <itemData name="Function"     defStyleNum="dsFunction"/>
+      <itemData name="StaticImports"      defStyleNum="dsKeyword" color="#800080" selColor="#FFFFFF" bold="0" italic="0"/>
+      <itemData name="Imports"      defStyleNum="dsKeyword" color="#808000" selColor="#FFFFFF" bold="0" italic="0"/>
+      <itemData name="Data Type"    defStyleNum="dsDataType"/>
+      <itemData name="Decimal"      defStyleNum="dsDecVal"/>
+      <itemData name="Octal"        defStyleNum="dsBaseN"/>
+      <itemData name="Hex"          defStyleNum="dsBaseN"/>
+      <itemData name="Float"        defStyleNum="dsFloat"/>
+      <itemData name="Char"         defStyleNum="dsChar"/>
+      <itemData name="String"       defStyleNum="dsString"/>
+      <itemData name="String Char"  defStyleNum="dsChar"/>
+      <itemData name="PrintfString" defStyleNum="dsString"/>
+      <itemData name="Comment"      defStyleNum="dsComment"/>
+      <itemData name="Symbol"       defStyleNum="dsNormal"/>
+      <itemData name="Scala2"       defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
+      <itemData name="Java15"       defStyleNum="dsNormal" color="#0095FF" selColor="#FFFFFF" bold="1" italic="0"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//"/>
+      <comment name="multiLine" start="/*" end="*/"/>
+    </comments>
+    <keywords casesensitive="1"/>
+  </general>
+</language>
diff --git a/xml/scheme.xml b/xml/scheme.xml
new file mode 100644
--- /dev/null
+++ b/xml/scheme.xml
@@ -0,0 +1,396 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language version="4" kateversion="2.4" name="Scheme" section="Scripts" extensions="*.scm;*.ss;*.scheme;*.guile" mimetype="text/x-scheme" author="Dominik Haumann (dhaumann@kde.org)" license="MIT" priority="9">
+  <highlighting>
+    <list name="operators">
+      <item>&lt;=</item>
+      <item>&lt;</item>
+      <item>=</item>
+      <item>=&gt;</item>
+      <item>&gt;=</item>
+      <item>&gt;</item>
+      <item>-</item>
+      <item>/</item>
+      <item>*,*</item>
+      <item>*)</item>
+      <item>+</item>
+    </list>
+    <list name="characters">
+      <item>#\nul</item>
+      <item>#\soh</item>
+      <item>#\stx</item>
+      <item>#\etx</item>
+      <item>#\eot</item>
+      <item>#\enq</item>
+      <item>#\ack</item>
+      <item>#\bel</item>
+      <item>#\bs</item>
+      <item>#\ht</item>
+      <item>#\nl</item>
+      <item>#\vt</item>
+      <item>#\np</item>
+      <item>#\cr</item>
+      <item>#\so</item>
+      <item>#\si</item>
+      <item>#\dle</item>
+      <item>#\dc1</item>
+      <item>#\dc2</item>
+      <item>#\dc3</item>
+      <item>#\dc4</item>
+      <item>#\nak</item>
+      <item>#\syn</item>
+      <item>#\etb</item>
+      <item>#\can</item>
+      <item>#\em</item>
+      <item>#\sub</item>
+      <item>#\esc</item>
+      <item>#\fs</item>
+      <item>#\gs</item>
+      <item>#\rs</item>
+      <item>#\us</item>
+      <item>#\space</item>
+      <item>#\sp</item>
+      <item>#\newline</item>
+      <item>#\nl</item>
+      <item>#\tab</item>
+      <item>#\ht</item>
+      <item>#\backspace</item>
+      <item>#\bs</item>
+      <item>#\return</item>
+      <item>#\cr</item>
+      <item>#\page</item>
+      <item>#\np</item>
+      <item>#\null</item>
+      <item>#\nul</item>
+    </list>
+    <list name="defines">
+      <item>define</item>
+      <item>define*</item>
+      <item>define-accessor</item>
+      <item>define-class</item>
+      <item>defined?</item>
+      <item>define-generic</item>
+      <item>define-macro</item>
+      <item>define-method</item>
+      <item>define-module</item>
+      <item>define-private</item>
+      <item>define-public</item>
+      <item>define*-public</item>
+      <item>define-reader-ctor</item>
+      <item>define-syntax</item>
+      <item>define-syntax-macro</item>
+      <item>defmacro</item>
+      <item>defmacro*</item>
+      <item>defmacro*-public</item>
+    </list>
+    <list name="keywords">
+      <item>abs</item>
+      <item>acos</item>
+      <item>and</item>
+      <item>angle</item>
+      <item>append</item>
+      <item>applymap</item>
+      <item>asin</item>
+      <item>assoc</item>
+      <item>assq</item>
+      <item>assv</item>
+      <item>atan</item>
+      <item>begin</item>
+      <item>boolean?</item>
+      <item>break</item>
+      <item>caaaar</item>
+      <item>caaadr</item>
+      <item>caaar</item>
+      <item>caadar</item>
+      <item>caaddr</item>
+      <item>caadr</item>
+      <item>caar</item>
+      <item>cadaar</item>
+      <item>cadadr</item>
+      <item>cadar</item>
+      <item>caddar</item>
+      <item>cadddr</item>
+      <item>caddr</item>
+      <item>cadr</item>
+      <item>call/cc</item>
+      <item>call-with-current-continuation</item>
+      <item>call-with-input-file</item>
+      <item>call-with-output-file</item>
+      <item>call-with-values</item>
+      <item>car</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>cdaaar</item>
+      <item>cdaadr</item>
+      <item>cdaar</item>
+      <item>cdadar</item>
+      <item>cdaddr</item>
+      <item>cdadr</item>
+      <item>cdar</item>
+      <item>cddaar</item>
+      <item>cddadr</item>
+      <item>cddar</item>
+      <item>cdddar</item>
+      <item>cddddr</item>
+      <item>cdddr</item>
+      <item>cddr</item>
+      <item>cdr</item>
+      <item>ceiling</item>
+      <item>char-alphabetic?</item>
+      <item>char-ci&gt;=?</item>
+      <item>char-ci&gt;?</item>
+      <item>char-ci=?</item>
+      <item>char-ci&lt;=?</item>
+      <item>char-downcase</item>
+      <item>char-&gt;integer</item>
+      <item>char&gt;=?</item>
+      <item>char&gt;?</item>
+      <item>char=?</item>
+      <item>char?</item>
+      <item>char-lower-case?</item>
+      <item>char&lt;?c</item>
+      <item>char&lt;=?</item>
+      <item>char-numeric?</item>
+      <item>char-ready?</item>
+      <item>char-upcase</item>
+      <item>char-upper-case?</item>
+      <item>char-whitespace?</item>
+      <item>close-input-port</item>
+      <item>close-output-port</item>
+      <item>complex?</item>
+      <item>cond</item>
+      <item>cons</item>
+      <item>continue</item>
+      <item>cos</item>
+      <item>current-input-port</item>
+      <item>current-output-port</item>
+      <item>denominator</item>
+      <item>display</item>
+      <item>do</item>
+      <item>dynamic-wind</item>
+      <item>else</item>
+      <item>eof-object?</item>
+      <item>eq?</item>
+      <item>equal?</item>
+      <item>eqv?</item>
+      <item>eval</item>
+      <item>even?</item>
+      <item>exact->inexact</item>
+      <item>exact?</item>
+      <item>exp</item>
+      <item>expt</item>
+      <item>floor</item>
+      <item>force</item>
+      <item>for-each</item>
+      <item>gcd</item>
+      <item>har-ci&lt;?</item>
+      <item>if</item>
+      <item>imag-part</item>
+      <item>inexact-&gt;exact</item>
+      <item>inexact?</item>
+      <item>input-port?</item>
+      <item>integer-&gt;char</item>
+      <item>integer?</item>
+      <item>interaction-environment</item>
+      <item>lambda</item>
+      <item>lcm</item>
+      <item>length</item>
+      <item>let</item>
+      <item>let*</item>
+      <item>letrec</item>
+      <item>letrec-syntax</item>
+      <item>let-syntax</item>
+      <item>list-&gt;string</item>
+      <item>list</item>
+      <item>list?</item>
+      <item>list-ref</item>
+      <item>list-tail</item>
+      <item>load</item>
+      <item>log</item>
+      <item>magnitude</item>
+      <item>make-polar</item>
+      <item>make-rectangular</item>
+      <item>make-string</item>
+      <item>make-vector</item>
+      <item>max</item>
+      <item>member</item>
+      <item>memq</item>
+      <item>memv</item>
+      <item>min</item>
+      <item>modulo</item>
+      <item>negative?</item>
+      <item>newline</item>
+      <item>not</item>
+      <item>null-environment</item>
+      <item>null?</item>
+      <item>number?</item>
+      <item>number->string</item>
+      <item>numerator</item>
+      <item>odd?</item>
+      <item>open-input-file</item>
+      <item>open-output-file</item>
+      <item>or</item>
+      <item>output-port?</item>
+      <item>pair?</item>
+      <item>peek-char</item>
+      <item>port?</item>
+      <item>positive?</item>
+      <item>procedure?</item>
+      <item>quotient</item>
+      <item>rational?</item>
+      <item>rationalize</item>
+      <item>read-char</item>
+      <item>read</item>
+      <item>real?</item>
+      <item>real-part</item>
+      <item>remainder</item>
+      <item>reverse</item>
+      <item>round</item>
+      <item>scheme-report-environment</item>
+      <item>set-car!</item>
+      <item>set-cdr!</item>
+      <item>sin</item>
+      <item>sqrt</item>
+      <item>string-append</item>
+      <item>string-ci&gt;=?</item>
+      <item>string-ci&gt;?</item>
+      <item>string-ci=?</item>
+      <item>string-ci&lt;=?</item>
+      <item>string-ci&lt;?</item>
+      <item>string-copy</item>
+      <item>string-fill!</item>
+      <item>string&gt;=?</item>
+      <item>string&gt;?</item>
+      <item>string-&gt;list</item>
+      <item>string-&gt;number</item>
+      <item>string-&gt;symbol</item>
+      <item>string=?</item>
+      <item>string</item>
+      <item>string?</item>
+      <item>string-length</item>
+      <item>string&lt;=?</item>
+      <item>string&lt;?</item>
+      <item>string-ref</item>
+      <item>string-set!</item>
+      <item>substring</item>
+      <item>symbol-&gt;string</item>
+      <item>symbol?</item>
+      <item>syntax-rules</item>
+      <item>tan</item>
+      <item>transcript-off</item>
+      <item>transcript-on</item>
+      <item>truncate</item>
+      <item>values</item>
+      <item>vector-fill!</item>
+      <item>vector-&gt;listlist->vector</item>
+      <item>vector</item>
+      <item>vector?</item>
+      <item>vector-length</item>
+      <item>vector-ref</item>
+      <item>vector-set!</item>
+      <item>while</item>
+      <item>with-input-from-file</item>
+      <item>with-output-to-file</item>
+      <item>write-char</item>
+      <item>write</item>
+      <item>zero?</item>
+    </list>
+    <contexts>
+      <context name="Level0" attribute="Normal" lineEndContext="#stay">
+            <DetectChar attribute="Brackets1" context="Level1" char="("/>
+            <IncludeRules context="Default" />
+      </context>
+      <context name="Default" attribute="Normal" lineEndContext="#stay">
+        <RegExpr attribute="Region Marker" context="#stay" String=";+\s*BEGIN.*$" beginRegion="region"/>
+        <RegExpr attribute="Region Marker" context="#stay" String=";+\s*END.*$" endRegion="region"/>
+        <RegExpr attribute="Comment" context="#stay" String=";.*$"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="#" char1="!" beginRegion="region"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Operator" context="#stay" String="operators"/>
+        <keyword attribute="Definition" context="function_decl" String="defines"/>
+        <keyword attribute="Char" context="#stay" String="characters"/>
+        <RegExpr attribute="Char" context="#stay" String="#\\."/>
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <RegExpr attribute="Char" context="SpecialNumber" String="#[bodxei]"/>
+        <RegExpr attribute="Decimal" context="#stay" String="#[tf]"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+        <DetectChar attribute="Brackets1" context="Level1" char="("/>
+      </context>
+      <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="#pop" String="!#\s*$" endRegion="region" column="0"/>
+      </context>
+      <context name="SpecialNumber" attribute="Normal" fallthrough="true" lineEndContext="#pop">
+        <RegExpr attribute="Decimal" context="#pop" String="\d*(\.\d+)?"/>
+      </context>
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <keyword attribute="Char" context="#stay" String="characters"/>
+        <RegExpr attribute="Char" context="#stay" String="#\\."/>
+        <Detect2Chars attribute="Char" context="#stay" char="\" char1="&quot;"/>
+        <Detect2Chars attribute="Char" context="#stay" char="\" char1="\"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context name="function_decl" attribute="Function" lineEndContext="#stay">
+        <RegExpr attribute="Function" context="#pop" String="\s*[A-Za-z0-9-+\&lt;\&gt;//\*]*\s*" />
+      </context>
+      <context name="Level1" attribute="Normal" lineEndContext="#stay">
+           <DetectChar attribute="Brackets2" context="Level2" char="("/>
+           <DetectChar attribute="Brackets1" context="#pop" char=")" />
+           <IncludeRules context="Default" />
+      </context>
+      <context name="Level2" attribute="Normal" lineEndContext="#stay">
+           <DetectChar attribute="Brackets3" context="Level3" char="("/>
+           <DetectChar attribute="Brackets2" context="#pop" char=")" />
+           <IncludeRules context="Default" />
+      </context>
+      <context name="Level3" attribute="Normal" lineEndContext="#stay">
+           <DetectChar attribute="Brackets4" context="Level4" char="("/>
+           <DetectChar attribute="Brackets3" context="#pop" char=")" />
+           <IncludeRules context="Default" />
+      </context>
+      <context name="Level4" attribute="Normal" lineEndContext="#stay">
+           <DetectChar attribute="Brackets5" context="Level5" char="("/>
+           <DetectChar attribute="Brackets4" context="#pop" char=")" />
+           <IncludeRules context="Default" />
+      </context>
+      <context name="Level5" attribute="Normal" lineEndContext="#stay">
+           <DetectChar attribute="Brackets6" context="Level6" char="("/>
+           <DetectChar attribute="Brackets5" context="#pop" char=")" />
+           <IncludeRules context="Default" />
+      </context>
+      <context name="Level6" attribute="Normal" lineEndContext="#stay">
+           <DetectChar attribute="Brackets1" context="Level1" char="("/>
+           <DetectChar attribute="Brackets6" context="#pop" char=")" />
+           <IncludeRules context="Default" />
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal"      defStyleNum="dsNormal"/>
+      <itemData name="Keyword"     defStyleNum="dsKeyword"/>
+      <itemData name="Definition"  defStyleNum="dsKeyword" color="#d22811"/>
+      <itemData name="Operator"    defStyleNum="dsKeyword" color="#d22811"/>
+      <itemData name="Function"    defStyleNum="dsFunction"/>
+      <itemData name="Data"        defStyleNum="dsDataType"/>
+      <itemData name="Decimal"     defStyleNum="dsDecVal"/>
+      <itemData name="BaseN"       defStyleNum="dsBaseN"/>
+      <itemData name="Float"       defStyleNum="dsFloat"/>
+      <itemData name="Char"        defStyleNum="dsChar"/>
+      <itemData name="String"      defStyleNum="dsString"/>
+      <itemData name="Comment"     defStyleNum="dsComment"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
+      <itemData name="Brackets1"    defStyleNum="dsNormal" color="#ff0000" selColor="#000000" bold="1" italic="0"/>
+      <itemData name="Brackets2"    defStyleNum="dsNormal" color="#ff8800" selColor="#000000" bold="1" italic="0"/>
+      <itemData name="Brackets3"    defStyleNum="dsNormal" color="#888800" selColor="#000000" bold="1" italic="0"/>
+      <itemData name="Brackets4"    defStyleNum="dsNormal" color="#008800" selColor="#000000" bold="1" italic="0"/>
+      <itemData name="Brackets5"    defStyleNum="dsNormal" color="#000088" selColor="#000000" bold="1" italic="0"/>
+      <itemData name="Brackets6"    defStyleNum="dsNormal" color="#880088" selColor="#000000" bold="1" italic="0"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <keywords casesensitive="1" weakDeliminator="-+*?!&lt;&gt;=/:#\"/>
+    <comments>
+      <comment name="singleLine" start=";;" />
+      <comment name="multiLine" start="#!" end="!#" />
+    </comments>
+  </general>
+</language>
diff --git a/xml/sci.xml b/xml/sci.xml
new file mode 100644
--- /dev/null
+++ b/xml/sci.xml
@@ -0,0 +1,1191 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="scilab" version="3" kateversion="2.2" section="Scientific" extensions="*.sci;*.sce" mimetype="text/x-sci">
+  <highlighting>
+    <list name="Structure-keywords">
+      <item>do</item>
+      <item>else</item>
+      <item>for</item>
+      <item>if</item>
+      <item>elseif</item>
+      <item>end</item>
+      <item>select</item>
+      <item>then</item>
+      <item>while</item>
+    </list>
+    <list name="Control-keywords">
+      <item>abort</item>
+      <item>break</item>
+      <item>quit</item>
+      <item>return</item>
+      <item>resume</item>
+      <item>pause</item>
+    </list>
+    <list name="Function-keywords">
+      <item>function</item>
+      <item>endfunction</item>
+    </list>
+    <list name="Warning-keywords">
+      <item>error</item>
+      <item>warning</item>
+    </list>
+  <list name="Constants-keyword">
+      <item>%F</item>
+      <item>%f</item>
+      <item>%T</item>
+      <item>%t</item>
+      <item>%e</item>
+      <item>%pi</item>
+      <item>%inf</item>
+      <item>%i</item>
+      <item>%z</item>
+      <item>%io</item>
+      <item>%s</item>
+      <item>%nan</item>
+      <item>$</item>
+      <item>%eps</item>
+      <item>MSDOS</item>
+    </list>
+    <list name="functions">
+	<item>zpell</item>
+	<item>zpch2</item>
+	<item>zpch1</item>
+	<item>zpbutt</item>
+	<item>zgrid</item>
+	<item>zeros</item>
+	<item>zeropen</item>
+	<item>ZCROSS_f</item>
+	<item>yulewalk</item>
+	<item>xtitle</item>
+	<item>xtape</item>
+	<item>xstringl</item>
+	<item>xstringb</item>
+	<item>xstring</item>
+	<item>xsetm</item>
+	<item>xsetech</item>
+	<item>xset</item>
+	<item>xselect</item>
+	<item>xsegs</item>
+	<item>xsave</item>
+	<item>xs2fig</item>
+	<item>xrpoly</item>
+	<item>xrects</item>
+	<item>xrect</item>
+	<item>xpolys</item>
+	<item>xpoly</item>
+	<item>xpause</item>
+	<item>xnumb</item>
+	<item>xname</item>
+	<item>x_message_modeless</item>
+	<item>x_message</item>
+	<item>x_mdialog</item>
+	<item>x_matrix</item>
+	<item>xload</item>
+	<item>xlfont</item>
+	<item>xinit</item>
+	<item>xinfo</item>
+	<item>xgrid</item>
+	<item>xgraduate</item>
+	<item>xgetmouse</item>
+	<item>xgetfile</item>
+	<item>xgetech</item>
+	<item>xget</item>
+	<item>xfrect</item>
+	<item>xfpolys</item>
+	<item>xfpoly</item>
+	<item>xfarcs</item>
+	<item>xfarc</item>
+	<item>xend</item>
+	<item>x_dialog</item>
+	<item>xdel</item>
+	<item>xclip</item>
+	<item>xclick</item>
+	<item>xclear</item>
+	<item>xclea</item>
+	<item>x_choose</item>
+	<item>x_choices</item>
+	<item>xchange</item>
+	<item>xbasr</item>
+	<item>xbasimp</item>
+	<item>xbasc</item>
+	<item>xaxis</item>
+	<item>xarrows</item>
+	<item>xarcs</item>
+	<item>xarc</item>
+	<item>WRITEC_f</item>
+	<item>write4b</item>
+	<item>write</item>
+	<item>writb</item>
+	<item>winsid</item>
+	<item>window</item>
+	<item>wigner</item>
+	<item>wiener</item>
+	<item>whos</item>
+	<item>who</item>
+	<item>whereis</item>
+	<item>whereami</item>
+	<item>where</item>
+	<item>what</item>
+	<item>wfir</item>
+	<item>WFILE_f</item>
+	<item>wavwrite</item>
+	<item>wavread</item>
+	<item>warning</item>
+	<item>WaitMsg</item>
+	<item>varn</item>
+	<item>varargout</item>
+	<item>varargin</item>
+	<item>user</item>
+	<item>unsetmenu</item>
+	<item>unobs</item>
+	<item>unix_x</item>
+	<item>unix_w</item>
+	<item>unix_s</item>
+	<item>unix_g</item>
+	<item>unix</item>
+	<item>unique</item>
+	<item>union</item>
+	<item>ulink</item>
+	<item>ui_observer</item>
+	<item>uint8</item>
+	<item>uint32</item>
+	<item>uint16</item>
+	<item>uimenu</item>
+	<item>uicontrol</item>
+	<item>typeof</item>
+	<item>typename</item>
+	<item>type</item>
+	<item>trzeros</item>
+	<item>triu</item>
+	<item>trisolve</item>
+	<item>tril</item>
+	<item>trianfml</item>
+	<item>trfmod</item>
+	<item>TRASH_f</item>
+	<item>translatepaths</item>
+	<item>trans_closure</item>
+	<item>trans</item>
+	<item>trace</item>
+	<item>toeplitz</item>
+	<item>tlist</item>
+	<item>TK_SetVar</item>
+	<item>TK_GetVar</item>
+	<item>TK_EvalStr</item>
+	<item>TK_EvalFile</item>
+	<item>titlepage</item>
+	<item>timer</item>
+	<item>time_id</item>
+	<item>TIME_f</item>
+	<item>tilda</item>
+	<item>tf2ss</item>
+	<item>tf2des</item>
+	<item>TEXT_f</item>
+	<item>texprint</item>
+	<item>testmatrix</item>
+	<item>tdinit</item>
+	<item>TCLSS_f</item>
+	<item>tanm</item>
+	<item>tanhm</item>
+	<item>tanh</item>
+	<item>tangent</item>
+	<item>TANBLK_f</item>
+	<item>tan</item>
+	<item>systmat</item>
+	<item>systems</item>
+	<item>system</item>
+	<item>syssize</item>
+	<item>syslin</item>
+	<item>sysfact-</item>
+	<item>sysdiag</item>
+	<item>sysconv</item>
+	<item>symbols</item>
+	<item>sylv</item>
+	<item>sylm</item>
+	<item>svplot</item>
+	<item>svd</item>
+	<item>sva</item>
+	<item>supernode</item>
+	<item>SUPER_f</item>
+	<item>sum</item>
+	<item>successors</item>
+	<item>subplot</item>
+	<item>subgraph</item>
+	<item>subf</item>
+	<item>strsubst</item>
+	<item>strong_con_nodes</item>
+	<item>strong_connex</item>
+	<item>stripblanks</item>
+	<item>strings</item>
+	<item>string</item>
+	<item>strindex</item>
+	<item>strcat</item>
+	<item>str2code</item>
+	<item>STOP_f</item>
+	<item>st_ility</item>
+	<item>st_deviation</item>
+	<item>startup</item>
+	<item>star</item>
+	<item>standard_output</item>
+	<item>standard_origin</item>
+	<item>standard_input</item>
+	<item>standard_draw</item>
+	<item>standard_define</item>
+	<item>stacksize</item>
+	<item>stabil</item>
+	<item>ssrand</item>
+	<item>ssprint</item>
+	<item>sskf</item>
+	<item>sscanf</item>
+	<item>ss2tf</item>
+	<item>ss2ss</item>
+	<item>ss2des</item>
+	<item>srkf</item>
+	<item>srfaur</item>
+	<item>squarewave</item>
+	<item>square</item>
+	<item>sqrtm</item>
+	<item>sqrt</item>
+	<item>sqroot</item>
+	<item>spzeros</item>
+	<item>sprintf</item>
+	<item>sprand</item>
+	<item>spones</item>
+	<item>SPLIT_f</item>
+	<item>split_edge</item>
+	<item>splin</item>
+	<item>spget</item>
+	<item>speye</item>
+	<item>specfact</item>
+	<item>spec</item>
+	<item>spcompack</item>
+	<item>spchol</item>
+	<item>sparse</item>
+	<item>spantwo</item>
+	<item>spanplus</item>
+	<item>spaninter</item>
+	<item>sp2adj</item>
+	<item>sound</item>
+	<item>sort</item>
+	<item>SOM_f</item>
+	<item>solve</item>
+	<item>%sn</item>
+	<item>smooth</item>
+	<item>sm2ss</item>
+	<item>sm2des</item>
+	<item>slash</item>
+	<item>size</item>
+	<item>sinm</item>
+	<item>sinhm</item>
+	<item>sinh</item>
+	<item>sincd</item>
+	<item>sinc</item>
+	<item>SINBLK_f</item>
+	<item>sin</item>
+	<item>simp_mode</item>
+	<item>simp</item>
+	<item>signm</item>
+	<item>sign</item>
+	<item>showprofile</item>
+	<item>show_nodes</item>
+	<item>show_graph</item>
+	<item>show_arcs</item>
+	<item>shortest_path</item>
+	<item>sgrid</item>
+	<item>Sgrayplot</item>
+	<item>Sfgrayplot</item>
+	<item>sfact</item>
+	<item>setscicosvars</item>
+	<item>setmenu</item>
+	<item>setfield</item>
+	<item>setbpt</item>
+	<item>set</item>
+	<item>sensi</item>
+	<item>SendMsg</item>
+	<item>semidef</item>
+	<item>semicolumn</item>
+	<item>semi</item>
+	<item>SELECT_f</item>
+	<item>secto3d</item>
+	<item>sd2sci</item>
+	<item>SCOPXY_f</item>
+	<item>SCOPE_f</item>
+	<item>scilink</item>
+	<item>ScilabEval</item>
+	<item>scilab</item>
+	<item>scifunc_block</item>
+	<item>scicos_model</item>
+	<item>scicos_menus</item>
+	<item>scicos_main</item>
+	<item>scicos_link</item>
+	<item>scicosim</item>
+	<item>scicos_graphics</item>
+	<item>scicos_cpr</item>
+	<item>scicos_block</item>
+	<item>scicos</item>
+	<item>sciargs</item>
+	<item>sci2map</item>
+	<item>sci2for</item>
+	<item>sci2exp</item>
+	<item>schur</item>
+	<item>scanf_conversion</item>
+	<item>scanf</item>
+	<item>scaling</item>
+	<item>SAWTOOTH_f</item>
+	<item>savewave</item>
+	<item>save_graph</item>
+	<item>save</item>
+	<item>SAT_f</item>
+	<item>SAMPLEHOLD_f</item>
+	<item>salesman</item>
+	<item>rtitr</item>
+	<item>rref</item>
+	<item>rpem</item>
+	<item>rowshuff</item>
+	<item>rowregul</item>
+	<item>rowinout</item>
+	<item>rowcompr</item>
+	<item>rowcomp</item>
+	<item>routh_t</item>
+	<item>round</item>
+	<item>rotate</item>
+	<item>roots</item>
+	<item>rlist</item>
+	<item>ric_desc</item>
+	<item>riccati</item>
+	<item>ricc</item>
+	<item>RFILE_f</item>
+	<item>residu</item>
+	<item>replot</item>
+	<item>repfreq</item>
+	<item>remezb</item>
+	<item>remez</item>
+	<item>RELAY_f</item>
+	<item>reglin</item>
+	<item>REGISTER_f</item>
+	<item>recur</item>
+	<item>real</item>
+	<item>readmps</item>
+	<item>READC_f</item>
+	<item>readc_</item>
+	<item>readb</item>
+	<item>read4b</item>
+	<item>read</item>
+	<item>rdivf</item>
+	<item>rcond</item>
+	<item>rational</item>
+	<item>rat</item>
+	<item>rank</item>
+	<item>range</item>
+	<item>randpencil</item>
+	<item>RAND_f</item>
+	<item>rand</item>
+	<item>quote</item>
+	<item>quit</item>
+	<item>quaskro</item>
+	<item>quapro</item>
+	<item>QUANT_f</item>
+	<item>qr</item>
+	<item>qassign</item>
+	<item>pwd</item>
+	<item>pvm_tidtohost</item>
+	<item>pvm_start</item>
+	<item>pvm_spawn_independent</item>
+	<item>pvm_spawn</item>
+	<item>pvm_set_timer</item>
+	<item>pvm_send</item>
+	<item>pvm_sci2f77</item>
+	<item>pvm_reduce</item>
+	<item>pvm_recv</item>
+	<item>pvm_probe</item>
+	<item>pvm_mytid</item>
+	<item>pvm_lvgroup</item>
+	<item>pvm_kill</item>
+	<item>pvm_joingroup</item>
+	<item>pvm_halt</item>
+	<item>pvm_gsize</item>
+	<item>pvm_get_timer</item>
+	<item>pvm_getinst</item>
+	<item>pvm_exit</item>
+	<item>pvm_error</item>
+	<item>pvm_delhosts</item>
+	<item>pvmd3</item>
+	<item>pvm_config</item>
+	<item>pvm_bufinfo</item>
+	<item>pvm_bcast</item>
+	<item>pvm_addhosts</item>
+	<item>pvm</item>
+	<item>pspect</item>
+	<item>psmall</item>
+	<item>projspec</item>
+	<item>projsl</item>
+	<item>proj</item>
+	<item>profile</item>
+	<item>PROD_f</item>
+	<item>prod</item>
+	<item>printing</item>
+	<item>printf_conversion</item>
+	<item>printf</item>
+	<item>print</item>
+	<item>predef</item>
+	<item>predecessors</item>
+	<item>prbs_a</item>
+	<item>ppol</item>
+	<item>power</item>
+	<item>POWBLK_f</item>
+	<item>POSTONEG_f</item>
+	<item>portrait</item>
+	<item>portr3d</item>
+	<item>poly</item>
+	<item>polfact</item>
+	<item>polarplot</item>
+	<item>polar</item>
+	<item>pol2tex</item>
+	<item>pol2str</item>
+	<item>pol2des</item>
+	<item>pmodulo</item>
+	<item>p_margin</item>
+	<item>plzr</item>
+	<item>plus</item>
+	<item>plotprofile</item>
+	<item>plot_graph</item>
+	<item>plotframe</item>
+	<item>plot3d3</item>
+	<item>plot3d2</item>
+	<item>plot3d1</item>
+	<item>plot3d</item>
+	<item>plot2d4</item>
+	<item>plot2d3</item>
+	<item>plot2d2</item>
+	<item>plot2d1</item>
+	<item>plot2d</item>
+	<item>plot</item>
+	<item>playsnd</item>
+	<item>pipe_network</item>
+	<item>pinv</item>
+	<item>phc</item>
+	<item>phasemag</item>
+	<item>pfss</item>
+	<item>pertrans</item>
+	<item>perfect_match</item>
+	<item>percent</item>
+	<item>penlaur</item>
+	<item>pencan</item>
+	<item>pen2ea</item>
+	<item>pdiv</item>
+	<item>pbig</item>
+	<item>path_2_nodes</item>
+	<item>part</item>
+	<item>parrot</item>
+	<item>parents</item>
+	<item>paramfplot2d</item>
+	<item>param3d1</item>
+	<item>param3d</item>
+	<item>overloading</item>
+	<item>OUT_f</item>
+	<item>orth</item>
+	<item>or</item>
+	<item>optim</item>
+	<item>ones</item>
+	<item>oldsave</item>
+	<item>oldload</item>
+	<item>ode_root</item>
+	<item>odeoptions</item>
+	<item>ode_discrete</item>
+	<item>odedi</item>
+	<item>odedc</item>
+	<item>ode</item>
+	<item>obsvss</item>
+	<item>obsv_mat</item>
+	<item>obs_gram</item>
+	<item>observer</item>
+	<item>obscont1</item>
+	<item>obscont</item>
+	<item>nyquist</item>
+	<item>numer</item>
+	<item>null</item>
+	<item>not</item>
+	<item>norm</item>
+	<item>noisegen</item>
+	<item>nodes_degrees</item>
+	<item>nodes_2_path</item>
+	<item>node_number</item>
+	<item>nnz</item>
+	<item>nlev</item>
+	<item>nf3d</item>
+	<item>newfun</item>
+	<item>newest</item>
+	<item>netwindows</item>
+	<item>netwindow</item>
+	<item>netclose</item>
+	<item>neighbors</item>
+	<item>nehari</item>
+	<item>NEGTOPOS_f</item>
+	<item>narsimul</item>
+	<item>names</item>
+	<item>MUX_f</item>
+	<item>mulf</item>
+	<item>mu2lin</item>
+	<item>mtlb_sparse</item>
+	<item>mtlb_save</item>
+	<item>mtlb_mode</item>
+	<item>mtlb_load</item>
+	<item>mtell</item>
+	<item>msscanf</item>
+	<item>msprintf</item>
+	<item>mseek</item>
+	<item>mscanf</item>
+	<item>mrfit</item>
+	<item>mputstr</item>
+	<item>mputl</item>
+	<item>mput</item>
+	<item>mps2linpro</item>
+	<item>mprintf</item>
+	<item>mopen</item>
+	<item>modulo</item>
+	<item>mode</item>
+	<item>mlist</item>
+	<item>min_weight_tree</item>
+	<item>minus</item>
+	<item>minss</item>
+	<item>minreal</item>
+	<item>min_qcost_flow</item>
+	<item>min_lcost_flow2</item>
+	<item>min_lcost_flow1</item>
+	<item>min_lcost_cflow</item>
+	<item>mini</item>
+	<item>MIN_f</item>
+	<item>mine</item>
+	<item>min</item>
+	<item>milk_drop</item>
+	<item>mgetstr</item>
+	<item>mgetl</item>
+	<item>mgeti</item>
+	<item>mget</item>
+	<item>mfscanf</item>
+	<item>mfprintf</item>
+	<item>mfile2sci</item>
+	<item>mfft</item>
+	<item>MFCLCK_f</item>
+	<item>metanet_sync</item>
+	<item>metanet</item>
+	<item>mesh2d</item>
+	<item>mese</item>
+	<item>meof</item>
+	<item>median</item>
+	<item>mean</item>
+	<item>mclose</item>
+	<item>MCLOCK_f</item>
+	<item>mclearerr</item>
+	<item>m_circle</item>
+	<item>maxi</item>
+	<item>max_flow</item>
+	<item>MAX_f</item>
+	<item>max_clique</item>
+	<item>max_cap_path</item>
+	<item>max</item>
+	<item>matrix</item>
+	<item>matrices</item>
+	<item>Matplot1</item>
+	<item>Matplot</item>
+	<item>mat_2_graph</item>
+	<item>markp2ss</item>
+	<item>mapsound</item>
+	<item>manedit</item>
+	<item>man</item>
+	<item>make_graph</item>
+	<item>macrovar</item>
+	<item>macro</item>
+	<item>macr2lst</item>
+	<item>macglov</item>
+	<item>lyap</item>
+	<item>lusolve</item>
+	<item>luget</item>
+	<item>lufact</item>
+	<item>ludel</item>
+	<item>lu</item>
+	<item>ltitr</item>
+	<item>lstcat</item>
+	<item>lsslist</item>
+	<item>lqr</item>
+	<item>lqg_ltr</item>
+	<item>lqg2stan</item>
+	<item>lqg</item>
+	<item>lqe</item>
+	<item>lotest</item>
+	<item>LOOKUP_f</item>
+	<item>logspace</item>
+	<item>logm</item>
+	<item>LOGBLK_f</item>
+	<item>log2</item>
+	<item>log10</item>
+	<item>log</item>
+	<item>locate</item>
+	<item>loadwave</item>
+	<item>load_graph</item>
+	<item>load</item>
+	<item>lmitool</item>
+	<item>lmisolver</item>
+	<item>list</item>
+	<item>linspace</item>
+	<item>linsolve</item>
+	<item>linpro</item>
+	<item>link</item>
+	<item>linfn</item>
+	<item>linf</item>
+	<item>lines</item>
+	<item>line_graph</item>
+	<item>lindquist</item>
+	<item>lin2mu</item>
+	<item>lin</item>
+	<item>lib</item>
+	<item>lgfft</item>
+	<item>lft</item>
+	<item>lex_sort</item>
+	<item>levin</item>
+	<item>lev</item>
+	<item>less</item>
+	<item>leqr</item>
+	<item>length</item>
+	<item>legends</item>
+	<item>left</item>
+	<item>leastsq</item>
+	<item>ldivf</item>
+	<item>ldiv</item>
+	<item>lcmdiag</item>
+	<item>lcm</item>
+	<item>lcf</item>
+	<item>lattp</item>
+	<item>lattn</item>
+	<item>lasterror</item>
+	<item>kroneck</item>
+	<item>kron</item>
+	<item>krac2</item>
+	<item>kpure</item>
+	<item>knapsack</item>
+	<item>keyboard</item>
+	<item>kernel</item>
+	<item>karmarkar</item>
+	<item>kalm</item>
+	<item>%k</item>
+	<item>jmat</item>
+	<item>isreal</item>
+	<item>isoview</item>
+	<item>isnan</item>
+	<item>isinf</item>
+	<item>isglobal</item>
+	<item>iserror</item>
+	<item>isdef</item>
+	<item>is_connex</item>
+	<item>invsyslin</item>
+	<item>invr</item>
+	<item>inv_coeff</item>
+	<item>INVBLK_f</item>
+	<item>inv</item>
+	<item>inttype</item>
+	<item>inttrap</item>
+	<item>intsplin</item>
+	<item>INTRPLBLK_f</item>
+	<item>INTRP2BLK_f</item>
+	<item>intppty</item>
+	<item>intl</item>
+	<item>intg</item>
+	<item>intersect</item>
+	<item>intersci</item>
+	<item>interpln</item>
+	<item>interp</item>
+	<item>integrate</item>
+	<item>INTEGRAL_f</item>
+	<item>intdec</item>
+	<item>intc</item>
+	<item>int8</item>
+	<item>int3d</item>
+	<item>int32</item>
+	<item>int2d</item>
+	<item>int16</item>
+	<item>int</item>
+	<item>insertion</item>
+	<item>input</item>
+	<item>IN_f</item>
+	<item>imrep2ss</item>
+	<item>impl</item>
+	<item>im_inv</item>
+	<item>imag</item>
+	<item>ilib_gen_Make</item>
+	<item>ilib_gen_loader</item>
+	<item>ilib_gen_gateway</item>
+	<item>ilib_for_link</item>
+	<item>ilib_compile</item>
+	<item>ilib_build</item>
+	<item>iirlp</item>
+	<item>iirgroup</item>
+	<item>iir</item>
+	<item>IFTHEL_f</item>
+	<item>ieee</item>
+	<item>iconvert</item>
+	<item>hypermatrices</item>
+	<item>hypermat</item>
+	<item>htrianr</item>
+	<item>hrmt</item>
+	<item>householder</item>
+	<item>hotcolormap</item>
+	<item>host</item>
+	<item>horner</item>
+	<item>h_norm</item>
+	<item>histplot</item>
+	<item>hist3d</item>
+	<item>h_inf_st</item>
+	<item>h_inf</item>
+	<item>hilb</item>
+	<item>hex2dec</item>
+	<item>hess</item>
+	<item>hermit</item>
+	<item>%helps</item>
+	<item>help</item>
+	<item>h_cl</item>
+	<item>havewindow</item>
+	<item>hat</item>
+	<item>hankelsv</item>
+	<item>hank</item>
+	<item>hamilton</item>
+	<item>HALT_f</item>
+	<item>halt</item>
+	<item>h2norm</item>
+	<item>gtild</item>
+	<item>gstacksize</item>
+	<item>gspec</item>
+	<item>gsort</item>
+	<item>gschur</item>
+	<item>group</item>
+	<item>gr_menu</item>
+	<item>grep</item>
+	<item>graypolarplot</item>
+	<item>grayplot</item>
+	<item>graycolormap</item>
+	<item>graph_union</item>
+	<item>graph_sum</item>
+	<item>graph_simp</item>
+	<item>graph_power</item>
+	<item>graph-list</item>
+	<item>Graphics</item>
+	<item>graph_diameter</item>
+	<item>graph_complement</item>
+	<item>graph_center</item>
+	<item>graph_2_mat</item>
+	<item>grand</item>
+	<item>graduate</item>
+	<item>gpeche</item>
+	<item>g_margin</item>
+	<item>G_make</item>
+	<item>global</item>
+	<item>glist</item>
+	<item>glever</item>
+	<item>givens</item>
+	<item>girth</item>
+	<item>gfrancis</item>
+	<item>gfare</item>
+	<item>getversion</item>
+	<item>getvalue</item>
+	<item>getsymbol</item>
+	<item>getscicosvars</item>
+	<item>getpid</item>
+	<item>GetMsg</item>
+	<item>getmark</item>
+	<item>getlinestyle</item>
+	<item>getio</item>
+	<item>get_function_path</item>
+	<item>getfont</item>
+	<item>getfield</item>
+	<item>getf</item>
+	<item>getenv</item>
+	<item>getdate</item>
+	<item>getd</item>
+	<item>getcwd</item>
+	<item>getcolor</item>
+	<item>getblocklabel</item>
+	<item>get</item>
+	<item>geom3d</item>
+	<item>GENSQR_f</item>
+	<item>GENSIN_f</item>
+	<item>gen_net</item>
+	<item>genmarkov</item>
+	<item>genlib</item>
+	<item>genfac3d</item>
+	<item>GENERIC_f</item>
+	<item>GENERAL_f</item>
+	<item>gcf</item>
+	<item>gcd</item>
+	<item>gcare</item>
+	<item>gammaln</item>
+	<item>gamma</item>
+	<item>gamitg</item>
+	<item>gainplot</item>
+	<item>GAIN_f</item>
+	<item>GAINBLK_f</item>
+	<item>fusee</item>
+	<item>funptr</item>
+	<item>funcprot</item>
+	<item>fun2string</item>
+	<item>fullrfk</item>
+	<item>fullrf</item>
+	<item>full</item>
+	<item>fstair</item>
+	<item>fstabst</item>
+	<item>fspecg</item>
+	<item>fsolve</item>
+	<item>fsfirlin</item>
+	<item>fscanfMat</item>
+	<item>fscanf</item>
+	<item>frmag</item>
+	<item>frfit</item>
+	<item>frexp</item>
+	<item>freson</item>
+	<item>freq</item>
+	<item>frep2tf</item>
+	<item>fprintfMat</item>
+	<item>fprintf</item>
+	<item>fplot3d1</item>
+	<item>fplot3d</item>
+	<item>fplot2d</item>
+	<item>fourplan</item>
+	<item>fort</item>
+	<item>formatman</item>
+	<item>format</item>
+	<item>flts</item>
+	<item>floor</item>
+	<item>fix</item>
+	<item>fit_dat</item>
+	<item>find_path</item>
+	<item>findobj</item>
+	<item>findm</item>
+	<item>find_freq</item>
+	<item>find</item>
+	<item>filter</item>
+	<item>fileinfo</item>
+	<item>file</item>
+	<item>figure</item>
+	<item>fgrayplot</item>
+	<item>fft</item>
+	<item>ffilt</item>
+	<item>feval</item>
+	<item>feedback</item>
+	<item>fec</item>
+	<item>fcontour2d</item>
+	<item>fcontour</item>
+	<item>fchamp</item>
+	<item>faurre</item>
+	<item>factors</item>
+	<item>fac3d</item>
+	<item>eye</item>
+	<item>extraction</item>
+	<item>external</item>
+	<item>expm</item>
+	<item>EXPBLK_f</item>
+	<item>exp</item>
+	<item>exit</item>
+	<item>exists</item>
+	<item>execstr</item>
+	<item>ExecScilab</item>
+	<item>ExeclScilab</item>
+	<item>ExecAppli</item>
+	<item>exec</item>
+	<item>excel2sci</item>
+	<item>Example</item>
+	<item>EVTGEN_f</item>
+	<item>EVTDLY_f</item>
+	<item>evstr</item>
+	<item>EVENTSCOPE_f</item>
+	<item>evans</item>
+	<item>eval3dp</item>
+	<item>eval3d</item>
+	<item>eval</item>
+	<item>error</item>
+	<item>errclear</item>
+	<item>errcatch</item>
+	<item>errbar</item>
+	<item>erfcx</item>
+	<item>erfc</item>
+	<item>erf</item>
+	<item>ereduc</item>
+	<item>equil1</item>
+	<item>equil</item>
+	<item>equal</item>
+	<item>eqiir</item>
+	<item>eqfir</item>
+	<item>emptystr</item>
+	<item>empty</item>
+	<item>ell1mag</item>
+	<item>eigenmarkov</item>
+	<item>edit_curv</item>
+	<item>edit</item>
+	<item>edge_number</item>
+	<item>dtsi</item>
+	<item>dt_ility</item>
+	<item>dsimul</item>
+	<item>dscr</item>
+	<item>driver</item>
+	<item>drawaxis</item>
+	<item>dragrect</item>
+	<item>double</item>
+	<item>dot</item>
+	<item>DLSS_f</item>
+	<item>DLR_f</item>
+	<item>DLRADAPT_f</item>
+	<item>dlgamma</item>
+	<item>dispfile</item>
+	<item>dispbpt</item>
+	<item>disp</item>
+	<item>diophant</item>
+	<item>diary</item>
+	<item>diag</item>
+	<item>dhnorm</item>
+	<item>dft</item>
+	<item>detr</item>
+	<item>determ</item>
+	<item>det</item>
+	<item>DestroyLink</item>
+	<item>des2tf</item>
+	<item>des2ss</item>
+	<item>derivative-</item>
+	<item>derivat</item>
+	<item>denom</item>
+	<item>DEMUX_f</item>
+	<item>demos</item>
+	<item>delmenu</item>
+	<item>delip</item>
+	<item>delete_nodes</item>
+	<item>delete_arcs</item>
+	<item>delbpt</item>
+	<item>DELAYV_f</item>
+	<item>DELAY_f</item>
+	<item>degree</item>
+	<item>deff</item>
+	<item>dec2hex</item>
+	<item>debug</item>
+	<item>ddp</item>
+	<item>dcf</item>
+	<item>dbphi</item>
+	<item>date</item>
+	<item>datafit</item>
+	<item>dassl</item>
+	<item>dasrt</item>
+	<item>czt</item>
+	<item>cycle_basis</item>
+	<item>CURV_f</item>
+	<item>curblock</item>
+	<item>cumsum</item>
+	<item>cumprod</item>
+	<item>ctr_gram</item>
+	<item>cspect</item>
+	<item>csim</item>
+	<item>CreateLink</item>
+	<item>cothm</item>
+	<item>coth</item>
+	<item>cotg</item>
+	<item>cosm</item>
+	<item>coshm</item>
+	<item>cosh</item>
+	<item>COSBLK_f</item>
+	<item>cos</item>
+	<item>corr</item>
+	<item>copfac</item>
+	<item>convstr</item>
+	<item>convol</item>
+	<item>convex_hull</item>
+	<item>contrss</item>
+	<item>contract_edge</item>
+	<item>contr</item>
+	<item>contourf</item>
+	<item>contour2di</item>
+	<item>contour2d</item>
+	<item>contour</item>
+	<item>cont_mat</item>
+	<item>cont_frm</item>
+	<item>CONST_f</item>
+	<item>con_nodes</item>
+	<item>connex</item>
+	<item>conj</item>
+	<item>cond</item>
+	<item>companion</item>
+	<item>comp</item>
+	<item>Communications</item>
+	<item>colregul</item>
+	<item>colormap</item>
+	<item>colon</item>
+	<item>colnew</item>
+	<item>colinout</item>
+	<item>colcompr</item>
+	<item>colcomp</item>
+	<item>coffg</item>
+	<item>coff</item>
+	<item>coeff</item>
+	<item>code2str</item>
+	<item>cmndred</item>
+	<item>cmb_lin</item>
+	<item>CLSS_f</item>
+	<item>cls2dls</item>
+	<item>CLR_f</item>
+	<item>close</item>
+	<item>CLOCK_f</item>
+	<item>CLKSPLIT_f</item>
+	<item>CLKSOMV_f</item>
+	<item>CLKSOM_f</item>
+	<item>CLKOUTV_f</item>
+	<item>CLKOUT_f</item>
+	<item>CLKINV_f</item>
+	<item>CLKIN_f</item>
+	<item>c_link</item>
+	<item>CLINDUMMY_f</item>
+	<item>clearglobal</item>
+	<item>clearfun</item>
+	<item>clear</item>
+	<item>clean</item>
+	<item>classmarkov</item>
+	<item>circuit</item>
+	<item>chsolve</item>
+	<item>chol</item>
+	<item>chfact</item>
+	<item>chepol</item>
+	<item>check_graph</item>
+	<item>cheb2mag</item>
+	<item>cheb1mag</item>
+	<item>chdir</item>
+	<item>chart</item>
+	<item>champ1</item>
+	<item>champ</item>
+	<item>chaintest</item>
+	<item>chain_struct</item>
+	<item>cepstrum</item>
+	<item>ceil</item>
+	<item>cdft</item>
+	<item>cdfpoi</item>
+	<item>cdfnor</item>
+	<item>cdfnbn</item>
+	<item>cdfgam</item>
+	<item>cdffnc</item>
+	<item>cdff</item>
+	<item>cdfchn</item>
+	<item>cdfchi</item>
+	<item>cdfbin</item>
+	<item>cdfbet</item>
+	<item>ccontrg</item>
+	<item>casc</item>
+	<item>canon</item>
+	<item>call</item>
+	<item>calfrq</item>
+	<item>calerf</item>
+	<item>cainv</item>
+	<item>bvode</item>
+	<item>buttmag</item>
+	<item>bstap</item>
+	<item>boucle</item>
+	<item>boolean</item>
+	<item>bool2s</item>
+	<item>bode</item>
+	<item>bloc2ss</item>
+	<item>bloc2exp</item>
+	<item>black</item>
+	<item>binomial</item>
+	<item>bilin</item>
+	<item>BIGSOM_f</item>
+	<item>bifish</item>
+	<item>bezout</item>
+	<item>best_match</item>
+	<item>bessely</item>
+	<item>besselk</item>
+	<item>besselj</item>
+	<item>besseli</item>
+	<item>bdiag</item>
+	<item>bandwr</item>
+	<item>balreal</item>
+	<item>balanc</item>
+	<item>backslash</item>
+	<item>auwrite</item>
+	<item>auread</item>
+	<item>augment</item>
+	<item>atanm</item>
+	<item>atanhm</item>
+	<item>atanh</item>
+	<item>atan</item>
+	<item>%asn</item>
+	<item>asinm</item>
+	<item>asinhm</item>
+	<item>asinh</item>
+	<item>asin</item>
+	<item>ascii</item>
+	<item>articul</item>
+	<item>artest</item>
+	<item>arsimul</item>
+	<item>armax1</item>
+	<item>armax</item>
+	<item>armac</item>
+	<item>arma2p</item>
+	<item>arma</item>
+	<item>arl2</item>
+	<item>arhnk</item>
+	<item>argn</item>
+	<item>arc_number</item>
+	<item>arc_graph</item>
+	<item>apropos</item>
+	<item>ans</item>
+	<item>ANIMXY_f</item>
+	<item>ANDLOG_f</item>
+	<item>and</item>
+	<item>analyze</item>
+	<item>analpf</item>
+	<item>amell</item>
+	<item>alufunctions</item>
+	<item>AFFICH_f</item>
+	<item>aff2ab</item>
+	<item>adj_lists</item>
+	<item>adj2sp</item>
+	<item>add_node</item>
+	<item>addmenu</item>
+	<item>addinter</item>
+	<item>addf</item>
+	<item>add_edge</item>
+	<item>addcolor</item>
+	<item>AdCommunications</item>
+	<item>acosm</item>
+	<item>acoshm</item>
+	<item>acosh</item>
+	<item>acos</item>
+	<item>ABSBLK_f</item>
+	<item>abs</item>
+	<item>abinv</item>
+	<item>abcd</item>
+    </list>
+    <contexts>
+      <context name="main" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Structure-keywords" context="#stay" String="Structure-keywords"/>
+        <keyword attribute="Control-keywords" context="#stay" String="Control-keywords"/>
+        <keyword attribute="Function-keywords" context="#stay" String="Function-keywords"/>
+        <keyword attribute="Warning-keywords" context="#stay" String="Warning-keywords"/>
+        <keyword attribute="Constants-keyword" context="#stay" String="Constants-keyword"/>
+        <keyword attribute="functions" context="#stay" String="functions"/>
+        <Float attribute = "Float" context="#stay"/>
+        <Int attribute = "Decimal" context="#stay"/>
+        <RegExpr String= "//.*$" attribute = "Comment" context="#stay"/>
+        <RangeDetect char = "&quot;" char1 = "&quot;" attribute = "String" context="#stay"/>
+     </context>
+   </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Structure-keywords"  defStyleNum="dsNormal" color="#000080" selColor="#ffff00" bold="1" italic="0"/>
+      <itemData name="Control-keywords" defStyleNum="dsNormal" color="#800000" selColor="#ff0000" bold="1" italic="0"/>
+      <itemData name="Function-keywords" defStyleNum="dsFunction" color="#008000" selColor="#ffff00" bold="1" italic="0"/>
+      <itemData name="Warning-keywords" defStyleNum="dsNormal" color="#ff0000" selColor="#ff0000" bold="1" italic="0"/>
+      <itemData name="Constants-keyword" defStyleNum="dsNormal" color="#008080" selColor="#00ffff" bold="1" italic="0"/>
+      <itemData name="functions" defStyleNum="dsFunction" color="#0000ff" selColor="#00ff00" bold="1" italic="1"/>
+      <itemData name="Decimal" defStyleNum = "dsDecVal"/>
+      <itemData name="Float" defStyleNum = "dsFloat"/>
+      <itemData name="Comment" defStyleNum = "dsComment"/>
+      <itemData name="String" defStyleNum = "dsString"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="%$" />
+  </general>
+</language>
diff --git a/xml/sed.xml b/xml/sed.xml
new file mode 100644
--- /dev/null
+++ b/xml/sed.xml
@@ -0,0 +1,267 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="sed" section="Scripts" version="2" kateversion="2.4" extensions="*.sed" mimetype="text/x-sed" author="Bart Sas (bart.sas@gmail.com)" license="GPL">
+        <highlighting>
+                <contexts>
+                        <context name="BeginningOfLine" attribute="Normal" lineEndContext="#stay">
+                                <DetectSpaces/>
+                                <DetectChar char="#"     attribute="Comment"     context="Comment"/>
+                                <RegExpr String="(/)"    attribute="Separator"   context="FirstAddressRegex"/>
+                                <RegExpr String="\\(\S)" attribute="Separator"   context="FirstAddressRegex"/>
+                                <Int                     attribute="Line Number" context="AfterFirstAddress"/>
+                                <DetectChar char="$"     attribute="Last Line"   context="AfterFirstAddress"/>
+                                <DetectChar char="}"     attribute="Brace"       context="AfterCommand"/>
+                                <DetectChar char=":"     attribute="Label"       context="Label"/>
+                                <DetectChar char="!"     attribute="Negation"    context="Command"/>
+                                <IncludeRules                                    context="Command"/>
+                                <RegExpr String="\S"     attribute="Error"       context="Error"/>
+                        </context>
+
+                        <context name="FirstAddressRegex" attribute="Regex" lineEndContext="Error" dynamic="true">
+                                <DetectSpaces/>
+                                <RegExpr String="\\%1" attribute="Regex Escape" context="#stay"             dynamic="true"/>
+                                <RegExpr String="%1"   attribute="Separator"    context="AfterFirstAddress" dynamic="true"/>
+                                <IncludeRules                                   context="Regex"/>
+                        </context>
+
+                        <context name="AfterFirstAddress" attribute="Normal" lineEndContext="BeginningOfLine">
+                                <DetectSpaces/>
+                                <DetectChar char="!" attribute="Negation" context="Command"/>
+                                <IncludeRules                             context="AfterFirstAddress2"/>
+                                <RegExpr String="\S" attribute="Error"    context="Error"/>
+                        </context>
+
+                        <context name="AfterFirstAddress2" attribute="Normal" lineEndContext="BeginningOfLine">
+                                <DetectSpaces/>
+                                <DetectChar char="," attribute="Normal" context="SecondAddress"/>
+                                <DetectChar char="~" attribute="Normal" context="Step"/>
+                                <IncludeRules                           context="Command"/>
+                                <RegExpr String="\S" attribute="Error"  context="Error"/>
+                        </context>
+
+                        <context name="SecondAddress" attribute="Normal" lineEndContext="Error">
+                                <DetectSpaces/>
+                                <RegExpr String="(/)"    attribute="Separator"   context="SecondAddressRegex"/>
+                                <RegExpr String="\\(\S)" attribute="Separator"   context="SecondAddressRegex"/>
+                                <Int                     attribute="Line Number" context="AfterSecondAddress"/>
+                                <DetectChar char="$"     attribute="Last Line"   context="AfterSecondAddress"/>
+                                <RegExpr String="\S"     attribute="Error"       context="Error"/>
+                        </context>
+
+                        <context name="SecondAddressRegex" attribute="Regex" lineEndContext="Error" dynamic="true">
+                                <DetectSpaces/>
+                                <RegExpr String="\\%1" attribute="Regex Escape" context="#stay"              dynamic="true"/>
+                                <RegExpr String="%1"   attribute="Separator"    context="AfterSecondAddress" dynamic="true"/>
+                                <IncludeRules                                   context="Regex"/>
+                        </context>
+
+                        <context name="AfterSecondAddress" attribute="Normal" lineEndContext="Error" dynamic="true">
+                                <DetectSpaces/>
+                                <DetectChar char="!" attribute="Negation" context="Command"/>
+                                <IncludeRules                             context="Command"/>
+                                <RegExpr String="\S" attribute="Error"    context="Error"/>
+                        </context>
+
+                        <context name="Step" attribute="Normal" lineEndContext="Error">
+                                <DetectSpaces/>
+                                <Int                 attribute="Step"  context="Command"/>
+                                <RegExpr String="\S" attribute="Error" context="Error"/>
+                        </context>
+
+                        <context name="Command" attribute="Normal" lineEndContext="Error">
+                                <DetectSpaces/>
+                                <DetectChar char="s"              attribute="Command" context="SCommand"/>
+                                <DetectChar char="y"              attribute="Command" context="YCommand"/>
+                                <AnyChar String="dpnDNPhHgGxFvz=" attribute="Command" context="AfterCommand"/>
+                                <AnyChar String="aic"             attribute="Command" context="AICCommand"/>
+                                <AnyChar String="bTt"             attribute="Command" context="BTCommand"/>
+                                <AnyChar String="WwrR"            attribute="Command" context="WRCommand"/>
+                                <AnyChar String="lL"              attribute="Command" context="LCommand"/>
+                                <AnyChar String="qQ"              attribute="Command" context="QCommand"/>
+                                <DetectChar char="{"              attribute="Brace"   context="BeginningOfLine"/>
+                                <RegExpr String="\S"              attribute="Error"   context="Error"/>
+                        </context>
+
+                        <context name="SCommand" attribute="Normal" lineEndContext="Error">
+                                <DetectSpaces/>
+                                <RegExpr String="(\S)" attribute="Separator" context="SRegex"/>
+                        </context>
+
+                        <context name="SRegex" attribute="Regex" lineEndContext="Error" dynamic="true">
+                                <DetectSpaces/>
+                                <RegExpr String="\\%1" attribute="Regex Escape" context="#stay"        dynamic="true"/>
+                                <RegExpr String="(%1)" attribute="Separator"    context="SReplacement" dynamic="true"/>
+                                <IncludeRules                                   context="Regex"/>
+                        </context>
+
+                        <context name="SReplacement" attribute="Replacement" lineEndContext="Error" dynamic="true">
+                                <DetectSpaces/>
+                                <RegExpr String="\\%1"                attribute="Repl Escape" context="#stay"  dynamic="true"/>
+                                <RegExpr String="%1"                  attribute="Separator"   context="SFlags" dynamic="true"/>
+                                <RegExpr String="\\[0-9LlUuE\\&amp;]" attribute="Repl Escape" context="#stay"/>
+                                <DetectChar char="&amp;"              attribute="Repl Escape" context="#stay"/>
+                        </context>
+
+                        <context name="SFlags" attribute="Normal" lineEndContext="BeginningOfLine">
+                                <DetectSpaces/>
+                                <AnyChar String="gpeIiMm" attribute="Flag"        context="#stay"/>
+                                <DetectChar char="w"      attribute="Flag"        context="WFlag"/>
+                                <Int                      attribute="Repl Number" context="#stay"/>
+                                <IncludeRules                                     context="AfterCommand"/>
+                        </context>
+
+                        <context name="WFlag" attribute="Normal" lineEndContext="BeginningOfLine">
+                                <DetectSpaces/>
+                                <RegExpr String="\S+" attribute="Filename" context="SFlags"/>
+                        </context>
+
+                        <context name="YCommand" attribute="Normal" lineEndContext="Error">
+                                <DetectSpaces/>
+                                <RegExpr String="(\S)" attribute="Separator" context="YSourceList"/>
+                        </context>
+
+                        <context name="YSourceList" attribute="Char List" lineEndContext="Error" dynamic="true">
+                                <DetectSpaces/>
+                                <RegExpr String="\\%1"           attribute="Char List Escape" context="#stay"     dynamic="true"/>
+                                <RegExpr String="(%1)"           attribute="Separator"        context="YDestList" dynamic="true"/>
+                                <Detect2Chars char="\" char1="n" attribute="Char List Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="\" attribute="Char List Escape" context="#stay"/>
+                        </context>
+
+                        <context name="YDestList" attribute="Char List" lineEndContext="Error" dynamic="true">
+                                <DetectSpaces/>
+                                <RegExpr String="\\%1"           attribute="Char List Escape" context="#stay"        dynamic="true"/>
+                                <RegExpr String="%1"             attribute="Separator"        context="AfterCommand" dynamic="true"/>
+                                <Detect2Chars char="\" char1="n" attribute="Char List Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="\" attribute="Char List Escape" context="#stay"/>
+                        </context>
+
+                        <context name="AICCommand" attribute="Normal" lineEndContext="Error">
+                                <DetectSpaces/>
+                                <LineContinue             attribute="Line Continue" context="LiteralText"/>
+                                <RegExpr      String="\S" attribute="Error"         context="Error"/>
+                        </context>
+
+                        <context name="LiteralText" attribute="Literal Text" lineEndContext="BeginningOfLine">
+                                <Detect2Chars char="\" char1="\" attribute="Literal Escape" context="LiteralText"/>
+                                <LineContinue                    attribute="Line Continue"  context="LiteralText"/>
+                                <DetectChar   char="\"           attribute="Error"          context="Error"/>
+                        </context>
+
+                        <context name="BTCommand" attribute="Normal" lineEndContext="BeginningOfLine">
+                                <DetectSpaces/>
+                                <RegExpr String="\w+" attribute="Label" context="AfterCommand"/>
+                                <IncludeRules                           context="AfterCommand"/>
+                        </context>
+
+                        <context name="WRCommand" attribute="Normal" lineEndContext="Error">
+                                <DetectSpaces/>
+                                <RegExpr String="\S+" attribute="Filename" context="AfterCommand"/>
+                        </context>
+
+                        <context name="LCommand" attribute="Normal" lineEndContext="BeginningOfLine">
+                                <DetectSpaces/>
+                                <Int attribute="Wrap Length" context="AfterCommand"/>
+                                <IncludeRules                context="AfterCommand"/>
+                        </context>
+
+                        <context name="QCommand" attribute="Normal" lineEndContext="BeginningOfLine">
+                                <DetectSpaces/>
+                                <Int attribute="Exit Code" context="AfterCommand"/>
+                                <IncludeRules              context="AfterCommand"/>
+                        </context>
+
+                        <context name="Label" attribute="Normal" lineEndContext="Error">
+                                <DetectSpaces/>
+                                <RegExpr String="\w+" attribute="Label" context="AfterCommand"/>
+                                <RegExpr String="\S"  attribute="Error" context="Error"/>
+                        </context>
+
+                        <context name="AfterCommand" attribute="Normal" lineEndContext="BeginningOfLine">
+                                <DetectSpaces/>
+                                <DetectChar char=";" attribute="Normal"  context="BeginningOfLine"/>
+                                <DetectChar char="}" attribute="Brace"   context="AfterCommand"/>
+                                <DetectChar char="#" attribute="Comment" context="Comment"/>
+                                <RegExpr String="\S" attribute="Error"   context="Error"/>
+                        </context>
+
+                        <context name="Regex" attribute="Regex" lineEndContext="Error">
+                                <Detect2Chars char="\" char1="(" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1=")" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="+" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="?" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="|" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="{" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="}" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="[" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="]" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="." attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="*" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="\" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="^" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="$" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="n" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="t" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="0" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="1" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="2" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="3" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="4" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="5" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="6" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="7" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="8" attribute="Regex Escape" context="#stay"/>
+                                <Detect2Chars char="\" char1="9" attribute="Regex Escape" context="#stay"/>
+                                <DetectChar   char="*"           attribute="Regex Escape" context="#stay"/>
+                                <DetectChar   char="."           attribute="Regex Escape" context="#stay"/>
+                                <DetectChar   char="^"           attribute="Regex Escape" context="#stay"/>
+                                <DetectChar   char="$"           attribute="Regex Escape" context="#stay"/>
+                                <DetectChar   char="["           attribute="Regex Escape" context="#stay"/>
+                                <DetectChar   char="]"           attribute="Regex Escape" context="#stay"/>
+                        </context>
+
+                        <context name="Comment" attribute="Comment" lineEndContext="BeginningOfLine"/>
+                        <context name="Error"   attribute="Error"   lineEndContext="BeginningOfLine"/>
+                </contexts>
+
+                <itemDatas>
+                        <itemData name="Normal"           defStyleNum="dsNormal"/>
+
+                        <itemData name="Regex"            defStyleNum="dsString"/>
+                        <itemData name="Regex Escape"     defStyleNum="dsChar"/>
+                        <itemData name="Replacement"      defStyleNum="dsString"/>
+                        <itemData name="Repl Escape"      defStyleNum="dsChar"/>
+                        <itemData name="Char List"        defStyleNum="dsString"/>
+                        <itemData name="Char List Escape" defStyleNum="dsChar"/>
+                        <itemData name="Separator"        defStyleNum="dsString" color="#00F"/>
+
+                        <itemData name="Line Number"      defStyleNum="dsDecVal"/>
+                        <itemData name="Step"             defStyleNum="dsDecVal"/>
+                        <itemData name="Last Line"        defStyleNum="dsOthers" color="#808" bold="1"/>
+                        <itemData name="Negation"         defStyleNum="dsOthers" color="#808" bold="1"/>
+
+                        <itemData name="Command"          defStyleNum="dsKeyword"/>
+                        <itemData name="Label"            defStyleNum="dsFunction"/>
+                        <itemData name="Brace"            defStyleNum="dsNormal"/>
+
+                        <itemData name="Flag"             defStyleNum="dsDataType"/>
+                        <itemData name="Repl Number"      defStyleNum="dsDecVal"/>
+                        <itemData name="Exit Code"        defStyleNum="dsDecVal"/>
+                        <itemData name="Filename"         defStyleNum="dsBaseN"/>
+                        <itemData name="Wrap Length"      defStyleNum="dsDecVal"/>
+
+                        <itemData name="Line Continue"    defStyleNum="dsOthers" color="#000" bold="1"/>
+                        <itemData name="Literal Text"     defStyleNum="dsOthers" color="#080" italic="1"/>
+                        <itemData name="Literal Escape"   defStyleNum="dsOthers" color="#0A0" italic="1"/>
+
+                        <itemData name="Comment"          defStyleNum="dsComment"/>
+                        <itemData name="Error"            defStyleNum="dsError"/>
+                </itemDatas>
+        </highlighting>
+
+        <general>
+                <comments>
+                        <comment name="singleLine" start="#"/>
+                </comments>
+        </general>
+</language>
diff --git a/xml/sgml.xml b/xml/sgml.xml
new file mode 100644
--- /dev/null
+++ b/xml/sgml.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="SGML" version="2" kateversion="2.2" section="Markup" extensions="*.sgml" mimetype="text/sgml">
+  <highlighting>
+    <contexts>
+       <context attribute="Normal Text" lineEndContext="#stay" name="Normal Text" >
+         <StringDetect attribute="Comment" context="Comment" String="&lt;!--"/>
+         <RegExpr attribute="Tag" context="Attribute" String="&lt;\s*\/?\s*[a-zA-Z_:][a-zA-Z0-9._:-]*" />
+       </context>
+
+       <context attribute="Attribute Name" lineEndContext="#stay" name="Attribute" >
+          <Detect2Chars attribute="Tag" context="#pop" char="/" char1="&gt;" />
+          <DetectChar attribute="Tag" context="#pop" char="&gt;" />
+          <RegExpr attribute="Normal Text" context="Value" String="\s*=\s*" />
+       </context>
+
+       <context attribute="Attribute Value" lineEndContext="#stay" name="Value" >
+         <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1="&gt;" />
+          <DetectChar attribute="Tag" context="#pop#pop" char="&gt;" />
+         <DetectChar attribute="Attribute Value" context="Value 2" char="&quot;" />
+       </context>
+
+       <context attribute="Attribute Value" lineEndContext="#stay" name="Value 2" >
+         <DetectChar attribute="Attribute Value" context="#pop#pop" char="&quot;" />
+       </context>
+
+       <context attribute="Comment" lineEndContext="#stay" name="Comment" >
+         <StringDetect attribute="Comment" context="#pop" String="--&gt;"/>
+       </context>
+
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Tag" defStyleNum="dsKeyword"/>
+      <itemData name="Attribute Name" defStyleNum="dsOthers"/>
+      <itemData name="Attribute Value" defStyleNum="dsDataType"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="multiLine" start="&lt;!--" end="//--&gt;" />
+    </comments>
+    <keywords casesensitive="0" />
+  </general>
+</language>
diff --git a/xml/sql-mysql.xml b/xml/sql-mysql.xml
new file mode 100644
--- /dev/null
+++ b/xml/sql-mysql.xml
@@ -0,0 +1,477 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+  MySQL syntax definition based on sql.xml by Yury Lebedev
+  original by Shane Wright (me@shanewright.co.uk)
+  modifications by Milian Wolff (mail@milianw.de)
+  v3 fix comments by Gene Thomas <gene@genethomas.com>
+-->
+<language name="SQL (MySQL)" version="3" kateversion="3.4" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">
+  <highlighting>
+    <list name="keywords">
+      <item>ACCESS</item>
+      <item>ADD</item>
+      <item>ALL</item>
+      <item>ALTER</item>
+      <item>ANALYZE</item>
+      <item>AND</item>
+      <item>AS</item>
+      <item>ASC</item>
+      <item>AUTO_INCREMENT</item>
+      <item>BDB</item>
+      <item>BERKELEYDB</item>
+      <item>BETWEEN</item>
+      <item>BOTH</item>
+      <item>BY</item>
+      <item>CASCADE</item>
+      <item>CASE</item>
+      <item>CHANGE</item>
+      <!-- <item> CHARACTER SET </item>
+        needs special regexp (see below) -->
+      <item>CHARSET</item>
+      <item>COLUMN</item>
+      <item>COLUMNS</item>
+      <item>CONSTRAINT</item>
+      <item>CREATE</item>
+      <item>CROSS</item>
+      <item>CURRENT_DATE</item>
+      <item>CURRENT_TIME</item>
+      <item>CURRENT_TIMESTAMP</item>
+      <item>DATABASE</item>
+      <item>DATABASES</item>
+      <item>DAY_HOUR</item>
+      <item>DAY_MINUTE</item>
+      <item>DAY_SECOND</item>
+      <item>DEC</item>
+      <item>DEFAULT</item>
+      <item>DELAYED</item>
+      <item>DELETE</item>
+      <item>DESC</item>
+      <item>DESCRIBE</item>
+      <item>DISTINCT</item>
+      <item>DISTINCTROW</item>
+      <item>DROP</item>
+      <item>ELSE</item>
+      <item>ENCLOSED</item>
+      <item>ESCAPED</item>
+      <item>EXISTS</item>
+      <item>EXPLAIN</item>
+      <item>FIELDS</item>
+      <item>FOR</item>
+      <item>FOREIGN</item>
+      <item>FROM</item>
+      <item>FULLTEXT</item>
+      <item>FUNCTION</item>
+      <item>GRANT</item>
+      <item>GROUP</item>
+      <item>HAVING</item>
+      <item>HIGH_PRIORITY</item>
+      <item>IF</item>
+      <item>IGNORE</item>
+      <item>IN</item>
+      <item>INDEX</item>
+      <item>INFILE</item>
+      <item>INNER</item>
+      <item>INNODB</item>
+      <item>INSERT</item>
+      <item>INTERVAL</item>
+      <item>INTO</item>
+      <item>IS</item>
+      <item>JOIN</item>
+      <item>KEY</item>
+      <item>KEYS</item>
+      <item>KILL</item>
+      <item>LEADING</item>
+      <item>LEFT</item>
+      <item>LIKE</item>
+      <item>LIMIT</item>
+      <item>LINES</item>
+      <item>LOAD</item>
+      <item>LOCK</item>
+      <item>LOW_PRIORITY</item>
+      <item>MASTER_SERVER_ID</item>
+      <item>MATCH</item>
+      <item>MRG_MYISAM</item>
+      <item>NATIONAL</item>
+      <item>NATURAL</item>
+      <item>NOT</item>
+      <item>NULL</item>
+      <item>NUMERIC</item>
+      <item>ON</item>
+      <item>OPTIMIZE</item>
+      <item>OPTION</item>
+      <item>OPTIONALLY</item>
+      <item>OR</item>
+      <item>ORDER</item>
+      <item>OUTER</item>
+      <item>OUTFILE</item>
+      <item>PARTIAL</item>
+      <item>PRECISION</item>
+      <item>PRIMARY</item>
+      <item>PRIVILEGES</item>
+      <item>PROCEDURE</item>
+      <item>PURGE</item>
+      <item>READ</item>
+      <item>REFERENCES</item>
+      <item>REGEXP</item>
+      <item>RENAME</item>
+      <item>REPLACE</item>
+      <item>REQUIRE</item>
+      <item>RESTRICT</item>
+      <item>RETURNS</item>
+      <item>REVOKE</item>
+      <item>RIGHT</item>
+      <item>RLIKE</item>
+      <item>SELECT</item>
+      <item>SET</item>
+      <item>SHOW</item>
+      <item>SONAME</item>
+      <item>SQL_BIG_RESULT</item>
+      <item>SQL_CALC_FOUND_ROWS</item>
+      <item>SQL_SMALL_RESULT</item>
+      <item>SSL</item>
+      <item>STARTING</item>
+      <item>STRAIGHT_JOIN</item>
+      <item>STRIPED</item>
+      <item>TABLE</item>
+      <item>TABLES</item>
+      <item>TERMINATED</item>
+      <item>THEN</item>
+      <item>TO</item>
+      <item>TRAILING</item>
+      <item>TRUNCATE</item>
+      <item>TYPE</item>
+      <item>UNION</item>
+      <item>UNIQUE</item>
+      <item>UNLOCK</item>
+      <item>UNSIGNED</item>
+      <item>UPDATE</item>
+      <item>USAGE</item>
+      <item>USE</item>
+      <item>USER_RESOURCES</item>
+      <item>USING</item>
+      <item>VALUES</item>
+      <item>VARYING</item>
+      <item>WHEN</item>
+      <item>WHERE</item>
+      <item>WHILE</item>
+      <item>WITH</item>
+      <item>WRITE</item>
+      <item>XOR</item>
+      <item>YEAR_MONTH</item>
+      <item>ZEROFILL</item>
+    </list>
+    <list name="operators">
+      <item>+</item>
+      <item>-</item>
+      <item>*</item>
+      <item>/</item>
+      <item>||</item>
+      <item>=</item>
+      <item>!=</item>
+      <item>&lt;&gt;</item>
+      <item>&lt;</item>
+      <item>&lt;=</item>
+      <item>&gt;</item>
+      <item>&gt;=</item>
+      <item>~=</item>
+      <item>^=</item>
+      <item>:=</item>
+      <item>=&gt;</item>
+      <item>**</item>
+      <item>..</item>
+    </list>
+    <list name="functions">
+      <!-- string functions -->
+      <item>ASCII</item>
+      <item>BIN</item>
+      <item>BIT_LENGTH</item>
+      <item>CHAR</item>
+      <item>CHARACTER_LENGTH</item>
+      <item>CHAR_LENGTH</item>
+      <item>CONCAT</item>
+      <item>CONCAT_WS</item>
+      <item>CONV</item>
+      <item>ELT</item>
+      <item>EXPORT_SET</item>
+      <item>FIELD</item>
+      <item>FIND_IN_SET</item>
+      <item>HEX</item>
+      <item>INSERT</item>
+      <item>INSTR</item>
+      <item>LCASE</item>
+      <item>LEFT</item>
+      <item>LENGTH</item>
+      <item>LOAD_FILE</item>
+      <item>LOCATE</item>
+      <item>LOWER</item>
+      <item>LPAD</item>
+      <item>LTRIM</item>
+      <item>MAKE_SET</item>
+      <item>MID</item>
+      <item>OCT</item>
+      <item>OCTET_LENGTH</item>
+      <item>ORD</item>
+      <item>POSITION</item>
+      <item>QUOTE</item>
+      <item>REPEAT</item>
+      <item>REPLACE</item>
+      <item>REVERSE</item>
+      <item>RIGHT</item>
+      <item>RPAD</item>
+      <item>RTRIM</item>
+      <item>SOUNDEX</item>
+      <item>SPACE</item>
+      <item>SUBSTRING</item>
+      <item>SUBSTRING_INDEX</item>
+      <item>TRIM</item>
+      <item>UCASE</item>
+      <item>UPPER</item>
+      <!-- math functions -->
+      <item>ABS</item>
+      <item>ACOS</item>
+      <item>ASIN</item>
+      <item>ATAN</item>
+      <item>ATAN2</item>
+      <item>CEILING</item>
+      <item>COS</item>
+      <item>COT</item>
+      <item>DEGREES</item>
+      <item>EXP</item>
+      <item>FLOOR</item>
+      <item>GREATEST</item>
+      <item>LEAST</item>
+      <item>LN</item>
+      <item>LOG</item>
+      <item>LOG10</item>
+      <item>LOG2</item>
+      <item>MOD</item>
+      <item>PI</item>
+      <item>POW</item>
+      <item>POWER</item>
+      <item>RADIANS</item>
+      <item>RAND</item>
+      <item>ROUND</item>
+      <item>SIGN</item>
+      <item>SIN</item>
+      <item>SQRT</item>
+      <item>TAN</item>
+      <!-- date/time functions -->
+      <item>ADDDATE</item>
+      <item>CURDATE</item>
+      <item>CURRENT_DATE</item>
+      <item>CURRENT_TIME</item>
+      <item>CURRENT_TIMESTAMP</item>
+      <item>CURTIME</item>
+      <item>DATE_ADD</item>
+      <item>DATE_FORMAT</item>
+      <item>DATE_SUB</item>
+      <item>DAYNAME</item>
+      <item>DAYOFMONTH</item>
+      <item>DAYOFWEEK</item>
+      <item>DAYOFYEAR</item>
+      <item>EXTRACT</item>
+      <item>FROM_DAYS</item>
+      <item>FROM_UNIXTIME</item>
+      <item>HOUR</item>
+      <item>MINUTE</item>
+      <item>MONTH</item>
+      <item>MONTHNAME</item>
+      <item>NOW</item>
+      <item>PERIOD_ADD</item>
+      <item>PERIOD_DIFF</item>
+      <item>QUARTER</item>
+      <item>SECOND</item>
+      <item>SEC_TO_TIME</item>
+      <item>SUBDATE</item>
+      <item>SYSDATE</item>
+      <item>TIME_FORMAT</item>
+      <item>TIME_TO_SEC</item>
+      <item>TO_DAYS</item>
+      <item>UNIX_TIMESTAMP</item>
+      <item>WEEK</item>
+      <item>WEEKDAY</item>
+      <item>YEAR</item>
+      <item>YEARWEEK</item>
+      <!-- cast functions -->
+      <item>CAST</item>
+      <item>CONVERT</item>
+      <!-- misc -->
+      <item>AES_DECRYPT</item>
+      <item>AES_ENCRYPT</item>
+      <item>BENCHMARK</item>
+      <item>BIT_COUNT</item>
+      <item>CONNECTION_ID</item>
+      <item>DATABASE</item>
+      <item>DECODE</item>
+      <item>DES_DECRYPT</item>
+      <item>DES_ENCRYPT</item>
+      <item>ENCODE</item>
+      <item>ENCRYPT</item>
+      <item>FORMAT</item>
+      <item>FOUND_ROWS</item>
+      <item>GET_LOCK</item>
+      <item>INET_ATON</item>
+      <item>INET_NTOA</item>
+      <item>IS_FREE_LOCK</item>
+      <item>LAST_INSERT_ID</item>
+      <item>MASTER_POS_WAIT</item>
+      <item>MD5</item>
+      <item>PASSWORD</item>
+      <item>RELEASE_LOCK</item>
+      <item>SESSION_USER</item>
+      <item>SHA</item>
+      <item>SHA1</item>
+      <item>SYSTEM_USER</item>
+      <item>USER</item>
+      <item>VERSION</item>
+      <!-- GROUP BY -->
+      <item>AVG</item>
+      <item>BIT_AND</item>
+      <item>BIT_OR</item>
+      <item>COUNT</item>
+      <item>MAX</item>
+      <item>MIN</item>
+      <item>STD</item>
+      <item>STDDEV</item>
+      <item>SUM</item>
+    </list>
+    <list name="types">
+      <!-- strings -->
+      <item>BINARY</item>
+      <item>BLOB</item>
+      <item>CHAR</item>
+      <item>CHARACTER</item>
+      <item>ENUM</item>
+      <item>LONGBLOB</item>
+      <item>LONGTEXT</item>
+      <item>MEDIUMBLOB</item>
+      <item>MEDIUMTEXT</item>
+      <item>TEXT</item>
+      <item>TINYBLOB</item>
+      <item>TINYTEXT</item>
+      <item>VARBINARY</item>
+      <item>VARCHAR</item>
+      <!-- <item>SET</item>
+        needs special regexp (see below) -->
+      <!-- numeric -->
+      <item>BIGINT</item>
+      <item>BIT</item>
+      <item>BOOL</item>
+      <item>BOOLEAN</item>
+      <item>DEC</item>
+      <item>DECIMAL</item>
+      <item>DOUBLE</item>
+      <item>FIXED</item>
+      <item>FLOAT</item>
+      <item>INT</item>
+      <item>INTEGER</item>
+      <item>LONG</item>
+      <item>MEDIUMINT</item>
+      <item>MIDDLEINT</item>
+      <item>NUMERIC</item>
+      <item>TINYINT</item>
+      <item>REAL</item>
+      <item>SERIAL</item>
+      <item>SMALLINT</item>
+      <!-- date and time -->
+      <item>DATE</item>
+      <item>DATETIME</item>
+      <item>TIME</item>
+      <item>TIMESTAMP</item>
+      <item>YEAR</item>
+    </list>
+    <contexts>
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+
+        <!-- comments, before operators -->
+        <DetectChar attribute="Comment" context="SingleLineComment" char="#"/>
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="-" char1="-"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="SingleLineComment" String="rem\b" insensitive="true" column="0"/>
+
+        <!-- problematic special cases -->
+        <!-- SET type -->
+        <RegExpr attribute="Data Type" context="#stay" insensitive="true" String="SET(?=\s*\()"/>
+        <!-- keyword character set -->
+        <RegExpr attribute="Keyword" context="#stay" insensitive="true" String="\bCHARACTER SET\b"/>
+        <!-- using the lists -->
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Operator" context="#stay" String="operators"/>
+        <keyword attribute="Function" context="#stay" String="functions"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+
+        <DetectIdentifier/>
+        <!-- extra data types -->
+        <RegExpr attribute="Data Type" context="#stay" String="%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\b" insensitive="true"/>
+        <!-- numbers -->
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+        <!-- strings -->
+        <DetectChar attribute="String" context="String" char="'"/>
+        <DetectChar attribute="String" context="String2" char="&quot;"/>
+        <DetectChar attribute="Name" context="Name" char="`"/>
+
+        <AnyChar attribute="Symbol" context="#stay" String=":&#38;"/>
+        <RegExpr attribute="Symbol" context="#stay" String="/$" column="0"/>
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="@@?[^@ \t\r\n]" column="0"/>
+        <!-- for something like : SELECT DB.TABLE.ROW ... -->
+        <DetectChar attribute="String Char" context="#stay" char="."/>
+      </context>
+      <!-- 'string' -->
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <LineContinue attribute="String" context="#pop"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="Symbol" context="#stay" char="&#38;"/>
+        <DetectChar attribute="String" context="#pop" char="'"/>
+      </context>
+      <!-- "string", extra context needed to enable "str'ing" and 'str"ing' -->
+      <context name="String2" attribute="String" lineEndContext="#stay">
+        <LineContinue attribute="String" context="#pop"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="Symbol" context="#stay" char="&#38;"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <!-- `names` -->
+      <context name="Name" attribute="Name" lineEndContext="#stay">
+        <LineContinue attribute="Name" context="#pop"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="Name" context="#pop" char="`"/>
+      </context>
+      <!-- comments -->
+      <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop"/>
+      <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
+        <LineContinue attribute="Comment" context="#pop"/>
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+      <!-- preprocessor -->
+      <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"       defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Keyword"           defStyleNum="dsKeyword" spellChecking="false"/>
+      <itemData name="Operator"          defStyleNum="dsNormal" spellChecking="false"/>
+      <itemData name="Function"          defStyleNum="dsFunction" spellChecking="false"/>
+      <itemData name="Data Type"         defStyleNum="dsDataType" spellChecking="false"/>
+      <itemData name="Decimal"           defStyleNum="dsDecVal" spellChecking="false"/>
+      <itemData name="Hex"               defStyleNum="dsBaseN" spellChecking="false"/>
+      <itemData name="Float"             defStyleNum="dsFloat" spellChecking="false"/>
+      <itemData name="Name" color="#080" defStyleNum="dsString" spellChecking="false"/>
+      <itemData name="String"            defStyleNum="dsString"/>
+      <itemData name="String Char"       defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Comment"           defStyleNum="dsComment"/>
+      <itemData name="Symbol"            defStyleNum="dsChar" spellChecking="false"/>
+      <itemData name="Preprocessor"      defStyleNum="dsOthers" spellChecking="false"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="--"/>
+      <comment name="multiLine" start="/*" end="*/"/>
+    </comments>
+    <keywords casesensitive="0" weakDeliminator="+-*/|=!&lt;&gt;~^:."/>
+    <folding indentationsensitive="true"/>
+  </general>
+</language>
diff --git a/xml/sql-postgresql.xml b/xml/sql-postgresql.xml
new file mode 100644
--- /dev/null
+++ b/xml/sql-postgresql.xml
@@ -0,0 +1,815 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- PostgreSQL SQL, syntax definition based on sql.xml by Yury Lebedev
+     v5 fix comments by Gene Thomas <gene@genethomas.com>
+  -->
+<language name="SQL (PostgreSQL)" version="5" kateversion="2.4" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">
+  <highlighting>
+    <list name="keywords">
+      <item>ABORT</item>
+      <item>ACCESS</item>
+      <item>ACTION</item>
+      <item>ADD</item>
+      <item>ADMIN</item>
+      <item>AFTER</item>
+      <item>AGGREGATE</item>
+      <item>ALIAS</item>
+      <item>ALL</item>
+      <item>ALLOCATE</item>
+      <item>ALTER</item>
+      <item>ANALYSE</item>
+      <item>ANALYZE</item>
+      <item>ANY</item>
+      <item>ARE</item>
+      <item>AS</item>
+      <item>ASC</item>
+      <item>ASENSITIVE</item>
+      <item>ASSERTION</item>
+      <item>ASSIGNMENT</item>
+      <item>ASYMMETRIC</item>
+      <item>AT</item>
+      <item>ATOMIC</item>
+      <item>AUTHORIZATION</item>
+      <item>BACKWARD</item>
+      <item>BEFORE</item>
+      <item>BEGIN</item>
+      <item>BETWEEN</item>
+      <item>BINARY</item>
+      <item>BOTH</item>
+      <item>BREADTH</item>
+      <item>BY</item>
+      <item>C</item>
+      <item>CACHE</item>
+      <item>CALL</item>
+      <item>CALLED</item>
+      <item>CARDINALITY</item>
+      <item>CASCADE</item>
+      <item>CASCADED</item>
+      <item>CASE</item>
+      <item>CAST</item>
+      <item>CATALOG</item>
+      <item>CATALOG_NAME</item>
+      <item>CHAIN</item>
+      <item>CHARACTERISTICS</item>
+      <item>CHARACTER_LENGTH</item>
+      <item>CHARACTER_SET_CATALOG</item>
+      <item>CHARACTER_SET_NAME</item>
+      <item>CHARACTER_SET_SCHEMA</item>
+      <item>CHAR_LENGTH</item>
+      <item>CHECK</item>
+      <item>CHECKED</item>
+      <item>CHECKPOINT</item>
+      <item>CLASS</item>
+      <item>CLASS_ORIGIN</item>
+      <item>CLOB</item>
+      <item>CLOSE</item>
+      <item>CLUSTER</item>
+      <item>COALESCE</item>
+      <item>COBOL</item>
+      <item>COLLATE</item>
+      <item>COLLATION</item>
+      <item>COLLATION_CATALOG</item>
+      <item>COLLATION_NAME</item>
+      <item>COLLATION_SCHEMA</item>
+      <item>COLUMN</item>
+      <item>COLUMN_NAME</item>
+      <item>COMMAND_FUNCTION</item>
+      <item>COMMAND_FUNCTION_CODE</item>
+      <item>COMMENT</item>
+      <item>COMMIT</item>
+      <item>COMMITTED</item>
+      <item>COMPLETION</item>
+      <item>CONDITION_NUMBER</item>
+      <item>CONNECT</item>
+      <item>CONNECTION</item>
+      <item>CONNECTION_NAME</item>
+      <item>CONSTRAINTS</item>
+      <item>CONSTRAINT</item>
+      <item>CONSTRAINT_CATALOG</item>
+      <item>CONSTRAINT_NAME</item>
+      <item>CONSTRAINT_SCHEMA</item>
+      <item>CONSTRUCTOR</item>
+      <item>CONTAINS</item>
+      <item>CONTINUE</item>
+      <item>CONVERT</item>
+      <item>COPY</item>
+      <item>CORRESPONDING</item>
+      <item>COUNT</item>
+      <item>CREATE</item>
+      <item>CREATEDB</item>
+      <item>CREATEUSER</item>
+      <item>CROSS</item>
+      <item>CUBE</item>
+      <item>CURRENT</item>
+      <item>CURRENT_DATE</item>
+      <item>CURRENT_PATH</item>
+      <item>CURRENT_ROLE</item>
+      <item>CURRENT_TIME</item>
+      <item>CURRENT_TIMESTAMP</item>
+      <item>CURRENT_USER</item>
+      <item>CURSOR</item>
+      <item>CURSOR_NAME</item>
+      <item>CYCLE</item>
+      <item>DATA</item>
+      <item>DATABASE</item>
+      <item>DATE</item>
+      <item>DATETIME_INTERVAL_CODE</item>
+      <item>DATETIME_INTERVAL_PRECISION</item>
+      <item>DAY</item>
+      <item>DEALLOCATE</item>
+      <item>DEC</item>
+      <item>DECIMAL</item>
+      <item>DECLARE</item>
+      <item>DEFAULT</item>
+      <item>DEFERRABLE</item>
+      <item>DEFERRED</item>
+      <item>DEFINED</item>
+      <item>DEFINER</item>
+      <item>DELETE</item>
+      <item>DELIMITERS</item>
+      <item>DEPTH</item>
+      <item>DEREF</item>
+      <item>DESC</item>
+      <item>DESCRIBE</item>
+      <item>DESCRIPTOR</item>
+      <item>DESTROY</item>
+      <item>DESTRUCTOR</item>
+      <item>DETERMINISTIC</item>
+      <item>DIAGNOSTICS</item>
+      <item>DICTIONARY</item>
+      <item>DISCONNECT</item>
+      <item>DISPATCH</item>
+      <item>DISTINCT</item>
+      <item>DO</item>
+      <item>DOMAIN</item>
+      <item>DOUBLE</item>
+      <item>DROP</item>
+      <item>DYNAMIC</item>
+      <item>DYNAMIC_FUNCTION</item>
+      <item>DYNAMIC_FUNCTION_CODE</item>
+      <item>EACH</item>
+      <item>ELSE</item>
+      <item>ENCODING</item>
+      <item>ENCRYPTED</item>
+      <item>END</item>
+      <item>END-EXEC</item>
+      <item>EQUALS</item>
+      <item>ESCAPE</item>
+      <item>EVERY</item>
+      <item>EXCEPT</item>
+      <item>EXCEPTION</item>
+      <item>EXCLUSIVE</item>
+      <item>EXEC</item>
+      <item>EXECUTE</item>
+      <item>EXISTING</item>
+      <item>EXISTS</item>
+      <item>EXPLAIN</item>
+      <item>EXTERNAL</item>
+      <item>FALSE</item>
+      <item>FETCH</item>
+      <item>FINAL</item>
+      <item>FIRST</item>
+      <item>FOR</item>
+      <item>FORCE</item>
+      <item>FOREIGN</item>
+      <item>FORTRAN</item>
+      <item>FORWARD</item>
+      <item>FOUND</item>
+      <item>FREE</item>
+      <item>FREEZE</item>
+      <item>FROM</item>
+      <item>FULL</item>
+      <item>FUNCTION</item>
+      <item>G</item>
+      <item>GENERAL</item>
+      <item>GENERATED</item>
+      <item>GET</item>
+      <item>GLOBAL</item>
+      <item>GO</item>
+      <item>GOTO</item>
+      <item>GRANT</item>
+      <item>GRANTED</item>
+      <item>GROUP</item>
+      <item>GROUPING</item>
+      <item>HANDLER</item>
+      <item>HAVING</item>
+      <item>HIERARCHY</item>
+      <item>HOLD</item>
+      <item>HOST</item>
+      <item>HOUR</item>
+      <item>IDENTITY</item>
+      <item>IGNORE</item>
+      <item>ILIKE</item>
+      <item>IMMEDIATE</item>
+      <item>IMMUTABLE</item>
+      <item>IMPLEMENTATION</item>
+      <item>IN</item>
+      <item>INCREMENT</item>
+      <item>INDEX</item>
+      <item>INDICATOR</item>
+      <item>INFIX</item>
+      <item>INHERITS</item>
+      <item>INITIALIZE</item>
+      <item>INITIALLY</item>
+      <item>INNER</item>
+      <item>INOUT</item>
+      <item>INPUT</item>
+      <item>INSENSITIVE</item>
+      <item>INSERT</item>
+      <item>INSTANCE</item>
+      <item>INSTANTIABLE</item>
+      <item>INSTEAD</item>
+      <item>INTERSECT</item>
+      <item>INTERVAL</item>
+      <item>INTO</item>
+      <item>INVOKER</item>
+      <item>IS</item>
+      <item>ISNULL</item>
+      <item>ISOLATION</item>
+      <item>ITERATE</item>
+      <item>JOIN</item>
+      <item>K</item>
+      <item>KEY</item>
+      <item>KEY_MEMBER</item>
+      <item>KEY_TYPE</item>
+      <item>LANCOMPILER</item>
+      <item>LANGUAGE</item>
+      <item>LARGE</item>
+      <item>LAST</item>
+      <item>LATERAL</item>
+      <item>LEADING</item>
+      <item>LEFT</item>
+      <item>LENGTH</item>
+      <item>LESS</item>
+      <item>LEVEL</item>
+      <item>LIKE</item>
+      <item>LIMIT</item>
+      <item>LISTEN</item>
+      <item>LOAD</item>
+      <item>LOCAL</item>
+      <item>LOCALTIME</item>
+      <item>LOCALTIMESTAMP</item>
+      <item>LOCATION</item>
+      <item>LOCATOR</item>
+      <item>LOCK</item>
+      <item>LOWER</item>
+      <item>M</item>
+      <item>MAP</item>
+      <item>MATCH</item>
+      <item>MAX</item>
+      <item>MAXVALUE</item>
+      <item>MESSAGE_LENGTH</item>
+      <item>MESSAGE_OCTET_LENGTH</item>
+      <item>MESSAGE_TEXT</item>
+      <item>METHOD</item>
+      <item>MIN</item>
+      <item>MINUTE</item>
+      <item>MINVALUE</item>
+      <item>MOD</item>
+      <item>MODE</item>
+      <item>MODIFIES</item>
+      <item>MODIFY</item>
+      <item>MODULE</item>
+      <item>MONTH</item>
+      <item>MORE</item>
+      <item>MOVE</item>
+      <item>MUMPS</item>
+      <item>NAME</item>
+      <item>NAMES</item>
+      <item>NATIONAL</item>
+      <item>NATURAL</item>
+      <item>NEW</item>
+      <item>NEXT</item>
+      <item>NO</item>
+      <item>NOCREATEDB</item>
+      <item>NOCREATEUSER</item>
+      <item>NONE</item>
+      <item>NOT</item>
+      <item>NOTHING</item>
+      <item>NOTIFY</item>
+      <item>NOTNULL</item>
+      <item>NULL</item>
+      <item>NULLABLE</item>
+      <item>NULLIF</item>
+      <item>NUMBER</item>
+      <item>NUMERIC</item>
+      <item>OBJECT</item>
+      <item>OCTET_LENGTH</item>
+      <item>OF</item>
+      <item>OFF</item>
+      <item>OFFSET</item>
+      <item>OIDS</item>
+      <item>OLD</item>
+      <item>ON</item>
+      <item>ONLY</item>
+      <item>OPEN</item>
+      <item>OPERATION</item>
+      <item>OPERATOR</item>
+      <item>OPTION</item>
+      <item>OPTIONS</item>
+      <item>ORDER</item>
+      <item>ORDINALITY</item>
+      <item>OUT</item>
+      <item>OUTER</item>
+      <item>OUTPUT</item>
+      <item>OVERLAPS</item>
+      <item>OVERLAY</item>
+      <item>OVERRIDING</item>
+      <item>OWNER</item>
+      <item>PAD</item>
+      <item>PARAMETER</item>
+      <item>PARAMETERS</item>
+      <item>PARAMETER_MODE</item>
+      <item>PARAMETER_NAME</item>
+      <item>PARAMETER_ORDINAL_POSITION</item>
+      <item>PARAMETER_SPECIFIC_CATALOG</item>
+      <item>PARAMETER_SPECIFIC_NAME</item>
+      <item>PARAMETER_SPECIFIC_SCHEMA</item>
+      <item>PARTIAL</item>
+      <item>PASCAL</item>
+      <item>PASSWORD</item>
+      <item>PATH</item>
+      <item>PENDANT</item>
+      <item>PLI</item>
+      <item>POSITION</item>
+      <item>POSTFIX</item>
+      <item>PRECISION</item>
+      <item>PREFIX</item>
+      <item>PREORDER</item>
+      <item>PREPARE</item>
+      <item>PRESERVE</item>
+      <item>PRIMARY</item>
+      <item>PRIOR</item>
+      <item>PRIVILEGES</item>
+      <item>PROCEDURAL</item>
+      <item>PROCEDURE</item>
+      <item>PUBLIC</item>
+      <item>READ</item>
+      <item>READS</item>
+      <item>REAL</item>
+      <item>RECURSIVE</item>
+      <item>REF</item>
+      <item>REFERENCES</item>
+      <item>REFERENCING</item>
+      <item>REINDEX</item>
+      <item>RELATIVE</item>
+      <item>RENAME</item>
+      <item>REPEATABLE</item>
+      <item>REPLACE</item>
+      <item>RESET</item>
+      <item>RESTRICT</item>
+      <item>RESULT</item>
+      <item>RETURN</item>
+      <item>RETURNED_LENGTH</item>
+      <item>RETURNED_OCTET_LENGTH</item>
+      <item>RETURNED_SQLSTATE</item>
+      <item>RETURNS</item>
+      <item>REVOKE</item>
+      <item>RIGHT</item>
+      <item>ROLE</item>
+      <item>ROLLBACK</item>
+      <item>ROLLUP</item>
+      <item>ROUTINE</item>
+      <item>ROUTINE_CATALOG</item>
+      <item>ROUTINE_NAME</item>
+      <item>ROUTINE_SCHEMA</item>
+      <item>ROW</item>
+      <item>ROWS</item>
+      <item>ROW_COUNT</item>
+      <item>RULE</item>
+      <item>SAVEPOINT</item>
+      <item>SCALE</item>
+      <item>SCHEMA</item>
+      <item>SCHEMA_NAME</item>
+      <item>SCOPE</item>
+      <item>SCROLL</item>
+      <item>SEARCH</item>
+      <item>SECOND</item>
+      <item>SECTION</item>
+      <item>SECURITY</item>
+      <item>SELECT</item>
+      <item>SELF</item>
+      <item>SENSITIVE</item>
+      <item>SEQUENCE</item>
+      <item>SERIALIZABLE</item>
+      <item>SERVER_NAME</item>
+      <item>SESSION</item>
+      <item>SESSION_USER</item>
+      <item>SET</item>
+      <item>SETOF</item>
+      <item>SETS</item>
+      <item>SHARE</item>
+      <item>SHOW</item>
+      <item>SIMILAR</item>
+      <item>SIMPLE</item>
+      <item>SIZE</item>
+      <item>SOME</item>
+      <item>SOURCE</item>
+      <item>SPACE</item>
+      <item>SPECIFIC</item>
+      <item>SPECIFICTYPE</item>
+      <item>SPECIFIC_NAME</item>
+      <item>SQL</item>
+      <item>SQLCODE</item>
+      <item>SQLERROR</item>
+      <item>SQLEXCEPTION</item>
+      <item>SQLSTATE</item>
+      <item>SQLWARNING</item>
+      <item>STABLE</item>
+      <item>START</item>
+      <item>STATE</item>
+      <item>STATEMENT</item>
+      <item>STATIC</item>
+      <item>STATISTICS</item>
+      <item>STDIN</item>
+      <item>STDOUT</item>
+      <item>STRUCTURE</item>
+      <item>STYLE</item>
+      <item>SUBCLASS_ORIGIN</item>
+      <item>SUBLIST</item>
+      <item>SUBSTRING</item>
+      <item>SUM</item>
+      <item>SYMMETRIC</item>
+      <item>SYSID</item>
+      <item>SYSTEM</item>
+      <item>SYSTEM_USER</item>
+      <item>TABLE</item>
+      <item>TABLE_NAME</item>
+      <item>TEMP</item>
+      <item>TEMPLATE</item>
+      <item>TEMPORARY</item>
+      <item>TERMINATE</item>
+      <item>THAN</item>
+      <item>THEN</item>
+      <item>TIMEZONE_HOUR</item>
+      <item>TIMEZONE_MINUTE</item>
+      <item>TO</item>
+      <item>TOAST</item>
+      <item>TRAILING</item>
+      <item>TRANSACTION</item>
+      <item>TRANSACTIONS_COMMITTED</item>
+      <item>TRANSACTIONS_ROLLED_BACK</item>
+      <item>TRANSACTION_ACTIVE</item>
+      <item>TRANSFORM</item>
+      <item>TRANSFORMS</item>
+      <item>TRANSLATE</item>
+      <item>TRANSLATION</item>
+      <item>TREAT</item>
+      <item>TRIGGER</item>
+      <item>TRIGGER_CATALOG</item>
+      <item>TRIGGER_NAME</item>
+      <item>TRIGGER_SCHEMA</item>
+      <item>TRIM</item>
+      <item>TRUE</item>
+      <item>TRUNCATE</item>
+      <item>TRUSTED</item>
+      <item>TYPE</item>
+      <item>UNCOMMITTED</item>
+      <item>UNDER</item>
+      <item>UNENCRYPTED</item>
+      <item>UNION</item>
+      <item>UNIQUE</item>
+      <item>UNKNOWN</item>
+      <item>UNLISTEN</item>
+      <item>UNNAMED</item>
+      <item>UNNEST</item>
+      <item>UNTIL</item>
+      <item>UPDATE</item>
+      <item>UPPER</item>
+      <item>USAGE</item>
+      <item>USER</item>
+      <item>USER_DEFINED_TYPE_CATALOG</item>
+      <item>USER_DEFINED_TYPE_NAME</item>
+      <item>USER_DEFINED_TYPE_SCHEMA</item>
+      <item>USING</item>
+      <item>VACUUM</item>
+      <item>VALID</item>
+      <item>VALUE</item>
+      <item>VALUES</item>
+      <item>VARIABLE</item>
+      <item>VARYING</item>
+      <item>VERBOSE</item>
+      <item>VERSION</item>
+      <item>VIEW</item>
+      <item>VOLATILE</item>
+      <item>WHEN</item>
+      <item>WHENEVER</item>
+      <item>WHERE</item>
+      <item>WHILE</item>
+      <item>WITH</item>
+      <item>WITHOUT</item>
+      <item>WORK</item>
+      <item>WRITE</item>
+      <item>YEAR</item>
+      <item>ZONE</item>
+    </list>
+    <list name="operators">
+      <item>+</item>
+      <item>-</item>
+      <item>*</item>
+      <item>/</item>
+      <item>||</item>
+      <item>|/</item>
+      <item>||/</item>
+      <item>!</item>
+      <item>!!</item>
+      <item>@</item>
+      <item>&amp;</item>
+      <item>|</item>
+      <item>#</item>
+      <item>&lt;&lt;</item>
+      <item>&gt;&gt;</item>
+      <item>%</item>
+      <item>^</item>
+      <item>=</item>
+      <item>!=</item>
+      <item>&lt;&gt;</item>
+      <item>&lt;</item>
+      <item>&lt;=</item>
+      <item>&gt;</item>
+      <item>&gt;=</item>
+      <item>~</item>
+      <item>~*</item>
+      <item>!~</item>
+      <item>!~*</item>
+      <item>^=</item>
+      <item>:=</item>
+      <item>=&gt;</item>
+      <item>**</item>
+      <item>..</item>
+      <item>AND</item>
+      <item>OR</item>
+      <item>NOT</item>
+      <!-- geometric -->
+      <item>##</item>
+      <item>&amp;&amp;</item>
+      <item>&amp;&lt;</item>
+      <item>&amp;&gt;</item>
+      <item>&lt;-&gt;</item>
+      <item>&lt;^</item>
+      <item>&gt;^</item>
+      <item>?#</item>
+      <item>?-</item>
+      <item>?-|</item>
+      <item>@-@</item>
+      <item>?|</item>
+      <item>?||</item>
+      <item>@@</item>
+      <item>~=</item>
+      <!-- network address type -->
+      <item>&lt;&lt;=</item>
+      <item>&gt;&gt;=</item>
+    </list>
+    <list name="functions">
+      <!-- math -->
+      <item>ABS</item>
+      <item>CBRT</item>
+      <item>CEIL</item>
+      <item>DEGREES</item>
+      <item>EXP</item>
+      <item>FLOOR</item>
+      <item>LN</item>
+      <item>LOG</item>
+      <item>MOD</item>
+      <item>PI</item>
+      <item>POW</item>
+      <item>RADIANS</item>
+      <item>RANDOM</item>
+      <item>ROUND</item>
+      <item>SIGN</item>
+      <item>SQRT</item>
+      <item>TRUNC</item>
+      <!-- trig -->
+      <item>ACOS</item>
+      <item>ASIN</item>
+      <item>ATAN</item>
+      <item>ATAN2</item>
+      <item>COS</item>
+      <item>COT</item>
+      <item>SIN</item>
+      <item>TAN</item>
+      <!-- string -->
+      <item>BIT_LENGTH</item>
+      <item>CHAR_LENGTH</item>
+      <item>CHARACTER_LENGTH</item>
+      <item>LOWER</item>
+      <item>OCTET_LENGTH</item>
+      <item>POSITION</item>
+      <item>SUBSTRING</item>
+      <item>TRIM</item>
+      <item>UPPER</item>
+      <!-- other string -->
+      <item>ASCII</item>
+      <item>BTRIM</item>
+      <item>CHR</item>
+      <item>CONVERT</item>
+      <item>INITCAP</item>
+      <item>LENGTH</item>
+      <item>LPAD</item>
+      <item>LTRIM</item>
+      <item>PG_CLIENT_ENCODING</item>
+      <item>REPEAT</item>
+      <item>RPAD</item>
+      <item>RTRIM</item>
+      <item>STRPOS</item>
+      <item>SUBSTR</item>
+      <item>TO_ASCII</item>
+      <item>TRANSLATE</item>
+      <item>ENCODE</item>
+      <item>DECODE</item>
+      <!-- data type formatting -->
+      <item>TO_CHAR</item>
+      <item>TO_DATE</item>
+      <item>TO_TIMESTAMP</item>
+      <item>TO_NUMBER</item>
+      <!-- date/time -->
+      <item>AGE</item>
+      <item>DATE_PART</item>
+      <item>DATE_TRUNC</item>
+      <item>EXTRACT</item>
+      <item>ISFINITE</item>
+      <item>NOW</item>
+      <item>TIMEOFDAY</item>
+      <item>TIMESTAMP</item>
+      <item>EXTRACT</item>
+      <!-- geometric -->
+      <item>AREA</item>
+      <item>BOX</item>
+      <item>CENTER</item>
+      <item>DIAMETER</item>
+      <item>HEIGHT</item>
+      <item>ISCLOSED</item>
+      <item>ISOPEN</item>
+      <item>PCLOSE</item>
+      <item>NPOINT</item>
+      <item>POPEN</item>
+      <item>RADIUS</item>
+      <item>WIDTH</item>
+      <!-- geometric type conversion -->
+      <item>BOX</item>
+      <item>CIRCLE</item>
+      <item>LSEG</item>
+      <item>PATH</item>
+      <item>POINT</item>
+      <item>POLYGON</item>
+      <!-- network address type, TEXT is omitted as it is more commonly a data type -->
+      <item>BROADCAST</item>
+      <item>HOST</item>
+      <item>MASKLEN</item>
+      <item>SET_MASKLEN</item>
+      <item>NETMASK</item>
+      <item>NETWORK</item>
+      <item>ABBREV</item>
+      <!-- sequence manipulation -->
+      <item>NEXTVAL</item>
+      <item>CURRVAL</item>
+      <item>SETVAL</item>
+      <!-- conditional expressions -->
+      <item>COALESCE</item>
+      <item>NULLIF</item>
+      <!-- misc -->
+      <item>HAS_TABLE_PRIVILEGE</item>
+      <item>PG_GET_VIEWDEF</item>
+      <item>PG_GET_RULEDEF</item>
+      <item>PG_GET_INDEXDEF</item>
+      <item>PG_GET_USERBYID</item>
+      <item>OBJ_DESCRIPTION</item>
+      <item>COL_DESCRIPTION</item>
+      <!-- aggregate -->
+      <item>AVG</item>
+      <item>COUNT</item>
+      <item>MAX</item>
+      <item>MIN</item>
+      <item>STDDEV</item>
+      <item>SUM</item>
+      <item>VARIANCE</item>
+    </list>
+    <list name="types">
+      <item>BIGINT</item>
+      <item>BIGSERIAL</item>
+      <item>BIT</item>
+      <item>BOOL</item>
+      <item>BOOLEAN</item>
+      <item>BOX</item>
+      <item>BYTEA</item>
+      <item>CHAR</item>
+      <item>CHARACTER</item>
+      <item>CIDR</item>
+      <item>CIRCLE</item>
+      <item>DATE</item>
+      <item>DECIMAL</item>
+      <item>FLOAT8</item>
+      <item>INET</item>
+      <item>INT</item>
+      <item>INT2</item>
+      <item>INT4</item>
+      <item>INT8</item>
+      <item>INTEGER</item>
+      <item>INTERVAL</item>
+      <item>LINE</item>
+      <item>LSEG</item>
+      <item>LZTEXT</item>
+      <item>MACADDR</item>
+      <item>MONEY</item>
+      <item>NUMERIC</item>
+      <item>OID</item>
+      <item>PATH</item>
+      <item>POINT</item>
+      <item>POLYGON</item>
+      <item>REAL</item>
+      <item>SERIAL</item>
+      <item>SERIAL8</item>
+      <item>SMALLINT</item>
+      <item>TEXT</item>
+      <item>TIME</item>
+      <item>TIMESTAMP</item>
+      <item>TIMESTAMPTZ</item>
+      <item>TIMETZ</item>
+      <item>VARBIT</item>
+      <item>VARCHAR</item>
+    </list>
+    <contexts>
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+
+        <!-- comments before operators -->
+        <DetectChar attribute="Comment" context="SingleLineComment" char="#"/>
+        <Detect2Chars attribute="Comment" context="SingleLineComment" char="-" char1="-"/>
+        <Detect2Chars attribute="Comment" context="MultiLineComment" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="SingleLineComment" String="rem\b" insensitive="true" column="0"/>
+
+        <!-- HACK: don't jump into MultiLineString for CREATE FUNCTION $funcName$...$funcName$ -->
+        <RegExpr String="create\s+(or\s+replace\s+)?function" insensitive="true" context="CreateFunction" attribute="Keyword"/>
+
+        <RegExpr String="do\s+\$([^\$\n\r]*)\$" insensitive="true" context="FunctionBody" attribute="Keyword"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <keyword attribute="Operator" context="#stay" String="operators"/>
+        <keyword attribute="Function" context="#stay" String="functions"/>
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <RegExpr attribute="Data Type" context="#stay" String="%bulk_exceptions\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="%bulk_rowcount\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="%found\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="%isopen\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="%notfound\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="%rowcount\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="%rowtype\b" insensitive="true"/>
+        <RegExpr attribute="Data Type" context="#stay" String="%type\b" insensitive="true"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+        <DetectChar attribute="String" context="String" char="'"/>
+        <DetectChar attribute="Comment" context="Identifier" char="&quot;"/>
+        <AnyChar attribute="Symbol" context="#stay" String=":&#38;"/>
+        <RegExpr attribute="Symbol" context="#stay" String="/$" column="0"/>
+        <RegExpr attribute="Preprocessor" context="Preprocessor" String="@@?[^@ \t\r\n]" column="0"/>
+        <RegExpr attribute="Operator" context="MultiLineString" String="\$([^\$\n\r]*)\$" dynamic="true"/>
+      </context>
+      <context name="CreateFunction" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Function" context="FunctionBody" String="\$([^\$\n\r]*)\$" dynamic="true"/>
+        <IncludeRules context="Normal"/>
+      </context>
+      <context name="FunctionBody" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Function" context="#pop#pop" String="\$%1\$" dynamic="true"/>
+        <IncludeRules context="Normal"/>
+      </context>
+      <context name="MultiLineString" attribute="String" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Operator" context="#pop" String="\$%1\$" dynamic="true"/>
+      </context>
+      <context name="String" attribute="String" lineEndContext="#stay">
+        <LineContinue attribute="String" context="#pop"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="Symbol" context="#stay" char="&#38;"/>
+        <DetectChar attribute="String" context="#pop" char="'"/>
+      </context>
+      <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop"/>
+      <context name="MultiLineComment" attribute="Comment" lineEndContext="#stay">
+        <LineContinue attribute="Comment" context="#pop"/>
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+      <context name="Identifier" attribute="Identifier" lineEndContext="#pop">
+        <DetectChar attribute="Identifier" context="#pop" char="&quot;"/>
+      </context>
+      <context name="Preprocessor" attribute="Preprocessor" lineEndContext="#pop"/>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"       defStyleNum="dsNormal"/>
+      <itemData name="Keyword"           defStyleNum="dsKeyword"/>
+      <itemData name="Operator"          defStyleNum="dsNormal"/>
+      <itemData name="Function"          defStyleNum="dsFunction"/>
+      <itemData name="Data Type"         defStyleNum="dsDataType"/>
+      <itemData name="Decimal"           defStyleNum="dsDecVal"/>
+      <itemData name="Float"             defStyleNum="dsFloat"/>
+      <itemData name="String"            defStyleNum="dsString"/>
+      <itemData name="String Char"       defStyleNum="dsChar"/>
+      <itemData name="Comment"           defStyleNum="dsComment"/>
+      <itemData name="Identifier"        defStyleNum="dsOthers"/>
+      <itemData name="Symbol"            defStyleNum="dsChar"/>
+      <itemData name="Preprocessor"      defStyleNum="dsOthers"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="--"/>
+      <comment name="multiLine" start="/*" end="*/"/>
+    </comments>
+    <keywords casesensitive="0" weakDeliminator="+-*/|=!&lt;&gt;~^:.@&amp;#%?"/>
+  </general>
+</language>
diff --git a/xml/sql.xml b/xml/sql.xml
new file mode 100644
--- /dev/null
+++ b/xml/sql.xml
@@ -0,0 +1,959 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Oracle10g SQL and PL/SQL syntax - ANSI SQL 2003 superset -->
+<!-- This file is maintained by Anders Lund <anders@alweb.dk> since 2005-11-06
+     v3 fix comments by Gene Thomas <gene@genethomas.com>
+  -->
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
+<language name="SQL" version="3" kateversion="2.4" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Yury Lebedev (yurylebedev@mail.ru)" license="LGPL">
+  <highlighting>
+    <list name="keywords">
+      <item>ACCESS</item>
+      <item>ACCOUNT</item>
+      <item>ADD</item>
+      <item>ADMIN</item>
+      <item>ADMINISTER</item>
+      <item>ADVISE</item>
+      <item>AFTER</item>
+      <item>AGENT</item>
+      <item>ALL</item>
+      <item>ALLOCATE</item>
+      <item>ALL_ROWS</item>
+      <item>ALTER</item>
+      <item>ANALYZE</item>
+      <item>ANCILLARY</item>
+      <item>AND</item>
+      <item>ANY</item>
+      <item>ARCHIVE</item>
+      <item>ARCHIVELOG</item>
+      <item>AS</item>
+      <item>ASC</item>
+      <item>ASSERTION</item>
+      <item>ASSOCIATE</item>
+      <item>AT</item>
+      <item>ATTRIBUTE</item>
+      <item>ATTRIBUTES</item>
+      <item>AUDIT</item>
+      <item>AUTHENTICATED</item>
+      <item>AUTHID</item>
+      <item>AUTHORIZATION</item>
+      <item>AUTOALLOCATE</item>
+      <item>AUTOEXTEND</item>
+      <item>AUTOMATIC</item>
+      <item>BACKUP</item>
+      <item>BECOME</item>
+      <item>BEFORE</item>
+      <item>BEGIN</item>
+      <item>BEHALF</item>
+      <item>BETWEEN</item>
+      <item>BINDING</item>
+      <item>BITMAP</item>
+      <item>BLOCK</item>
+      <item>BLOCK_RANGE</item>
+      <item>BODY</item>
+      <item>BOTH</item>
+      <item>BOUND</item>
+      <item>BREAK</item>
+      <item>BROADCAST</item>
+      <item>BTITLE</item>
+      <item>BUFFER_POOL</item>
+      <item>BUILD</item>
+      <item>BULK</item>
+      <item>BY</item>
+      <item>CACHE</item>
+      <item>CACHE_INSTANCES</item>
+      <item>CALL</item>
+      <item>CANCEL</item>
+      <item>CASCADE</item>
+      <item>CASE</item>
+      <item>CATEGORY</item>
+      <item>CHAINED</item>
+      <item>CHANGE</item>
+      <item>CHECK</item>
+      <item>CHECKPOINT</item>
+      <item>CHILD</item>
+      <item>CHOOSE</item>
+      <item>CHUNK</item>
+      <item>CLASS</item>
+      <item>CLEAR</item>
+      <item>CLONE</item>
+      <item>CLOSE</item>
+      <item>CLOSE_CACHED_OPEN_CURSORS</item>
+      <item>CLUSTER</item>
+      <item>COALESCE</item>
+      <item>COLUMN</item>
+      <item>COLUMNS</item>
+      <item>COLUMN_VALUE</item>
+      <item>COMMENT</item>
+      <item>COMMIT</item>
+      <item>COMMITTED</item>
+      <item>COMPATIBILITY</item>
+      <item>COMPILE</item>
+      <item>COMPLETE</item>
+      <item>COMPOSITE_LIMIT</item>
+      <item>COMPRESS</item>
+      <item>COMPUTE</item>
+      <item>CONNECT</item>
+      <item>CONNECT_TIME</item>
+      <item>CONSIDER</item>
+      <item>CONSISTENT</item>
+      <item>CONSTANT</item>
+      <item>CONSTRAINT</item>
+      <item>CONSTRAINTS</item>
+      <item>CONTAINER</item>
+      <item>CONTENTS</item>
+      <item>CONTEXT</item>
+      <item>CONTINUE</item>
+      <item>CONTROLFILE</item>
+      <item>COPY</item>
+      <item>COST</item>
+      <item>CPU_PER_CALL</item>
+      <item>CPU_PER_SESSION</item>
+      <item>CREATE</item>
+      <item>CREATE_STORED_OUTLINES</item>
+      <item>CROSS</item>
+      <item>CUBE</item>
+      <item>CURRENT</item>
+      <item>CURSOR</item>
+      <item>CYCLE</item>
+      <item>DANGLING</item>
+      <item>DATA</item>
+      <item>DATABASE</item>
+      <item>DATAFILE</item>
+      <item>DATAFILES</item>
+      <item>DBA</item>
+      <item>DDL</item>
+      <item>DEALLOCATE</item>
+      <item>DEBUG</item>
+      <item>DECLARE</item>
+      <item>DEFAULT</item>
+      <item>DEFERRABLE</item>
+      <item>DEFERRED</item>
+      <item>DEFINER</item>
+      <item>DEGREE</item>
+      <item>DELETE</item>
+      <item>DEMAND</item>
+      <item>DESC</item>
+      <item>DETERMINES</item>
+      <item>DICTIONARY</item>
+      <item>DIMENSION</item>
+      <item>DIRECTORY</item>
+      <item>DISABLE</item>
+      <item>DISASSOCIATE</item>
+      <item>DISCONNECT</item>
+      <item>DISKGROUP</item>
+      <item>DISMOUNT</item>
+      <item>DISTINCT</item>
+      <item>DISTRIBUTED</item>
+      <item>DOMAIN</item>
+      <item>DROP</item>
+      <item>DYNAMIC</item>
+      <item>EACH</item>
+      <item>ELSE</item>
+      <item>ELSIF</item>
+      <item>EMPTY</item>
+      <item>ENABLE</item>
+      <item>END</item>
+      <item>ENFORCE</item>
+      <item>ENTRY</item>
+      <item>ESCAPE</item>
+      <item>ESTIMATE</item>
+      <item>EVENTS</item>
+      <item>EXCEPT</item>
+      <item>EXCEPTION</item>
+      <item>EXCEPTIONS</item>
+      <item>EXCHANGE</item>
+      <item>EXCLUDING</item>
+      <item>EXCLUSIVE</item>
+      <item>EXEC</item>
+      <item>EXECUTE</item>
+      <item>EXISTS</item>
+      <item>EXPIRE</item>
+      <item>EXPLAIN</item>
+      <item>EXPLOSION</item>
+      <item>EXTENDS</item>
+      <item>EXTENT</item>
+      <item>EXTENTS</item>
+      <item>EXTERNALLY</item>
+      <item>FAILED_LOGIN_ATTEMPTS</item>
+      <item>FALSE</item>
+      <item>FAST</item>
+      <item>FILE</item>
+      <item>FILTER</item>
+      <item>FIRST_ROWS</item>
+      <item>FLAGGER</item>
+      <item>FLASHBACK</item>
+      <item>FLUSH</item>
+      <item>FOLLOWING</item>
+      <item>FOR</item>
+      <item>FORCE</item>
+      <item>FOREIGN</item>
+      <item>FREELIST</item>
+      <item>FREELISTS</item>
+      <item>FRESH</item>
+      <item>FROM</item>
+      <item>FULL</item>
+      <item>FUNCTION</item>
+      <item>FUNCTIONS</item>
+      <item>GENERATED</item>
+      <item>GLOBAL</item>
+      <item>GLOBALLY</item>
+      <item>GLOBAL_NAME</item>
+      <item>GRANT</item>
+      <item>GROUP</item>
+      <item>GROUPS</item>
+      <item>HASH</item>
+      <item>HASHKEYS</item>
+      <item>HAVING</item>
+      <item>HEADER</item>
+      <item>HEAP</item>
+      <item>HIERARCHY</item>
+      <item>HOUR</item>
+      <item>ID</item>
+      <item>IDENTIFIED</item>
+      <item>IDENTIFIER</item>
+      <item>IDGENERATORS</item>
+      <item>IDLE_TIME</item>
+      <item>IF</item>
+      <item>IMMEDIATE</item>
+      <item>IN</item>
+      <item>INCLUDING</item>
+      <item>INCREMENT</item>
+      <item>INCREMENTAL</item>
+      <item>INDEX</item>
+      <item>INDEXED</item>
+      <item>INDEXES</item>
+      <item>INDEXTYPE</item>
+      <item>INDEXTYPES</item>
+      <item>INDICATOR</item>
+      <item>INITIAL</item>
+      <item>INITIALIZED</item>
+      <item>INITIALLY</item>
+      <item>INITRANS</item>
+      <item>INNER</item>
+      <item>INSERT</item>
+      <item>INSTANCE</item>
+      <item>INSTANCES</item>
+      <item>INSTEAD</item>
+      <item>INTERMEDIATE</item>
+      <item>INTERSECT</item>
+      <item>INTO</item>
+      <item>INVALIDATE</item>
+      <item>IS</item>
+      <item>ISOLATION</item>
+      <item>ISOLATION_LEVEL</item>
+      <item>JAVA</item>
+      <item>JOIN</item>
+      <item>KEEP</item>
+      <item>KEY</item>
+      <item>KILL</item>
+      <item>LABEL</item>
+      <item>LAYER</item>
+      <item>LEADING</item>
+      <item>LEFT</item>
+      <item>LESS</item>
+      <item>LEVEL</item>
+      <item>LIBRARY</item>
+      <item>LIKE</item>
+      <item>LIMIT</item>
+      <item>LINK</item>
+      <item>LIST</item>
+      <item>LOCAL</item>
+      <item>LOCATOR</item>
+      <item>LOCK</item>
+      <item>LOCKED</item>
+      <item>LOGFILE</item>
+      <item>LOGGING</item>
+      <item>LOGICAL_READS_PER_CALL</item>
+      <item>LOGICAL_READS_PER_SESSION</item>
+      <item>LOGOFF</item>
+      <item>LOGON</item>
+      <item>LOOP</item>
+      <item>MANAGE</item>
+      <item>MANAGED</item>
+      <item>MANAGEMENT</item>
+      <item>MASTER</item>
+      <item>MATERIALIZED</item>
+      <item>MAXARCHLOGS</item>
+      <item>MAXDATAFILES</item>
+      <item>MAXEXTENTS</item>
+      <item>MAXINSTANCES</item>
+      <item>MAXLOGFILES</item>
+      <item>MAXLOGHISTORY</item>
+      <item>MAXLOGMEMBERS</item>
+      <item>MAXSIZE</item>
+      <item>MAXTRANS</item>
+      <item>MAXVALUE</item>
+      <item>MEMBER</item>
+      <item>MERGE</item>
+      <item>METHOD</item>
+      <item>MINEXTENTS</item>
+      <item>MINIMIZE</item>
+      <item>MINIMUM</item>
+      <item>MINUS</item>
+      <item>MINUTE</item>
+      <item>MINVALUE</item>
+      <item>MODE</item>
+      <item>MODIFY</item>
+      <item>MONITORING</item>
+      <item>MOUNT</item>
+      <item>MOVE</item>
+      <item>MOVEMENT</item>
+      <item>MTS_DISPATCHERS</item>
+      <item>MULTISET</item>
+      <item>NAMED</item>
+      <item>NATURAL</item>
+      <item>NEEDED</item>
+      <item>NESTED</item>
+      <item>NESTED_TABLE_ID</item>
+      <item>NETWORK</item>
+      <item>NEVER</item>
+      <item>NEW</item>
+      <item>NEXT</item>
+      <item>NLS_CALENDAR</item>
+      <item>NLS_CHARACTERSET</item>
+      <item>NLS_COMP</item>
+      <item>NLS_CURRENCY</item>
+      <item>NLS_DATE_FORMAT</item>
+      <item>NLS_DATE_LANGUAGE</item>
+      <item>NLS_ISO_CURRENCY</item>
+      <item>NLS_LANG</item>
+      <item>NLS_LANGUAGE</item>
+      <item>NLS_NUMERIC_CHARACTERS</item>
+      <item>NLS_SORT</item>
+      <item>NLS_SPECIAL_CHARS</item>
+      <item>NLS_TERRITORY</item>
+      <item>NO</item>
+      <item>NOARCHIVELOG</item>
+      <item>NOAUDIT</item>
+      <item>NOCACHE</item>
+      <item>NOCOMPRESS</item>
+      <item>NOCYCLE</item>
+      <item>NOFORCE</item>
+      <item>NOLOGGING</item>
+      <item>NOMAXVALUE</item>
+      <item>NOMINIMIZE</item>
+      <item>NOMINVALUE</item>
+      <item>NOMONITORING</item>
+      <item>NONE</item>
+      <item>NOORDER</item>
+      <item>NOOVERRIDE</item>
+      <item>NOPARALLEL</item>
+      <item>NORELY</item>
+      <item>NORESETLOGS</item>
+      <item>NOREVERSE</item>
+      <item>NORMAL</item>
+      <item>NOSEGMENT</item>
+      <item>NOSORT</item>
+      <item>NOT</item>
+      <item>NOTHING</item>
+      <item>NOVALIDATE</item>
+      <item>NOWAIT</item>
+      <item>NULL</item>
+      <item>NULLS</item>
+      <item>OBJNO</item>
+      <item>OBJNO_REUSE</item>
+      <item>OF</item>
+      <item>OFF</item>
+      <item>OFFLINE</item>
+      <item>OID</item>
+      <item>OIDINDEX</item>
+      <item>OLD</item>
+      <item>ON</item>
+      <item>ONLINE</item>
+      <item>ONLY</item>
+      <item>OPCODE</item>
+      <item>OPEN</item>
+      <item>OPERATOR</item>
+      <item>OPTIMAL</item>
+      <item>OPTIMIZER_GOAL</item>
+      <item>OPTION</item>
+      <item>OR</item>
+      <item>ORDER</item>
+      <item>ORGANIZATION</item>
+      <item>OUT</item>
+      <item>OUTER</item>
+      <item>OUTLINE</item>
+      <item>OVER</item>
+      <item>OVERFLOW</item>
+      <item>OVERLAPS</item>
+      <item>OWN</item>
+      <item>PACKAGE</item>
+      <item>PACKAGES</item>
+      <item>PARALLEL</item>
+      <item>PARAMETERS</item>
+      <item>PARENT</item>
+      <item>PARTITION</item>
+      <item>PARTITIONS</item>
+      <item>PARTITION_HASH</item>
+      <item>PARTITION_RANGE</item>
+      <item>PASSWORD</item>
+      <item>PASSWORD_GRACE_TIME</item>
+      <item>PASSWORD_LIFE_TIME</item>
+      <item>PASSWORD_LOCK_TIME</item>
+      <item>PASSWORD_REUSE_MAX</item>
+      <item>PASSWORD_REUSE_TIME</item>
+      <item>PASSWORD_VERIFY_FUNCTION</item>
+      <item>PCTFREE</item>
+      <item>PCTINCREASE</item>
+      <item>PCTTHRESHOLD</item>
+      <item>PCTUSED</item>
+      <item>PCTVERSION</item>
+      <item>PERCENT</item>
+      <item>PERMANENT</item>
+      <item>PLAN</item>
+      <item>PLSQL_DEBUG</item>
+      <item>POST_TRANSACTION</item>
+      <item>PREBUILT</item>
+      <item>PRECEDING</item>
+      <item>PREPARE</item>
+      <item>PRESENT</item>
+      <item>PRESERVE</item>
+      <item>PREVIOUS</item>
+      <item>PRIMARY</item>
+      <item>PRIOR</item>
+      <item>PRIVATE</item>
+      <item>PRIVATE_SGA</item>
+      <item>PRIVILEGE</item>
+      <item>PRIVILEGES</item>
+      <item>PROCEDURE</item>
+      <item>PROFILE</item>
+      <item>PUBLIC</item>
+      <item>PURGE</item>
+      <item>QUERY</item>
+      <item>QUEUE</item>
+      <item>QUOTA</item>
+      <item>RANDOM</item>
+      <item>RANGE</item>
+      <item>RBA</item>
+      <item>READ</item>
+      <item>READS</item>
+      <item>REBUILD</item>
+      <item>RECORDS_PER_BLOCK</item>
+      <item>RECOVER</item>
+      <item>RECOVERABLE</item>
+      <item>RECOVERY</item>
+      <item>RECYCLE</item>
+      <item>REDUCED</item>
+      <item>REFERENCES</item>
+      <item>REFERENCING</item>
+      <item>REFRESH</item>
+      <item>RELY</item>
+      <item>RENAME</item>
+      <item>REPLACE</item>
+      <item>RESET</item>
+      <item>RESETLOGS</item>
+      <item>RESIZE</item>
+      <item>RESOLVE</item>
+      <item>RESOLVER</item>
+      <item>RESOURCE</item>
+      <item>RESTRICT</item>
+      <item>RESTRICTED</item>
+      <item>RESUME</item>
+      <item>RETURN</item>
+      <item>RETURNING</item>
+      <item>REUSE</item>
+      <item>REVERSE</item>
+      <item>REVOKE</item>
+      <item>REWRITE</item>
+      <item>RIGHT</item>
+      <item>ROLE</item>
+      <item>ROLES</item>
+      <item>ROLLBACK</item>
+      <item>ROLLUP</item>
+      <item>ROW</item>
+      <item>ROWNUM</item>
+      <item>ROWS</item>
+      <item>RULE</item>
+      <item>SAMPLE</item>
+      <item>SAVEPOINT</item>
+      <item>SCAN</item>
+      <item>SCAN_INSTANCES</item>
+      <item>SCHEMA</item>
+      <item>SCN</item>
+      <item>SCOPE</item>
+      <item>SD_ALL</item>
+      <item>SD_INHIBIT</item>
+      <item>SD_SHOW</item>
+      <item>SEGMENT</item>
+      <item>SEG_BLOCK</item>
+      <item>SEG_FILE</item>
+      <item>SELECT</item>
+      <item>SELECTIVITY</item>
+      <item>SEQUENCE</item>
+      <item>SERIALIZABLE</item>
+      <item>SERVERERROR</item>
+      <item>SESSION</item>
+      <item>SESSIONS_PER_USER</item>
+      <item>SESSION_CACHED_CURSORS</item>
+      <item>SET</item>
+      <item>SHARE</item>
+      <item>SHARED</item>
+      <item>SHARED_POOL</item>
+      <item>SHRINK</item>
+      <item>SHUTDOWN</item>
+      <item>SINGLETASK</item>
+      <item>SIZE</item>
+      <item>SKIP</item>
+      <item>SKIP_UNUSABLE_INDEXES</item>
+      <item>SNAPSHOT</item>
+      <item>SOME</item>
+      <item>SORT</item>
+      <item>SOURCE</item>
+      <item>SPECIFICATION</item>
+      <item>SPLIT</item>
+      <item>SQL_TRACE</item>
+      <item>STANDBY</item>
+      <item>START</item>
+      <item>STARTUP</item>
+      <item>STATEMENT_ID</item>
+      <item>STATIC</item>
+      <item>STATISTICS</item>
+      <item>STOP</item>
+      <item>STORAGE</item>
+      <item>STORE</item>
+      <item>STRUCTURE</item>
+      <item>SUBMULTISET</item>
+      <item>SUBPARTITION</item>
+      <item>SUBPARTITIONS</item>
+      <item>SUCCESSFUL</item>
+      <item>SUMMARY</item>
+      <item>SUPPLEMENTAL</item>
+      <item>SUSPEND</item>
+      <item>SWITCH</item>
+      <item>SYNONYM</item>
+      <item>SYSDBA</item>
+      <item>SYSOPER</item>
+      <item>SYSTEM</item>
+      <item>SYS_OP_BITVEC</item>
+      <item>SYS_OP_ENFORCE_NOT_NULL$</item>
+      <item>SYS_OP_NOEXPAND</item>
+      <item>SYS_OP_NTCIMG$</item>
+      <item>TABLE</item>
+      <item>TABLES</item>
+      <item>TABLESPACE</item>
+      <item>TABLESPACE_NO</item>
+      <item>TABNO</item>
+      <item>TEMPFILE</item>
+      <item>TEMPORARY</item>
+      <item>THAN</item>
+      <item>THE</item>
+      <item>THEN</item>
+      <item>THREAD</item>
+      <item>THROUGH</item>
+      <item>TIMEOUT</item>
+      <item>TIMEZONE_HOUR</item>
+      <item>TIMEZONE_MINUTE</item>
+      <item>TIME_ZONE</item>
+      <item>TO</item>
+      <item>TOPLEVEL</item>
+      <item>TRACE</item>
+      <item>TRACING</item>
+      <item>TRAILING</item>
+      <item>TRANSACTION</item>
+      <item>TRANSITIONAL</item>
+      <item>TRIGGER</item>
+      <item>TRIGGERS</item>
+      <item>TRUE</item>
+      <item>TRUNCATE</item>
+      <item>TYPE</item>
+      <item>TYPES</item>
+      <item>UNARCHIVED</item>
+      <item>UNBOUND</item>
+      <item>UNBOUNDED</item>
+      <item>UNDO</item>
+      <item>UNIFORM</item>
+      <item>UNION</item>
+      <item>UNIQUE</item>
+      <item>UNLIMITED</item>
+      <item>UNLOCK</item>
+      <item>UNRECOVERABLE</item>
+      <item>UNTIL</item>
+      <item>UNUSABLE</item>
+      <item>UNUSED</item>
+      <item>UPDATABLE</item>
+      <item>UPDATE</item>
+      <item>UPD_INDEXES</item>
+      <item>UPPPER</item>
+      <item>USAGE</item>
+      <item>USE</item>
+      <item>USER_DEFINED</item>
+      <item>USE_STORED_OUTLINES</item>
+      <item>USING</item>
+      <item>VALIDATE</item>
+      <item>VALIDATION</item>
+      <item>VALUES</item>
+      <item>VIEW</item>
+      <item>WHEN</item>
+      <item>WHENEVER</item>
+      <item>WHERE</item>
+      <item>WHILE</item>
+      <item>WITH</item>
+      <item>WITHOUT</item>
+      <item>WORK</item>
+      <item>WRITE</item>
+    </list>
+    <list name="operators">
+      <item>+</item>
+      <item>-</item>
+      <item>*</item>
+      <item>/</item>
+      <item>||</item>
+      <item>=</item>
+      <item>!=</item>
+      <item>&lt;&gt;</item>
+      <item>&lt;</item>
+      <item>&lt;=</item>
+      <item>&gt;</item>
+      <item>&gt;=</item>
+      <item>~=</item>
+      <item>^=</item>
+      <item>:=</item>
+      <item>=&gt;</item>
+      <item>**</item>
+      <item>..</item>
+    </list>
+    <list name="functions">
+      <item>ABS</item>
+      <item>ACOS</item>
+      <item>ADD_MONTHS</item>
+      <item>ASCII</item>
+      <item>ASCIISTR</item>
+      <item>ASIN</item>
+      <item>ATAN</item>
+      <item>ATAN2</item>
+      <item>AVG</item>
+      <item>BFILENAME</item>
+      <item>BIN_TO_NUM</item>
+      <item>BITAND</item>
+      <item>CARDINALITY</item>
+      <item>CAST</item>
+      <item>CEIL</item>
+      <item>CHARTOROWID</item>
+      <item>CHR</item>
+      <item>COALESCE</item>
+      <item>COLLECT</item>
+      <item>COMPOSE</item>
+      <item>CONCAT</item>
+      <item>CONVERT</item>
+      <item>CORR</item>
+      <item>CORR_K</item>
+      <item>CORR_S</item>
+      <item>COS</item>
+      <item>COSH</item>
+      <item>COUNT</item>
+      <item>COVAR_POP</item>
+      <item>COVAR_SAMP</item>
+      <item>CUME_DIST</item>
+      <item>CURRENT_DATE</item>
+      <item>CURRENT_TIMESTAMP</item>
+      <item>CV</item>
+      <item>DBTIMEZONE</item>
+      <item>DECODE</item>
+      <item>DECOMPOSE</item>
+      <item>DENSE_RANK</item>
+      <item>DEPTH</item>
+      <item>DEREF</item>
+      <item>DUMP</item>
+      <item>EMPTY_BLOB</item>
+      <item>EMPTY_CLOB</item>
+      <item>EXISTSNODE</item>
+      <item>EXP</item>
+      <item>EXTRACT</item>
+      <item>EXTRACTVALUE</item>
+      <item>FIRST</item>
+      <item>FIRST_VALUE</item>
+      <item>FLOOR</item>
+      <item>FROM_TZ</item>
+      <item>GREATEST</item>
+      <item>GROUP_ID</item>
+      <item>GROUPING</item>
+      <item>GROUPING_ID</item>
+      <item>HEXTORAW</item>
+      <item>INITCAP</item>
+      <item>INSTR</item>
+      <item>INSTRB</item>
+      <item>LAG</item>
+      <item>LAST</item>
+      <item>LAST_DAY</item>
+      <item>LAST_VALUE</item>
+      <item>LEAD</item>
+      <item>LEAST</item>
+      <item>LENGTH</item>
+      <item>LENGTHB</item>
+      <item>LN</item>
+      <item>LNNVL</item>
+      <item>LOCALTIMESTAMP</item>
+      <item>LOG</item>
+      <item>LOWER</item>
+      <item>LPAD</item>
+      <item>LTRIM</item>
+      <item>MAKE_REF</item>
+      <item>MAX</item>
+      <item>MEDIAN</item>
+      <item>MIN</item>
+      <item>MOD</item>
+      <item>MONTHS_BETWEEN</item>
+      <item>NANVL</item>
+      <item>NCHR</item>
+      <item>NEW_TIME</item>
+      <item>NEXT_DAY</item>
+      <item>NLS_CHARSET_DECL_LEN</item>
+      <item>NLS_CHARSET_ID</item>
+      <item>NLS_CHARSET_NAME</item>
+      <item>NLS_INITCAP</item>
+      <item>NLS_LOWER</item>
+      <item>NLS_UPPER</item>
+      <item>NLSSORT</item>
+      <item>NTILE</item>
+      <item>NULLIF</item>
+      <item>NUMTODSINTERVAL</item>
+      <item>NUMTOYMINTERVAL</item>
+      <item>NVL</item>
+      <item>NVL2</item>
+      <item>ORA_HASH</item>
+      <item>ORA_ROWSCN</item>
+      <item>PERCENT_RANK</item>
+      <item>PERCENTILE_CONT</item>
+      <item>PERCENTILE_DISC</item>
+      <item>POWER</item>
+      <item>POWERMULTISET</item>
+      <item>POWERMULTISET_BY_CARDINALITY</item>
+      <item>PRESENTNNV</item>
+      <item>PRESENTV</item>
+      <item>RANK</item>
+      <item>RATIO_TO_REPORT</item>
+      <item>RAWTOHEX</item>
+      <item>RAWTONHEX</item>
+      <item>REF</item>
+      <item>REFTOHEX</item>
+      <item>REGEXP_INSTR</item>
+      <item>REGEXP_LIKE</item>
+      <item>REGEXP_REPLACE</item>
+      <item>REGEXP_SUBSTR</item>
+      <item>REGR_SLOPE</item>
+      <item>REGR_INTERCEPT</item>
+      <item>REGR_COUNT</item>
+      <item>REGR_R2</item>
+      <item>REGR_AVGX</item>
+      <item>REGR_AVGY</item>
+      <item>REGR_SXX</item>
+      <item>REGR_SYY</item>
+      <item>REGR_SXY</item>
+      <item>REMAINDER</item>
+      <item>ROUND</item>
+      <item>ROW_NUMBER</item>
+      <item>ROWIDTOCHAR</item>
+      <item>ROWIDTONCHAR</item>
+      <item>RPAD</item>
+      <item>RTRIM</item>
+      <item>SCN_TO_TIMESTAMP</item>
+      <item>SESSIONTIMEZONE</item>
+      <item>SIGN</item>
+      <item>SIN</item>
+      <item>SINH</item>
+      <item>SOUNDEX</item>
+      <item>SQRT</item>
+      <item>STATS_BINOMIAL_TEST</item>
+      <item>STATS_CROSSTAB</item>
+      <item>STATS_F_TEST</item>
+      <item>STATS_KS_TEST</item>
+      <item>STATS_MODE</item>
+      <item>STATS_MW_TEST</item>
+      <item>STATS_ONE_WAY_ANOVA</item>
+      <item>STATS_T_TEST_ONE</item>
+      <item>STATS_T_TEST_PAIRED</item>
+      <item>STATS_T_TEST_INDEP</item>
+      <item>STATS_T_TEST_INDEPU</item>
+      <item>STATS_WSR_TEST</item>
+      <item>STDDEV</item>
+      <item>STDDEV_POP</item>
+      <item>STDDEV_SAMP</item>
+      <item>SUBSTR</item>
+      <item>SUBSTRB</item>
+      <item>SUM</item>
+      <item>SYS_CONNECT_BY_PATH</item>
+      <item>SYS_CONTEXT</item>
+      <item>SYS_DBURIGEN</item>
+      <item>SYS_EXTRACT_UTC</item>
+      <item>SYS_GUID</item>
+      <item>SYS_TYPEID</item>
+      <item>SYS_XMLAGG</item>
+      <item>SYS_XMLGEN</item>
+      <item>SYSDATE</item>
+      <item>SYSTIMESTAMP</item>
+      <item>TAN</item>
+      <item>TANH</item>
+      <item>TIMESTAMP_TO_SCN</item>
+      <item>TO_BINARY_DOUBLE</item>
+      <item>TO_BINARY_FLOAT</item>
+      <item>TO_CHAR</item>
+      <item>TO_CLOB</item>
+      <item>TO_DATE</item>
+      <item>TO_DSINTERVAL</item>
+      <item>TO_LOB</item>
+      <item>TO_MULTI_BYTE</item>
+      <item>TO_NCHAR</item>
+      <item>TO_NCLOB</item>
+      <item>TO_NUMBER</item>
+      <item>TO_SINGLE_BYTE</item>
+      <item>TO_TIMESTAMP</item>
+      <item>TO_TIMESTAMP_TZ</item>
+      <item>TO_YMINTERVAL</item>
+      <item>TRANSLATE</item>
+      <item>TREAT</item>
+      <item>TRIM</item>
+      <item>TRUNC</item>
+      <item>TZ_OFFSET</item>
+      <item>UID</item>
+      <item>UNISTR</item>
+      <item>UPDATEXML</item>
+      <item>UPPER</item>
+      <item>USER</item>
+      <item>USERENV</item>
+      <item>VALUE</item>
+      <item>VAR_POP</item>
+      <item>VAR_SAMP</item>
+      <item>VARIANCE</item>
+      <item>VSIZE</item>
+      <item>WIDTH_BUCKET</item>
+      <item>XMLAGG</item>
+      <item>XMLCOLATTVAL</item>
+      <item>XMLCONCAT</item>
+      <item>XMLELEMENT</item>
+      <item>XMLFOREST</item>
+      <item>XMLSEQUENCE</item>
+      <item>XMLTRANSFORM</item>
+    </list>
+    <list name="types">
+      <item>ANYDATA</item>
+      <item>ANYDATASET</item>
+      <item>ANYTYPE</item>
+      <item>ARRAY</item>
+      <item>BFILE</item>
+      <item>BINARY_DOUBLE</item>
+      <item>BINARY_FLOAT</item>
+      <item>BINARY_INTEGER</item>
+      <item>BLOB</item>
+      <item>BOOLEAN</item>
+      <item>CFILE</item>
+      <item>CHAR</item>
+      <item>CHARACTER</item>
+      <item>CLOB</item>
+      <item>DATE</item>
+      <item>DAY</item>
+      <item>DBURITYPE</item>
+      <item>DEC</item>
+      <item>DECIMAL</item>
+      <item>DOUBLE</item>
+      <item>FLOAT</item>
+      <item>FLOB</item>
+      <item>HTTPURITYPE</item>
+      <item>INT</item>
+      <item>INTEGER</item>
+      <item>INTERVAL</item>
+      <item>LOB</item>
+      <item>LONG</item>
+      <item>MLSLABEL</item>
+      <item>MONTH</item>
+      <item>NATIONAL</item>
+      <item>NCHAR</item>
+      <item>NCLOB</item>
+      <item>NUMBER</item>
+      <item>NUMERIC</item>
+      <item>NVARCHAR</item>
+      <item>OBJECT</item>
+      <item>PLS_INTEGER</item>
+      <item>PRECISION</item>
+      <item>RAW</item>
+      <item>REAL</item>
+      <item>RECORD</item>
+      <item>ROWID</item>
+      <item>SECOND</item>
+      <item>SINGLE</item>
+      <item>SMALLINT</item>
+      <item>TIME</item>
+      <item>TIMESTAMP</item>
+      <item>URIFACTORYTYPE</item>
+      <item>URITYPE</item>
+      <item>UROWID</item>
+      <item>VARCHAR</item>
+      <item>VARCHAR2</item>
+      <item>VARRAY</item>
+      <item>VARYING</item>
+      <item>XMLTYPE</item>
+      <item>YEAR</item>
+      <item>ZONE</item>
+    </list>
+    <contexts>
+      <context name="Normal" attribute="Normal Text" lineEndContext="#stay">
+        <DetectSpaces/>
+
+        <!-- comments, before operators -->
+        <Detect2Chars attribute="Comment" context="Singleline PL/SQL-style comment" char="-" char1="-"/>
+        <Detect2Chars attribute="Comment" context="Multiline C-style comment" char="/" char1="*" beginRegion="Comment"/>
+        <RegExpr attribute="Comment" context="SQL*Plus remark directive" String="^rem\b" insensitive="true" column="0"/>
+
+        <keyword attribute="Keyword" String="keywords" context="#stay"/>
+        <keyword attribute="Operator" String="operators" context="#stay"/>
+        <keyword attribute="Function" String="functions" context="#stay"/>
+        <keyword attribute="Data Type" String="types" context="#stay"/>
+
+        <DetectIdentifier/>
+        <!-- extra data types -->
+        <RegExpr attribute="Data Type" context="#stay" String="%(?:bulk_(?:exceptions|rowcount)|found|isopen|notfound|rowcount|rowtype|type)\b" insensitive="true"/>
+        <!-- numbers -->
+        <HlCHex attribute="Hex" context="#stay"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Decimal" context="#stay"/>
+        <!-- strings -->
+        <DetectChar attribute="String" context="String literal" char="'"/>
+
+        <DetectChar attribute="Identifier" context="User-defined identifier" char="&quot;"/>
+        <RegExpr attribute="External Variable" context="#stay" String="(:|&amp;&amp;?)\w+"/>
+        <RegExpr attribute="Symbol" context="#stay" String="^/$" column="0"/>
+        <RegExpr attribute="Preprocessor" context="SQL*Plus directive to include file" String="^@@?[^@ \t\r\n]" column="0"/>
+      </context>
+      <context name="String literal" attribute="String" lineEndContext="#stay">
+        <Detect2Chars attribute="String" context="#pop" char="\" char1="'"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <RegExpr attribute="External Variable" context="#stay" String="&amp;&amp;?\w+"/>
+        <Detect2Chars attribute="String Char" context="#stay" char="'" char1="'"/>
+        <DetectChar attribute="String" context="#pop" char="'"/>
+      </context>
+      <context name="Singleline PL/SQL-style comment" attribute="Comment" lineEndContext="#pop"/>
+      <context name="Multiline C-style comment" attribute="Comment" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+      <context name="SQL*Plus remark directive" attribute="Comment" lineEndContext="#pop"/>
+      <context name="User-defined identifier" attribute="Identifier" lineEndContext="#pop">
+        <DetectChar attribute="Identifier" context="#pop" char="&quot;"/>
+      </context>
+      <context name="SQL*Plus directive to include file" attribute="Preprocessor" lineEndContext="#pop"/>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text"       defStyleNum="dsNormal"/>
+      <itemData name="Keyword"           defStyleNum="dsKeyword"/>
+      <itemData name="Operator"          defStyleNum="dsNormal"/>
+      <itemData name="Function"          defStyleNum="dsFunction"/>
+      <itemData name="Data Type"         defStyleNum="dsDataType"/>
+      <itemData name="Decimal"           defStyleNum="dsDecVal"/>
+      <itemData name="Hex"               defStyleNum="dsBaseN"/>
+      <itemData name="Float"             defStyleNum="dsFloat"/>
+      <itemData name="String"            defStyleNum="dsString"/>
+      <itemData name="String Char"       defStyleNum="dsChar"/>
+      <itemData name="Comment"           defStyleNum="dsComment"/>
+      <itemData name="Identifier"        defStyleNum="dsOthers"/>
+      <itemData name="External Variable" defStyleNum="dsChar"/>
+      <itemData name="Symbol"            defStyleNum="dsChar"/>
+      <itemData name="Preprocessor"      defStyleNum="dsOthers"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="--"/>
+      <comment name="multiLine" start="/*" end="*/"/>
+    </comments>
+    <keywords casesensitive="0" weakDeliminator="+-*/|=!&lt;&gt;~^:."/>
+  </general>
+</language>
diff --git a/xml/tcl.xml b/xml/tcl.xml
new file mode 100644
--- /dev/null
+++ b/xml/tcl.xml
@@ -0,0 +1,565 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+
+<!-- Authors: Alexander Dederer & JM. Philippe -->
+<!-- Copyright: BSD copyright & Irsid - Arcelor Innovation R&D -->
+<!-- Ported to Kate 2.0/ KWrite 4.0 by Joseph Wenninger (Updated by Simon Robins)-->
+<!--
+    Updated by Pawel Salawa (boogie at scripts dot one dot pl)
+
+    Revision history:
+        1.11:
+            - added new commands of Tcl/tk 8.5, released in 2007
+        1.10:
+            - Fixed problem with single ':' character after variable name (it's no longer variable,
+              because only double-colon is namespace delimiter and can be part of variable name).
+            - Fixed problem with matching quote character next to regular character, for example:
+              puts {"string"}
+              In that case left bracked was marked as string, but it's no longer like that.
+            - Fixed problem with variable names like: ${text\}test}
+              It whole is valid variable name, because of escape character.
+            - Fixed problem with marking ';' character as a comment when '#' character was after the ';'.
+            - Fixed problem with marking options. '-' character after word-delimiter character caused
+              marking that word-delimiter character as option too, even it wasn't white-space.
+            - Few other minor optimalizations.
+	1.09:
+	    - Added fast comments support (Ctrl+d or whatever your shortcut is)
+	    - Fixed single-character variables detection
+	    - Fixed detection of varaibles with names containing serval namespace delimiters (::)
+-->
+
+<language name="Tcl/Tk" version="3" kateversion="2.4" section="Scripts" extensions="*.tcl;*.tk" mimetype="text/x-tcl" license="BSD">
+  <highlighting>
+    <list name="keywords">
+      <item>after</item>
+      <item>append</item>
+      <item>AppleScript</item>
+      <item>argv</item>
+      <item>argc</item>
+      <item>array</item>
+      <item>auto_execk</item>
+      <item>auto_execok</item>
+      <item>auto_import</item>
+      <item>auto_load</item>
+      <item>auto_mkindex</item>
+      <item>auto_mkindex_old</item>
+      <item>auto_path</item>
+      <item>auto_qualify</item>
+      <item>auto_reset</item>
+      <item>beep</item>
+      <item>bell</item>
+      <item>binary</item>
+      <item>bind</item>
+      <item>bindtags</item>
+      <item>bgerror</item>
+      <item>break</item>
+      <item>button</item>
+      <item>canvas</item>
+      <item>case</item>
+      <item>catch</item>
+      <item>cd</item>
+      <item>chan</item>
+      <item>checkbutton</item>
+      <item>clipboard</item>
+      <item>clock</item>
+      <item>close</item>
+      <item>combobox</item>
+      <item>concat</item>
+      <item>console</item>
+      <item>continue</item>
+      <item>dde</item>
+      <item>destroy</item>
+      <item>dict</item>
+      <item>else</item>
+      <item>elseif</item>
+      <item>encoding</item>
+      <item>entry</item>
+      <item>env</item>
+      <item>eof</item>
+      <item>error</item>
+      <item>errorCode</item>
+      <item>errorInfo</item>
+      <item>eval</item>
+      <item>event</item>
+      <item>exec</item>
+      <item>exit</item>
+      <item>expr</item>
+      <item>fblocked</item>
+      <item>fconfigure</item>
+      <item>fcopy</item>
+      <item>file</item>
+      <item>fileevent</item>
+      <item>flush</item>
+      <item>focus</item>
+      <item>font</item>
+      <item>for</item>
+      <item>foreach</item>
+      <item>format</item>
+      <item>frame</item>
+      <item>gets</item>
+      <item>glob</item>
+      <item>global</item>
+      <item>grab</item>
+      <item>grid</item>
+      <item>history</item>
+      <item>if</item>
+      <item>image</item>
+      <item>incr</item>
+      <item>info</item>
+      <item>interp</item>
+      <item>join</item>
+      <item>label</item>
+      <item>labelframe</item>
+      <item>lappend</item>
+      <item>lassign</item>
+      <item>lindex</item>
+      <item>linsert</item>
+      <item>list</item>
+      <item>listbox</item>
+      <item>llength</item>
+      <item>load</item>
+      <item>lower</item>
+      <item>lrange</item>
+      <item>lremove</item>
+      <item>lrepeat</item>
+      <item>lreplace</item>
+      <item>lreverse</item>
+      <item>lsearch</item>
+      <item>lset</item>
+      <item>lsort</item>
+      <item>menu</item>
+      <item>menubutton</item>
+      <item>message</item>
+      <item>namespace</item>
+      <item>notebook</item>
+      <item>open</item>
+      <item>option</item>
+      <item>OptProc</item>
+      <item>pack</item>
+      <item>package</item>
+      <item>panedwindow</item>
+      <item>parray</item>
+      <item>pid</item>
+      <item>place</item>
+      <item>pkg_mkIndex</item>
+      <item>proc</item>
+      <item>progressbar</item>
+      <item>puts</item>
+      <item>pwd</item>
+      <item>radiobutton</item>
+      <item>raise</item>
+      <item>read</item>
+      <item>regexp</item>
+      <item>registry</item>
+      <item>regsub</item>
+      <item>rename</item>
+      <item>resource</item>
+      <item>return</item>
+      <item>scale</item>
+      <item>scan</item>
+      <item>scrollbar</item>
+      <item>seek</item>
+      <item>selection</item>
+      <item>send</item>
+      <item>separator</item>
+      <item>set</item>
+      <item>sizegrip</item>
+      <item>socket</item>
+      <item>source</item>
+      <item>spinbox</item>
+      <item>split</item>
+      <item>string</item>
+      <item>style</item>
+      <item>subst</item>
+      <item>switch</item>
+      <item>tclLog</item>
+      <item>tcl_endOfWord</item>
+      <item>tcl_findLibrary</item>
+      <item>tcl_library</item>
+      <item>tcl_patchLevel</item>
+      <item>tcl_platform</item>
+      <item>tcl_precision</item>
+      <item>tcl_rcFileName</item>
+      <item>tcl_rcRsrcName</item>
+      <item>tcl_startOfNextWord</item>
+      <item>tcl_startOfPreviousWord</item>
+      <item>tcl_traceCompile</item>
+      <item>tcl_traceExec</item>
+      <item>tcl_version</item>
+      <item>tcl_wordBreakAfter</item>
+      <item>tcl_wordBreakBefore</item>
+      <item>tell</item>
+      <item>text</item>
+      <item>time</item>
+      <item>tk</item>
+      <item>tkTabToWindow</item>
+      <item>tkwait</item>
+      <item>tk_chooseColor</item>
+      <item>tk_chooseDirectory</item>
+      <item>tk_focusFollowMouse</item>
+      <item>tk_focusNext</item>
+      <item>tk_focusPrev</item>
+      <item>tk_getOpenFile</item>
+      <item>tk_getSaveFile</item>
+      <item>tk_library</item>
+      <item>tk_menuSetFocus</item>
+      <item>tk_messageBox</item>
+      <item>tk_optionMenu</item>
+      <item>tk_patchLevel</item>
+      <item>tk_popup</item>
+      <item>tk_strictMotif</item>
+      <item>tk_textCopy</item>
+      <item>tk_textCut</item>
+      <item>tk_textPaste</item>
+      <item>tk_version</item>
+      <item>toplevel</item>
+      <item>trace</item>
+      <item>traverseTo</item>
+      <item>treeview</item>
+      <item>unknown</item>
+      <item>unload</item>
+      <item>unset</item>
+      <item>update</item>
+      <item>uplevel</item>
+      <item>upvar</item>
+      <item>variable</item>
+      <item>vwait</item>
+      <item>while</item>
+      <item>winfo</item>
+      <item>wm</item>
+    </list>
+
+    <list name="keywords-opt">
+      <item>add</item>
+      <item>args</item>
+      <item>atime</item>
+      <item>attributes</item>
+      <item>body</item>
+      <item>bytelength</item>
+      <item>cancel</item>
+      <item>channels</item>
+      <item>clicks</item>
+      <item>cmdcount</item>
+      <item>commands</item>
+      <item>compare</item>
+      <item>complete</item>
+      <item>convertfrom</item>
+      <item>convertto</item>
+      <item>copy</item>
+      <item>default</item>
+      <item>delete</item>
+      <item>dirname</item>
+      <item>equal</item>
+      <item>executable</item>
+      <item>exists</item>
+      <item>extension</item>
+      <item>first</item>
+      <item>forget</item>
+      <item>format</item>
+      <item>functions</item>
+      <item>globals</item>
+      <item>hostname</item>
+      <item>idle</item>
+      <item>ifneeded</item>
+      <item>index</item>
+      <item>info</item>
+      <item>is</item>
+      <item>isdirectory</item>
+      <item>isfile</item>
+      <item>join</item>
+      <item>last</item>
+      <item>length</item>
+      <item>level</item>
+      <item>library</item>
+      <item>link</item>
+      <item>loaded</item>
+      <item>locals</item>
+      <item>lstat</item>
+      <item>map</item>
+      <item>match</item>
+      <item>mkdir</item>
+      <item>mtime</item>
+      <item>nameofexecutable</item>
+      <item>names</item>
+      <item>nativename</item>
+      <item>normalize</item>
+      <item>number</item>
+      <item>owned</item>
+      <item>patchlevel</item>
+      <item>pathtype</item>
+      <item>present</item>
+      <item>procs</item>
+      <item>provide</item>
+      <item>range</item>
+      <item>readable</item>
+      <item>readlink</item>
+      <item>remove</item>
+      <item>rename</item>
+      <item>repeat</item>
+      <item>replace</item>
+      <item>require</item>
+      <item>rootname</item>
+      <item>scan</item>
+      <item>script</item>
+      <item>seconds</item>
+      <item>separator</item>
+      <item>sharedlibextension</item>
+      <item>size</item>
+      <item>split</item>
+      <item>stat</item>
+      <item>system</item>
+      <item>tail</item>
+      <item>tclversion</item>
+      <item>tolower</item>
+      <item>totitle</item>
+      <item>toupper</item>
+      <item>trim</item>
+      <item>trimleft</item>
+      <item>trimright</item>
+      <item>type</item>
+      <item>unknown</item>
+      <item>variable</item>
+      <item>vars</item>
+      <item>vcompare</item>
+      <item>vdelete</item>
+      <item>versions</item>
+      <item>vinfo</item>
+      <item>volumes</item>
+      <item>vsatisfies</item>
+      <item>wordend</item>
+      <item>wordstart</item>
+      <item>writable</item>
+
+      <item>activate</item>
+      <item>actual</item>
+      <item>addtag</item>
+      <item>append</item>
+      <item>appname</item>
+      <item>aspect</item>
+      <item>atom</item>
+      <item>atomname</item>
+      <item>bbox</item>
+      <item>bind</item>
+      <item>broadcast</item>
+      <item>canvasx</item>
+      <item>canvasy</item>
+      <item>caret</item>
+      <item>cells</item>
+      <item>cget</item>
+      <item>children</item>
+      <item>class</item>
+      <item>clear</item>
+      <item>client</item>
+      <item>clone</item>
+      <item>colormapfull</item>
+      <item>colormapwindows</item>
+      <item>command</item>
+      <item>configure</item>
+      <item>containing</item>
+      <item>coords</item>
+      <item>create</item>
+      <item>current</item>
+      <item>curselection</item>
+      <item>dchars</item>
+      <item>debug</item>
+      <item>deiconify</item>
+      <item>delta</item>
+      <item>depth</item>
+      <item>deselect</item>
+      <item>dlineinfo</item>
+      <item>dtag</item>
+      <item>dump</item>
+      <item>edit</item>
+      <item>entrycget</item>
+      <item>entryconfigure</item>
+      <item>families</item>
+      <item>find</item>
+      <item>flash</item>
+      <item>focus</item>
+      <item>focusmodel</item>
+      <item>fpixels</item>
+      <item>fraction</item>
+      <item>frame</item>
+      <item>generate</item>
+      <item>geometry</item>
+      <item>get</item>
+      <item>gettags</item>
+      <item>grid</item>
+      <item>group</item>
+      <item>handle</item>
+      <item>height</item>
+      <item>hide</item>
+      <item>iconbitmap</item>
+      <item>iconify</item>
+      <item>iconmask</item>
+      <item>iconname</item>
+      <item>iconposition</item>
+      <item>iconwindow</item>
+      <item>icursor</item>
+      <item>id</item>
+      <item>identify</item>
+      <item>image</item>
+      <item>insert</item>
+      <item>interps</item>
+      <item>inuse</item>
+      <item>invoke</item>
+      <item>ismapped</item>
+      <item>itemcget</item>
+      <item>itemconfigure</item>
+      <item>keys</item>
+      <item>lower</item>
+      <item>manager</item>
+      <item>mark</item>
+      <item>maxsize</item>
+      <item>measure</item>
+      <item>metrics</item>
+      <item>minsize</item>
+      <item>move</item>
+      <item>name</item>
+      <item>nearest</item>
+      <item>overrideredirect</item>
+      <item>own</item>
+      <item>panecget</item>
+      <item>paneconfigure</item>
+      <item>panes</item>
+      <item>parent</item>
+      <item>pathname</item>
+      <item>pixels</item>
+      <item>pointerx</item>
+      <item>pointerxy</item>
+      <item>pointery</item>
+      <item>positionfrom</item>
+      <item>post</item>
+      <item>postcascade</item>
+      <item>postscript</item>
+      <item>protocol</item>
+      <item>proxy</item>
+      <item>raise</item>
+      <item>release</item>
+      <item>reqheight</item>
+      <item>reqwidth</item>
+      <item>resizable</item>
+      <item>rgb</item>
+      <item>rootx</item>
+      <item>rooty</item>
+      <item>scale</item>
+      <item>scaling</item>
+      <item>screen</item>
+      <item>screencells</item>
+      <item>screendepth</item>
+      <item>screenheight</item>
+      <item>screenmmheight</item>
+      <item>screenmmwidth</item>
+      <item>screenvisual</item>
+      <item>screenwidth</item>
+      <item>search</item>
+      <item>see</item>
+      <item>select</item>
+      <item>selection</item>
+      <item>server</item>
+      <item>set</item>
+      <item>show</item>
+      <item>sizefrom</item>
+      <item>stackorder</item>
+      <item>state</item>
+      <item>status</item>
+      <item>tag</item>
+      <item>title</item>
+      <item>toplevel</item>
+      <item>transient</item>
+      <item>types</item>
+      <item>unpost</item>
+      <item>useinputmethods</item>
+      <item>validate</item>
+      <item>values</item>
+      <item>viewable</item>
+      <item>visual</item>
+      <item>visualid</item>
+      <item>visualsavailable</item>
+      <item>vrootheight</item>
+      <item>vrootwidth</item>
+      <item>vrootx</item>
+      <item>vrooty</item>
+      <item>width</item>
+      <item>window</item>
+      <item>windowingsystem</item>
+      <item>withdraw</item>
+      <item>x</item>
+      <item>xview</item>
+      <item>y</item>
+    </list>
+
+    <contexts>
+      <context name = "Base" attribute = "Normal Text" lineEndContext="#stay">
+      
+        <!-- Virtual blocks -->
+        <RegExpr attribute="Region Marker" context="#stay" String="#\s*BEGIN.*$" beginRegion="region" firstNonSpace="true"/>
+        <RegExpr attribute="Region Marker" context="#stay" String="#\s*END.*$" endRegion="region" firstNonSpace="true"/>
+        
+        <!-- Standard -->
+        <keyword String = "keywords" attribute = "Keyword" context="#stay"/>
+        <keyword String = "keywords-opt" attribute = "Parameter" context="#stay"/>
+        <Float attribute = "Float" context="#stay"/>
+        <Int attribute ="Decimal" context="#stay"/>
+        <RegExpr String="\\." attribute = "Char" context = "#stay"/>
+        
+        <!-- Options -->
+        <RegExpr String = "\s-\w+" attribute = "Parameter" context="#stay"/>
+        
+        <!-- Variables -->
+        <RegExpr String = "\$\{([^\}]|\\\})+\}" attribute = "Variable" context="#stay"/>
+        <RegExpr String = "\$(::|\w)+" attribute = "Variable" context="#stay"/>
+        
+        <!-- Strings -->
+        <RegExpr String = "&quot;{2}" attribute = "String" context="#stay"/>
+        <RegExpr String = "&quot;" attribute = "String" context="String"/>
+        
+        <!-- Comments -->
+        <DetectChar char = ";" attribute = "Normal Text" context="New command line" />
+        <DetectChar char = "#" attribute = "Comment" context="Comment" firstNonSpace="true"/>
+        
+        <!-- Braces, brackets, etc -->
+        <DetectChar char = "{" attribute = "Keyword" context="#stay" beginRegion="block"/>
+        <DetectChar char = "}" attribute = "Keyword" context="#stay" endRegion="block"/>
+        <DetectChar char = "[" attribute = "Keyword" context="#stay"/>
+        <DetectChar char = "]" attribute = "Keyword" context="#stay"/>
+        
+      </context>
+
+      <context name = "String" attribute = "String" lineEndContext="#stay">
+        <RegExpr String="\\." attribute = "Char" context = "#stay"/>
+        <DetectChar char="&quot;" attribute = "String" context = "#pop"/>
+        <DetectChar char  = "$" attribute = "Variable" context="#stay"/>
+      </context>
+
+      <context name = "Comment" attribute = "Comment" lineEndContext="#pop"/>
+
+      <context name = "New command line" attribute = "Normal Text" lineEndContext="#stay">
+        <RegExpr String = "\s*#" attribute="Comment" context="Comment" />
+        <RegExpr String = "." attribute="Normal Text" context="#pop" lookAhead="true" />
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name = "Normal Text" defStyleNum = "dsNormal"/>
+      <itemData name = "Keyword" defStyleNum = "dsKeyword"/>
+      <itemData name = "Decimal" defStyleNum = "dsDecVal"/>
+      <itemData name = "Float" defStyleNum = "dsFloat"/>
+      <itemData name = "String" defStyleNum = "dsString"/>
+      <itemData name = "Comment" defStyleNum = "dsComment"/>
+      <itemData name = "Parameter" defStyleNum = "dsOthers"/>
+      <itemData name = "Variable" defStyleNum = "dsDataType"/>
+      <itemData name = "Char" defStyleNum="dsChar"/>
+      <itemData name = "Region Marker" defStyleNum="dsRegionMarker"/>
+    </itemDatas>
+
+  </highlighting>
+
+  <general>
+    <comments>
+	<comment name="singleLine" start="#" />
+    </comments>
+    <keywords casesensitive="1"/>
+  </general>
+
+</language>
diff --git a/xml/tcsh.xml b/xml/tcsh.xml
new file mode 100644
--- /dev/null
+++ b/xml/tcsh.xml
@@ -0,0 +1,868 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+        <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
+        <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">
+        <!ENTITY word     "[|&amp;;()&lt;&gt;\s]+">	<!-- see man csh -->
+        <!ENTITY eos      "(?=($|\s))">			<!-- eol or space following -->
+        <!ENTITY noword   "(?![\w$+-])">		<!-- no word, $, + or - following -->
+        <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )">     <!-- valid character in a file name -->
+]>
+<language name="Tcsh" version="1" kateversion="2.4" section="Scripts" extensions="*.csh;*.tcsh;csh.cshrc;csh.login;.tcshrc;.cshrc;.login" mimetype="application/x-csh" casesensitive="1" author="Matthew Woehlke (mw_triad@users.sourceforge.net)" license="LGPL">
+
+<!-- (c) 2006 Matthew Woehlke (mw_triad@users.sourceforge.net)
+    Based on the bash highlighter by Wilbert Berendsen (wilbert@kde.nl)
+    Released under the LGPL -->
+
+  <highlighting>
+    <list name="keywords">
+      <item>else</item>
+      <item>for</item>
+      <item>function</item>
+      <item>in</item>
+      <item>select</item>
+      <item>until</item>
+      <item>while</item>
+      <item>.</item>
+      <item>then</item>
+    </list>
+
+    <list name="builtins">
+      <item>:</item>
+      <item>alias</item>
+      <item>alloc</item>
+      <item>bg</item>
+      <item>bindkey</item>
+      <item>break</item>
+      <item>builtins</item>
+      <item>bye</item>
+      <item>cd</item>
+      <item>chdir</item>
+      <item>complete</item>
+      <item>continue</item>
+      <item>dirs</item>
+      <item>echo</item>
+      <item>echotc</item>
+      <item>eval</item>
+      <item>exec</item>
+      <item>exit</item>
+      <item>fg</item>
+      <item>filetest</item>
+      <item>glob</item>
+      <item>hashstat</item>
+      <item>history</item>
+      <item>hup</item>
+      <item>inlib</item>
+      <item>jobs</item>
+      <item>kill</item>
+      <item>limit</item>
+      <item>log</item>
+      <item>login</item>
+      <item>logout</item>
+      <item>ls-F</item>
+      <item>migrate</item>
+      <item>newgrp</item>
+      <item>nice</item>
+      <item>nohup</item>
+      <item>notify</item>
+      <item>onintr</item>
+      <item>popd</item>
+      <item>printenv</item>
+      <item>pushd</item>
+      <item>rehash</item>
+      <item>repeat</item>
+      <item>sched</item>
+      <item>settc</item>
+      <item>setty</item>
+      <item>shift</item>
+      <item>source</item>
+      <item>stop</item>
+      <item>suspend</item>
+      <item>telltc</item>
+      <item>time</item>
+      <item>umask</item>
+      <item>unalias</item>
+      <item>uncomplete</item>
+      <item>unhash</item>
+      <item>unlimit</item>
+      <item>ver</item>
+      <item>wait</item>
+      <item>watchlog</item>
+      <item>where</item>
+      <item>which</item>
+    </list>
+
+    <list name="builtins_var">
+      <item>unset</item>
+      <item>unsetenv</item>
+    </list>
+
+    <list name="unixcommands">
+      <!-- /bin -->
+      <item>arch</item>
+      <item>awk</item>
+      <item>bash</item>
+      <item>bunzip2</item>
+      <item>bzcat</item>
+      <item>bzcmp</item>
+      <item>bzdiff</item>
+      <item>bzegrep</item>
+      <item>bzfgrep</item>
+      <item>bzgrep</item>
+      <item>bzip2</item>
+      <item>bzip2recover</item>
+      <item>bzless</item>
+      <item>bzmore</item>
+      <item>cat</item>
+      <item>chattr</item>
+      <item>chgrp</item>
+      <item>chmod</item>
+      <item>chown</item>
+      <item>chvt</item>
+      <item>cp</item>
+      <item>date</item>
+      <item>dd</item>
+      <item>deallocvt</item>
+      <item>df</item>
+      <item>dir</item>
+      <item>dircolors</item>
+      <item>dmesg</item>
+      <item>dnsdomainname</item>
+      <item>domainname</item>
+      <item>du</item>
+      <item>dumpkeys</item>
+      <item>echo</item>
+      <item>ed</item>
+      <item>egrep</item>
+      <item>false</item>
+      <item>fgconsole</item>
+      <item>fgrep</item>
+      <item>fuser</item>
+      <item>gawk</item>
+      <item>getkeycodes</item>
+      <item>gocr</item>
+      <item>grep</item>
+      <item>groff</item>
+      <item>groups</item>
+      <item>gunzip</item>
+      <item>gzexe</item>
+      <item>gzip</item>
+      <item>hostname</item>
+      <item>igawk</item>
+      <item>install</item>
+      <item>kbd_mode</item>
+      <item>kbdrate</item>
+      <item>killall</item>
+      <item>last</item>
+      <item>lastb</item>
+      <item>link</item>
+      <item>ln</item>
+      <item>loadkeys</item>
+      <item>loadunimap</item>
+      <item>login</item>
+      <item>ls</item>
+      <item>lsattr</item>
+      <item>lsmod</item>
+      <item>lsmod.old</item>
+      <item>mapscrn</item>
+      <item>mesg</item>
+      <item>mkdir</item>
+      <item>mkfifo</item>
+      <item>mknod</item>
+      <item>mktemp</item>
+      <item>more</item>
+      <item>mount</item>
+      <item>mv</item>
+      <item>nano</item>
+      <item>netstat</item>
+      <item>nisdomainname</item>
+      <item>nroff</item>
+      <item>openvt</item>
+      <item>pgawk</item>
+      <item>pidof</item>
+      <item>ping</item>
+      <item>ps</item>
+      <item>pstree</item>
+      <item>pwd</item>
+      <item>rbash</item>
+      <item>readlink</item>
+      <item>red</item>
+      <item>resizecons</item>
+      <item>rm</item>
+      <item>rmdir</item>
+      <item>run-parts</item>
+      <item>sash</item>
+      <item>sed</item>
+      <item>setfont</item>
+      <item>setkeycodes</item>
+      <item>setleds</item>
+      <item>setmetamode</item>
+      <item>setserial</item>
+      <item>sh</item>
+      <item>showkey</item>
+      <item>shred</item>
+      <item>sleep</item>
+      <item>ssed</item>
+      <item>stat</item>
+      <item>stty</item>
+      <item>su</item>
+      <item>sync</item>
+      <item>tar</item>
+      <item>tempfile</item>
+      <item>touch</item>
+      <item>troff</item>
+      <item>true</item>
+      <item>umount</item>
+      <item>uname</item>
+      <item>unicode_start</item>
+      <item>unicode_stop</item>
+      <item>unlink</item>
+      <item>utmpdump</item>
+      <item>uuidgen</item>
+      <item>vdir</item>
+      <item>wall</item>
+      <item>wc</item>
+      <item>ypdomainname</item>
+      <item>zcat</item>
+      <item>zcmp</item>
+      <item>zdiff</item>
+      <item>zegrep</item>
+      <item>zfgrep</item>
+      <item>zforce</item>
+      <item>zgrep</item>
+      <item>zless</item>
+      <item>zmore</item>
+      <item>znew</item>
+      <item>zsh</item>
+
+      <!-- some from /usr/bin -->
+      <item>aclocal</item>
+      <item>aconnect</item>
+      <item>aplay</item>
+      <item>apm</item>
+      <item>apmsleep</item>
+      <item>apropos</item>
+      <item>ar</item>
+      <item>arecord</item>
+      <item>as</item>
+      <item>as86</item>
+      <item>autoconf</item>
+      <item>autoheader</item>
+      <item>automake</item>
+      <item>awk</item>
+      <item>basename</item>
+      <item>bc</item>
+      <item>bison</item>
+      <item>c++</item>
+      <item>cal</item>
+      <item>cat</item>
+      <item>cc</item>
+      <item>cdda2wav</item>
+      <item>cdparanoia</item>
+      <item>cdrdao</item>
+      <item>cd-read</item>
+      <item>cdrecord</item>
+      <item>chfn</item>
+      <item>chgrp</item>
+      <item>chmod</item>
+      <item>chown</item>
+      <item>chroot</item>
+      <item>chsh</item>
+      <item>clear</item>
+      <item>cmp</item>
+      <item>co</item>
+      <item>col</item>
+      <item>comm</item>
+      <item>cp</item>
+      <item>cpio</item>
+      <item>cpp</item>
+      <item>cut</item>
+      <item>dc</item>
+      <item>dd</item>
+      <item>df</item>
+      <item>diff</item>
+      <item>diff3</item>
+      <item>dir</item>
+      <item>dircolors</item>
+      <item>directomatic</item>
+      <item>dirname</item>
+      <item>du</item>
+      <item>env</item>
+      <item>expr</item>
+      <item>fbset</item>
+      <item>file</item>
+      <item>find</item>
+      <item>flex</item>
+      <item>flex++</item>
+      <item>fmt</item>
+      <item>free</item>
+      <item>ftp</item>
+      <item>funzip</item>
+      <item>fuser</item>
+      <item>g++</item>
+      <item>gawk</item>
+      <item>gc</item>
+      <item>gcc</item>
+      <item>gdb</item>
+      <item>getent</item>
+      <item>getopt</item>
+      <item>gettext</item>
+      <item>gettextize</item>
+      <item>gimp</item>
+      <item>gimp-remote</item>
+      <item>gimptool</item>
+      <item>gmake</item>
+      <item>gs</item>
+      <item>head</item>
+      <item>hexdump</item>
+      <item>id</item>
+      <item>install</item>
+      <item>join</item>
+      <item>kill</item>
+      <item>killall</item>
+      <item>ld</item>
+      <item>ld86</item>
+      <item>ldd</item>
+      <item>less</item>
+      <item>lex</item>
+      <item>ln</item>
+      <item>locate</item>
+      <item>lockfile</item>
+      <item>logname</item>
+      <item>lp</item>
+      <item>lpr</item>
+      <item>ls</item>
+      <item>lynx</item>
+      <item>m4</item>
+      <item>make</item>
+      <item>man</item>
+      <item>mkdir</item>
+      <item>mknod</item>
+      <item>msgfmt</item>
+      <item>mv</item>
+      <item>namei</item>
+      <item>nasm</item>
+      <item>nawk</item>
+      <item>nice</item>
+      <item>nl</item>
+      <item>nm</item>
+      <item>nm86</item>
+      <item>nmap</item>
+      <item>nohup</item>
+      <item>nop</item>
+      <item>od</item>
+      <item>passwd</item>
+      <item>patch</item>
+      <item>pcregrep</item>
+      <item>pcretest</item>
+      <item>perl</item>
+      <item>perror</item>
+      <item>pidof</item>
+      <item>pr</item>
+      <item>printf</item>
+      <item>procmail</item>
+      <item>prune</item>
+      <item>ps2ascii</item>
+      <item>ps2epsi</item>
+      <item>ps2frag</item>
+      <item>ps2pdf</item>
+      <item>ps2ps</item>
+      <item>psbook</item>
+      <item>psmerge</item>
+      <item>psnup</item>
+      <item>psresize</item>
+      <item>psselect</item>
+      <item>pstops</item>
+      <item>rcs</item>
+      <item>rev</item>
+      <item>rm</item>
+      <item>scp</item>
+      <item>sed</item>
+      <item>seq</item>
+      <item>setterm</item>
+      <item>shred</item>
+      <item>size</item>
+      <item>size86</item>
+      <item>skill</item>
+      <item>slogin</item>
+      <item>snice</item>
+      <item>sort</item>
+      <item>sox</item>
+      <item>split</item>
+      <item>ssh</item>
+      <item>ssh-add</item>
+      <item>ssh-agent</item>
+      <item>ssh-keygen</item>
+      <item>ssh-keyscan</item>
+      <item>stat</item>
+      <item>strings</item>
+      <item>strip</item>
+      <item>sudo</item>
+      <item>suidperl</item>
+      <item>sum</item>
+      <item>tac</item>
+      <item>tail</item>
+      <item>tee</item>
+      <item>test</item>
+      <item>tr</item>
+      <item>uniq</item>
+      <item>unlink</item>
+      <item>unzip</item>
+      <item>updatedb</item>
+      <item>updmap</item>
+      <item>uptime</item>
+      <item>users</item>
+      <item>vmstat</item>
+      <item>w</item>
+      <item>wc</item>
+      <item>wget</item>
+      <item>whatis</item>
+      <item>whereis</item>
+      <item>which</item>
+      <item>who</item>
+      <item>whoami</item>
+      <item>write</item>
+      <item>xargs</item>
+      <item>yacc</item>
+      <item>yes</item>
+      <item>zip</item>
+      <item>zsoelim</item>
+
+      <!-- others -->
+      <item>dcop</item>
+      <item>kdialog</item>
+      <item>kfile</item>
+      <item>xhost</item>
+      <item>xmodmap</item>
+      <item>xset</item>
+    </list>
+
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Start">
+        <IncludeRules context="FindAll" />
+      </context>
+
+<!-- ====== The following rulessets are meant to be included ======== -->
+      <!-- FindAll tries to interpret everything -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindAll">
+        <IncludeRules context="FindComments" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- FindMost tries to interpret anything except commands -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindMost">
+        <IncludeRules context="FindComments" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+
+      <!-- FindComments consumes shell comments till EOL -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindComments">
+        <DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="Comment" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <!-- FindCommentsParen consumes shell comments till EOL or a closing parenthese -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">
+        <DetectChar attribute="Comment" context="CommentParen" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="CommentParen" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="CommentParen">
+        <RegExpr attribute="Comment" context="#pop" String="[^)](?=\))" />
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <!-- FindCommentsBackq consumes shell comments till EOL or a backquote -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">
+        <DetectChar attribute="Comment" context="CommentBackq" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="CommentBackq" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="CommentBackq">
+        <RegExpr attribute="Comment" context="#pop" String="[^`](?=`)" />
+        <IncludeRules context="##Alerts" />
+      </context>
+
+
+      <!-- breaksw case default if else end endif endsw foreach goto
+           set setenv switch while -->
+
+      <!-- FindCommands matches many items that can be expected outside strings, substitutions etc. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindCommands">
+        <!-- start expression in double parentheses -->
+<!--!--><Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression" />
+        <!-- start expression in double brackets -->
+<!--!--><RegExpr attribute="Keyword" context="ExprDblBracket" String="\[\[&eos;" beginRegion="expression" column="0"/>
+<!--!--><RegExpr attribute="Keyword" context="ExprDblBracket" String="\s\[\[&eos;" beginRegion="expression" />
+        <!-- start expression in single brackets -->
+<!--!--><RegExpr attribute="Builtin" context="ExprBracket" String="\[&eos;" beginRegion="expression" column="0"/>
+<!--!--><RegExpr attribute="Builtin" context="ExprBracket" String="\s\[&eos;" beginRegion="expression" />
+        <!-- start a group command with { -->
+<!--!--><RegExpr attribute="Keyword" context="Group" String="\{&eos;" beginRegion="group" />
+        <!-- start a subshell -->
+<!--!--><DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell" />
+        <!-- match do and if blocks -->
+<!--!--><RegExpr attribute="Keyword" context="#stay" String="\bdo&noword;" beginRegion="do" />
+<!--!--><RegExpr attribute="Keyword" context="#stay" String="\bdone&noword;" endRegion="do" />
+<!--!--><RegExpr attribute="Keyword" context="#stay" String="\belse\s+if&noword;" />
+<!--!--><RegExpr attribute="Keyword" context="#stay" String="\bif&noword;" beginRegion="if" />
+<!--!--><RegExpr attribute="Keyword" context="#stay" String="\bendif&noword;" endRegion="if" />
+        <!-- handle switch as a special case -->
+<!--!--><RegExpr attribute="Keyword" context="Switch" String="\bswitch&noword;" beginRegion="switch" />
+        <!-- handle command line options -->
+        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9][A-Za-z0-9_]*" />
+        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
+        <!-- handle variable assignments -->
+<!--R--><RegExpr attribute="Keyword" context="#stay" String="\b@\s" />
+<!--R--><RegExpr attribute="Keyword" context="#stay" String="\bset\s" />
+        <RegExpr attribute="Keyword" context="CmdSetEnv" String="\bsetenv\s" />
+        <!-- handle functions with function keyword before keywords -->
+<!--!--><StringDetect attribute="Function" context="#stay" String=":()" />
+<!--!--><RegExpr attribute="Keyword" context="FunctionDef" String="\bfunction\b" />
+        <!-- handle keywords -->
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Builtin" context="#stay" String="builtins" />
+        <keyword attribute="Command" context="#stay" String="unixcommands" />
+        <!-- handle commands that have variable names as argument -->
+        <keyword attribute="Builtin" context="VarName" String="builtins_var" />
+        <!-- handle redirection -->
+        <RegExpr attribute="Redirection" context="#stay" String="(&lt;&lt;?|&gt;&gt;?&amp;?!?)" />
+        <!-- handle &, &&, | and || -->
+        <RegExpr attribute="Control" context="#stay" String="([|&amp;])\1?" />
+        <!-- mark function definitions without function keyword -->
+        <RegExpr attribute="Function" context="#stay" String="&funcname;\s*\(\)" />
+      </context>
+
+      <!-- FindOthers contains various rules to mark different shell input -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindOthers">
+        <RegExpr attribute="Escape" context="#stay" String="\\[;&quot;\\'$`{}()|&amp;&lt;&gt;* ]" />
+<!--?   <RegExpr attribute="Escape" context="#stay" String="\{(?!(\s|$))\S*\}" />-->
+        <RegExpr attribute="Path" context="#stay" String="&pathpart;*(?=/)" />
+        <RegExpr attribute="Path" context="#stay" String="~\w*" />
+        <RegExpr attribute="Path" context="#stay" String="/&pathpart;*(?=([\s/):;$`'&quot;]|$))" />
+        <!-- TODO: shell globs -->
+      </context>
+
+      <!-- FindStrings looks for single and double quoted strings, also with $-prefix -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
+        <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
+        <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />
+        <Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
+        <Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1="&quot;" />
+      </context>
+
+      <!-- FindSubstitutions goes after anything starting with $ and ` and their escapes -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
+        <RegExpr attribute="Variable" context="Subscript" String="\$&varname;\[" />
+        <RegExpr attribute="Variable" context="#stay" String="\$&varname;" />
+        <RegExpr attribute="Variable" context="#stay" String="\$[*@#?$!_0-9-]" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{[*@#?$!_0-9-]\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{#&varname;\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{!&varname;\*?\}" />
+        <RegExpr attribute="Variable" context="VarBrace" String="\$\{&varname;" />
+        <RegExpr attribute="Variable" context="VarBrace" String="\$\{[*@#?$!_0-9-](?=[:#%/])" />
+        <StringDetect attribute="Variable" context="ExprDblParenSubst" String="$((" beginRegion="expression" />
+<!--?   <StringDetect attribute="Redirection" context="SubstFile" String="$(&lt;" />-->
+<!--?   <StringDetect attribute="Variable" context="SubstCommand" String="$(" />-->
+        <DetectChar attribute="Backquote" context="SubstBackq" char="`" />
+        <RegExpr attribute="Escape" context="#stay" String="\\[`$\\]" />
+      </context>
+
+      <!-- FindTests finds operators valid in tests -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindTests">
+        <RegExpr attribute="Expression" context="#stay" String="-[rwxXeozsfdlbcpSugktRLDIFNZ](?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="-[AMCUG]:?(?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="-P[0-7]{,3}:?(?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="([|&amp;=&gt;&lt;])\1"/>
+        <RegExpr attribute="Expression" context="#stay" String="[|^&amp;&gt;&lt;+\-*/%!~]"/>
+        <RegExpr attribute="Expression" context="#stay" String="([!=]~|[!&gt;&lt;]=)"/>
+      </context>
+
+
+<!-- ====== These are the contexts that can be branched to ======= -->
+
+      <!-- ExprDblParen consumes an expression started in command mode till )) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">
+        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">
+        <Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprSubParen consumes an expression till ) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprSubParen">
+        <DetectChar attribute="Normal Text" context="#pop" char=")" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprBracket consumes an expression till ] -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracket">
+        <RegExpr attribute="Builtin" context="#pop" String="\s\](?=($|[\s;|&amp;]))" endRegion="expression" />
+        <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindTests" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprDblBracket consumes an expression till ]] -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket">
+        <RegExpr attribute="Keyword" context="#pop" String="\s\]\](?=($|[\s;|&amp;]))" endRegion="expression" />
+        <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindTests" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- Group consumes shell input till } -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Group">
+        <DetectChar attribute="Keyword" context="#pop" char="}" endRegion="group" />
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- SubShell consumes shell input till ) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubShell">
+        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell" />
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- Assign consumes an expression till EOL or whitespace -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthrough="true" fallthroughContext="#pop">
+        <DetectChar attribute="Variable" context="AssignArray" char="(" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+        <RegExpr attribute="Normal Text" context="#stay" String="[\w:,+_./-]+" />
+      </context>
+
+      <!-- AssignArray consumes everything till ), marking assignments -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="AssignArray">
+        <DetectChar attribute="Variable" context="#pop" char=")" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- AssignSubscr first expects a [ then parses subscript and continues with '=value' -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="AssignSubscr" fallthrough="true" fallthroughContext="#pop">
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- Subscript consumes anything till ], marks as Variable -->
+      <context attribute="Variable" lineEndContext="#stay" name="Subscript">
+        <DetectChar attribute="Variable" context="#pop" char="]" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- FunctionDef consumes a name, possibly with (), marks as Function -->
+      <context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="Function" context="#pop" String="\s+&funcname;(\s*\(\))?" />
+      </context>
+
+      <!-- CmdSetEnv handles the name part of setenv -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="CmdSetEnv" fallthrough="true" fallthroughContext="#pop">
+        <!-- handle command line options -->
+        <RegExpr attribute="Variable" context="#pop" String="\b&varname;" />
+        <DetectChar attribute="Variable" context="Assign" char=" " />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- VarName consumes spare variable names and assignments -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VarName" fallthrough="true" fallthroughContext="#pop">
+        <!-- handle command line options -->
+        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9]+" />
+        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
+        <RegExpr attribute="Variable" context="#stay" String="\b&varname;" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindMost" />
+        <!-- stay here in spaces and other safe characters -->
+        <RegExpr attribute="Normal Text" context="#stay" String="[^]})|;`&amp;&gt;&lt;]" />
+      </context>
+
+      <!-- ProcessSubst handles <(command) and >(command) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst">
+        <DetectChar attribute="Redirection" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- StringSQ consumes anything till ' -->
+      <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
+        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
+      </context>
+
+      <!-- StringDQ consumes anything till ", substitutes vars and expressions -->
+      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
+        <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\[`&quot;\\$\n]" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <!-- StringEsc eats till ', but escaping many characters -->
+      <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
+        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\[abefnrtv\\']" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)" />
+      </context>
+
+      <!-- VarBrace is called as soon as ${xxx is encoutered -->
+      <context attribute="Variable" lineEndContext="#stay" name="VarBrace">
+        <DetectChar attribute="Variable" context="#pop" char="}" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <!-- TODO: highlight various special parameter expansions } -->
+      </context>
+
+      <!-- SubstFile is called after a <( or >( is encoutered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstFile">
+        <DetectChar attribute="Redirection" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- SubstCommand is called after a $( is encountered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand">
+        <DetectChar attribute="Variable" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- SubstBackq is called when a backquote is encountered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstBackq">
+        <DetectChar attribute="Backquote" context="#pop" char="`" />
+        <IncludeRules context="FindCommentsBackq" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- Switch is called after the switch keyword is encoutered. This is
+           left over from the bash highlighter where the lonely parentheses
+           would otherwise cause trouble. We keep it because it lets us do a
+           bit of extra syntax validation. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Switch">
+        <RegExpr attribute="Keyword" context="SwitchCase" String="\scase\b" />
+        <RegExpr attribute="Keyword" context="SwitchDefault" String="\sdefault\b" />
+        <RegExpr attribute="Keyword" context="#pop" String="\bendsw(?=$|[\s;)])" endRegion="switch" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- SwitchCase is called when the construct 'switch ... case' has been found. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SwitchCase">
+        <DetectChar attribute="Keyword" context="SwitchExpr" char=":" beginRegion="switchexpr" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- SwitchDefault is called when the construct 'switch ... default' has been found. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SwitchDefault">
+        <DetectChar attribute="Keyword" context="SwitchExpr" char=":" beginRegion="switchexpr" />
+      </context>
+
+      <!-- SwitchExpr eats shell input till breaksw -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SwitchExpr">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="\sbreaksw\b" endRegion="switchexpr" />
+        <RegExpr attribute="Keyword" context="#pop#pop" String="\scase\b" endRegion="switchexpr" lookAhead="true" />
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- HereDoc consumes Here-documents. It is called at the beginning of the "<<" construct. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*&quot;(&word;)&quot;)" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*'(&word;)')" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*\\(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocINQ" String="(&lt;&lt;-\s*(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*&quot;(&word;)&quot;)" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*'(&word;)')" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*\\(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocNQ"  String="(&lt;&lt;\s*(&word;))" lookAhead="true" />
+        <StringDetect attribute="Redirection" context="#pop"  String="&lt;&lt;" /><!-- always met -->
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder">
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="%2[\s;]*$" dynamic="true" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocNQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="%2[\s;]*$" dynamic="true" column="0"/>
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocIQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="\s*%2[\s;]*$" dynamic="true" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocINQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="\s*%2[\s;]*$" dynamic="true" column="0"/>
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"	defStyleNum="dsNormal" />
+      <itemData name="Comment"		defStyleNum="dsComment" />
+      <itemData name="Keyword" 		defStyleNum="dsKeyword" />
+      <itemData name="Control" 		defStyleNum="dsKeyword" />
+      <itemData name="Label"            defStyleNum="dsOthers" />
+      <itemData name="Builtin" 		defStyleNum="dsKeyword" />
+      <itemData name="Command" 		defStyleNum="dsKeyword" />
+      <itemData name="Redirection" 	defStyleNum="dsKeyword" />
+      <itemData name="Escape" 		defStyleNum="dsDataType" />
+      <itemData name="String SingleQ" 	defStyleNum="dsString" />
+      <itemData name="String DoubleQ" 	defStyleNum="dsString" />
+      <itemData name="Backquote" 	defStyleNum="dsKeyword" />
+      <itemData name="String Transl." 	defStyleNum="dsString" />
+      <itemData name="String Escape" 	defStyleNum="dsDataType" />
+      <itemData name="Variable" 	defStyleNum="dsOthers" />
+      <itemData name="Expression" 	defStyleNum="dsOthers" />
+      <itemData name="Function" 	defStyleNum="dsFunction" />
+      <itemData name="Path" 		defStyleNum="dsNormal" />
+      <itemData name="Option" 		defStyleNum="dsNormal" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#"/>
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="^%#[]$._{}:-" additionalDeliminator="`"/>
+  </general>
+</language>
diff --git a/xml/texinfo.xml b/xml/texinfo.xml
new file mode 100644
--- /dev/null
+++ b/xml/texinfo.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Texinfo" extensions="*.texi" section="Markup" mimetype="application/x-texinfo" author="Daniel Franke (franke.daniel@gmail.com)" license="LGPL" version="1" kateversion="2.4">
+
+  <highlighting>
+    <!--
+      In TEXINFO, commands start with "@" optionally followed by a 
+      command argument embraced by "{}", as in "@item" or "@emph{foo bar}".
+
+      Some special commands embrace a region, e.g. "@menu" and "@end menu",
+      these regions may be fold (beginRegion="foldingRegion").
+
+      Nodes to NOT end with "@end node", but a "@node" ends at the beginning 
+      of the next "@node".
+      -->
+    <contexts>
+      <context name="Normal Text" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Comment" context="singleLineComment" String="@c(omment)?\b" />
+        <RegExpr attribute="Comment" context="multiLineComment" String="@ignore\b" beginRegion="ignore" />
+        <RegExpr attribute="Command" context="nodeFolding" String="@node\b" beginRegion="node" />
+
+        <RegExpr attribute="Command" context="folding" beginRegion="foldingRegion"
+                 String="@(menu|smallexample|table|multitable)\b"/>
+
+        <RegExpr attribute="Command" context="#stay" String="@[\w]+(\{([\w]+[\s]*)+\})?" />
+      </context>
+
+      <context name="singleLineComment" attribute="Comment" lineEndContext="#pop">
+				<IncludeRules context="##Alerts" />
+			</context>
+
+      <context name="multiLineComment" attribute="Comment" lineEndContext="#stay">
+        <StringDetect attribute="Comment" context="#pop" String="@end ignore" endRegion="ignore" />
+				<IncludeRules context="##Alerts" />
+      </context>
+
+      <context name="nodeFolding" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Command" context="#pop" String="@node\b" endRegion="node" lookAhead="true" />
+        <IncludeRules context="Normal Text" />
+      </context>
+
+      <context name="folding" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Command" context="#pop" endRegion="foldingRegion"
+                 String="@end (menu|smallexample|table|multitable)\b" />
+        <IncludeRules context="Normal Text" />
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="Command" defStyleNum="dsFunction" />
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="@comment " />
+      <comment name="multiLine" start="@ignore" end="@end ignore" region="ignore" />
+    </comments>
+  </general>
+
+</language>
diff --git a/xml/verilog.xml b/xml/verilog.xml
new file mode 100644
--- /dev/null
+++ b/xml/verilog.xml
@@ -0,0 +1,257 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="Verilog" version="2" kateversion="2.4" section="Hardware" extensions="*.v;*.V;*.vl" mimetype="text/x-verilog-src" author="Yevgen Voronenko (ysv22@drexel.edu), Ryan Dalzell (ryan@tullyroan.com)" license="">
+  <highlighting>
+    <list name="keywords">
+      <item>macromodule</item>
+      <item>table</item>
+      <item>endtable</item>
+      <item>specify</item>
+      <item>specparam</item>
+      <item>endspecify</item>
+
+      <item>defparam</item>
+      <item>default</item>
+      <item>if</item>
+      <item>ifnone</item>
+      <item>else</item>
+      <item>forever</item>
+      <item>while</item>
+      <item>for</item>
+      <item>wait</item>
+      <item>repeat</item>
+      <item>disable</item>
+
+      <item>assign</item>
+      <item>deassign</item>
+      <item>force</item>
+      <item>release</item>
+
+      <item>always</item>
+      <item>initial</item>
+      <item>edge</item>
+      <item>posedge</item>
+      <item>negedge</item>
+
+      <!-- verilog-2001 keywords -->
+      <item>config</item>
+      <item>endconfig</item>
+      <item>library</item>
+      <item>design</item>
+      <item>liblist</item>
+      <item>cell</item>
+      <item>use</item>
+      <item>instance</item>
+    </list>
+
+    <list name="beginwords">
+        <item>begin</item>
+        <item>fork</item>
+        <item>module</item>
+        <item>case</item>
+        <item>casex</item>
+        <item>casez</item>
+        <item>task</item>
+        <item>function</item>
+        <item>generate</item>
+    </list>
+
+    <list name="endwords">
+        <item>end</item>
+        <item>join</item>
+        <item>endmodule</item>
+        <item>endcase</item>
+        <item>endtask</item>
+        <item>endfunction</item>
+        <item>endgenerate</item>
+    </list>
+
+    <list name="strength">
+	<!-- drive strength supply0/supply1 omitted, its in types.. -->
+	<item>strong0</item>
+	<item>strong1</item>
+	<item>pull0</item>
+	<item>pull1</item>
+	<item>weak0</item>
+	<item>weak1</item>
+	<item>highz0</item>
+	<item>highz1</item>
+	<!-- charge strength -->
+	<item>small</item>
+	<item>medium</item>
+	<item>large</item>
+    </list>
+
+    <list name="gates">
+       <item>pullup</item>
+       <item>pulldown</item>
+       <item>cmos</item>
+       <item>rcmos</item>
+       <item>nmos</item>
+       <item>pmos</item>
+       <item>rnmos</item>
+       <item>rpmos</item>
+       <item>and</item>
+       <item>nand</item>
+       <item>or</item>
+       <item>nor</item>
+       <item>xor</item>
+       <item>xnor</item>
+       <item>not</item>
+       <item>buf</item>
+       <item>tran</item>
+       <item>rtran</item>
+       <item>tranif0</item>
+       <item>tranif1</item>
+       <item>rtranif0</item>
+       <item>rtranif1</item>
+       <item>bufif0</item>
+       <item>bufif1</item>
+       <item>notif0</item>
+       <item>notif1</item>
+    </list>
+
+    <list name="types">
+      <!-- port direction -->
+      <item>input</item>
+      <item>output</item>
+      <item>inout</item>
+      <!-- net type -->
+      <item>wire</item>
+      <item>tri</item>
+      <item>tri0</item>
+      <item>tri1</item>
+      <item>wand</item>
+      <item>wor</item>
+      <item>triand</item>
+      <item>trior</item>
+      <item>supply0</item>
+      <item>supply1</item>
+      <!-- reg/variable -->
+      <item>reg</item>
+      <item>integer</item>
+      <item>real</item>
+      <item>realtime</item>
+      <item>time</item>
+      <!-- modifier -->
+      <item>vectored</item>
+      <item>scalared</item>
+      <item>trireg</item>
+      <!-- other -->
+      <item>parameter</item>
+      <item>event</item>
+      <!-- verilog-2001 types -->
+      <item>signed</item>
+      <item>automatic</item>
+      <item>genvar</item>
+      <item>localparam</item>
+    </list>
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
+        <DetectSpaces />
+        <RegExpr attribute="Keyword" context="Block name" String="begin\ *:" beginRegion="Block"/>
+        <RegExpr attribute="Keyword" context="Block name" String="fork\ *:" beginRegion="Block"/>
+        <keyword attribute="Keyword" String="beginwords" context="#stay" beginRegion="Block"/>
+        <keyword attribute="Keyword" String="endwords" context="#stay" endRegion="Block"/>
+
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <keyword attribute="Data Type" context="#stay" String="types" />
+        <keyword attribute="Drive/charge strength" context="#stay" String="strength" />
+        <keyword attribute="Gate instantiation" context="#stay" String="gates" />
+
+        <RegExpr attribute="Decimal" context="#stay" String="[\d_]*'d[\d_]+"/>
+        <RegExpr attribute="Octal" context="#stay" String="[\d_]*'o[0-7xXzZ_]+"/>
+        <RegExpr attribute="Hex" context="#stay" String="[\d_]*'h[\da-fA-FxXzZ_]+"/>
+        <RegExpr attribute="Binary" context="#stay" String="[\d_]*'b[01_zZxX]+"/>
+        <Float attribute="Float" context="#stay"/>
+        <Int attribute="Integer" context="#stay" />
+
+        <RegExpr attribute="Case label" context="#stay" String="[a-zA-Z0-9_, \t]+\s*:" firstNonSpace="true"/>
+        <!--<RegExpr attribute="Port map" context="Port" String="\.[a-zA-Z0-9_]+"/>-->
+
+        <DetectChar attribute="String" context="String" char="&quot;"/>
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar 2" char="/" char1="*" beginRegion="Comment"/>
+        <AnyChar attribute="Symbol" context="#stay" String="!%&amp;()+,-&lt;=+/:;&gt;?[]^{|}~@"/>
+
+        <DetectChar attribute="Preprocessor" context="Preprocessor" char="`" column="0"/>
+        <RegExpr attribute="Preprocessor" context="#stay" String="\`[a-zA-Z_]+\w*" />
+        <RegExpr attribute="System Task" context="#stay" String="\$[a-zA-Z_]+\w*" />
+        <RegExpr attribute="Delay" context="#stay" String="#[\d_]+" />
+
+      </context>
+      <context attribute="String" lineEndContext="#pop" name="String">
+        <LineContinue attribute="String" context="Some Context"/>
+        <HlCStringChar attribute="String Char" context="#stay"/>
+        <DetectChar attribute="String" context="#pop" char="&quot;"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
+        <IncludeRules context="##Alerts" />
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
+        <IncludeRules context="##Alerts" />
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+      </context>
+      <context attribute="Preprocessor" lineEndContext="#pop" name="Preprocessor">
+        <LineContinue attribute="Preprocessor" context="Some Context"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&quot;" char1="&quot;"/>
+        <RangeDetect attribute="Prep. Lib" context="#stay" char="&lt;" char1="&gt;"/>
+        <Detect2Chars attribute="Comment" context="Commentar 1" char="/" char1="/"/>
+        <Detect2Chars attribute="Comment" context="Commentar/Preprocessor" char="/" char1="*"/>
+      </context>
+      <context attribute="Comment" lineEndContext="#stay" name="Commentar/Preprocessor">
+        <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#pop" name="Some Context"/>
+      <context attribute="Comment" lineEndContext="#stay" name="Some Context2">
+          <IncludeRules context="##Alerts" />
+          <StringDetect attribute="Comment" context="#pop" String="#endif" firstNonSpace="true"/>
+      </context>
+
+      <context attribute="Block name" lineEndContext="#pop" name="Block name">
+          <DetectIdentifier attribute="Data Type" context="#pop"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="Port">
+          <DetectIdentifier attribute="Normal Text" context="#pop"/>
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Keyword"  defStyleNum="dsKeyword"/>
+      <itemData name="Data Type"  defStyleNum="dsDataType"/>
+
+      <itemData name="Decimal"  defStyleNum="dsBaseN"/>
+      <itemData name="Octal"  defStyleNum="dsBaseN"/>
+      <itemData name="Hex"  defStyleNum="dsBaseN"/>
+      <itemData name="Binary"  defStyleNum="dsBaseN"/>
+      <itemData name="Float"  defStyleNum="dsFloat"/>
+
+      <itemData name="String"  defStyleNum="dsString"/>
+      <itemData name="String Char"  defStyleNum="dsChar"/>
+      <itemData name="Comment"  defStyleNum="dsComment"/>
+      <itemData name="Alert"        defStyleNum="dsAlert" />
+      <itemData name="Symbol"  defStyleNum="dsNormal"/>
+      <itemData name="Preprocessor"  defStyleNum="dsOthers"/>
+      <itemData name="Prep. Lib"  defStyleNum="dsFloat"/>
+      <itemData name="System Task" defStyleNum="dsDataType"/>
+
+      <itemData name="Integer" defStyleNum="dsDecVal"/>
+      <itemData name="Delay" defStyleNum="dsBaseN"/>
+      <itemData name="Block name" defStyleNum="dsDataType"/>
+      <itemData name="Drive/charge strength" defStyleNum="dsBaseN"/>
+      <itemData name="Gate instantiation" defStyleNum="dsDataType"/>
+      <itemData name="Port map" defStyleNum="dsDataType"/>
+      <itemData name="Case label" defStyleNum="dsDecVal"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="//" />
+      <comment name="multiLine" start="/*" end="*/" region="Comment"/>
+    </comments>
+    <keywords casesensitive="1" />
+  </general>
+</language>
diff --git a/xml/vhdl.xml b/xml/vhdl.xml
new file mode 100644
--- /dev/null
+++ b/xml/vhdl.xml
@@ -0,0 +1,669 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd" [
+  <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
+  <!ENTITY varname  "\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\b">
+  <!ENTITY bos      "(\b)">                        <!-- bol or space following -->
+  <!ENTITY eos      "\b">                <!-- eol or space following -->
+  <!ENTITY noword   "(?![\w$+-])">                <!-- no word, $, + or - following -->
+  <!ENTITY label     "((&varname;)\s*:\s*)?">
+
+]>
+<language name="VHDL" version="3" kateversion="3.0" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="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)">
+  <highlighting>
+    <list name="keywordsToplevel">
+      <item>file</item>
+      <item>library</item>
+      <item>use</item>
+    </list>
+
+    <list name="keywords">
+      <item>access</item>
+      <item>after</item>
+      <item>alias</item>
+      <item>all</item>
+      <item>array</item>
+      <item>assert</item>
+      <item>assume</item>
+      <item>assume_guarantee</item>
+      <item>attribute</item>
+      <item>begin</item>
+      <item>block</item>
+      <item>body</item>
+      <item>bus</item>
+      <item>component</item>
+      <item>constant</item>
+      <item>context</item>
+      <item>cover</item>
+      <item>default</item>
+      <item>disconnect</item>
+      <item>downto</item>
+      <item>end</item>
+      <item>exit</item>
+      <item>fairness</item>
+      <item>falling_edge</item>
+      <item>file</item>
+      <item>for</item>
+      <item>force</item>
+      <item>function</item>
+      <item>generate</item>
+      <item>generic</item>
+      <item>group</item>
+      <item>guarded</item>
+      <item>impure</item>
+      <item>inertial</item>
+      <item>is</item>
+      <item>label</item>
+      <item>linkage</item>
+      <item>literal</item>
+      <item>map</item>
+      <item>new</item>
+      <item>next</item>
+      <item>null</item>
+      <item>of</item>
+      <item>on</item>
+      <item>open</item>
+      <item>others</item>
+      <item>parameter</item>
+      <item>port</item>
+      <item>postponed</item>
+      <item>procedure</item>
+      <item>process</item>
+      <item>property</item>
+      <item>protected</item>
+      <item>pure</item>
+      <item>range</item>
+      <item>record</item>
+      <item>register</item>
+      <item>reject</item>
+      <item>release</item>
+      <item>report</item>
+      <item>return</item>
+      <item>rising_edge</item>
+      <item>select</item>
+      <item>sequence</item>
+      <item>severity</item>
+      <item>signal</item>
+      <item>shared</item>
+      <item>strong</item>
+      <item>subtype</item>
+      <item>to</item>
+      <item>transport</item>
+      <item>type</item>
+      <item>unaffected</item>
+      <item>units</item>
+      <item>until</item>
+      <item>variable</item>
+      <item>vmode</item>
+      <item>vprop</item>
+      <item>vunit</item>
+      <item>wait</item>
+      <item>when</item>
+      <item>with</item>
+      <item>note</item>
+      <item>warning</item>
+      <item>error</item>
+      <item>failure</item>
+      <item>in</item>
+      <item>inout</item>
+      <item>out</item>
+      <item>buffer</item>
+      <item>and</item>
+      <item>abs</item>
+      <item>or</item>
+      <item>xor</item>
+      <item>xnor</item>
+      <item>not</item>
+      <item>mod</item>
+      <item>nand</item>
+      <item>nor</item>
+      <item>rem</item>
+      <item>rol</item>
+      <item>ror</item>
+      <item>sla</item>
+      <item>sra</item>
+      <item>sll</item>
+      <item>srl</item>
+    </list>
+
+    <list name="if">
+      <item>if</item>
+      <item>else</item>
+      <item>elsif</item>
+      <item>then</item>
+    </list>
+
+    <list name="forOrWhile">
+      <item>loop</item>
+    </list>
+
+    <list name="directions">
+      <item>in</item>
+      <item>inout</item>
+      <item>out</item>
+      <item>buffer</item>
+      <item>linkage</item>
+    </list>
+
+    <list name="signals">
+      <item>signal</item>
+      <item>variable</item>
+      <item>constant</item>
+      <item>type</item>
+      <item>attribute</item>
+    </list>
+
+    <list name="range">
+      <item>to</item>
+      <item>downto</item>
+      <item>others</item>
+    </list>
+
+    <list name="case">
+      <item>case</item>
+      <item>when</item>
+    </list>
+
+    <list name="timeunits">
+      <item>fs</item>
+      <item>ps</item>
+      <item>ns</item>
+      <item>us</item>
+      <item>ms</item>
+      <item>sec</item>
+      <item>min</item>
+      <item>hr</item>
+    </list>
+
+
+    <list name="types">
+      <item>bit</item>
+      <item>bit_vector</item>
+      <item>character</item>
+      <item>boolean</item>
+      <item>boolean_vector</item>
+      <item>integer</item>
+      <item>integer_vector</item>
+      <item>real</item>
+      <item>real_vector</item>
+      <item>time</item>
+      <item>time_vector</item>
+      <item>delay_length</item>
+      <item>string</item>
+      <item>severity_level</item>
+      <item>positive</item>
+      <item>natural</item>
+      <item>file_open_kind</item>
+      <item>file_open_status</item>
+      <item>signed</item>
+      <item>unsigned</item>
+      <item>unresolved_unsigned</item>
+      <item>unresolved_signed</item>
+      <item>line</item>
+      <item>text</item>
+      <item>side</item>
+      <item>width</item>
+      <item>std_logic</item>
+      <item>std_logic_vector</item>
+      <item>std_ulogic</item>
+      <item>std_ulogic_vector</item>
+      <item>x01</item>
+      <item>x01z</item>
+      <item>ux01</item>
+      <item>ux01z</item>
+      <item>qsim_state</item>
+      <item>qsim_state_vector</item>
+      <item>qsim_12state</item>
+      <item>qsim_12state_vector</item>
+      <item>qsim_strength</item>
+      <item>mux_bit</item>
+      <item>mux_vector</item>
+      <item>reg_bit</item>
+      <item>reg_vector</item>
+      <item>wor_bit</item>
+      <item>wor_vector</item>
+    </list>
+
+
+    <contexts>
+
+<!-- start / global environment -->
+      <context name="start" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+
+        <RegExpr attribute="Control" context="architecture_main" insensitive="true" dynamic="true" lookAhead="true"
+                 String="&bos;architecture\s+(&varname;)&eos;"/>
+        <StringDetect attribute="Control" context="entity"
+                 String="entity"/>
+        <RegExpr attribute="Control" context="package" insensitive="true" lookAhead="true" dynamic="true" beginRegion="PackageRegion1"
+                 String="&bos;package\s+(&varname;)\s+is&eos;"/>
+        <RegExpr attribute="Control" context="packagebody" lookAhead="true" insensitive="true" dynamic="true" beginRegion="PackageBodyRegion1"
+                 String="&bos;package\s+body\s+(&varname;)\s+is&eos;"/>
+       <!-- <StringDetect  attribute="Control"  context="arch_decl"      String="package"     />temporary-->
+        <RegExpr attribute="Control" context="configuration" insensitive="true" dynamic="true" lookAhead="true"
+                 String="&bos;configuration\s+(&varname;)&eos;"/>
+        <keyword attribute="Keyword" context="#stay" String="keywordsToplevel"/>
+      </context>
+
+
+      <context name="package" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control"   context="#stay" insensitive="true" String="&bos;package&eos;" />
+        <RegExpr attribute="Keyword"   context="packagemain" insensitive="true" String="&bos;is&eos;" />
+        <RegExpr attribute="Name"      context="#stay"     insensitive="true" String="&bos;%2&eos;" dynamic="true"/>
+        <RegExpr attribute="Redirection" context="#pop"  dynamic="true" endRegion="PackageRegion1" insensitive="true"
+                 String="&bos;end(\s+package)?(\s+%2)?\s*;" />
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="packagemain" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Keyword"   context="#pop" lookAhead="true" insensitive="true" String="&bos;end&eos;" />
+        <RegExpr attribute="Keyword"   context="packagefunction" insensitive="true" String="&bos;function&eos;" />
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="packagefunction" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Name" context="#pop" insensitive="true" String="&bos;&varname;&eos;" />
+      </context>
+
+      <!-- package body environment -->
+
+      <context name="packagebody" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control"   context="#stay" insensitive="true" String="&bos;package&eos;" />
+        <RegExpr attribute="Keyword"   context="packagebodymain" insensitive="true" String="&bos;is&eos;" />
+        <RegExpr attribute="Name"      context="#stay"     insensitive="true" String="&bos;%2&eos;" dynamic="true"/>
+        <RegExpr attribute="Redirection" context="#pop" dynamic="true" endRegion="PackageBodyRegion1" insensitive="true"
+                 String="&bos;end(\s+package)?(\s+%2)?\s*;" />
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="packagebodymain" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Keyword"   context="#pop" lookAhead="true" insensitive="true" String="&bos;end\s+package&eos;" />
+        <RegExpr attribute="Keyword"   context="packagebodyfunc1" beginRegion="PackBodyFunc" insensitive="true" dynamic="true" lookAhead="true" String="&bos;function\s+(&varname;)&eos;" />
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="packagebodyfunc1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Redirection" context="packagebodyfunc2" beginRegion="RegionFunction" insensitive="true" String="&bos;begin&eos;" />
+        <RegExpr attribute="Keyword"   context="#pop" insensitive="true" endRegion="PackBodyFunc" dynamic="true" String="&bos;end(\s+function)?(\s+%2)?&eos;" />
+        <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;"  dynamic="true"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="packagebodyfunc2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Redirection" context="#pop" insensitive="true" dynamic="true" lookAhead="true" endRegion="RegionFunction"
+                 String="&bos;end(\s+function)?&eos;"/>
+        <!--<RegExpr attribute="Error" context="#pop" insensitive="true" dynamic="true" lookAhead="true" endRegion="RegionFunction"
+                 String="&bos;end\s+function(\s+&varname;)?&eos;"/>-->
+        <RegExpr attribute="Process" context="#stay" insensitive="true"
+                 String="&bos;begin&eos;"/>
+        <IncludeRules context="proc_rules"/>
+      </context>
+
+
+<!--====ARCHITECTURE ===============-->
+      <context name="architecture_main" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="arch_start" insensitive="true" lookAhead="true" dynamic="true" beginRegion="ArchitectureRegion1"
+                 String="&bos;architecture\s+(&varname;)\s+of\s+(&varname;)\s+is"/>
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ArchitectureRegion1"
+                 String="&bos;end(\s+architecture)?(\s+%2)?\s*;"/>
+        <RegExpr attribute="Error" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ArchitectureRegion1"
+                 String="&bos;end(\s+architecture)?(\s+&varname;)\s*;"/>
+        <IncludeRules context="detect_arch_parts"/>
+      </context>
+
+<!-- architecture environment "before begin" -->
+      <context name="arch_start" attribute="Control" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Keyword"   context="arch_decl" insensitive="true" String="&bos;is&eos;" />
+        <RegExpr attribute="Name"      context="#stay"     insensitive="true" String="&bos;%2&eos;" dynamic="true"/>
+        <RegExpr attribute="Reference" context="#stay"     insensitive="true" String="&bos;%4&eos;" dynamic="true"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="arch_decl" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preDetection"/>
+        <keyword attribute="Signal" context="signal"          insensitive="true" String="signals"/>
+        <StringDetect attribute="Control" context="archfunc1" insensitive="true" String="function" beginRegion="ArchFunctionRegion1"/>
+        <StringDetect attribute="Control" context="entity"    insensitive="true" String="component"/>
+        <StringDetect attribute="Control" context="#pop#pop"  insensitive="true" String="begin"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="archfunc1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Redirection" context="archfunc2" beginRegion="RegionFunction" insensitive="true" String="&bos;begin&eos;" />
+        <RegExpr attribute="Keyword"   context="#pop" insensitive="true" endRegion="ArchFunctionRegion1" dynamic="true" String="&bos;end(\s+function)?(\s+%2)?&eos;" />
+        <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;"  dynamic="true"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="archfunc2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Redirection" context="#pop" insensitive="true" dynamic="true" lookAhead="true" endRegion="RegionFunction"
+                 String="&bos;end(\s+function)?&eos;"/>
+        <!--<RegExpr attribute="Error" context="#pop" insensitive="true" dynamic="true" lookAhead="true" endRegion="RegionFunction"
+                 String="&bos;end\s+function(\s+&varname;)?&eos;"/>-->
+        <RegExpr attribute="Process" context="#stay" insensitive="true"
+                 String="&bos;begin&eos;"/>
+        <IncludeRules context="proc_rules"/>
+      </context>
+
+
+<!-- parts of architecture body -->
+      <context name="detect_arch_parts" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <RegExpr attribute="Normal Text" context="generate1" lookAhead="true" insensitive="true" dynamic="true"
+                 String="&bos;(&varname;\s*:\s*)(if|for).*\s+generate&eos;"/>
+        <RegExpr attribute="Normal Text" context="process1" lookAhead="true" insensitive="true" dynamic="true"
+                 String="&bos;(&varname;\s*:\s*)?process&eos;"/>
+        <RegExpr attribute="Normal Text" context="instance" lookAhead="true" insensitive="true" dynamic="true" beginRegion="InstanceRegion1"
+                 String="&bos;(&varname;)\s*:\s*((entity\s+)?(&varname;)(\.&varname;)?)"/>
+
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+<!--====generate ===============-->
+      <context name="generate1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="generate2" insensitive="true" beginRegion="GenerateRegion"
+                 String="&bos;(generate|loop)&eos;"/>
+        <RegExpr attribute="Name"      context="#stay" dynamic="true" insensitive="true"
+                 String="&bos;%3&eos;"/>
+        <RegExpr attribute="Control" context="#stay"                insensitive="true"
+                 String="&bos;(for|if|while)&eos;"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="generate2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="#stay" insensitive="true"
+                 String="&bos;begin&eos;"/>
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="GenerateRegion"
+                 String="&bos;end\s+(generate|loop)(\s+&varname;)?"/>
+        <IncludeRules context="detect_arch_parts"/>
+      </context>
+
+
+<!--====process ===============-->
+<!-- process environment -->
+
+      <context name="process1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Process" context="#pop" insensitive="true" dynamic="true" endRegion="RegionProcess"
+                 String="&bos;end\s+process(\s+%3)?"/>
+        <RegExpr attribute="Error" context="#pop" insensitive="true" dynamic="true" endRegion="RegionProcess"
+                 String="&bos;end\s+process(\s+&varname;)?"/>
+        <RegExpr attribute="Process" context="#stay" insensitive="true" beginRegion="RegionProcess"
+                 String="&bos;process&eos;"/>
+        <RegExpr attribute="Process" context="#stay" insensitive="true"
+                 String="&bos;begin&eos;"/>
+        <IncludeRules context="proc_rules"/>
+      </context>
+
+      <context name="proc_rules" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+         <RegExpr attribute="Name" context="#stay" insensitive="true"
+                  String="&bos;&varname;(?=\s*:(?!=))"/>
+         <RegExpr attribute="Control" context="if_start" insensitive="true"
+                  String="&bos;if&eos;"/>
+         <RegExpr attribute="Control" context="case1" lookAhead="true" insensitive="true"
+                  String="&bos;case&eos;"/>
+         <RegExpr attribute="Control" context="forwhile1" dynamic="true" lookAhead="true" insensitive="true"
+                  String="&bos;((&varname;)\s*:\s*)?((for|while)\s+.+\s+)loop&eos;"/>
+         <IncludeRules context="generalDetection"/>
+      </context>
+
+
+
+
+<!--====instance =============== -->
+      <!-- When an instance has been detected-->
+      <context name="instance" attribute="Error" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Reference"   context="#stay" String="&bos;%4&eos;" dynamic="true"/>
+        <RegExpr attribute="Name"        context="#stay" String="&bos;%3&eos;" dynamic="true"/>
+        <RegExpr attribute="Keyword"     context="instanceMap" beginRegion="InstanceMapRegion"
+                 String="&bos;(port|generic)\s+map\s*\(" />
+        <DetectChar attribute="Normal Text" context="#pop" char=";" endRegion="InstanceRegion1"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <!-- Inside a port or generic map-->
+      <context name="instanceMap" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <AnyChar attribute="Error" context="#stay" String="&lt;;:"/>
+        <DetectChar attribute="Error" context="#stay" char=":" />
+        <IncludeRules context="preDetection"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" endRegion="InstanceMapRegion"/>
+        <DetectChar attribute="Normal Text" context="instanceInnerPar" char="("/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <!-- Inside parantheses inside a map-->
+      <context name="instanceInnerPar" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <DetectChar attribute="Normal Text" context="#pop" char=")" endRegion="instanceInnerPar"/>
+        <DetectChar attribute="Normal Text" context="instanceInnerPar" char="("/>
+        <DetectChar attribute="Error" context="#stay" char=";"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+<!--====loop ===============-->
+      <context name="forwhile1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="forwhile2" insensitive="true" beginRegion="ForWhileRegion"
+                 String="&bos;loop&eos;"/>
+        <RegExpr attribute="Name"      context="#stay" dynamic="true" insensitive="true"
+                 String="&bos;%3&eos;"/>
+        <RegExpr attribute="Control" context="#stay"                insensitive="true"
+                 String="&bos;(for|while)&eos;"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="forwhile2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="#stay" insensitive="true"
+                 String="&bos;begin&eos;"/>
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="ForWhileRegion"
+                 String="&bos;end\s+loop(\s+&varname;)?"/>
+        <IncludeRules context="proc_rules"/>
+      </context>
+
+<!--====if ===============-->
+      <context name="if_start" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="if" insensitive="true" beginRegion="IfRegion1"
+                 String="&bos;then&eos;"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="if" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="IfRegion1"
+                 String="&bos;end\s+if(\s+&varname;)?\s*;"/>
+        <IncludeRules context="proc_rules"/>
+        <keyword attribute="Control" context="#stay" insensitive="true" String="if"/>
+      </context>
+
+
+<!--====case ===============-->
+
+      <context name="case1" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Keyword" context="case2" insensitive="true"
+                 String="&bos;is&eos;"/>
+        <keyword attribute="Control" context="#stay" insensitive="true" beginRegion="CaseRegion1" String="case"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="case2" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="CaseRegion1"
+                 String="&bos;end\s+case(&varname;)?\s*;"/>
+        <RegExpr attribute="Control" context="caseWhen" lookAhead="true" dynamic="true" insensitive="true"
+                 String="&bos;when(\s+&varname;)?&eos;"/>
+        <IncludeRules context="proc_rules"/>
+      </context>
+
+      <context name="caseWhen" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <Detect2Chars char="=" char1="&gt;" attribute="Operator" context="caseWhen2" beginRegion="CaseWhenRegion1"/>
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" insensitive="true"
+                 String="&bos;when&eos;"/>
+        <RegExpr attribute="Name" insensitive="true" dynamic="true"
+                 String="&bos;%2&eos;"/>
+        <IncludeRules context="proc_rules"/>
+      </context>
+
+      <context name="caseWhen2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="#pop#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1"
+                 String="^\s*when&eos;"/>
+        <RegExpr attribute="Control" context="#pop#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1"
+                 String="^\s*end\s+case&eos;"/>
+        <IncludeRules context="proc_rules"/>
+      </context>
+      <!-- 'when' and 'end case' are checked at the beginning of the line for better code folding -->
+
+
+
+
+<!--====ENTITY ===============-->
+<!-- entity environment -->
+
+      <context name="entity" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Name" context="entity_main" beginRegion="EntityRegion1" insensitive="true"
+                 String="(&varname;)"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+
+      <context name="entity_main" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="#pop#pop" dynamic="true" insensitive="true" endRegion="EntityRegion1"
+                 String="&bos;end(\s+(entity|component))?(\s+%1)?\s*;"/>
+        <RegExpr attribute="Error" context="#pop#pop" dynamic="true" insensitive="true" endRegion="EntityRegion1"
+                 String="&bos;end(\s+(entity|component))?(\s+&varname;)?\s*;"/>
+        <RegExpr attribute="Control" context="#stay" insensitive="true" String="generic"/>
+        <RegExpr attribute="Control" context="#stay" insensitive="true" String="port"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+<!--====Configuration ===============-->
+<!-- configuration environment -->
+      <context name="configuration" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Control" context="conf_start" insensitive="true" lookAhead="true" dynamic="true" beginRegion="ConfigurationRegion1"
+                 String="&bos;configuration\s+(&varname;)\s+of\s+(&varname;)\s+is"/>
+        <RegExpr attribute="Control" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ConfigurationRegion1"
+                 String="&bos;end(\s+configuration)?(\s+%2)?\s*;"/>
+        <RegExpr attribute="Error" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ConfigurationRegion1"
+                 String="&bos;end(\s+configuration)?(\s+&varname;)\s*;"/>
+      </context>
+
+      <context name="conf_start" attribute="Control" lineEndContext="#stay" dynamic="true">
+        <IncludeRules context="preDetection"/>
+        <RegExpr attribute="Keyword"   context="conf_decl" insensitive="true" String="&bos;is&eos;" />
+        <RegExpr attribute="Name"      context="#stay"     insensitive="true" String="&bos;%2&eos;" dynamic="true"/>
+        <RegExpr attribute="Reference" context="#stay"     insensitive="true" String="&bos;%4&eos;" dynamic="true"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="conf_decl" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preDetection"/>
+        <StringDetect attribute="Control" context="conf_for" insensitive="true" String="for"/>
+        <StringDetect attribute="Control" context="#pop#pop" insensitive="true" lookAhead="true"  String="end"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+      <context name="conf_for" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preDetection"/>
+        <StringDetect attribute="Control" context="conf_for" insensitive="true" String="for"/>
+        <RegExpr attribute="Control" context="#pop" insensitive="true"  String="end(\s+&varname;)?"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+
+
+<!--====Basic Stuff ===============-->
+<!-- basic rules -->
+      <context name="preDetection" attribute="Normal Text" lineEndContext="#stay">
+        <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/>
+        <DetectChar attribute="Vector" context="string" char="&quot;"/>
+        <AnyChar attribute="Operator" context="#stay" String="[&amp;&gt;&lt;=:+\-*\/|].,"/>
+        <DetectChar attribute="Attribute" context="attribute" char="'"/>
+      </context>
+
+
+
+<!-- general detection -->
+      <context name="generalDetection" attribute="Normal Text" lineEndContext="#stay">
+        <keyword attribute="Data Type" context="#stay" String="types"/>
+        <keyword attribute="Data Type" context="#stay" String="timeunits"/>
+        <keyword attribute="Signal" context="signal" String="signals" beginRegion="sig"/>
+        <keyword attribute="Range" context="#stay" String="range"/>
+        <keyword attribute="Keyword" context="#stay" String="keywords"/>
+        <Int attribute="Integer" context="#stay"/>
+        <HlCChar attribute="Bit" context="#stay"/>
+        <DetectSpaces attribute="Normal Text" context="#stay"/>
+      </context>
+
+<!-- other environments -->
+      <context name="comment" attribute="Comment" lineEndContext="#pop"/>
+
+      <context name="string" attribute="Vector" lineEndContext="#stay">
+        <DetectChar attribute="Vector" context="#pop" char="&quot;"/>
+      </context>
+
+      <context name="attribute" attribute="Attribute" lineEndContext="#pop">
+        <DetectChar attribute="Attribute" context="quot in att" char="&quot;"/>
+        <DetectChar attribute="Attribute" context="par in att" char="("/>
+        <DetectChar attribute="Normal Text" context="#pop" char=" "/>
+        <DetectChar attribute="Attribute" context="#pop" char="'"/>
+        <AnyChar attribute="Attribute" context="#pop" String=")=&lt;&gt;" lookAhead="true" />
+       </context>
+
+      <context name="quot in att" attribute="Attribute" lineEndContext="#stay">
+        <DetectChar attribute="Attribute" context="#pop" char="&quot;"/>
+      </context>
+      <context name="par in att" attribute="Attribute" lineEndContext="#stay">
+        <DetectChar attribute="Attribute" context="#pop" char=")"/>
+      </context>
+
+      <context name="signal" attribute="Normal Text" lineEndContext="#stay">
+        <IncludeRules context="preDetection"/>
+        <DetectChar attribute="Normal Text" lookAhead="true" context="#pop" char=";" endRegion="sig"/>
+        <IncludeRules context="generalDetection"/>
+      </context>
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Data Type" defStyleNum="dsDataType"/>
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="Integer" defStyleNum="dsDecVal"/>
+      <itemData name="Bit" defStyleNum="dsChar"/>
+      <itemData name="Reference" defStyleNum="dsFunction"/>
+      <itemData name="Error" defStyleNum="dsError" color="#ff0000" bold="1"/>
+      <itemData name="Vector" defStyleNum="dsString"/>
+      <itemData name="Operator" defStyleNum="dsOthers"/>
+      <itemData name="Attribute" defStyleNum="dsBaseN"/>
+      <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
+      <itemData name="Signal" defStyleNum="dsOthers"/>
+      <itemData name="Range" defStyleNum="dsOthers"/>
+      <itemData name="Redirection" defStyleNum="dsKeyword" color="#223388"/>
+      <itemData name="Process" defStyleNum="dsKeyword" color="#0099AA"/>
+      <itemData name="Control" defStyleNum="dsKeyword" color="#223388"/>
+      <itemData name="Name" defStyleNum="dsKeyword" color="#bb6600" bold="1"/>
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="--"/>
+    </comments>
+    <keywords casesensitive="0"/>
+  </general>
+</language>
diff --git a/xml/xml.xml b/xml/xml.xml
new file mode 100644
--- /dev/null
+++ b/xml/xml.xml
@@ -0,0 +1,150 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!-- names must start with a letter, ideogram or underscore. \w matches any
+		 word character *or* a number, hence the lookahead -->
+	<!ENTITY name    "(?![0-9])[\w_:][\w.:_-]*">
+	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
+]>
+<language name="XML" version="6" kateversion="3.4" section="Markup" extensions="*.docbook;*.xml;*.rc;*.daml;*.rdf;*.rss;*.xspf;*.xsd;*.svg;*.ui;*.kcfg;*.qrc;*.wsdl;*.scxml;*.xbel" mimetype="text/xml;text/book;text/daml;text/rdf;application/rss+xml;application/xspf+xml;image/svg+xml;application/x-designer;application/x-xbel;application/xml;application/scxml+xml" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">
+
+<highlighting>
+<contexts>
+  <context name="Start" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="FindXML" />
+  </context>
+
+  <context name="FindXML" attribute="Normal Text" lineEndContext="#stay">
+    <DetectSpaces />
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+    <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
+    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
+    <RegExpr attribute="Element" context="Element" String="&lt;&name;" beginRegion="element" />
+    <IncludeRules context="FindEntityRefs" />
+    <DetectIdentifier />
+  </context>
+
+  <context name="FindEntityRefs" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
+  </context>
+
+  <context name="FindPEntityRefs" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;%" />
+  </context>
+
+
+  <context name="Comment" attribute="Comment" lineEndContext="#stay">
+    <DetectSpaces />
+    <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+    <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
+    <IncludeRules context="##Alerts" />
+    <DetectIdentifier />
+  </context>
+
+  <context name="CDATA" attribute="Other Text" lineEndContext="#stay">
+    <DetectSpaces />
+    <DetectIdentifier />
+    <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
+    <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
+  </context>
+
+  <context name="PI" attribute="Other Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
+  </context>
+
+  <context name="Doctype" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
+    <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
+  </context>
+
+  <context name="Doctype Internal Subset" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
+    <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Doctype Markupdecl" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="&gt;" />
+    <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
+  </context>
+
+  <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop" char="&quot;" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop" char="&apos;" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Element" attribute="Other Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="element" />
+    <DetectChar attribute="Element" context="El Content" char="&gt;" />
+    <RegExpr attribute="Attribute" context="Attribute" String="^&name;" />
+    <RegExpr attribute="Attribute" context="Attribute" String="\s+&name;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="El Content" attribute="Other Text" lineEndContext="#stay">
+    <RegExpr attribute="Element" context="El End" String="&lt;/&name;" />
+    <IncludeRules context="FindXML" />
+  </context>
+
+  <context name="El End" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" endRegion="element" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Attribute" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Attribute" context="Value" char="=" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Value" attribute="Other Text" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Value DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop#pop" char="&quot;" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+  <context name="Value SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop#pop" char="&apos;" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+</contexts>
+<itemDatas>
+  <itemData name="Normal Text" defStyleNum="dsNormal" />
+  <itemData name="Other Text" defStyleNum="dsNormal" />
+  <itemData name="Comment" defStyleNum="dsComment" spellChecking="false" />
+  <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" spellChecking="false" />
+  <itemData name="Processing Instruction" defStyleNum="dsKeyword" spellChecking="false" />
+  <itemData name="Doctype" defStyleNum="dsDataType" bold="1" spellChecking="false" />
+  <itemData name="Element" defStyleNum="dsKeyword" spellChecking="false" />
+  <itemData name="Attribute" defStyleNum="dsOthers" spellChecking="false" />
+  <itemData name="Value" defStyleNum="dsString" spellChecking="false" />
+  <itemData name="EntityRef" defStyleNum="dsDecVal" spellChecking="false" />
+  <itemData name="PEntityRef" defStyleNum="dsDecVal" spellChecking="false" />
+  <itemData name="Error" defStyleNum="dsError" spellChecking="false" />
+</itemDatas>
+
+</highlighting>
+<general>
+  <comments>
+    <comment name="multiLine" start="&lt;!--" end="--&gt;" />
+  </comments>
+  <indentation mode="xml" />
+</general>
+</language>
diff --git a/xml/xorg.xml b/xml/xorg.xml
new file mode 100644
--- /dev/null
+++ b/xml/xorg.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<language name="x.org Configuration" section="Configuration" extensions="xorg.conf" mimetype="" version="2" kateversion="2.4" author="Jan Janssen (medhefgo@web.de)" license="LGPL">
+
+<highlighting>
+<contexts>
+ <context name="xorg" attribute="Normal Text" lineEndContext="#stay">
+  <StringDetect String="Section" attribute="Section" context="Section" beginRegion="Section" insensitive="true" />
+  <DetectChar char="#" context="Comment" />
+ </context>
+
+ <context name="Section" attribute="Normal Text" lineEndContext="#stay">
+  <RangeDetect char="&quot;" char1="&quot;" attribute="Section Name" context="Section Content" />
+  <RangeDetect char="'" char1="'" attribute="Section Name" context="Section Content" />
+  <DetectIdentifier attribute="Alert" />
+  <DetectChar char="#" context="Comment" />
+ </context>
+
+ <context name="Section Content" attribute="Normal Text" lineEndContext="#stay">
+  <StringDetect String="EndSection" attribute="Section" context="#pop#pop" endRegion="Section" insensitive="true" />
+  <StringDetect String="EndSubSection" attribute="Section" context="#pop#pop" endRegion="SubSection" insensitive="true" />
+  <StringDetect String="SubSection" attribute="Section" context="Section" beginRegion="SubSection" insensitive="true" />
+  <RegExpr String="\b\w+\b" context="Keyword" />
+  <DetectChar char="#" context="Comment" />
+ </context>
+
+ <context name="Keyword" attribute="Keyword" lineEndContext="#pop">
+  <RangeDetect attribute="Value" char="&quot;" char1="&quot;" />
+  <RangeDetect attribute="Value" char="'" char1="'" />
+  <Float attribute="Float" />
+  <Int attribute="Int" />
+  <RegExpr attribute="Value2" String="[\w\d]+" />
+  <DetectChar char="#" context="Comment" />
+ </context>
+
+ <context name="Comment" attribute="Comment" lineEndContext="#pop">
+  <DetectSpaces />
+  <IncludeRules context="##Alerts" />
+  <DetectIdentifier />
+ </context>
+</contexts>
+
+
+<itemDatas>
+ <itemData name="Normal Text" defStyleNum="dsNormal" />
+ <itemData name="Section" defStyleNum="dsFunction" />
+ <itemData name="Section Name" defStyleNum="dsString" />
+ <itemData name="Value" defStyleNum="dsDataType" />
+ <itemData name="Keyword" defStyleNum="dsKeyword" />
+ <itemData name="Alert" defStyleNum="dsError" />
+ <itemData name="Int" defStyleNum="dsDecVal" />
+ <itemData name="Value2" defStyleNum="dsOthers" />
+ <itemData name="Float" defStyleNum="dsFloat" />
+ <itemData name="Comment" defStyleNum="dsComment" />
+</itemDatas>
+</highlighting>
+
+
+<general>
+ <comments>
+  <comment name="singleLine" start="#" />
+ </comments>
+</general>
+
+</language>
diff --git a/xml/xslt.xml b/xml/xslt.xml
new file mode 100644
--- /dev/null
+++ b/xml/xslt.xml
@@ -0,0 +1,440 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!ENTITY qname    "[A-Za-z_:][\w.:_-]*">
+	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&qname;);">
+	<!ENTITY axisname  "ancestor|ancestor-or-self|attribute|child|descendant|descendant-or-self|following|following-sibling|namespace|parent|preceding|preceding-sibling|self">
+]>
+
+<!--
+  Kate syntax highlighting for XSLT
+  2004 by Peter Lammich (views@gmx.de)
+  Published under the LGPL
+  
+  TODO/FIXME
+  
+    - Is qname - entity correct ??
+  
+    - Integrate latest XML highlighting, that supports ...
+      This version is mainly based on kate 2.1 XML highlighting file
+    
+    - highlight functions only if they are followed by a '('. (How to do that ??)
+    - use <IncludeRules> to make things a bit more modular and cleaner 
+
+    - I'd like to properly comment this file, but kate 2.1 (I have to work with it) behaves strange whith comments.
+      It seems to immediately stop processing a tag's content when encountering a comment
+      
+    - Define own highlighting rules for patterns (Currently a pattern is highlighted as XPath)
+    
+    - Highlight also XPath keywords, such as 'cast as'
+      
+
+    DONE: !DOCTYPE, ![CDATA[, Processing Instructions support copied from latest XML-highlighting
+    
+    DONE: Added XSLT 2.0 tag- and XPath2.0 and XSLT2.0 function keywords
+    
+    FIXED: axis highlighting does not work, if identifier continues directly behind axis: (self::someWord)
+    
+    DONE: highlight entity references
+      Do not replace the <RegExpr> by <IncludeEntities>, this is a kate 2.1 workaround !
+
+    FIXED axis-names are even highlighted if there are characters in front of them, i.e. in "xxxself::", "self::" would 
+      be highlighted.
+        Now matching any qnames in XPath by own matcher
+
+    &varname; entity, what exactly is allowed by xslt ?
+      &varname; entity not used any more, variable names can be qnames.
+                      
+    CHANGED: Use the Alert style for the highlighting of todo and fixme, etc.
+         Comments are foldable, two dashes inside comment hl as error, 
+         use the dsError style for Invalid data (Wilbert Berendsen, wbsoft@xs4all.nl)
+       
+
+-->
+
+<language version="4" kateversion="5.0" name="xslt" section="Markup" extensions="*.xsl;*.xslt" license="LGPL" author="Peter Lammich (views@gmx.de)">
+  <highlighting>
+    <list name="keytags">
+      <item>xsl:value-of</item>
+      <item>xsl:output</item>
+      <item>xsl:decimal-format</item>
+      <item>xsl:apply-templates</item>
+      <item>xsl:param</item>
+      <item>xsl:transform</item>
+      <item>xsl:namespace-alias</item>
+      <item>xsl:comment</item>
+      <item>xsl:element</item>
+      <item>xsl:attribute</item>
+      <item>xsl:apply-imports</item>
+      <item>xsl:text</item>
+      <item>xsl:when</item>
+      <item>xsl:template</item>
+      <item>xsl:processing-instruction</item>
+      <item>xsl:include</item>
+      <item>xsl:copy-of</item>
+      <item>xsl:copy</item>
+      <item>xsl:with-param</item>
+      <item>xsl:stylesheet</item>
+      <item>xsl:for-each</item>
+      <item>xsl:choose</item>
+      <item>xsl:sort</item>
+      <item>xsl:otherwise</item>
+      <item>xsl:key</item>
+      <item>xsl:variable</item>
+      <item>xsl:number</item>
+      <item>xsl:message</item>
+      <item>xsl:fallback</item>
+      <item>xsl:strip-space</item>
+      <item>xsl:import</item>
+      <item>xsl:preserve-space</item>
+      <item>xsl:if</item>
+      <item>xsl:call-template</item>
+      <item>xsl:attribute-set</item>
+    </list>
+  
+    <list name="keytags_2.0">
+      <item>xsl:perform-sort</item>
+      <item>xsl:import-schema</item>
+      <item>xsl:for-each-group</item>
+      <item>xsl:sequence</item>
+      <item>xsl:non-matching-substring</item>
+      <item>xsl:namespace</item>
+      <item>xsl:next-match</item>
+      <item>xsl:function</item>
+      <item>xsl:analyze-string</item>
+      <item>xsl:output-character</item>
+      <item>xsl:matching-substring</item>
+      <item>xsl:result-document</item>
+      <item>xsl:character-map</item>
+      <item>xsl:document</item>
+    </list>
+    
+    <list name="functions">    
+      <item>format-number</item>
+      <item>position</item>
+      <item>lang</item>
+      <item>substring-before</item>
+      <item>substring</item>
+      <item>normalize-space</item>
+      <item>round</item>
+      <item>translate</item>
+      <item>starts-with</item>
+      <item>concat</item>
+      <item>local-name</item>
+      <item>key</item>
+      <item>count</item>
+      <item>document</item>
+      <item>system-property</item>
+      <item>current</item>
+      <item>boolean</item>
+      <item>number</item>
+      <item>contains</item>
+      <item>name</item>
+      <item>last</item>
+      <item>unparsed-entity-uri</item>
+      <item>sum</item>
+      <item>generate-id</item>
+      <item>function-available</item>
+      <item>element-available</item>
+      <item>false</item>
+      <item>substring-after</item>
+      <item>not</item>
+      <item>string-length</item>
+      <item>id</item>
+      <item>floor</item>
+      <item>ceiling</item>
+      <item>namespace-uri</item>
+      <item>true</item>
+      <item>string</item>
+      <item>text</item>
+    </list>
+
+    <list name="functions_2.0">
+      <item>zero-or-one</item>
+      <item>replace</item>
+      <item>namespace-uri-for-prefix</item>
+      <item>current-grouping-key</item>
+      <item>seconds-from-duration</item>
+      <item>resolve-uri</item>
+      <item>node-kind</item>
+      <item>minutes-from-dateTime</item>
+      <item>implicit-timezone</item>
+      <item>exactly-one</item>
+      <item>current-time</item>
+      <item>current-dateTime</item>
+      <item>unordered</item>
+      <item>subtract-dates-yielding-dayTimeDuration</item>
+      <item>string-join</item>
+      <item>static-base-uri</item>
+      <item>months-from-duration</item>
+      <item>input</item>
+      <item>exists</item>
+      <item>default-collation</item>
+      <item>dateTime</item>
+      <item>current-group</item>
+      <item>current-date</item>
+      <item>collection</item>
+      <item>timezone-from-time</item>
+      <item>matches</item>
+      <item>local-name-from-QName</item>
+      <item>day-from-date</item>
+      <item>timezone-from-date</item>
+      <item>round-half-to-even</item>
+      <item>month-from-dateTime</item>
+      <item>month-from-date</item>
+      <item>hours-from-duration</item>
+      <item>escape-uri</item>
+      <item>distinct-values</item>
+      <item>avg</item>
+      <item>years-from-duration</item>
+      <item>unparsed-text</item>
+      <item>unparsed-entity-public-id</item>
+      <item>subtract-dateTimes-yielding-dayTimeDuration</item>
+      <item>subtract-dates-yielding-yearMonthDuration</item>
+      <item>string-to-codepoints</item>
+      <item>sequence-node-identical</item>
+      <item>hours-from-time</item>
+      <item>hours-from-dateTime</item>
+      <item>format-time</item>
+      <item>codepoints-to-string</item>
+      <item>trace</item>
+      <item>tokenize</item>
+      <item>subtract-dateTimes-yielding-yearMonthDuration</item>
+      <item>subsequence</item>
+      <item>seconds-from-dateTime</item>
+      <item>regex-group</item>
+      <item>one-or-more</item>
+      <item>node-name</item>
+      <item>namespace-uri-from-QName</item>
+      <item>min</item>
+      <item>idref</item>
+      <item>format-dateTime</item>
+      <item>format-date</item>
+      <item>days-from-duration</item>
+      <item>compare</item>
+      <item>base-uri</item>
+      <item>seconds-from-time</item>
+      <item>in-scope-prefixes</item>
+      <item>expanded-QName</item>
+      <item>adjust-date-to-timezone</item>
+      <item>year-from-date</item>
+      <item>resolve-QName</item>
+      <item>remove</item>
+      <item>QName</item>
+      <item>minutes-from-time</item>
+      <item>max</item>
+      <item>lower-case</item>
+      <item>index-of</item>
+      <item>doc</item>
+      <item>deep-equal</item>
+      <item>data</item>
+      <item>minutes-from-duration</item>
+      <item>adjust-dateTime-to-timezone</item>
+      <item>abs</item>
+      <item>timezone-from-dateTime</item>
+      <item>reverse</item>
+      <item>error</item>
+      <item>ends-with</item>
+      <item>day-from-dateTime</item>
+      <item>year-from-dateTime</item>
+      <item>upper-case</item>
+      <item>root</item>
+      <item>normalize-unicode</item>
+      <item>empty</item>
+      <item>insert-before</item>
+      <item>document-uri</item>
+      <item>adjust-time-to-timezone</item>
+    </list>
+    
+    <contexts>
+
+       <context name="normalText" attribute="Normal Text" lineEndContext="#stay">
+         <StringDetect attribute="Comment" context="comment" String="&lt;!--" beginRegion="comment"/>
+         
+         <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+         <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
+         <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
+
+         <DetectChar attribute="Tag" context="tagname" char="&lt;" />
+         <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />
+       </context>
+
+
+       
+       <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
+         <DetectSpaces />
+         <DetectIdentifier />
+         <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
+         <StringDetect attribute="Entity Reference" context="#stay" String="]]&amp;gt;" />
+       </context>
+       
+       <context name="PI" attribute="Normal Text" lineEndContext="#stay">
+         <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
+       </context>
+       
+       <context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
+         <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
+         <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
+       </context>
+       
+       <context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
+         <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
+         <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
+         <StringDetect attribute="Comment" context="comment" String="&lt;!--" beginRegion="comment" />
+         <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
+         <IncludeRules context="FindPEntityRefs" />
+       </context>
+       
+       <context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
+         <DetectChar attribute="Doctype" context="#pop" char="&gt;" />
+         <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
+         <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
+       </context>
+       
+       <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
+         <DetectChar attribute="Value" context="#pop" char="&quot;" />
+         <IncludeRules context="FindPEntityRefs" />
+       </context>
+       
+       <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
+         <DetectChar attribute="Value" context="#pop" char="&apos;" />
+         <IncludeRules context="FindPEntityRefs" />
+       </context>
+       
+       <context name="detectEntRef" attribute="Normal Text" lineEndContext="#stay">
+         <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />
+       </context>
+       <context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
+         <RegExpr attribute="Entity Reference" context="#stay" String="&entref;" />
+         <RegExpr attribute="PEntity Reference" context="#stay" String="%&qname;;" />
+         <AnyChar attribute="Invalid" context="#stay" String="&amp;%" />
+       </context>
+       
+       <context name="tagname" attribute="Tag" lineEndContext="#stay">
+         <keyword attribute="XSLT Tag" context="xattributes" String="keytags" />
+         <keyword attribute="XSLT 2.0 Tag" context="xattributes" String="keytags_2.0" />
+         <RegExpr attribute="Attribute" context="attributes" String="\s*" />
+         <DetectChar attribute="Tag" context="#pop" char="&gt;" />
+       </context>
+       
+       <context name="attributes" attribute="Attribute" lineEndContext="#stay">
+         <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1="&gt;" />
+         <DetectChar attribute="Tag" context="#pop#pop" char="&gt;" />
+         <RegExpr attribute="Normal Text" context="attrValue" String="\s*=\s*" />
+       </context>
+
+       <context name="attrValue" attribute="Invalid" lineEndContext="#stay">
+         <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1="&gt;" />
+         <DetectChar attribute="Invalid" context="#pop#pop#pop" char="&gt;" />
+         <DetectChar attribute="Attribute Value" context="string" char="&quot;" />
+         <DetectChar attribute="Attribute Value" context="sqstring" char="'" />
+       </context>
+
+       <context name="xattributes" attribute="Attribute" lineEndContext="#stay">
+          <Detect2Chars attribute="Tag" context="#pop#pop" char="/" char1="&gt;" />
+          <DetectChar attribute="Tag" context="#pop#pop" char="&gt;" />
+          <RegExpr attribute="Attribute" context="xattrValue" String="select\s*=\s*" />
+          <RegExpr attribute="Attribute" context="xattrValue" String="test\s*=\s*" />
+          <RegExpr attribute="Attribute" context="xattrValue" String="match\s*=\s*" />
+          <RegExpr attribute="Attribute" context="attrValue" String="\s*=\s*" />
+       </context>
+
+       <context name="xattrValue" attribute="Invalid" lineEndContext="#stay">
+         <Detect2Chars attribute="Invalid" context="#pop#pop#pop" char="/" char1="&gt;" />
+         <DetectChar attribute="Invalid" context="#pop#pop#pop" char="&gt;" />
+         <DetectChar attribute="XPath" context="xpath" char="&quot;" />
+         <DetectChar attribute="XPath" context="sqxpath" char="'" />
+       </context>
+       
+       
+       <context name="string" attribute="Attribute Value" lineEndContext="#stay">
+         <DetectChar attribute="XPath" context="xpath" char="{" />
+         <DetectChar attribute="Attribute Value" context="#pop#pop" char="&quot;" />
+         <IncludeRules context="detectEntRef" />
+       </context>
+
+       <context name="sqstring" attribute="Attribute Value" lineEndContext="#stay">
+         <DetectChar attribute="XPath" context="sqxpath" char="{" />
+         <DetectChar attribute="Attribute Value" context="#pop#pop" char="'" />
+         <IncludeRules context="detectEntRef" />
+       </context>
+       
+       <context name="comment" attribute="Comment" lineEndContext="#stay">
+         <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+         <RegExpr attribute="Invalid" context="#stay" String="-(-(?!-&gt;))+" />
+         <RegExpr attribute="Alert" context="#stay" String="(FIXME|TODO|HACK)" />
+       </context>
+
+       <context name="xpath" attribute="XPath" lineEndContext="#stay">
+         <keyword attribute="XPath/ XSLT Function" context="#stay" String="functions" />
+         <keyword attribute="XPath 2.0/ XSLT 2.0 Function" context="#stay" String="functions_2.0" />
+         <RegExpr attribute="XPath Axis" context="#stay" String="(&axisname;)::" />
+         <DetectChar attribute="XPath" context="#pop" char="}" />
+         <DetectChar attribute="XPath String" context="sqxpathstring" char="'" />
+         <DetectChar attribute="XPath" context="#pop#pop" char="&quot;" />
+         <RegExpr attribute="XPath Attribute" context="#stay" String="@&qname;" />
+         <RegExpr attribute="Variable" context="#stay" String="\$&qname;" />
+         <RegExpr attribute="XPath" context="#stay" String="&qname;" />
+         <DetectChar attribute="Invalid" context="#stay" char="$" />
+         <IncludeRules context="detectEntRef" />
+       </context>
+       
+       <context name="sqxpath" attribute="XPath" lineEndContext="#stay">
+         <keyword attribute="XPath/ XSLT Function" context="#stay" String="functions" />
+         <keyword attribute="XPath 2.0/ XSLT 2.0 Function" context="#stay" String="functions_2.0" />
+         <RegExpr attribute="XPath Axis" context="#stay" String="(&axisname;)::" />
+         <DetectChar attribute="XPath" context="#pop" char="}" />
+         <DetectChar attribute="XPath String" context="xpathstring" char="&quot;" />
+         <DetectChar attribute="XPath" context="#pop#pop" char="'" />
+         <RegExpr attribute="XPath Attribute" context="#stay" String="@&qname;" />
+         <RegExpr attribute="Variable" context="#stay" String="\$&qname;" />
+         <RegExpr attribute="XPath" context="#stay" String="&qname;" />
+         <DetectChar attribute="Invalid" context="#stay" char="$" />
+         <IncludeRules context="detectEntRef" />
+       </context>
+       
+       <context name="sqxpathstring" attribute="XPath String" lineEndContext="#stay">
+         <DetectChar attribute="XPath String" context="#pop" char="'" />
+         <IncludeRules context="detectEntRef" />
+       </context>
+       
+       <context name="xpathstring" attribute="XPath String" lineEndContext="#stay">
+         <DetectChar attribute="XPath String" context="#pop" char="&quot;" />
+         <IncludeRules context="detectEntRef" />
+       </context>
+       
+    </contexts>
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Tag" defStyleNum="dsKeyword"/>
+      <itemData name="Attribute" defStyleNum="dsOthers"/>
+      <itemData name="Value" defStyleNum="dsAttribute"/>
+      <itemData name="Invalid" defStyleNum="dsError"/>
+      <itemData name="Alert" defStyleNum="dsAlert"/>
+      <itemData name="Attribute Value" defStyleNum="dsString" color="#800000" selColor="#ffffff" bold="0" italic="0"/>
+      <itemData name="XPath" defStyleNum="dsOthers" color="#008080" selColor="#ffffff" bold="0" italic="0"/>
+      <itemData name="XPath String" defStyleNum="dsString" color="#800000" selColor="#ffffff" bold="0" italic="0"/>
+      <itemData name="XPath Axis" defStyleNum="dsKeyword" color="#008080" selColor="#ffffff" bold="0" italic="1"/>
+      <itemData name="XPath/ XSLT Function" defStyleNum="dsKeyword" color="#008080" selColor="#ffffff" bold="1" italic="0"/>
+      <itemData name="XPath 2.0/ XSLT 2.0 Function" defStyleNum="dsKeyword" color="#008080" selColor="#ffffff" bold="1" italic="0"/>
+      <itemData name="XPath Attribute" defStyleNum="dsNormal" color="#008080" selColor="#ffffff" bold="0" italic="1" />
+      <itemData name="Variable" defStyleNum="dsNormal" color="#008080" selColor="#ffffff" bold="0" italic="1" />
+      <itemData name="Comment" defStyleNum="dsComment"/>
+      <itemData name="XSLT Tag" defStyleNum="dsKeyword" color="#000080" selColor="#ffffff" bold="1" italic="0" />
+      <itemData name="XSLT 2.0 Tag" defStyleNum="dsKeyword" color="#000080" selColor="#ffffff" bold="1" italic="0" />
+      <itemData name="Entity Reference" defStyleNum="dsDecVal" />
+
+      <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
+      <itemData name="Processing Instruction" defStyleNum="dsKeyword" />
+      <itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
+      <itemData name="PEntity Reference" defStyleNum="dsDecVal" />
+
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="multiLine" start="&lt;!--" end="--&gt;" />
+    </comments>
+    <keywords casesensitive="0" weakDeliminator="-:" additionalDeliminator="&quot;{}"/>
+  </general>
+</language>
diff --git a/xml/xul.xml b/xml/xul.xml
new file mode 100644
--- /dev/null
+++ b/xml/xul.xml
@@ -0,0 +1,627 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+	<!ENTITY name    "[A-Za-z_:][\w.:_-]*">
+	<!ENTITY entref  "&amp;(#[0-9]+|#[xX][0-9A-Fa-f]+|&name;);">
+]>
+        <language name="XUL" version="2" kateversion="2.4" section="Markup" extensions="*.xul;*.xbl" mimetype="text/xul" casesensitive="1" author="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)" license="LGPL">
+
+<highlighting>
+   <list name="keywords">
+      <item>if</item>
+      <item>else</item>
+      <item>for</item>
+      <item>in</item>
+      <item>while</item>
+      <item>do</item>
+      <item>continue</item>
+      <item>break</item>
+      <item>with</item>
+      <item>try</item>
+      <item>catch</item>
+      <item>finally</item>
+      <item>switch</item>
+      <item>case</item>
+      <item>new</item>
+      <item>var</item>
+      <item>function</item>
+      <item>return</item>
+      <item>delete</item>
+      <item>true</item>
+      <item>false</item>
+      <item>void</item>
+      <item>throw</item>
+      <item>typeof</item>
+      <item>const</item>
+      <item>default</item>
+   </list>
+   <list name="functions">
+      <item>escape</item>
+      <item>isFinite</item>
+      <item>isNaN</item>
+      <item>Number</item>
+      <item>parseFloat</item>
+      <item>parseInt</item>
+      <item>reload</item>
+      <item>taint</item>
+      <item>unescape</item>
+      <item>untaint</item>
+      <item>write</item>
+   </list>
+   <list name="objects">
+      <item>Anchor</item>
+      <item>Applet</item>
+      <item>Area</item>
+      <item>Array</item>
+      <item>Boolean</item>
+      <item>Button</item>
+      <item>Checkbox</item>
+      <item>Date</item>
+      <item>document</item>
+      <item>window</item>
+      <item>Image</item>
+      <item>FileUpload</item>
+      <item>Form</item>
+      <item>Frame</item>
+      <item>Function</item>
+      <item>Hidden</item>
+      <item>Link</item>
+      <item>MimeType</item>
+      <item>Math</item>
+      <item>Max</item>
+      <item>Min</item>
+      <item>Layer</item>
+      <item>navigator</item>
+      <item>Object</item>
+      <item>Password</item>
+      <item>Plugin</item>
+      <item>Radio</item>
+      <item>RegExp</item>
+      <item>Reset</item>
+      <item>Screen</item>
+      <item>Select</item>
+      <item>String</item>
+      <item>Text</item>
+      <item>Textarea</item>
+      <item>this</item>
+      <item>Window</item>
+   </list>
+   <list name="math">
+      <item>abs</item>
+      <item>acos</item>
+      <item>asin</item>
+      <item>atan</item>
+      <item>atan2</item>
+      <item>ceil</item>
+      <item>cos</item>
+      <item>ctg</item>
+      <item>E</item>
+      <item>exp</item>
+      <item>floor</item>
+      <item>LN2</item>
+      <item>LN10</item>
+      <item>log</item>
+      <item>LOG2E</item>
+      <item>LOG10E</item>
+      <item>PI</item>
+      <item>pow</item>
+      <item>round</item>
+      <item>sin</item>
+      <item>sqrt</item>
+      <item>SQRT1_2</item>
+      <item>SQRT2</item>
+      <item>tan</item>
+   </list>
+   <list name="events">
+      <item>onAbort</item>
+      <item>onBlur</item>
+      <item>onChange</item>
+      <item>onClick</item>
+      <item>onError</item>
+      <item>onFocus</item>
+      <item>onLoad</item>
+      <item>onMouseOut</item>
+      <item>onMouseOver</item>
+      <item>onReset</item>
+      <item>onSelect</item>
+      <item>onSubmit</item>
+      <item>onUnload</item>
+   </list>
+   <list name="methods">
+      <item>above</item>
+      <item>action</item>
+      <item>alinkColor</item>
+      <item>alert</item>
+      <item>anchor</item>
+      <item>anchors</item>
+      <item>appCodeName</item>
+      <item>applets</item>
+      <item>apply</item>
+      <item>appName</item>
+      <item>appVersion</item>
+      <item>argument</item>
+      <item>arguments</item>
+      <item>arity</item>
+      <item>availHeight</item>
+      <item>availWidth</item>
+      <item>back</item>
+      <item>background</item>
+      <item>below</item>
+      <item>bgColor</item>
+      <item>border</item>
+      <item>big</item>
+      <item>blink</item>
+      <item>blur</item>
+      <item>bold</item>
+      <item>border</item>
+      <item>call</item>
+      <item>caller</item>
+      <item>charAt</item>
+      <item>charCodeAt</item>
+      <item>checked</item>
+      <item>clearInterval</item>
+      <item>clearTimeout</item>
+      <item>click</item>
+      <item>clip</item>
+      <item>close</item>
+      <item>closed</item>
+      <item>colorDepth</item>
+      <item>complete</item>
+      <item>compile</item>
+      <item>constructor</item>
+      <item>confirm</item>
+      <item>cookie</item>
+      <item>current</item>
+      <item>cursor</item>
+      <item>data</item>
+      <item>defaultChecked</item>
+      <item>defaultSelected</item>
+      <item>defaultStatus</item>
+      <item>defaultValue</item>
+      <item>description</item>
+      <item>disableExternalCapture</item>
+      <item>domain</item>
+      <item>elements</item>
+      <item>embeds</item>
+      <item>enabledPlugin</item>
+      <item>enableExternalCapture</item>
+      <item>encoding</item>
+      <item>eval</item>
+      <item>exec</item>
+      <item>fgColor</item>
+      <item>filename</item>
+      <item>find</item>
+      <item>fixed</item>
+      <item>focus</item>
+      <item>fontcolor</item>
+      <item>fontsize</item>
+      <item>form</item>
+      <item>forms</item>
+      <item>formName</item>
+      <item>forward</item>
+      <item>frames</item>
+      <item>fromCharCode</item>
+      <item>getDate</item>
+      <item>getDay</item>
+      <item>getHours</item>
+      <item>getMiliseconds</item>
+      <item>getMinutes</item>
+      <item>getMonth</item>
+      <item>getSeconds</item>
+      <item>getSelection</item>
+      <item>getTime</item>
+      <item>getTimezoneOffset</item>
+      <item>getUTCDate</item>
+      <item>getUTCDay</item>
+      <item>getUTCFullYear</item>
+      <item>getUTCHours</item>
+      <item>getUTCMilliseconds</item>
+      <item>getUTCMinutes</item>
+      <item>getUTCMonth</item>
+      <item>getUTCSeconds</item>
+      <item>getYear</item>
+      <item>global</item>
+      <item>go</item>
+      <item>hash</item>
+      <item>height</item>
+      <item>history</item>
+      <item>home</item>
+      <item>host</item>
+      <item>hostname</item>
+      <item>href</item>
+      <item>hspace</item>
+      <item>ignoreCase</item>
+      <item>images</item>
+      <item>index</item>
+      <item>indexOf</item>
+      <item>innerHeight</item>
+      <item>innerWidth</item>
+      <item>input</item>
+      <item>italics</item>
+      <item>javaEnabled</item>
+      <item>join</item>
+      <item>language</item>
+      <item>lastIndex</item>
+      <item>lastIndexOf</item>
+      <item>lastModified</item>
+      <item>lastParen</item>
+      <item>layers</item>
+      <item>layerX</item>
+      <item>layerY</item>
+      <item>left</item>
+      <item>leftContext</item>
+      <item>length</item>
+      <item>link</item>
+      <item>linkColor</item>
+      <item>links</item>
+      <item>location</item>
+      <item>locationbar</item>
+      <item>load</item>
+      <item>lowsrc</item>
+      <item>match</item>
+      <item>MAX_VALUE</item>
+      <item>menubar</item>
+      <item>method</item>
+      <item>mimeTypes</item>
+      <item>MIN_VALUE</item>
+      <item>modifiers</item>
+      <item>moveAbove</item>
+      <item>moveBelow</item>
+      <item>moveBy</item>
+      <item>moveTo</item>
+      <item>moveToAbsolute</item>
+      <item>multiline</item>
+      <item>name</item>
+      <item>NaN</item>
+      <item>NEGATIVE_INFINITY</item>
+      <item>negative_infinity</item>
+      <item>next</item>
+      <item>open</item>
+      <item>opener</item>
+      <item>options</item>
+      <item>outerHeight</item>
+      <item>outerWidth</item>
+      <item>pageX</item>
+      <item>pageY</item>
+      <item>pageXoffset</item>
+      <item>pageYoffset</item>
+      <item>parent</item>
+      <item>parse</item>
+      <item>pathname</item>
+      <item>personalbar</item>
+      <item>pixelDepth</item>
+      <item>platform</item>
+      <item>plugins</item>
+      <item>pop</item>
+      <item>port</item>
+      <item>POSITIVE_INFINITY</item>
+      <item>positive_infinity</item>
+      <item>preference</item>
+      <item>previous</item>
+      <item>print</item>
+      <item>prompt</item>
+      <item>protocol</item>
+      <item>prototype</item>
+      <item>push</item>
+      <item>referrer</item>
+      <item>refresh</item>
+      <item>releaseEvents</item>
+      <item>reload</item>
+      <item>replace</item>
+      <item>reset</item>
+      <item>resizeBy</item>
+      <item>resizeTo</item>
+      <item>reverse</item>
+      <item>rightContext</item>
+      <item>screenX</item>
+      <item>screenY</item>
+      <item>scroll</item>
+      <item>scrollbar</item>
+      <item>scrollBy</item>
+      <item>scrollTo</item>
+      <item>search</item>
+      <item>select</item>
+      <item>selected</item>
+      <item>selectedIndex</item>
+      <item>self</item>
+      <item>setDate</item>
+      <item>setHours</item>
+      <item>setMinutes</item>
+      <item>setMonth</item>
+      <item>setSeconds</item>
+      <item>setTime</item>
+      <item>setTimeout</item>
+      <item>setUTCDate</item>
+      <item>setUTCDay</item>
+      <item>setUTCFullYear</item>
+      <item>setUTCHours</item>
+      <item>setUTCMilliseconds</item>
+      <item>setUTCMinutes</item>
+      <item>setUTCMonth</item>
+      <item>setUTCSeconds</item>
+      <item>setYear</item>
+      <item>shift</item>
+      <item>siblingAbove</item>
+      <item>siblingBelow</item>
+      <item>small</item>
+      <item>sort</item>
+      <item>source</item>
+      <item>splice</item>
+      <item>split</item>
+      <item>src</item>
+      <item>status</item>
+      <item>statusbar</item>
+      <item>strike</item>
+      <item>sub</item>
+      <item>submit</item>
+      <item>substr</item>
+      <item>substring</item>
+      <item>suffixes</item>
+      <item>sup</item>
+      <item>taintEnabled</item>
+      <item>target</item>
+      <item>test</item>
+      <item>text</item>
+      <item>title</item>
+      <item>toGMTString</item>
+      <item>toLocaleString</item>
+      <item>toLowerCase</item>
+      <item>toolbar</item>
+      <item>toSource</item>
+      <item>toString</item>
+      <item>top</item>
+      <item>toUpperCase</item>
+      <item>toUTCString</item>
+      <item>type</item>
+      <item>URL</item>
+      <item>unshift</item>
+      <item>unwatch</item>
+      <item>userAgent</item>
+      <item>UTC</item>
+      <item>value</item>
+      <item>valueOf</item>
+      <item>visibility</item>
+      <item>vlinkColor</item>
+      <item>vspace</item>
+      <item>width</item>
+      <item>watch</item>
+      <item>which</item>
+      <item>width</item>
+      <item>write</item>
+      <item>writeln</item>
+      <item>x</item>
+      <item>y</item>
+      <item>zIndex</item>
+    </list>
+<contexts>
+  <context name="Start" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="FindXML" />
+  </context>
+
+  <context name="FindXML" attribute="Normal Text" lineEndContext="#stay">
+    <DetectSpaces />
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <StringDetect attribute="CDATA" context="CDATA" String="&lt;![CDATA[" beginRegion="cdata" />
+    <RegExpr attribute="Doctype" context="Doctype" String="&lt;!DOCTYPE\s+" beginRegion="doctype" />
+    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
+    <RegExpr attribute="Element" context="Element" String="&lt;&name;" beginRegion="element" />
+    <IncludeRules context="FindEntityRefs" />
+    <DetectIdentifier />
+  </context>
+
+  <context name="FindEntityRefs" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;&lt;" />
+  </context>
+
+  <context name="FindPEntityRefs" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="EntityRef" context="#stay" String="&entref;" />
+    <RegExpr attribute="PEntityRef" context="#stay" String="%&name;;" />
+    <AnyChar attribute="Error" context="#stay" String="&amp;%" />
+  </context>
+
+
+  <context name="Comment" attribute="Comment" lineEndContext="#stay">
+    <DetectSpaces />
+    <StringDetect attribute="Comment" context="#pop" String="--&gt;" endRegion="comment" />
+    <RegExpr attribute="Error" context="#stay" String="-(-(?!-&gt;))+" />
+    <IncludeRules context="##Alerts" />
+    <DetectIdentifier />
+  </context>
+
+  <context name="PI" attribute="Normal Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Processing Instruction" context="#pop" char="?" char1="&gt;" endRegion="pi" />
+  </context>
+
+  <context name="Doctype" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="&gt;" endRegion="doctype" />
+    <DetectChar attribute="Doctype" context="Doctype Internal Subset" char="[" beginRegion="int_subset" />
+  </context>
+
+  <context name="Doctype Internal Subset" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="]" endRegion="int_subset" />
+    <RegExpr attribute="Doctype" context="Doctype Markupdecl" String="&lt;!(ELEMENT|ENTITY|ATTLIST|NOTATION)\b" />
+    <StringDetect attribute="Comment" context="Comment" String="&lt;!--" beginRegion="comment" />
+    <RegExpr attribute="Processing Instruction" context="PI" String="&lt;\?[\w:_-]*" beginRegion="pi" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Doctype Markupdecl" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Doctype" context="#pop" char="&gt;" />
+    <DetectChar attribute="Value" context="Doctype Markupdecl DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Doctype Markupdecl SQ" char="&apos;" />
+  </context>
+
+  <context name="Doctype Markupdecl DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop" char="&quot;" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Doctype Markupdecl SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop" char="&apos;" />
+    <IncludeRules context="FindPEntityRefs" />
+  </context>
+
+  <context name="Element" attribute="Normal Text" lineEndContext="#stay">
+    <Detect2Chars attribute="Element" context="#pop" char="/" char1="&gt;" endRegion="element" />
+    <DetectChar attribute="Element" context="El Content" char="&gt;" />
+    <RegExpr attribute="Attribute" context="Attribute" String="^&name;" />
+    <RegExpr attribute="Attribute" context="Attribute" String="\s+&name;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="El Content" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Element" context="El End" String="&lt;/&name;" />
+    <IncludeRules context="FindXML" />
+  </context>
+
+  <context name="El End" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Element" context="#pop#pop#pop" char="&gt;" endRegion="element" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Attribute" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Attribute" context="Value" char="=" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Value" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="Value DQ" char="&quot;" />
+    <DetectChar attribute="Value" context="Value SQ" char="&apos;" />
+    <RegExpr attribute="Error" context="#stay" String="\S" />
+  </context>
+
+  <context name="Value DQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop#pop" char="&quot;" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+  <context name="Value SQ" attribute="Value" lineEndContext="#stay">
+    <DetectChar attribute="Value" context="#pop#pop#pop" char="&apos;" />
+    <IncludeRules context="FindEntityRefs" />
+  </context>
+
+  <context name="CDATA" attribute="Normal Text" lineEndContext="#stay">
+     <StringDetect attribute="CDATA" context="#pop" String="]]&gt;" endRegion="cdata" />
+     <StringDetect attribute="EntityRef" context="#stay" String="]]&amp;gt;" />
+     <DetectSpaces/>
+     <StringDetect attribute="Region Marker" context="region_marker" String="//BEGIN" beginRegion="Region1"/>
+     <StringDetect attribute="Region Marker" context="region_marker" String="//END" endRegion="Region1"/>
+     <keyword attribute="Keyword" context="#stay" String="keywords" />
+     <keyword attribute="Function" context="#stay" String="functions" />
+     <keyword attribute="Objects" context="#stay" String="objects" />
+     <keyword attribute="Math" context="#stay" String="math" />
+     <keyword attribute="Events" context="#stay" String="events" />
+     <keyword attribute="Data Type" context="#stay" String="methods" />
+     <DetectIdentifier/>
+     <Float attribute="Float" context="#stay" />
+     <Int attribute="Decimal" context="#stay" />
+     <DetectChar attribute="String" context="String" char="&quot;"/>
+     <DetectChar attribute="String" context="String 1" char="'"/>
+     <Detect2Chars attribute="Comment" context="JSComment" char="/" char1="/"/>
+     <Detect2Chars attribute="Comment" context="Multi/inline Comment" char="/" char1="*" beginRegion="Comment"/>
+     <RegExpr attribute="Normal Text" context="(Internal regex catch)" String="[=?:]" />
+     <RegExpr attribute="Normal Text" context="(Internal regex catch)" String="\(" />
+     <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />
+     <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />
+     <AnyChar attribute="Symbol" context="#stay" String=":!%&amp;+,-/.*&lt;=&gt;?[]|~^&#59;"/>
+  </context>
+  
+  <context attribute="String" lineEndContext="#pop" name="String">
+     <DetectIdentifier/>
+     <HlCStringChar attribute="String Char" context="#stay"/>
+     <DetectChar attribute="String" context="#pop" char="&quot;"/>
+  </context>
+  <context attribute="String Char" lineEndContext="#pop" name="String 1">
+     <DetectIdentifier/>
+     <DetectChar attribute="String" context="String" char="&quot;"/>
+     <DetectChar attribute="String Char" context="#pop" char="'"/>
+  </context>
+
+  <context attribute="Comment" lineEndContext="#pop" name="JSComment">
+     <DetectSpaces />
+     <IncludeRules context="##Alerts" />
+     <DetectIdentifier />
+  </context>
+  <context attribute="Comment" lineEndContext="#stay" name="Multi/inline Comment">
+     <IncludeRules context="##Alerts" />
+     <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
+  </context>
+  
+  <context attribute="Regular Expression" lineEndContext="#stay" name="Regular Expression">
+     <RegExpr attribute="Regular Expression" context="#pop#pop#pop" String="/[ig]{0,2}" />
+     <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\{[\d, ]+\}" />
+     <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\[bB]" />
+     <RegExpr attribute="Pattern Character Class" context="#stay" String="\\[nrtvfDdSsWw]" />
+     <DetectChar attribute="Pattern Character Class" context="(charclass caret first check)" char="[" />
+     <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\\." />
+     <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=/)" />
+     <AnyChar attribute="Pattern Internal Operator" context="#stay" String="?+*()|" />
+  </context>
+  <context attribute="Normal Text" lineEndContext="#stay" name="(Internal regex catch)" fallthrough="true" fallthroughContext="#pop">
+     <RegExpr attribute="Normal Text" context="#stay" String="\s*" />
+     <RegExpr attribute="Regular Expression" context="#pop" String="//(?=;)" />
+     <Detect2Chars attribute="Comment" context="JSComment" char="/" char1="/" />
+     <Detect2Chars attribute="Comment" context="Multi/inline Comment" char="/" char1="*" />
+     <DetectChar attribute="Regular Expression" context="(regex caret first check)" char="/" />
+  </context>
+  <context attribute="Pattern Character Class" lineEndContext="#stay" name="Regular Expression Character Class">
+     <RegExpr attribute="Pattern Character Class" context="#stay" String="\\[\[\]]" />
+     <DetectChar attribute="Pattern Character Class" context="#pop#pop" char="]" />
+  </context>
+  <context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(regex caret first check)" fallthrough="true" fallthroughContext="Regular Expression">
+     <DetectChar attribute="Pattern Internal Operator" context="Regular Expression" char="^" />
+  </context>
+  <context attribute="Pattern Internal Operator" lineEndContext="#pop" name="(charclass caret first check)" fallthrough="true" fallthroughContext="Regular Expression Character Class">
+     <DetectChar attribute="Pattern Internal Operator" context="Regular Expression Character Class" char="^" />
+  </context>
+  
+  <context name="region_marker" attribute="Region Marker" lineEndContext="#pop" >
+     <DetectIdentifier />
+     <DetectSpaces />
+  </context>
+
+</contexts>
+<itemDatas>
+  <itemData name="Normal Text" defStyleNum="dsNormal" />
+  <itemData name="Comment" defStyleNum="dsComment" />
+  <itemData name="CDATA" defStyleNum="dsBaseN" bold="1" />
+  <itemData name="Processing Instruction" defStyleNum="dsKeyword" />
+  <itemData name="Doctype" defStyleNum="dsDataType" bold="1" />
+  <itemData name="Element" defStyleNum="dsKeyword" />
+  <itemData name="Attribute" defStyleNum="dsOthers" />
+  <itemData name="Value" defStyleNum="dsString" />
+  <itemData name="EntityRef" defStyleNum="dsDecVal" />
+  <itemData name="PEntityRef" defStyleNum="dsDecVal" />
+  <itemData name="Error" defStyleNum="dsError" />
+
+  <itemData name="Keyword"      defStyleNum="dsKeyword"/>
+  <itemData name="Function" defStyleNum="dsFunction"/>
+  <itemData name="Objects" defStyleNum="dsKeyword" color="#008000" selColor="#00ffff" bold="0" italic="0"/>
+  <itemData name="Math" defStyleNum="dsKeyword" color="#DBA716" selColor="#00ffff" bold="0" italic="0"/>
+  <itemData name="Events" defStyleNum="dsKeyword" color="#F766D5" selColor="#00ffff" bold="0" italic="0"/>
+  <itemData name="Data Type"    defStyleNum="dsDataType"/>
+  <itemData name="Decimal"      defStyleNum="dsDecVal"/>
+  <itemData name="Float"        defStyleNum="dsFloat"/>
+  <itemData name="Char"         defStyleNum="dsChar"/>
+  <itemData name="String"       defStyleNum="dsString"/>
+  <itemData name="String Char"  defStyleNum="dsChar"/>
+  <itemData name="Comment"      defStyleNum="dsComment"/>
+  <itemData name="Symbol"       defStyleNum="dsNormal"/>
+  <itemData name="Regular Expression" defStyleNum="dsOthers"   />
+  <itemData name="Pattern Internal Operator" defStyleNum="dsFloat" />
+  <itemData name="Pattern Character Class" defStyleNum="dsBaseN" />
+  <itemData name="Region Marker" defStyleNum="dsRegionMarker" />
+</itemDatas>
+
+</highlighting>
+<general>
+  <comments>
+    <comment name="multiLine" start="&lt;!--" end="--&gt;" />
+    <comment name="singleLine" start="//" />
+    <comment name="multiLine" start="/*" end="*/" />
+  </comments>
+  <indentation mode="xml" />
+  <keywords casesensitive="1" />
+</general>
+</language>
diff --git a/xml/yacc.xml b/xml/yacc.xml
new file mode 100644
--- /dev/null
+++ b/xml/yacc.xml
@@ -0,0 +1,164 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!--
+========================================================================
+YACC.XML supports syntax highlighting for Yacc/Bison source under Kate.
+
+Copyright (C) 2004, Jan Villat <jan.villat@net2000.ch>
+This code is released under the LGPL as part of kdelibs/kate.
+========================================================================
+
+
+== UPDATE HISTORY ==
+2007-10-01 // Sebastian Pipping <webmaster@hartwork.org>
+
+  Added: Extension "*.yy" for Bison
+
+2004-05-26 // Jan Villat <jan.villat@net2000.ch>
+
+  YACC.XML 1.00 - First released.
+
+
+== TODO ==
+- Add a mime type (cannot find it !?)
+
+
+========================================================================
+-->
+<language name="Yacc/Bison" version="3" kateversion="2.4" section="Sources" extensions="*.y;*.yy" author="Jan Villat (jan.villat@net2000.ch)" license="LGPL">
+
+<highlighting>
+<contexts>
+  <context name="Pre Start" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="Comment" />
+    <DetectSpaces />
+    <Detect2Chars attribute="Content-Type Delimiter" context="C Declarations" char="%" char1="{" beginRegion="cdeclarations" column="0" />
+    <RegExpr attribute="Normal Text" context="Declarations" String="." beginRegion="declarations" lookAhead="true" />
+  </context>
+
+  <context name="C Declarations" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="Comment" />
+    <Detect2Chars attribute="Content-Type Delimiter" context="#pop" char="%" char1="}" endRegion="cdeclarations" column="0" />
+    <IncludeRules context="##C++" />
+  </context>
+
+  <context name="Declarations" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="Comment" />
+    <StringDetect attribute="Directive" context="Union Start" String="%union" />
+    <Detect2Chars attribute="Content-Type Delimiter" context="Rules" char="%" char1="%" beginRegion="rules" endRegion="declarations" />
+
+    <!-- not sure that strict yacc allows that ... but it is commonly used -->
+    <Detect2Chars attribute="Content-Type Delimiter" context="C Declarations" char="%" char1="{" beginRegion="cdeclarations" column="0" />
+
+    <DetectChar attribute="Directive" context="Percent Command" char="%" />
+  </context>
+
+  <context name="Union Start" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="Comment" />
+    <DetectSpaces />
+    <DetectChar attribute="Normal Text" context="Union In" char="{" beginRegion="union" />
+    <RegExpr attribute="Alert" context="#pop" String="." />
+  </context>
+  <context name="Union In" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Normal Text" context="Union InIn" char="{" />
+    <DetectChar attribute="Normal Text" context="#pop#pop" char="}" endRegion="union" />
+    <IncludeRules context="##C++" />
+  </context>
+  <context name="Union InIn" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Normal Text" context="Union InIn" char="{" />
+    <DetectChar attribute="Normal Text" context="#pop" char="}" />
+    <IncludeRules context="##C++" />
+  </context>
+
+  <context name="Rules" attribute="Rule" lineEndContext="#stay">
+    <IncludeRules context="Comment" />
+    <Detect2Chars attribute="Content-Type Delimiter" context="User Code" char="%" char1="%" beginRegion="code" endRegion="rules" />
+    <DetectChar attribute="Normal Text" context="Rule In" char=":" beginRegion="rule" />
+  </context>
+
+  <context name="Rule In" attribute="Definition" lineEndContext="#stay">
+    <IncludeRules context="Comment" />
+    <DetectChar attribute="Normal Text" context="#pop" char=";" endRegion="rule" />
+    <DetectChar attribute="Normal Text" context="Normal C Bloc" char="{" beginRegion="bloc" />
+    <DetectChar attribute="Normal Text" context="#stay" char="|" />
+    <IncludeRules context="StringOrChar" />
+  </context>
+
+  <context name="User Code" attribute="Normal Text" lineEndContext="#stay">
+    <IncludeRules context="##C++" />
+  </context>
+
+  <context name="Percent Command" attribute="Directive" lineEndContext="#pop">
+    <IncludeRules context="Comment" />
+    <RegExpr attribute="Normal Text" context="Percent Command In" String="\W" lookAhead="true" />
+  </context>
+  <context name="Percent Command In" attribute="Normal Text" lineEndContext="#pop#pop">
+    <IncludeRules context="StringOrChar" />
+    <DetectChar attribute="Data Type" context="PC type" char="&lt;" />
+  </context>
+  <context name="PC type" attribute="Data Type" lineEndContext="#pop#pop#pop">
+    <DetectChar attribute="Data Type" context="#pop" char="&gt;" />
+  </context>
+
+  <context name="Comment" attribute="Comment" lineEndContext="#stay">
+    <Detect2Chars attribute="Comment" context="CommentStar" char="/" char1="*" />
+    <!-- not sure that strict yacc allows that ... but I saw it in some sources ... -->
+    <Detect2Chars attribute="Comment" context="CommentSlash" char="/" char1="/" />
+  </context>
+  <context name="CommentStar" attribute="Comment" lineEndContext="#stay">
+    <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" />
+  </context>
+  <context name="CommentSlash" attribute="Comment" lineEndContext="#stay">
+    <RegExpr attribute="Comment" context="#pop" String="[^\\]$" />
+  </context>
+
+  <context name="StringOrChar" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="String Char" context="Char" char="'" />
+    <DetectChar attribute="String" context="String" char="&quot;" />
+  </context>
+  <context name="String" attribute="String" lineEndContext="#pop">
+    <RegExpr attribute="Backslash Code" context="#stay" String="\\." />
+    <DetectChar attribute="String" context="#pop" char="&quot;" />
+  </context>
+  <context name="Char" attribute="String Char" lineEndContext="#pop">
+    <RegExpr attribute="Backslash Code" context="#stay" String="\\." />
+    <DetectChar attribute="String Char" context="#pop" char="'" />
+  </context>
+
+  <context name="Normal C Bloc" attribute="Normal Text" lineEndContext="#stay">
+    <DetectChar attribute="Normal Text" context="Normal C Bloc" char="{" beginRegion="bloc" />
+    <DetectChar attribute="Normal Text" context="#pop" char="}" endRegion="bloc" />
+    <IncludeRules context="##C++" />
+    <DetectChar attribute="Directive" context="Dol" char="$" />
+  </context>
+  <context name="Dol" attribute="Normal Text" fallthrough="true" fallthroughContext="DolEnd" lineEndContext="#stay">
+    <RegExpr attribute="Data Type" context="DolEnd" String="&lt;[^&gt;]+&gt;" />
+  </context>
+  <context name="DolEnd" attribute="Normal Text" lineEndContext="#stay">
+    <RegExpr attribute="Directive" context="#pop#pop" String="\d+" />
+    <DetectChar attribute="Directive" context="#pop#pop" char="$" />
+  </context>
+</contexts>
+
+<itemDatas>
+  <itemData name="Normal Text" defStyleNum="dsNormal" />
+  <itemData name="Definition" defStyleNum="dsNormal" />
+  <itemData name="Comment" defStyleNum="dsComment" />
+  <itemData name="Content-Type Delimiter" defStyleNum="dsBaseN" bold="1" />
+  <itemData name="Directive" defStyleNum="dsKeyword"/>
+  <itemData name="Rule" defStyleNum="dsString" />
+  <itemData name="Backslash Code" defStyleNum="dsString" bold="1" />
+  <itemData name="Alert" defStyleNum="dsAlert" />
+  <itemData name="String" defStyleNum="dsString"/>
+  <itemData name="String Char" defStyleNum="dsChar"/>
+  <itemData name="Data Type" defStyleNum="dsDataType"/>
+</itemDatas>
+
+</highlighting>
+<general>
+  <comments>
+    <comment name="multiLine" start="/*" end="*/" />
+  </comments>
+</general>
+</language>
+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
diff --git a/xml/yaml.xml b/xml/yaml.xml
new file mode 100644
--- /dev/null
+++ b/xml/yaml.xml
@@ -0,0 +1,199 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd">
+<!-- Author: Dr Orlovsky MA <maxim@orlovsky.info> //-->
+<language name="YAML" version="3" kateversion="5.0" section="Markup"
+          extensions="*.yaml;*.yml" mimetype="text/yaml"
+          author="Dr Orlovsky MA (dr.orlovsky@gmail.com)" license="LGPL">
+  <highlighting>
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="normal" >
+        <RegExpr attribute="Document Header" context="header" String="^---"/>
+        <RegExpr attribute="End of Document" context="EOD" String="^\.\.\.$"/>
+        <RegExpr attribute="Directive" context="directive" String="^%"/>
+
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="comment" char="#" />
+
+        <DetectChar attribute="Operator" firstNonSpace="true"  context="dash" char="-" />
+
+        <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
+        <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
+
+        <RegExpr attribute="Data Types" firstNonSpace="true" context="#stay" String="!!\S+" />
+        <RegExpr attribute="Alias" firstNonSpace="true" context="#stay" String="&amp;\S+" />
+        <RegExpr attribute="Reference" firstNonSpace="true" context="#stay" String="\*\S+" />
+
+        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*[^&quot;'#-][^:#]*:"/>
+        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*&quot;[^&quot;#]+&quot;\s*:"/>
+        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*'[^'#]+'\s*:"/>
+
+        <DetectChar attribute="String" context="string" char="'" beginRegion="String" />
+        <DetectChar attribute="String" context="stringx" char="&quot;" beginRegion="String" />
+      </context>
+
+      <context attribute="List" lineEndContext="#pop" name="dash">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="comment" char="#" />
+        <RegExpr attribute="Data Types" context="#stay" String="null$" />
+        <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />
+        <RegExpr attribute="Alias" context="#stay" String="&amp;\S+" />
+        <RegExpr attribute="Reference" context="#stay" String="\*\S+" />
+        <RegExpr attribute="Normal Text" lookAhead="true" context="#pop" String="." />
+      </context>
+
+      <context attribute="Document Header" lineEndContext="#pop" name="header">
+        <DetectChar attribute="Comment" context="comment" char="#" />
+      </context>
+
+      <context attribute="End of Document" lineEndContext="#stay" name="EOD">
+      </context>
+
+      <context attribute="Directive" lineEndContext="#pop" name="directive">
+      </context>
+
+      <context attribute="Attribute" lineEndContext="#pop#pop" name="attribute">
+        <DetectChar attribute="Comment" context="comment" char="#" />
+      </context>
+
+      <context attribute="Attribute" lineEndContext="#stay" name="attribute-inline">
+        <DetectChar attribute="Operator" context="#pop#pop" char="," />
+        <DetectChar attribute="Operator" context="#pop#pop" lookAhead="true" char="}" />
+        <DetectChar attribute="Comment" context="comment" char="#" />
+      </context>
+
+      <context attribute="Attribute" lineEndContext="#pop" name="attribute-pre">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="comment" char="#" />
+        <RegExpr attribute="Data Types" context="#stay" String="null$" />
+        <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />
+        <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
+        <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
+        <DetectChar attribute="String" context="attribute-string" char="'" beginRegion="String" />
+        <DetectChar attribute="String" context="attribute-stringx" char="&quot;" beginRegion="String" />
+        <RegExpr attribute="Alias" context="attribute" String="&amp;\S+" />
+        <RegExpr attribute="Reference" context="attribute" String="\*\S+" />
+        <RegExpr attribute="Attribute" context="attribute" String="." />
+      </context>
+
+      <context attribute="Attribute" lineEndContext="#pop" name="attribute-pre-inline">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="comment" char="#" />
+
+        <StringDetect attribute="Data Types" context="#stay" String="null" />
+        <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />
+        <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
+        <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
+        <DetectChar attribute="String" context="attribute-string-inline" char="'" beginRegion="String" />
+        <DetectChar attribute="String" context="attribute-stringx-inline" char="&quot;" beginRegion="String" />
+        <RegExpr attribute="Alias" context="attribute-inline" String="&amp;\S+" />
+        <RegExpr attribute="Reference" context="attribute-inline" String="\*\S+" />
+
+        <DetectChar attribute="Operator" context="#pop" char="," />
+        <DetectChar attribute="Operator" context="#pop" lookAhead="true" char="}" />
+        <RegExpr attribute="Attribute" context="attribute-inline" String="." />
+      </context>
+
+      <context attribute="List" lineEndContext="#stay" name="list">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="comment" char="#" />
+
+        <DetectChar attribute="Operator" context="#pop" char="]" endRegion="List" />
+
+        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*[^&quot;'#-][^:#]*:"/>
+        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*&quot;[^&quot;#]+&quot;\s*:"/>
+        <RegExpr attribute="Key" context="attribute-pre" String="\??\s*'[^'#]+'\s*:"/>
+
+        <StringDetect attribute="Data Types" context="#stay" String="null" />
+        <RegExpr attribute="Data Types" context="#stay" String="!!\S+" />
+        <DetectChar attribute="Operator" context="list" char="[" beginRegion="List" />
+        <DetectChar attribute="Operator" context="hash" char="{" beginRegion="Hash" />
+        <RegExpr attribute="Alias" context="#stay" String="&amp;\S+" />
+        <RegExpr attribute="Reference" context="#stay" String="\*\S+" />
+        <DetectChar attribute="String" context="string" char="'" beginRegion="String" />
+        <DetectChar attribute="String" context="stringx" char="&quot;" beginRegion="String" />
+
+        <DetectChar attribute="Operator" context="#stay" char="," />
+      </context>
+
+      <context attribute="Hash" lineEndContext="#stay" name="hash">
+        <DetectSpaces/>
+        <DetectChar attribute="Comment" context="comment" char="#" />
+
+        <RegExpr attribute="Key" context="attribute-pre-inline" String="\??\s*[^&quot;'#-][^:#]*:"/>
+        <RegExpr attribute="Key" context="attribute-pre-inline" String="\??\s*&quot;[^&quot;#]+&quot;\s*:"/>
+        <RegExpr attribute="Key" context="attribute-pre-inline" String="\??\s*'[^'#]+'\s*:"/>
+
+        <DetectChar attribute="Operator" context="#pop" char="}" endRegion="Hash" />
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="attribute-string">
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="attribute-end" char="'" endRegion="String" />
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="attribute-stringx">
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="attribute-end" char="&quot;" endRegion="String" />
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="attribute-string-inline">
+          <DetectIdentifier />
+          <DetectChar attribute="String" context="attribute-end-inline" char="'" endRegion="String" />
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="attribute-stringx-inline">
+          <DetectIdentifier />
+          <DetectChar attribute="String" context="attribute-end-inline" char="&quot;" endRegion="String" />
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end">
+      </context>
+
+      <context attribute="Error" lineEndContext="#pop#pop#pop" name="attribute-end-inline">
+          <RegExpr attribute="Normal Text" context="#stay" String="\s*"/>
+          <DetectChar attribute="String" context="#pop#pop#pop"  lookAhead="true" char="}"/>
+          <RegExpr attribute="Operator" context="#pop#pop#pop"  String=",\s"/>
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="string">
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="#pop" char="'" endRegion="String" />
+      </context>
+
+      <context attribute="String" lineEndContext="#stay" name="stringx">
+        <DetectIdentifier />
+        <DetectChar attribute="String" context="#pop" char="&quot;" endRegion="String" />
+      </context>
+
+      <context attribute="Comment" lineEndContext="#pop" name="comment">
+        <IncludeRules context="##Alerts" />
+        <IncludeRules context="##Modelines" />
+      </context>
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text" defStyleNum="dsNormal" />
+      <itemData name="List" defStyleNum="dsNormal" />
+      <itemData name="Hash" defStyleNum="dsNormal" />
+      <itemData name="Comment" defStyleNum="dsComment" />
+      <itemData name="End of Document" defStyleNum="dsComment" />
+      <itemData name="Attribute" defStyleNum="dsAttribute" />
+      <itemData name="Document Header" defStyleNum="dsOthers" />
+      <itemData name="Data Types" defStyleNum="dsDataType" />
+      <itemData name="Alias" defStyleNum="dsDataType" />
+      <itemData name="Reference" defStyleNum="dsDataType" />
+      <itemData name="Key" defStyleNum="dsFunction" />
+      <itemData name="Directive" defStyleNum="dsOthers" />
+      <itemData name="Operator" defStyleNum="dsKeyword" />
+      <itemData name="String" defStyleNum="dsString" />
+      <itemData name="Error" defStyleNum="dsError" />
+    </itemDatas>
+  </highlighting>
+
+  <general>
+    <comments>
+      <comment name="singleLine" start="#" position="afterwhitespace" />
+    </comments>
+    <keywords casesensitive="1"/>
+  </general>
+</language>
diff --git a/xml/zsh.xml b/xml/zsh.xml
new file mode 100644
--- /dev/null
+++ b/xml/zsh.xml
@@ -0,0 +1,959 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE language SYSTEM "language.dtd"
+[
+        <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#&#37;@-]*">
+        <!ENTITY varname  "[A-Za-z_][A-Za-z0-9_]*">
+        <!ENTITY word     "[^|&amp;;()&lt;&gt;\s]+">    <!-- see man bash -->
+        <!ENTITY eos      "(?=($|\s))">                 <!-- eol or space following -->
+        <!ENTITY noword   "(?![\w$+-])">                <!-- no word, $, + or - following -->
+        <!ENTITY pathpart "([\w_@.&#37;*?+-]|\\ )">     <!-- valid character in a file name -->
+]>
+<language name="Zsh" version="2" kateversion="2.4" section="Scripts" extensions="*.sh;*.zsh;.zshrc;.zprofile;.zlogin;.zlogout;.profile" mimetype="application/x-shellscript" casesensitive="1" author="Jonathan Kolberg (bulldog98@kubuntu-de.org)" license="LGPL">
+
+<!-- (c) 2011 by Jonathan Kolberg (bulldog98@kubuntu-de.org)
+  modified for zsh -->
+<!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl)
+    Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)
+    Changes by Sebastian Pipping (webmaster@hartwork.org)
+    Released under the LGPL, part of kdelibs/kate -->
+
+  <highlighting>
+    <list name="keywords">
+      <item>else</item>
+      <item>for</item>
+      <item>function</item>
+      <item>in</item>
+      <item>select</item>
+      <item>until</item>
+      <item>while</item>
+      <item>elif</item>
+      <item>then</item>
+      <item>set</item>
+    </list>
+
+<list name="builtins"><!-- see man zshbuiltins -->
+	<item>-</item>
+	<item>.</item>
+	<item>:</item>
+	<item>alias</item>
+	<item>autoload</item>
+	<item>bg</item>
+	<item>bindkey</item>
+	<item>break</item>
+	<item>builtin</item>
+	<item>bye</item>
+	<item>cap</item>
+	<item>cd</item>
+	<item>chdir</item>
+	<item>clone</item>
+	<item>command</item>
+	<item>comparguments</item>
+	<item>compcall</item>
+	<item>compctl</item>
+	<item>compdescribe</item>
+	<item>compfiles</item>
+	<item>compgroups</item>
+	<item>compquote</item>
+	<item>comptags</item>
+	<item>comptry</item>
+	<item>compvalues</item>
+	<item>continue</item>
+	<item>dirs</item>
+	<item>disable</item>
+	<item>disown</item>
+	<item>echo</item>
+	<item>echotc</item>
+	<item>echoti</item>
+	<item>emulate</item>
+	<item>enable</item>
+	<item>eval</item>
+	<item>exec</item>
+	<item>exit</item>
+	<item>false</item>
+	<item>fc</item>
+	<item>fg</item>
+	<item>functions</item>
+	<item>getcap</item>
+	<item>getopts</item>
+	<item>hash</item>
+	<item>history</item>
+	<item>jobs</item>
+	<item>kill</item>
+	<item>let</item>
+	<item>limit</item>
+	<item>log</item>
+	<item>logout</item>
+	<item>noglob</item>
+	<item>popd</item>
+	<item>print</item>
+	<item>printf</item>
+	<item>pushd</item>
+	<item>pushln</item>
+	<item>pwd</item>
+	<item>r</item>
+	<item>rehash</item>
+	<item>return</item>
+	<item>sched</item>
+	<item>set</item>
+	<item>setcap</item>
+	<item>setopt</item>
+	<item>shift</item>
+	<item>source</item>
+	<item>stat</item>
+	<item>suspend</item>
+	<item>test</item>
+	<item>times</item>
+	<item>trap</item>
+	<item>true</item>
+	<item>ttyctl</item>
+	<item>type</item>
+	<item>ulimit</item>
+	<item>umask</item>
+	<item>unalias</item>
+	<item>unfunction</item>
+	<item>unhash</item>
+	<item>unlimit</item>
+	<item>unset</item>
+	<item>unsetopt</item>
+	<item>vared</item>
+	<item>wait</item>
+	<item>whence</item>
+	<item>where</item>
+	<item>which</item>
+	<item>zcompile</item>
+	<item>zformat</item>
+	<item>zftp</item>
+	<item>zle</item>
+	<item>zmodload</item>
+	<item>zparseopts</item>
+	<item>zprof</item>
+	<item>zpty</item>
+	<item>zregexparse</item>
+	<item>zsocket</item>
+	<item>zstyle</item>
+	<item>ztcp</item>
+    </list>
+
+    <list name="builtins_var">
+	<item>declare</item>
+	<item>export</item>
+	<item>float</item>
+	<item>getln</item>
+	<item>integer</item>
+	<item>unset</item>
+	<item>declare</item>
+	<item>typeset</item>
+	<item>local</item>
+	<item>read</item>
+	<item>readonly</item>
+    </list>
+
+    <list name="unixcommands">
+      <!-- /bin -->
+      <item>arch</item>
+      <item>awk</item>
+      <item>bash</item>
+      <item>bunzip2</item>
+      <item>bzcat</item>
+      <item>bzcmp</item>
+      <item>bzdiff</item>
+      <item>bzegrep</item>
+      <item>bzfgrep</item>
+      <item>bzgrep</item>
+      <item>bzip2</item>
+      <item>bzip2recover</item>
+      <item>bzless</item>
+      <item>bzmore</item>
+      <item>cat</item>
+      <item>chattr</item>
+      <item>chgrp</item>
+      <item>chmod</item>
+      <item>chown</item>
+      <item>chvt</item>
+      <item>cp</item>
+      <item>date</item>
+      <item>dd</item>
+      <item>deallocvt</item>
+      <item>df</item>
+      <item>dir</item>
+      <item>dircolors</item>
+      <item>dmesg</item>
+      <item>dnsdomainname</item>
+      <item>domainname</item>
+      <item>du</item>
+      <item>dumpkeys</item>
+      <item>echo</item>
+      <item>ed</item>
+      <item>egrep</item>
+      <item>false</item>
+      <item>fgconsole</item>
+      <item>fgrep</item>
+      <item>fuser</item>
+      <item>gawk</item>
+      <item>getkeycodes</item>
+      <item>gocr</item>
+      <item>grep</item>
+      <item>groff</item>
+      <item>groups</item>
+      <item>gunzip</item>
+      <item>gzexe</item>
+      <item>gzip</item>
+      <item>hostname</item>
+      <item>igawk</item>
+      <item>install</item>
+      <item>kbd_mode</item>
+      <item>kbdrate</item>
+      <item>killall</item>
+      <item>last</item>
+      <item>lastb</item>
+      <item>link</item>
+      <item>ln</item>
+      <item>loadkeys</item>
+      <item>loadunimap</item>
+      <item>login</item>
+      <item>ls</item>
+      <item>lsattr</item>
+      <item>lsmod</item>
+      <item>lsmod.old</item>
+      <item>lzcat</item>
+      <item>lzcmp</item>
+      <item>lzdiff</item>
+      <item>lzegrep</item>
+      <item>lzfgrep</item>
+      <item>lzgrep</item>
+      <item>lzless</item>
+      <item>lzcat</item>
+      <item>lzma</item>
+      <item>lzmainfo</item>
+      <item>lzmore</item>
+      <item>mapscrn</item>
+      <item>mesg</item>
+      <item>mkdir</item>
+      <item>mkfifo</item>
+      <item>mknod</item>
+      <item>mktemp</item>
+      <item>more</item>
+      <item>mount</item>
+      <item>mv</item>
+      <item>nano</item>
+      <item>netstat</item>
+      <item>nisdomainname</item>
+      <item>nroff</item>
+      <item>openvt</item>
+      <item>pgawk</item>
+      <item>pidof</item>
+      <item>ping</item>
+      <item>ps</item>
+      <item>pstree</item>
+      <item>pwd</item>
+      <item>rbash</item>
+      <item>readlink</item>
+      <item>red</item>
+      <item>resizecons</item>
+      <item>rm</item>
+      <item>rmdir</item>
+      <item>run-parts</item>
+      <item>sash</item>
+      <item>sed</item>
+      <item>setfont</item>
+      <item>setkeycodes</item>
+      <item>setleds</item>
+      <item>setmetamode</item>
+      <item>setserial</item>
+      <item>sh</item>
+      <item>showkey</item>
+      <item>shred</item>
+      <item>sleep</item>
+      <item>ssed</item>
+      <item>stat</item>
+      <item>stty</item>
+      <item>su</item>
+      <item>sync</item>
+      <item>tar</item>
+      <item>tempfile</item>
+      <item>touch</item>
+      <item>troff</item>
+      <item>true</item>
+      <item>umount</item>
+      <item>uname</item>
+      <item>unicode_start</item>
+      <item>unicode_stop</item>
+      <item>unlink</item>
+      <item>unlzma</item>
+      <item>unxz</item>
+      <item>utmpdump</item>
+      <item>uuidgen</item>
+      <item>vdir</item>
+      <item>wall</item>
+      <item>wc</item>
+      <item>xz</item>
+      <item>xzcat</item>
+      <item>ypdomainname</item>
+      <item>zcat</item>
+      <item>zcmp</item>
+      <item>zdiff</item>
+      <item>zegrep</item>
+      <item>zfgrep</item>
+      <item>zforce</item>
+      <item>zgrep</item>
+      <item>zless</item>
+      <item>zmore</item>
+      <item>znew</item>
+      <item>zsh</item>
+
+      <!-- some from /usr/bin -->
+      <item>aclocal</item>
+      <item>aconnect</item>
+      <item>aplay</item>
+      <item>apm</item>
+      <item>apmsleep</item>
+      <item>apropos</item>
+      <item>ar</item>
+      <item>arecord</item>
+      <item>as</item>
+      <item>as86</item>
+      <item>autoconf</item>
+      <item>autoheader</item>
+      <item>automake</item>
+      <item>awk</item>
+      <item>basename</item>
+      <item>bc</item>
+      <item>bison</item>
+      <item>c++</item>
+      <item>cal</item>
+      <item>cat</item>
+      <item>cc</item>
+      <item>cdda2wav</item>
+      <item>cdparanoia</item>
+      <item>cdrdao</item>
+      <item>cd-read</item>
+      <item>cdrecord</item>
+      <item>chfn</item>
+      <item>chgrp</item>
+      <item>chmod</item>
+      <item>chown</item>
+      <item>chroot</item>
+      <item>chsh</item>
+      <item>clear</item>
+      <item>cmp</item>
+      <item>co</item>
+      <item>col</item>
+      <item>comm</item>
+      <item>cp</item>
+      <item>cpio</item>
+      <item>cpp</item>
+      <item>cut</item>
+      <item>dc</item>
+      <item>dd</item>
+      <item>df</item>
+      <item>diff</item>
+      <item>diff3</item>
+      <item>dir</item>
+      <item>dircolors</item>
+      <item>directomatic</item>
+      <item>dirname</item>
+      <item>du</item>
+      <item>env</item>
+      <item>expr</item>
+      <item>fbset</item>
+      <item>file</item>
+      <item>find</item>
+      <item>flex</item>
+      <item>flex++</item>
+      <item>fmt</item>
+      <item>free</item>
+      <item>ftp</item>
+      <item>funzip</item>
+      <item>fuser</item>
+      <item>g++</item>
+      <item>gawk</item>
+      <item>gc</item>
+      <item>gcc</item>
+      <item>gdb</item>
+      <item>getent</item>
+      <item>getopt</item>
+      <item>gettext</item>
+      <item>gettextize</item>
+      <item>gimp</item>
+      <item>gimp-remote</item>
+      <item>gimptool</item>
+      <item>gmake</item>
+      <item>gs</item>
+      <item>head</item>
+      <item>hexdump</item>
+      <item>id</item>
+      <item>install</item>
+      <item>join</item>
+      <item>kill</item>
+      <item>killall</item>
+      <item>ld</item>
+      <item>ld86</item>
+      <item>ldd</item>
+      <item>less</item>
+      <item>lex</item>
+      <item>ln</item>
+      <item>locate</item>
+      <item>lockfile</item>
+      <item>logname</item>
+      <item>lp</item>
+      <item>lpr</item>
+      <item>ls</item>
+      <item>lynx</item>
+      <item>m4</item>
+      <item>make</item>
+      <item>man</item>
+      <item>mkdir</item>
+      <item>mknod</item>
+      <item>msgfmt</item>
+      <item>mv</item>
+      <item>namei</item>
+      <item>nasm</item>
+      <item>nawk</item>
+      <item>nice</item>
+      <item>nl</item>
+      <item>nm</item>
+      <item>nm86</item>
+      <item>nmap</item>
+      <item>nohup</item>
+      <item>nop</item>
+      <item>od</item>
+      <item>passwd</item>
+      <item>patch</item>
+      <item>pcregrep</item>
+      <item>pcretest</item>
+      <item>perl</item>
+      <item>perror</item>
+      <item>pidof</item>
+      <item>pr</item>
+      <item>printf</item>
+      <item>procmail</item>
+      <item>prune</item>
+      <item>ps2ascii</item>
+      <item>ps2epsi</item>
+      <item>ps2frag</item>
+      <item>ps2pdf</item>
+      <item>ps2ps</item>
+      <item>psbook</item>
+      <item>psmerge</item>
+      <item>psnup</item>
+      <item>psresize</item>
+      <item>psselect</item>
+      <item>pstops</item>
+      <item>rcs</item>
+      <item>rev</item>
+      <item>rm</item>
+      <item>scp</item>
+      <item>sed</item>
+      <item>seq</item>
+      <item>setterm</item>
+      <item>shred</item>
+      <item>size</item>
+      <item>size86</item>
+      <item>skill</item>
+      <item>slogin</item>
+      <item>snice</item>
+      <item>sort</item>
+      <item>sox</item>
+      <item>split</item>
+      <item>ssh</item>
+      <item>ssh-add</item>
+      <item>ssh-agent</item>
+      <item>ssh-keygen</item>
+      <item>ssh-keyscan</item>
+      <item>stat</item>
+      <item>strings</item>
+      <item>strip</item>
+      <item>sudo</item>
+      <item>suidperl</item>
+      <item>sum</item>
+      <item>tac</item>
+      <item>tail</item>
+      <item>tee</item>
+      <item>test</item>
+      <item>tr</item>
+      <item>uniq</item>
+      <item>unlink</item>
+      <item>unzip</item>
+      <item>updatedb</item>
+      <item>updmap</item>
+      <item>uptime</item>
+      <item>users</item>
+      <item>vmstat</item>
+      <item>w</item>
+      <item>wc</item>
+      <item>wget</item>
+      <item>whatis</item>
+      <item>whereis</item>
+      <item>which</item>
+      <item>who</item>
+      <item>whoami</item>
+      <item>write</item>
+      <item>xargs</item>
+      <item>yacc</item>
+      <item>yes</item>
+      <item>zip</item>
+      <item>zsoelim</item>
+
+      <!-- others -->
+      <item>dcop</item>
+      <item>kdialog</item>
+      <item>kfile</item>
+      <item>xhost</item>
+      <item>xmodmap</item>
+      <item>xset</item>
+    </list>
+
+
+    <contexts>
+      <context attribute="Normal Text" lineEndContext="#stay" name="Start">
+        <IncludeRules context="FindAll" />
+      </context>
+
+<!-- ====== The following rulessets are meant to be included ======== -->
+      <!-- FindAll tries to interpret everything -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindAll">
+        <IncludeRules context="FindComments" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- FindMost tries to interpret anything except commands -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindMost">
+        <IncludeRules context="FindComments" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+
+      <!-- FindComments consumes shell comments till EOL -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindComments">
+        <DetectChar attribute="Comment" context="Comment" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="Comment" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="Comment">
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <!-- FindCommentsParen consumes shell comments till EOL or a closing parenthese -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsParen">
+        <DetectChar attribute="Comment" context="CommentParen" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="CommentParen" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="CommentParen">
+        <RegExpr attribute="Comment" context="#pop" String="[^)](?=\))" />
+        <IncludeRules context="##Alerts" />
+      </context>
+
+      <!-- FindCommentsBackq consumes shell comments till EOL or a backquote -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="FindCommentsBackq">
+        <DetectChar attribute="Comment" context="CommentBackq" char="#" firstNonSpace="true"/>
+        <RegExpr attribute="Normal Text" context="CommentBackq" String="[\s;](?=#)" />
+      </context>
+      <context attribute="Comment" lineEndContext="#pop" name="CommentBackq">
+        <RegExpr attribute="Comment" context="#pop" String="[^`](?=`)" />
+        <IncludeRules context="##Alerts" />
+      </context>
+
+
+      <!-- FindCommands matches many items that can be expected outside strings, substitutions etc. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindCommands">
+        <!-- start expression in double parentheses -->
+        <Detect2Chars attribute="Keyword" context="ExprDblParen" char="(" char1="(" beginRegion="expression" />
+        <!-- start expression in double brackets -->
+        <RegExpr attribute="Keyword" context="ExprDblBracket" String="\[\[&eos;" beginRegion="expression" column="0"/>
+        <RegExpr attribute="Keyword" context="ExprDblBracket" String="\s\[\[&eos;" beginRegion="expression" />
+        <!-- start expression in single brackets -->
+        <RegExpr attribute="Builtin" context="ExprBracket" String="\[&eos;" beginRegion="expression" column="0"/>
+        <RegExpr attribute="Builtin" context="ExprBracket" String="\s\[&eos;" beginRegion="expression" />
+        <!-- start a group command with { -->
+        <RegExpr attribute="Keyword" context="Group" String="\{&eos;" beginRegion="group" />
+        <!-- start a subshell -->
+        <DetectChar attribute="Keyword" context="SubShell" char="(" beginRegion="subshell" />
+        <!-- match do and if blocks -->
+        <RegExpr attribute="Keyword" context="#stay" String="\bdo&noword;" beginRegion="do" />
+        <RegExpr attribute="Keyword" context="#stay" String="\bdone&noword;" endRegion="do" />
+        <RegExpr attribute="Keyword" context="#stay" String="\bif&eos;" beginRegion="if" />
+        <RegExpr attribute="Keyword" context="#stay" String="\bfi&noword;" endRegion="if" />
+        <!-- handle case as a special case -->
+        <RegExpr attribute="Keyword" context="Case" String="\bcase&noword;" beginRegion="case" />
+        <!-- handle command line options -->
+        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9][A-Za-z0-9_]*" />
+        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
+        <!-- handle variable assignments -->
+        <RegExpr attribute="Variable" context="Assign" String="\b&varname;\+?=" />
+        <RegExpr attribute="Variable" context="AssignSubscr" String="\b&varname;(?=\[.+\]\+?=)" />
+        <!-- handle functions with function keyword before keywords -->
+        <StringDetect attribute="Function" context="#stay" String=":()" />
+        <RegExpr attribute="Keyword" context="FunctionDef" String="\bfunction\b" />
+        <!-- handle keywords -->
+        <keyword attribute="Keyword" context="#stay" String="keywords" />
+        <RegExpr attribute="Builtin" context="#stay" String="\.(?=\s)" />
+        <keyword attribute="Builtin" context="#stay" String="builtins" />
+        <keyword attribute="Command" context="#stay" String="unixcommands" />
+        <!-- handle commands that have variable names as argument -->
+        <keyword attribute="Builtin" context="VarName" String="builtins_var" />
+        <!-- handle here-string -->
+        <RegExpr attribute="Redirection" context="#stay" String="\d*&lt;&lt;&lt;" />
+        <!-- handle here document -->
+        <StringDetect attribute="Redirection" context="HereDoc" String="&lt;&lt;" lookAhead="true" />
+        <!-- handle process subst -->
+        <RegExpr attribute="Redirection" context="ProcessSubst" String="[&lt;&gt;]\(" />
+        <!-- handle redirection -->
+        <RegExpr attribute="Redirection" context="#stay" String="([0-9]*(&gt;{1,2}|&lt;)(&amp;[0-9]+-?)?|&amp;&gt;|&gt;&amp;|[0-9]*&lt;&gt;)" />
+        <!-- handle &, &&, | and || -->
+        <RegExpr attribute="Control" context="#stay" String="([|&amp;])\1?" />
+        <!-- mark function definitions without function keyword -->
+        <RegExpr attribute="Function" context="#stay" String="&funcname;\s*\(\)" />
+      </context>
+
+      <!-- FindOthers contains various rules to mark different shell input -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindOthers">
+        <RegExpr attribute="Escape" context="#stay" String="\\[][;\\$`{}()|&amp;&lt;&gt;* ]" />
+        <RegExpr attribute="Keyword" context="#stay" String="\\$" />
+        <RegExpr attribute="Escape" context="#stay" String="\{(?!(\s|$))\S*\}" />
+        <RegExpr attribute="Path" context="#stay" String="&pathpart;*(?=/)" />
+        <RegExpr attribute="Path" context="#stay" String="~\w*" />
+        <RegExpr attribute="Path" context="#stay" String="/&pathpart;*(?=([\s/):;$`'&quot;]|$))" />
+        <!-- TODO: shell globs beside * and ? (in Path's) -->
+      </context>
+
+      <!-- FindStrings looks for single and double quoted strings, also with $-prefix -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindStrings">
+        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="'" />
+        <Detect2Chars attribute="Escape" context="#stay" char="\\" char1="&quot;" />
+        <DetectChar attribute="String SingleQ" context="StringSQ" char="'" />
+        <DetectChar attribute="String DoubleQ" context="StringDQ" char="&quot;" />
+        <Detect2Chars attribute="String SingleQ" context="StringEsc" char="$" char1="'" />
+        <Detect2Chars attribute="String Transl." context="StringDQ" char="$" char1="&quot;" />
+      </context>
+
+      <!-- FindSubstitutions goes after anything starting with $ and ` and their escapes -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindSubstitutions">
+        <RegExpr attribute="Variable" context="Subscript" String="\$&varname;\[" />
+        <RegExpr attribute="Variable" context="#stay" String="\$&varname;" />
+        <RegExpr attribute="Variable" context="#stay" String="\$[*@#?$!_0-9-]" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{[*@#?$!_0-9-]\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{#&varname;(\[[*@]\])?\}" />
+        <RegExpr attribute="Variable" context="#stay" String="\$\{!&varname;(\[[*@]\]|[*@])?\}" />
+        <RegExpr attribute="Variable" context="VarBrace" String="\$\{#?&varname;" />
+        <RegExpr attribute="Variable" context="VarBrace" String="\$\{[*@#?$!_0-9-](?=[:#%/=?+-])" />
+        <StringDetect attribute="Variable" context="ExprDblParenSubst" String="$((" beginRegion="expression" />
+        <StringDetect attribute="Redirection" context="SubstFile" String="$(&lt;" />
+        <StringDetect attribute="Variable" context="SubstCommand" String="$(" />
+        <DetectChar attribute="Backquote" context="SubstBackq" char="`" />
+        <RegExpr attribute="Escape" context="#stay" String="\\[`$\\]" />
+      </context>
+
+      <!-- FindTests finds operators valid in tests -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="FindTests">
+        <RegExpr attribute="Expression" context="#stay" String="-[abcdefghkprstuwxOGLSNozn](?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="-([no]t|ef)(?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="([!=]=?|[&gt;&lt;])(?=\s)"/>
+        <RegExpr attribute="Expression" context="#stay" String="-(eq|ne|[gl][te])(?=\s)"/>
+      </context>
+
+
+<!-- ====== These are the contexts that can be branched to ======= -->
+
+      <!-- ExprDblParen consumes an expression started in command mode till )) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParen">
+        <Detect2Chars attribute="Keyword" context="#pop" char=")" char1=")" endRegion="expression" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblParenSubst">
+        <Detect2Chars attribute="Variable" context="#pop" char=")" char1=")" endRegion="expression" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprSubParen consumes an expression till ) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprSubParen">
+        <DetectChar attribute="Normal Text" context="#pop" char=")" />
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprBracket consumes an expression till ] -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprBracket">
+        <RegExpr attribute="Builtin" context="#pop" String="\s\](?=($|[\s;|&amp;]))" endRegion="expression" />
+        <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindTests" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- ExprDblBracket consumes an expression till ]] -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracket">
+        <RegExpr attribute="Keyword" context="#pop" String="\s\]\](?=($|[\s;|&amp;]))" endRegion="expression" />
+        <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[\s;|&amp;]))" endRegion="expression" column="0"/>
+        <DetectChar attribute="Normal Text" context="ExprSubParen" char="(" />
+        <IncludeRules context="FindTests" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- Group consumes shell input till } -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Group">
+        <DetectChar attribute="Keyword" context="#pop" char="}" endRegion="group" />
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- SubShell consumes shell input till ) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubShell">
+        <DetectChar attribute="Keyword" context="#pop" char=")" endRegion="subshell" />
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- Assign consumes an expression till EOL or whitespace -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthrough="true" fallthroughContext="#pop">
+        <DetectChar attribute="Variable" context="AssignArray" char="(" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+        <RegExpr attribute="Normal Text" context="#stay" String="[\w:,+_./-]" />
+      </context>
+
+      <!-- AssignArray consumes everything till ), marking assignments -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="AssignArray">
+        <DetectChar attribute="Variable" context="#pop" char=")" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- AssignSubscr first expects a [ then parses subscript and continues with '=value' -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="AssignSubscr" fallthrough="true" fallthroughContext="#pop">
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <Detect2Chars attribute="Variable" context="Assign" char="+" char1="=" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- Subscript consumes anything till ], marks as Variable -->
+      <context attribute="Variable" lineEndContext="#stay" name="Subscript">
+        <DetectChar attribute="Variable" context="#pop" char="]" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- FunctionDef consumes a name, possibly with (), marks as Function -->
+      <context attribute="Function" lineEndContext="#pop" name="FunctionDef" fallthrough="true" fallthroughContext="#pop">
+        <RegExpr attribute="Function" context="#pop" String="\s+&funcname;(\s*\(\))?" />
+      </context>
+
+      <!-- VarName consumes spare variable names and assignments -->
+      <context attribute="Normal Text" lineEndContext="#pop" name="VarName" fallthrough="true" fallthroughContext="#pop">
+        <!-- handle command line options -->
+        <RegExpr attribute="Option" context="#stay" String="-[A-Za-z0-9]+" />
+        <RegExpr attribute="Option" context="#stay" String="--[a-z][A-Za-z0-9_-]*" />
+        <RegExpr attribute="Variable" context="#stay" String="\b&varname;" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <DetectChar attribute="Variable" context="Assign" char="=" />
+        <IncludeRules context="FindMost" />
+        <!-- stay here in spaces and other safe characters -->
+        <RegExpr attribute="Normal Text" context="#stay" String="[^]})|;`&amp;&gt;&lt;]" />
+      </context>
+
+      <!-- ProcessSubst handles <(command) and >(command) -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="ProcessSubst">
+        <DetectChar attribute="Redirection" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- StringSQ consumes anything till ' -->
+      <context attribute="String SingleQ" lineEndContext="#stay" name="StringSQ">
+        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
+      </context>
+
+      <!-- StringDQ consumes anything till ", substitutes vars and expressions -->
+      <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQ">
+        <DetectChar attribute="String DoubleQ" context="#pop" char="&quot;" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\[`&quot;\\$\n]" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <!-- StringEsc eats till ', but escaping many characters -->
+      <context attribute="String SingleQ" lineEndContext="#stay" name="StringEsc">
+        <DetectChar attribute="String SingleQ" context="#pop" char="'" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\[abefnrtv\\']" />
+        <RegExpr attribute="String Escape" context="#stay" String="\\([0-7]{1,3}|x[A-Fa-f0-9]{1,2}|c.)" />
+      </context>
+
+      <!-- VarBrace is called as soon as ${xxx is encoutered -->
+      <context attribute="Error" lineEndContext="#stay" name="VarBrace">
+        <DetectChar attribute="Variable" context="#pop" char="}" />
+        <DetectChar attribute="Variable" context="Subscript" char="[" />
+        <RegExpr attribute="Variable" context="VarAlt" String="(:?[-=?+]|##?|%%?)" />
+        <RegExpr attribute="Variable" context="VarSubst" String="//?" />
+        <DetectChar attribute="Variable" context="VarSub" char=":" />
+      </context>
+
+      <!-- VarAlt is to handle default/alternate/etc values of variables -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="VarAlt">
+        <DetectChar attribute="Variable" context="#pop#pop" char="}" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <!-- VarSubst is to handle substitutions on variables -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="VarSubst">
+        <DetectChar attribute="Variable" context="#pop#pop" char="}" />
+        <DetectChar attribute="Variable" context="VarSubst2" char="/" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+      <context attribute="Normal Text" lineEndContext="#stay" name="VarSubst2">
+        <DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <!-- VarSub is to substrings of variables -->
+      <context attribute="Error" lineEndContext="#stay" name="VarSub">
+        <DetectChar attribute="Variable" context="VarSub2" char=":" />
+        <DetectChar attribute="Variable" context="#pop#pop" char="}" />
+        <RegExpr attribute="Variable" context="#stay" String="&varname;" />
+        <RegExpr attribute="Variable" context="#stay" String="[0-9]+(?=[:}])" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+      <context attribute="Error" lineEndContext="#stay" name="VarSub2">
+        <DetectChar attribute="Variable" context="#pop#pop#pop" char="}" />
+        <RegExpr attribute="Variable" context="#stay" String="&varname;" />
+        <RegExpr attribute="Variable" context="#stay" String="[0-9](?=[:}])" />
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+
+      <!-- SubstFile is called after a <( or >( is encoutered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstFile">
+        <DetectChar attribute="Redirection" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- SubstCommand is called after a $( is encountered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstCommand">
+        <DetectChar attribute="Variable" context="#pop" char=")" />
+        <IncludeRules context="FindCommentsParen" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- SubstBackq is called when a backquote is encountered -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="SubstBackq">
+        <DetectChar attribute="Backquote" context="#pop" char="`" />
+        <IncludeRules context="FindCommentsBackq" />
+        <IncludeRules context="FindCommands" />
+        <IncludeRules context="FindStrings" />
+        <IncludeRules context="FindSubstitutions" />
+        <IncludeRules context="FindOthers" />
+      </context>
+
+      <!-- Case is called after the case keyword is encoutered. We handle this because of
+           the lonely closing parentheses that would otherwise disturb the expr matching -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="Case">
+        <RegExpr attribute="Keyword" context="CaseIn" String="\sin\b" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- CaseIn is called when the construct 'case ... in' has been found. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="CaseIn">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="\besac(?=$|[\s;)])" endRegion="case" />
+        <DetectChar attribute="Keyword" context="CaseExpr" char=")" beginRegion="caseexpr" />
+        <AnyChar attribute="Keyword" context="#stay" String="(|" />
+        <IncludeRules context="FindMost" />
+      </context>
+
+      <!-- CaseExpr eats shell input till ;; -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="CaseExpr">
+        <Detect2Chars attribute="Keyword" context="#pop" char=";" char1=";" endRegion="caseexpr" />
+        <RegExpr attribute="Keyword" context="#pop" String="esac(?=$|[\s;)])" lookAhead="true" firstNonSpace="true" endRegion="caseexpr"/>
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <!-- HereDoc consumes Here-documents. It is called at the beginning of the "<<" construct. -->
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDoc">
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*&quot;(&word;)&quot;)" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*'(&word;)')" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocIQ"  String="(&lt;&lt;-\s*\\(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocINQ" String="(&lt;&lt;-\s*(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*&quot;(&word;)&quot;)" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*'(&word;)')" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocQ"   String="(&lt;&lt;\s*\\(&word;))" lookAhead="true" />
+        <RegExpr attribute="Redirection" context="HereDocNQ"  String="(&lt;&lt;\s*(&word;))" lookAhead="true" />
+        <StringDetect attribute="Redirection" context="#pop"  String="&lt;&lt;" /><!-- always met -->
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#pop" name="HereDocRemainder">
+        <IncludeRules context="FindAll" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2\b" dynamic="true" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocNQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^%2\b" dynamic="true" column="0"/>
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocIQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2\b" dynamic="true" column="0"/>
+      </context>
+
+      <context attribute="Normal Text" lineEndContext="#stay" name="HereDocINQ" dynamic="true">
+        <RegExpr attribute="Redirection" context="HereDocRemainder" String="%1" dynamic="true" />
+        <RegExpr attribute="Redirection" context="#pop#pop" String="^\t*%2\b" dynamic="true" column="0"/>
+        <IncludeRules context="FindSubstitutions" />
+      </context>
+
+    </contexts>
+
+    <itemDatas>
+      <itemData name="Normal Text"	defStyleNum="dsNormal" />
+      <itemData name="Comment"		defStyleNum="dsComment" />
+      <itemData name="Keyword" 		defStyleNum="dsKeyword" />
+      <itemData name="Control" 		defStyleNum="dsKeyword" />
+      <itemData name="Builtin" 		defStyleNum="dsKeyword" color="#808" />
+      <itemData name="Command" 		defStyleNum="dsKeyword" color="#c0c" />
+      <itemData name="Redirection" 	defStyleNum="dsKeyword" color="#238" />
+      <itemData name="Escape" 		defStyleNum="dsDataType" />
+      <itemData name="String SingleQ" 	defStyleNum="dsString" />
+      <itemData name="String DoubleQ" 	defStyleNum="dsString" />
+      <itemData name="Backquote" 	defStyleNum="dsKeyword" />
+      <itemData name="String Transl." 	defStyleNum="dsString" />
+      <itemData name="String Escape" 	defStyleNum="dsDataType" />
+      <itemData name="Variable" 	defStyleNum="dsOthers" />
+      <itemData name="Expression" 	defStyleNum="dsOthers" />
+      <itemData name="Function" 	defStyleNum="dsFunction" />
+      <itemData name="Path" 		defStyleNum="dsNormal" />
+      <itemData name="Option" 		defStyleNum="dsNormal" />
+      <itemData name="Error"            defStyleNum="dsError" />
+    </itemDatas>
+  </highlighting>
+  <general>
+    <comments>
+      <comment name="singleLine" start="#"/>
+    </comments>
+    <keywords casesensitive="1" weakDeliminator="^%#[]$._{}:-/" additionalDeliminator="`"/>
+  </general>
+</language>
