diff --git a/changelog.md b/changelog.md
--- a/changelog.md
+++ b/changelog.md
@@ -1,5 +1,10 @@
 # Revision history for skylighting and skylighting-core
 
+## 0.15.0.1
+
+ * Update syntax definitions for csv, isocpp, json, perl, raku,
+   systemverilog, verilog.
+
 ## 0.15
 
   * New syntaxes: sparql (#212), sas (#213), mermaid, desktop,
diff --git a/skylighting-core.cabal b/skylighting-core.cabal
--- a/skylighting-core.cabal
+++ b/skylighting-core.cabal
@@ -1,5 +1,5 @@
 name:                skylighting-core
-version:             0.15
+version:             0.15.0.1
 synopsis:            syntax highlighting library
 description:         Skylighting is a syntax highlighting library.
                      It derives its tokenizers from XML syntax
diff --git a/test/expected/abc.perl.native b/test/expected/abc.perl.native
--- a/test/expected/abc.perl.native
+++ b/test/expected/abc.perl.native
@@ -1,9 +1,8 @@
-[ [ ( FunctionTok , "use" )
-  , ( NormalTok , " " )
-  , ( FunctionTok , "Test::More" )
+[ [ ( ImportTok , "use" )
+  , ( CommentTok , " " )
+  , ( NormalTok , "Test::More tests " )
+  , ( OperatorTok , "=>" )
   , ( NormalTok , " " )
-  , ( FunctionTok , "tests" )
-  , ( NormalTok , " => " )
   , ( DecValTok , "8" )
   , ( NormalTok , ";" )
   ]
@@ -11,7 +10,9 @@
 , [ ( KeywordTok , "my" )
   , ( NormalTok , " " )
   , ( DataTypeTok , "@blocks1" )
-  , ( NormalTok , " = " )
+  , ( NormalTok , " " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
   , ( OtherTok , "qw(" )
   , ( NormalTok
     , "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM"
@@ -93,7 +94,9 @@
 , [ ( KeywordTok , "my" )
   , ( NormalTok , " " )
   , ( DataTypeTok , "@blocks2" )
-  , ( NormalTok , " = " )
+  , ( NormalTok , " " )
+  , ( OperatorTok , "=" )
+  , ( NormalTok , " " )
   , ( OtherTok , "qw(" )
   , ( NormalTok , "US TZ AO QA" )
   , ( OtherTok , ")" )
diff --git a/test/test-skylighting.hs b/test/test-skylighting.hs
--- a/test/test-skylighting.hs
+++ b/test/test-skylighting.hs
@@ -149,23 +149,28 @@
           [[(OtherTok,"m\\a\\")]]
             @=? tokenize defConfig perl
                      "m\\a\\"
-      , testCase "perl quoting case" $ Right
-          [[(KeywordTok,"my")
-           ,(NormalTok," ")
-           ,(DataTypeTok,"$foo")
-           ,(NormalTok," = ")
-           ,(OtherTok,"q/")
-           ,(SpecialStringTok,"bar")
-           ,(OtherTok,"/")
-           ,(NormalTok,";")]
-          ,[(KeywordTok,"my")
-           ,(NormalTok," ")
-           ,(DataTypeTok,"$baz")
-           ,(NormalTok," = ")
-           ,(OtherTok,"'")
-           ,(SpecialStringTok,"quux")
-           ,(OtherTok,"'")
-           ,(NormalTok,";")]]
+      , testCase "perl quoting case" $
+        Right
+          [[(KeywordTok,"my"),
+            (NormalTok," "),
+            (DataTypeTok,"$foo"),
+            (NormalTok," "),
+            (OperatorTok,"="),
+            (NormalTok," "),
+            (OtherTok,"q/"),
+            (SpecialStringTok,"bar"),
+            (OtherTok,"/"),
+            (NormalTok,";")]
+           ,[(KeywordTok,"my"),
+             (NormalTok," "),
+             (DataTypeTok,"$baz"),
+             (NormalTok," "),
+             (OperatorTok,"="),
+             (NormalTok," "),
+             (OtherTok,"'"),
+             (SpecialStringTok,"quux"),
+             (OtherTok,"'"),
+             (NormalTok,";")]]
              @=? tokenize defConfig perl
                      "my $foo = q/bar/;\nmy $baz = 'quux';\n"
       , testCase "cpp floats" $ Right
diff --git a/xml/csv.xml b/xml/csv.xml
--- a/xml/csv.xml
+++ b/xml/csv.xml
@@ -1,16 +1,20 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language [
-  <!ENTITY sep ",">
+  <!ENTITY Tab "&#9;">
+  <!ENTITY Pipe "|">
+  <!ENTITY Comma ",">
+  <!ENTITY Semicolon ";">
+  <!ENTITY quoted '"([^"]*+("")?+)*"'>
 ]>
 <!--
 Inspired by Rainbow CSV
 
 Language name     | Separator     | Extension | Properties
- CSV              | , (comma)     |   .csv    | Ignored inside double-quoted fields
  TSV              | \t (TAB)      | .tsv .tab |
- CSV (semicolon)  | ; (semicolon) |           | Ignored inside double-quoted fields
- CSV (whitespace) | whitespace    |           | Consecutive whitespaces are merged
- CSV (pipe)       | | (pipe)      |
+ CSV (comma)      | , (comma)     |   .csv    | Ignored inside double-quoted fields
+ CSV (semicolon)  | ; (semicolon) |   .csv    | Ignored inside double-quoted fields
+ CSV (whitespace) | whitespace    |   .csv    | Consecutive whitespaces are merged
+ CSV (pipe)       | | (pipe)      |   .csv    |
 
 https://www.rfc-editor.org/rfc/rfc4180
 
@@ -20,168 +24,613 @@
   aaa, "bbb,ccc", ddd
        ~ RFC: invalid character in non-escaped rule
 -->
-<language name="CSV" section="Other" version="2" kateversion="5.62" extensions="*.csv" mimetype="text/csv" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
+<language name="CSV" section="Other" version="3" kateversion="6.22" extensions="*.csv" mimetype="text/csv" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
   <highlighting>
 
     <contexts>
-      <context name="Column0" lineEndContext="#stay" attribute="Column 0">
-        <DetectChar char="&sep;" context="#pop!Column1" attribute="Column 0 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column0Quote"/>
-        <DetectChar char="&quot;" context="Column0MultiLine"/>
-        <IncludeRules context="FindField"/>
+
+      <!-- CSV separator selector
+      searches for a separator in the following order: ';', '|', ',', ' '
+      @{
+      -->
+      <context name="Dispatch" lineEndContext="#stay" attribute="Column 0" fallthroughContext="Column0_Alone">
+        <RegExpr lookAhead="1" column="0" String='^(&quoted;;|;|[^|"][^|;]*;)' context="Semicolon_Column0_Start"/>
+        <RegExpr lookAhead="1" column="0" String='^\||[^"][^|]*\|' context="Pipe_Column0"/>
+        <RegExpr lookAhead="1" column="0" String='^(&quoted;,|,|[^"][^,]*,)' context="Comma_Column0_Start"/>
+        <RegExpr column="0" String="^[^ ]*(?= )" context="Ws_Column0" attribute="Column 0"/>
       </context>
-      <context name="Column0Quote" lineEndContext="#pop" attribute="Column 0" fallthroughContext="#pop">
-        <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column0MultiLine"/>
-        <IncludeRules context="Error"/>
+      <context name="Column0_Alone" lineEndContext="#pop" attribute="Column 0">
       </context>
-      <context name="Column0MultiLine" lineEndContext="#stay" attribute="Column 0">
-        <DetectChar char="&quot;" context="#pop!Column0Quote"/>
+      <!--
+      @}
+      -->
+
+      <!-- Comma (,) separator with double-quoted fields
+      @{
+      -->
+
+      <context name="Comma_Column0_Start" lineEndContext="#stay" attribute="Column 0" fallthroughContext="Comma_Column0">
+        <DetectChar char="&Comma;" context="Comma_Column1_Start" attribute="Column 0 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column0_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column0_QuoteContinuation!Column0_Quote"/>
+        <AnyChar String=" &Tab;"/>
       </context>
+      <context name="Comma_Column0" lineEndContext="#pop" attribute="Column 0">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column1_Start" attribute="Column 0 Separator"/>
+      </context>
+      <context name="Comma_Column0_QuoteContinuation" lineEndContext="#pop" attribute="Column 0" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column0_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column1_Start" attribute="Column 0 Separator"/>
+      </context>
 
-      <context name="Column1" lineEndContext="#pop!Column0" attribute="Column 1">
-        <DetectChar char="&sep;" context="#pop!Column2" attribute="Column 1 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column1Quote"/>
-        <DetectChar char="&quot;" context="Column1MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Comma_Column1_Start" lineEndContext="#pop" attribute="Column 1" fallthroughContext="Comma_Column1">
+        <DetectChar char="&Comma;" context="Comma_Column2_Start" attribute="Column 1 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column1_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column1_QuoteContinuation!Column1_Quote"/>
+        <AnyChar String=" &Tab;"/>
       </context>
-      <context name="Column1Quote" lineEndContext="#pop#pop!Column0" attribute="Column 1" fallthroughContext="#pop">
-        <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column1MultiLine"/>
-        <IncludeRules context="Error"/>
+      <context name="Comma_Column1" lineEndContext="#pop#pop" attribute="Column 1">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column2_Start" attribute="Column 1 Separator"/>
       </context>
-      <context name="Column1MultiLine" lineEndContext="#stay" attribute="Column 1">
-        <DetectChar char="&quot;" context="#pop!Column1Quote"/>
+      <context name="Comma_Column1_QuoteContinuation" lineEndContext="#pop#pop" attribute="Column 1" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column1_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column2_Start" attribute="Column 1 Separator"/>
       </context>
 
-      <context name="Column2" lineEndContext="#pop!Column0" attribute="Column 2">
-        <DetectChar char="&sep;" context="#pop!Column3" attribute="Column 2 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column2Quote"/>
-        <DetectChar char="&quot;" context="Column2MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Comma_Column2_Start" lineEndContext="#pop#pop" attribute="Column 2" fallthroughContext="Comma_Column2">
+        <DetectChar char="&Comma;" context="Comma_Column3_Start" attribute="Column 2 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column2_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column2_QuoteContinuation!Column2_Quote"/>
+        <AnyChar String=" &Tab;"/>
       </context>
-      <context name="Column2Quote" lineEndContext="#pop#pop!Column0" attribute="Column 2" fallthroughContext="#pop">
-        <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column2MultiLine"/>
-        <IncludeRules context="Error"/>
+      <context name="Comma_Column2" lineEndContext="#pop#pop#pop" attribute="Column 2">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column3_Start" attribute="Column 2 Separator"/>
       </context>
-      <context name="Column2MultiLine" lineEndContext="#stay" attribute="Column 2">
-        <DetectChar char="&quot;" context="#pop!Column2Quote"/>
+      <context name="Comma_Column2_QuoteContinuation" lineEndContext="#pop#pop#pop" attribute="Column 2" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column2_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column3_Start" attribute="Column 2 Separator"/>
       </context>
 
-      <context name="Column3" lineEndContext="#pop!Column0" attribute="Column 3">
-        <DetectChar char="&sep;" context="#pop!Column4" attribute="Column 3 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column3Quote"/>
-        <DetectChar char="&quot;" context="Column3MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Comma_Column3_Start" lineEndContext="#pop#pop#pop" attribute="Column 3" fallthroughContext="Comma_Column3">
+        <DetectChar char="&Comma;" context="Comma_Column4_Start" attribute="Column 3 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column3_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column3_QuoteContinuation!Column3_Quote"/>
+        <AnyChar String=" &Tab;"/>
       </context>
-      <context name="Column3Quote" lineEndContext="#pop#pop!Column0" attribute="Column 3" fallthroughContext="#pop">
-        <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column3MultiLine"/>
-        <IncludeRules context="Error"/>
+      <context name="Comma_Column3" lineEndContext="#pop#pop#pop#pop" attribute="Column 3">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column4_Start" attribute="Column 3 Separator"/>
       </context>
-      <context name="Column3MultiLine" lineEndContext="#stay" attribute="Column 3">
-        <DetectChar char="&quot;" context="#pop!Column3Quote"/>
+      <context name="Comma_Column3_QuoteContinuation" lineEndContext="#pop#pop#pop#pop" attribute="Column 3" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column3_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column4_Start" attribute="Column 3 Separator"/>
       </context>
 
-      <context name="Column4" lineEndContext="#pop!Column0" attribute="Column 4">
-        <DetectChar char="&sep;" context="#pop!Column5" attribute="Column 4 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column4Quote"/>
-        <DetectChar char="&quot;" context="Column4MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Comma_Column4_Start" lineEndContext="#pop#pop#pop#pop" attribute="Column 4" fallthroughContext="Comma_Column4">
+        <DetectChar char="&Comma;" context="Comma_Column5_Start" attribute="Column 4 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column4_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column4_QuoteContinuation!Column4_Quote"/>
+        <AnyChar String=" &Tab;"/>
       </context>
-      <context name="Column4Quote" lineEndContext="#pop#pop!Column0" attribute="Column 4" fallthroughContext="#pop">
-        <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column4MultiLine"/>
-        <IncludeRules context="Error"/>
+      <context name="Comma_Column4" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 4">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column5_Start" attribute="Column 4 Separator"/>
       </context>
-      <context name="Column4MultiLine" lineEndContext="#stay" attribute="Column 4">
-        <DetectChar char="&quot;" context="#pop!Column4Quote"/>
+      <context name="Comma_Column4_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 4" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column4_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column5_Start" attribute="Column 4 Separator"/>
       </context>
 
-      <context name="Column5" lineEndContext="#pop!Column0" attribute="Column 5">
-        <DetectChar char="&sep;" context="#pop!Column6" attribute="Column 5 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column5Quote"/>
-        <DetectChar char="&quot;" context="Column5MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Comma_Column5_Start" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5" fallthroughContext="Comma_Column5">
+        <DetectChar char="&Comma;" context="Comma_Column6_Start" attribute="Column 5 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column5_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column5_QuoteContinuation!Column5_Quote"/>
+        <AnyChar String=" &Tab;"/>
       </context>
-      <context name="Column5Quote" lineEndContext="#pop#pop!Column0" attribute="Column 5" fallthroughContext="#pop">
-        <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column5MultiLine"/>
-        <IncludeRules context="Error"/>
+      <context name="Comma_Column5" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 5">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column6_Start" attribute="Column 5 Separator"/>
       </context>
-      <context name="Column5MultiLine" lineEndContext="#stay" attribute="Column 5">
-        <DetectChar char="&quot;" context="#pop!Column5Quote"/>
+      <context name="Comma_Column5_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 5" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column5_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column6_Start" attribute="Column 5 Separator"/>
       </context>
 
-      <context name="Column6" lineEndContext="#pop!Column0" attribute="Column 6">
-        <DetectChar char="&sep;" context="#pop!Column7" attribute="Column 6 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column6Quote"/>
-        <DetectChar char="&quot;" context="Column6MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Comma_Column6_Start" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6" fallthroughContext="Comma_Column6">
+        <DetectChar char="&Comma;" context="Comma_Column7_Start" attribute="Column 6 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column6_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column6_QuoteContinuation!Column6_Quote"/>
+        <AnyChar String=" &Tab;"/>
       </context>
-      <context name="Column6Quote" lineEndContext="#pop#pop!Column0" attribute="Column 6" fallthroughContext="#pop">
+      <context name="Comma_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column7_Start" attribute="Column 6 Separator"/>
+      </context>
+      <context name="Comma_Column6_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column6_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column7_Start" attribute="Column 6 Separator"/>
+      </context>
+
+      <context name="Comma_Column7_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7" fallthroughContext="Comma_Column7">
+        <DetectChar char="&Comma;" context="Comma_Column8_Start" attribute="Column 7 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column7_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column7_QuoteContinuation!Column7_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Comma_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column8_Start" attribute="Column 7 Separator"/>
+      </context>
+      <context name="Comma_Column7_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column7_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column8_Start" attribute="Column 7 Separator"/>
+      </context>
+
+      <context name="Comma_Column8_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8" fallthroughContext="Comma_Column8">
+        <DetectChar char="&Comma;" context="Comma_Column9_Start" attribute="Column 8 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column8_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column8_QuoteContinuation!Column8_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Comma_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">
+        <DetectChar char="&Comma;" context="#pop!Comma_Column9_Start" attribute="Column 8 Separator"/>
+      </context>
+      <context name="Comma_Column8_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column8_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop!Comma_Column9_Start" attribute="Column 8 Separator"/>
+      </context>
+
+      <context name="Comma_Column9_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9" fallthroughContext="Comma_Column9">
+        <DetectChar char="&Comma;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Comma_Column9_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Comma_Column9_QuoteContinuation!Column9_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Comma_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">
+        <DetectChar char="&Comma;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>
+      </context>
+      <context name="Comma_Column9_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9" fallthroughContext="Comma_Error">
+        <IncludeRules context="Column9_FindQuote"/>
+        <DetectChar char="&Comma;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>
+      </context>
+
+      <context name="Comma_Error" lineEndContext="#pop#pop" attribute="Error">
+        <DetectChar char="&Comma;" context="#pop" lookAhead="1"/>
+      </context>
+
+      <!--
+      @}
+      -->
+
+      <!-- Semicolon (,) separator with double-quoted fields
+      @{
+      -->
+
+      <context name="Semicolon_Column0_Start" lineEndContext="#stay" attribute="Column 0" fallthroughContext="Semicolon_Column0">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column1_Start" attribute="Column 0 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column0_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column0_QuoteContinuation!Column0_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column0" lineEndContext="#pop" attribute="Column 0">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column1_Start" attribute="Column 0 Separator"/>
+      </context>
+      <context name="Semicolon_Column0_QuoteContinuation" lineEndContext="#pop" attribute="Column 0" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column0_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column1_Start" attribute="Column 0 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column1_Start" lineEndContext="#pop" attribute="Column 1" fallthroughContext="Semicolon_Column1">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column2_Start" attribute="Column 1 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column1_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column1_QuoteContinuation!Column1_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column1" lineEndContext="#pop#pop" attribute="Column 1">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column2_Start" attribute="Column 1 Separator"/>
+      </context>
+      <context name="Semicolon_Column1_QuoteContinuation" lineEndContext="#pop#pop" attribute="Column 1" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column1_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column2_Start" attribute="Column 1 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column2_Start" lineEndContext="#pop#pop" attribute="Column 2" fallthroughContext="Semicolon_Column2">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column3_Start" attribute="Column 2 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column2_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column2_QuoteContinuation!Column2_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column2" lineEndContext="#pop#pop#pop" attribute="Column 2">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column3_Start" attribute="Column 2 Separator"/>
+      </context>
+      <context name="Semicolon_Column2_QuoteContinuation" lineEndContext="#pop#pop#pop" attribute="Column 2" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column2_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column3_Start" attribute="Column 2 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column3_Start" lineEndContext="#pop#pop#pop" attribute="Column 3" fallthroughContext="Semicolon_Column3">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column4_Start" attribute="Column 3 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column3_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column3_QuoteContinuation!Column3_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column3" lineEndContext="#pop#pop#pop#pop" attribute="Column 3">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column4_Start" attribute="Column 3 Separator"/>
+      </context>
+      <context name="Semicolon_Column3_QuoteContinuation" lineEndContext="#pop#pop#pop#pop" attribute="Column 3" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column3_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column4_Start" attribute="Column 3 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column4_Start" lineEndContext="#pop#pop#pop#pop" attribute="Column 4" fallthroughContext="Semicolon_Column4">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column5_Start" attribute="Column 4 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column4_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column4_QuoteContinuation!Column4_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column4" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 4">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column5_Start" attribute="Column 4 Separator"/>
+      </context>
+      <context name="Semicolon_Column4_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 4" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column4_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column5_Start" attribute="Column 4 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column5_Start" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5" fallthroughContext="Semicolon_Column5">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column6_Start" attribute="Column 5 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column5_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column5_QuoteContinuation!Column5_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column5" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 5">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column6_Start" attribute="Column 5 Separator"/>
+      </context>
+      <context name="Semicolon_Column5_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 5" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column5_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column6_Start" attribute="Column 5 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column6_Start" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6" fallthroughContext="Semicolon_Column6">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column7_Start" attribute="Column 6 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column6_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column6_QuoteContinuation!Column6_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column7_Start" attribute="Column 6 Separator"/>
+      </context>
+      <context name="Semicolon_Column6_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column6_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column7_Start" attribute="Column 6 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column7_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7" fallthroughContext="Semicolon_Column7">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column8_Start" attribute="Column 7 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column7_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column7_QuoteContinuation!Column7_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column8_Start" attribute="Column 7 Separator"/>
+      </context>
+      <context name="Semicolon_Column7_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column7_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column8_Start" attribute="Column 7 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column8_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8" fallthroughContext="Semicolon_Column8">
+        <DetectChar char="&Semicolon;" context="Semicolon_Column9_Start" attribute="Column 8 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column8_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column8_QuoteContinuation!Column8_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column9_Start" attribute="Column 8 Separator"/>
+      </context>
+      <context name="Semicolon_Column8_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column8_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop!Semicolon_Column9_Start" attribute="Column 8 Separator"/>
+      </context>
+
+      <context name="Semicolon_Column9_Start" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9" fallthroughContext="Semicolon_Column9">
+        <DetectChar char="&Semicolon;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>
+        <RangeDetect char="&quot;" char1="&quot;" context="Semicolon_Column9_QuoteContinuation"/>
+        <DetectChar char="&quot;" context="Semicolon_Column9_QuoteContinuation!Column9_Quote"/>
+        <AnyChar String=" &Tab;"/>
+      </context>
+      <context name="Semicolon_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">
+        <DetectChar char="&Semicolon;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>
+      </context>
+      <context name="Semicolon_Column9_QuoteContinuation" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9" fallthroughContext="Semicolon_Error">
+        <IncludeRules context="Column9_FindQuote"/>
+        <DetectChar char="&Semicolon;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>
+      </context>
+
+      <context name="Semicolon_Error" lineEndContext="#pop#pop" attribute="Error">
+        <DetectChar char="&Semicolon;" context="#pop" lookAhead="1"/>
+      </context>
+
+      <!--
+      @}
+      -->
+
+      <!-- TAB (\t) separator
+      @{
+      -->
+
+      <context name="Tab_Column0" lineEndContext="#stay" attribute="Column 0">
+        <DetectChar char="&Tab;" context="Tab_Column1" attribute="Column 0 Separator"/>
+      </context>
+
+      <context name="Tab_Column1" lineEndContext="#pop" attribute="Column 1">
+        <DetectChar char="&Tab;" context="Tab_Column2" attribute="Column 1 Separator"/>
+      </context>
+
+      <context name="Tab_Column2" lineEndContext="#pop#pop" attribute="Column 2">
+        <DetectChar char="&Tab;" context="Tab_Column3" attribute="Column 2 Separator"/>
+      </context>
+
+      <context name="Tab_Column3" lineEndContext="#pop#pop#pop" attribute="Column 3">
+        <DetectChar char="&Tab;" context="Tab_Column4" attribute="Column 3 Separator"/>
+      </context>
+
+      <context name="Tab_Column4" lineEndContext="#pop#pop#pop#pop" attribute="Column 4">
+        <DetectChar char="&Tab;" context="Tab_Column5" attribute="Column 4 Separator"/>
+      </context>
+
+      <context name="Tab_Column5" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5">
+        <DetectChar char="&Tab;" context="Tab_Column6" attribute="Column 5 Separator"/>
+      </context>
+
+      <context name="Tab_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6">
+        <DetectChar char="&Tab;" context="Tab_Column7" attribute="Column 6 Separator"/>
+      </context>
+
+      <context name="Tab_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">
+        <DetectChar char="&Tab;" context="Tab_Column8" attribute="Column 7 Separator"/>
+      </context>
+
+      <context name="Tab_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">
+        <DetectChar char="&Tab;" context="Tab_Column9" attribute="Column 8 Separator"/>
+      </context>
+
+      <context name="Tab_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">
+        <DetectChar char="&Tab;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>
+      </context>
+
+      <!--
+      @}
+      -->
+
+      <!-- Pipe (|) separator
+      @{
+      -->
+
+      <context name="Pipe_Column0" lineEndContext="#stay" attribute="Column 0">
+        <DetectChar char="&Pipe;" context="Pipe_Column1" attribute="Column 0 Separator"/>
+      </context>
+
+      <context name="Pipe_Column1" lineEndContext="#pop" attribute="Column 1">
+        <DetectChar char="&Pipe;" context="Pipe_Column2" attribute="Column 1 Separator"/>
+      </context>
+
+      <context name="Pipe_Column2" lineEndContext="#pop#pop" attribute="Column 2">
+        <DetectChar char="&Pipe;" context="Pipe_Column3" attribute="Column 2 Separator"/>
+      </context>
+
+      <context name="Pipe_Column3" lineEndContext="#pop#pop#pop" attribute="Column 3">
+        <DetectChar char="&Pipe;" context="Pipe_Column4" attribute="Column 3 Separator"/>
+      </context>
+
+      <context name="Pipe_Column4" lineEndContext="#pop#pop#pop#pop" attribute="Column 4">
+        <DetectChar char="&Pipe;" context="Pipe_Column5" attribute="Column 4 Separator"/>
+      </context>
+
+      <context name="Pipe_Column5" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5">
+        <DetectChar char="&Pipe;" context="Pipe_Column6" attribute="Column 5 Separator"/>
+      </context>
+
+      <context name="Pipe_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6">
+        <DetectChar char="&Pipe;" context="Pipe_Column7" attribute="Column 6 Separator"/>
+      </context>
+
+      <context name="Pipe_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">
+        <DetectChar char="&Pipe;" context="Pipe_Column8" attribute="Column 7 Separator"/>
+      </context>
+
+      <context name="Pipe_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">
+        <DetectChar char="&Pipe;" context="Pipe_Column9" attribute="Column 8 Separator"/>
+      </context>
+
+      <context name="Pipe_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">
+        <DetectChar char="&Pipe;" context="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator"/>
+      </context>
+
+      <!--
+      @}
+      -->
+
+      <!-- Whitespace ( ) separator
+      @{
+      -->
+
+      <context name="Ws_Column0" lineEndContext="#stay" attribute="Column 0">
+        <DetectChar char=" " context="Ws_Column0Spaces" attribute="Column 0 Separator"/>
+      </context>
+      <context name="Ws_Column0Spaces" lineEndContext="#pop" attribute="Column 0 Separator" fallthroughContext="Ws_Column1">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column1" lineEndContext="#pop#pop" attribute="Column 1">
+        <DetectChar char=" " context="Ws_Column1Spaces" attribute="Column 1 Separator"/>
+      </context>
+      <context name="Ws_Column1Spaces" lineEndContext="#pop#pop#pop" attribute="Column 1 Separator" fallthroughContext="Ws_Column2">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column2" lineEndContext="#pop#pop#pop#pop" attribute="Column 2">
+        <DetectChar char=" " context="Ws_Column2Spaces" attribute="Column 2 Separator"/>
+      </context>
+      <context name="Ws_Column2Spaces" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 2 Separator" fallthroughContext="Ws_Column3">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column3" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 3">
+        <DetectChar char=" " context="Ws_Column3Spaces" attribute="Column 3 Separator"/>
+      </context>
+      <context name="Ws_Column3Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop" attribute="Column 3 Separator" fallthroughContext="Ws_Column4">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column4" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 4">
+        <DetectChar char=" " context="Ws_Column4Spaces" attribute="Column 4 Separator"/>
+      </context>
+      <context name="Ws_Column4Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 4 Separator" fallthroughContext="Ws_Column5">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column5" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 5">
+        <DetectChar char=" " context="Ws_Column5Spaces" attribute="Column 5 Separator"/>
+      </context>
+      <context name="Ws_Column5Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 5 Separator" fallthroughContext="Ws_Column6">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6">
+        <DetectChar char=" " context="Ws_Column6Spaces" attribute="Column 6 Separator"/>
+      </context>
+      <context name="Ws_Column6Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 6 Separator" fallthroughContext="Ws_Column7">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column7" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7">
+        <DetectChar char=" " context="Ws_Column7Spaces" attribute="Column 7 Separator"/>
+      </context>
+      <context name="Ws_Column7Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 7 Separator" fallthroughContext="Ws_Column8">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column8" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8">
+        <DetectChar char=" " context="Ws_Column8Spaces" attribute="Column 8 Separator"/>
+      </context>
+      <context name="Ws_Column8Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 8 Separator" fallthroughContext="Ws_Column9">
+        <DetectChar char=" "/>
+      </context>
+
+      <context name="Ws_Column9" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9">
+        <DetectChar char=" " context="Ws_Column9Spaces" attribute="Column 9 Separator"/>
+      </context>
+      <context name="Ws_Column9Spaces" lineEndContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop" attribute="Column 9 Separator" fallthroughContext="#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop#pop">
+        <DetectChar char=" "/>
+      </context>
+
+      <!--
+      @}
+      -->
+
+      <!-- Quote
+      @{
+      -->
+
+      <context name="Column0_Quote" lineEndContext="#pop!Column0_QuoteNextLine" attribute="Column 0">
+      </context>
+      <context name="Column0_QuoteNextLine" lineEndContext="#stay" attribute="Column 0">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column0_FindQuote" lineEndContext="#stay" attribute="Column 0">
         <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column6MultiLine"/>
-        <IncludeRules context="Error"/>
+        <DetectChar char="&quot;" context="Column0_Quote"/>
       </context>
-      <context name="Column6MultiLine" lineEndContext="#stay" attribute="Column 6">
-        <DetectChar char="&quot;" context="#pop!Column6Quote"/>
+
+      <context name="Column1_Quote" lineEndContext="#pop!Column1_QuoteNextLine" attribute="Column 1">
       </context>
+      <context name="Column1_QuoteNextLine" lineEndContext="#stay" attribute="Column 1">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column1_FindQuote" lineEndContext="#stay" attribute="Column 1">
+        <RangeDetect char="&quot;" char1="&quot;"/>
+        <DetectChar char="&quot;" context="Column1_Quote"/>
+      </context>
 
-      <context name="Column7" lineEndContext="#pop!Column0" attribute="Column 7">
-        <DetectChar char="&sep;" context="#pop!Column8" attribute="Column 7 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column7Quote"/>
-        <DetectChar char="&quot;" context="Column7MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Column2_Quote" lineEndContext="#pop!Column2_QuoteNextLine" attribute="Column 2">
       </context>
-      <context name="Column7Quote" lineEndContext="#pop#pop!Column0" attribute="Column 7" fallthroughContext="#pop">
+      <context name="Column2_QuoteNextLine" lineEndContext="#stay" attribute="Column 2">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column2_FindQuote" lineEndContext="#stay" attribute="Column 2">
         <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column7MultiLine"/>
-        <IncludeRules context="Error"/>
+        <DetectChar char="&quot;" context="Column2_Quote"/>
       </context>
-      <context name="Column7MultiLine" lineEndContext="#stay" attribute="Column 7">
-        <DetectChar char="&quot;" context="#pop!Column7Quote"/>
+
+      <context name="Column3_Quote" lineEndContext="#pop!Column3_QuoteNextLine" attribute="Column 3">
       </context>
+      <context name="Column3_QuoteNextLine" lineEndContext="#stay" attribute="Column 3">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column3_FindQuote" lineEndContext="#stay" attribute="Column 3">
+        <RangeDetect char="&quot;" char1="&quot;"/>
+        <DetectChar char="&quot;" context="Column3_Quote"/>
+      </context>
 
-      <context name="Column8" lineEndContext="#pop!Column0" attribute="Column 8">
-        <DetectChar char="&sep;" context="#pop!Column9" attribute="Column 8 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column8Quote"/>
-        <DetectChar char="&quot;" context="Column8MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Column4_Quote" lineEndContext="#pop!Column4_QuoteNextLine" attribute="Column 4">
       </context>
-      <context name="Column8Quote" lineEndContext="#pop#pop!Column0" attribute="Column 8" fallthroughContext="#pop">
+      <context name="Column4_QuoteNextLine" lineEndContext="#stay" attribute="Column 4">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column4_FindQuote" lineEndContext="#stay" attribute="Column 4">
         <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column8MultiLine"/>
-        <IncludeRules context="Error"/>
+        <DetectChar char="&quot;" context="Column4_Quote"/>
       </context>
-      <context name="Column8MultiLine" lineEndContext="#stay" attribute="Column 8">
-        <DetectChar char="&quot;" context="#pop!Column8Quote"/>
+
+      <context name="Column5_Quote" lineEndContext="#pop!Column5_QuoteNextLine" attribute="Column 5">
       </context>
+      <context name="Column5_QuoteNextLine" lineEndContext="#stay" attribute="Column 5">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column5_FindQuote" lineEndContext="#stay" attribute="Column 5">
+        <RangeDetect char="&quot;" char1="&quot;"/>
+        <DetectChar char="&quot;" context="Column5_Quote"/>
+      </context>
 
-      <context name="Column9" lineEndContext="#pop!Column0" attribute="Column 9">
-        <DetectChar char="&sep;" context="#pop!Column0" attribute="Column 9 Separator"/>
-        <RangeDetect char="&quot;" char1="&quot;" context="Column9Quote"/>
-        <DetectChar char="&quot;" context="Column9MultiLine"/>
-        <IncludeRules context="FindField"/>
+      <context name="Column6_Quote" lineEndContext="#pop!Column6_QuoteNextLine" attribute="Column 6">
       </context>
-      <context name="Column9Quote" lineEndContext="#pop!Column0" attribute="Column 9" fallthroughContext="#pop">
+      <context name="Column6_QuoteNextLine" lineEndContext="#stay" attribute="Column 6">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column6_FindQuote" lineEndContext="#stay" attribute="Column 6">
         <RangeDetect char="&quot;" char1="&quot;"/>
-        <DetectChar char="&quot;" context="#pop!Column9MultiLine"/>
-        <IncludeRules context="Error"/>
+        <DetectChar char="&quot;" context="Column6_Quote"/>
       </context>
-      <context name="Column9MultiLine" lineEndContext="#stay" attribute="Column 9">
-        <DetectChar char="&quot;" context="#pop!Column9Quote"/>
+
+      <context name="Column7_Quote" lineEndContext="#pop!Column7_QuoteNextLine" attribute="Column 7">
       </context>
+      <context name="Column7_QuoteNextLine" lineEndContext="#stay" attribute="Column 7">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column7_FindQuote" lineEndContext="#stay" attribute="Column 7">
+        <RangeDetect char="&quot;" char1="&quot;"/>
+        <DetectChar char="&quot;" context="Column7_Quote"/>
+      </context>
 
-      <context name="FindField" lineEndContext="#stay" attribute="Column 0">
-        <DetectSpaces/>
-        <RegExpr String="[^&sep;]+"/>
+      <context name="Column8_Quote" lineEndContext="#pop!Column8_QuoteNextLine" attribute="Column 8">
       </context>
+      <context name="Column8_QuoteNextLine" lineEndContext="#stay" attribute="Column 8">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column8_FindQuote" lineEndContext="#stay" attribute="Column 8">
+        <RangeDetect char="&quot;" char1="&quot;"/>
+        <DetectChar char="&quot;" context="Column8_Quote"/>
+      </context>
 
-      <context name="Error" lineEndContext="#stay" attribute="Error">
-        <RegExpr String="[^&sep;]+" context="#pop" attribute="Error"/>
+      <context name="Column9_Quote" lineEndContext="#pop!Column9_QuoteNextLine" attribute="Column 9">
       </context>
+      <context name="Column9_QuoteNextLine" lineEndContext="#stay" attribute="Column 9">
+        <DetectChar char="&quot;" context="#pop"/>
+      </context>
+      <context name="Column9_FindQuote" lineEndContext="#stay" attribute="Column 9">
+        <RangeDetect char="&quot;" char1="&quot;"/>
+        <DetectChar char="&quot;" context="Column9_Quote"/>
+      </context>
+
+      <!--
+      @}
+      -->
+
     </contexts>
 
     <itemDatas>
diff --git a/xml/isocpp.xml b/xml/isocpp.xml
--- a/xml/isocpp.xml
+++ b/xml/isocpp.xml
@@ -35,7 +35,7 @@
 <language
     name="ISO C++"
     section="Sources"
-    version="32"
+    version="33"
     kateversion="5.79"
     indenter="cstyle"
     style="C++"
@@ -132,6 +132,8 @@
       <!-- Concept -->
       <item>concept</item>
       <item>requires</item>
+      <!-- C++26 -->
+      <item>contract_assert</item>
       <!-- TM TS -->
       <!-- <item>atomic_cancel</item>
       <item>atomic_commit</item>
@@ -165,6 +167,8 @@
       <item>no_unique_address</item>
       <!-- C++23 -->
       <item>assume</item>
+      <!-- C++26 -->
+      <item>indeterminate</item>
       <!-- TM TS -->
       <!-- <item>optimize_for_synchronized</item> -->
     </list>
@@ -255,11 +259,14 @@
       <item>__has_include</item>
       <!-- C++20 -->
       <item>__has_cpp_attribute</item>
+      <!-- C++26 -->
+      <item>__has_embed</item>
     </list>
     <list name="InMacro">
       <item>__VA_ARGS__</item>
       <item>__VA_OPT__</item>
     </list>
+    <!-- not used, for list-completion only (see PreprocessorCmd context) -->
     <list name="preprocessor">
       <item>if</item>
       <item>ifdef</item>
@@ -269,15 +276,11 @@
       <item>elifndef</item> <!--C++23-->
       <item>else</item>
       <item>endif</item>
-      <item>cmakedefine01</item>
-      <item>cmakedefine</item>
       <item>define</item>
       <item>include</item>
-      <item>error</item>
-      <item>line</item>
-      <item>pragma</item>
       <item>undef</item>
-      <item>warning</item>
+      <!-- C++26 -->
+      <item>embed</item>
     </list>
     <list name="preprocessorDefine">
       <item>cmakedefine01</item>
@@ -731,6 +734,7 @@
         <WordDetect attribute="Preprocessor" context="PreprocessorEndOfLineSpace" String="endif" endRegion="PP" />
         <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="elifdef" endRegion="PP" beginRegion="PP" lookAhead="true" />
         <WordDetect attribute="Preprocessor" context="#pop!PreprocessorIfDef" String="elifndef" endRegion="PP" beginRegion="PP" lookAhead="true" />
+        <WordDetect attribute="Preprocessor" context="#pop!Embed" String="embed"/>
         <keyword attribute="Preprocessor" context="#pop!Define" String="preprocessorDefine" />
         <keyword attribute="Preprocessor" context="#pop!Preprocessor" String="preprocessorOther" />
         <!-- GCC extension -->
@@ -744,6 +748,12 @@
         <RangeDetect attribute="Prep. Lib" context="PreprocessorEndOfLineSpace" char="&lt;" char1="&gt;" />
         <IncludeRules context="Preprocessor" />
         <DetectIdentifier/>
+      </context>
+
+      <context name="Embed" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!Preprocessor">
+        <DetectSpaces/>
+        <RangeDetect attribute="Prep. Lib" context="#pop!Preprocessor" char="&quot;" char1="&quot;" />
+        <RangeDetect attribute="Prep. Lib" context="#pop!Preprocessor" char="&lt;" char1="&gt;" />
       </context>
 
       <context name="PreprocessorIfDef" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!LineError">
diff --git a/xml/json.xml b/xml/json.xml
--- a/xml/json.xml
+++ b/xml/json.xml
@@ -13,7 +13,7 @@
  ** https://www.json.org/json-en.html
  ***************************************************************************
 -->
-<language name="JSON" section="Markup" version="10" kateversion="2.4" extensions="*.json;*.jsonl;*.ndjson;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme;*.cast" mimetype="application/json;application/x-ndjson;application/geo+json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
+<language name="JSON" section="Markup" version="11" kateversion="2.4" extensions="*.json;*.jsonl;*.ndjson;.kateproject;.arcconfig;*.geojson;*.gltf;*.theme;*.cast" mimetype="application/json;application/x-ndjson;application/geo+json" author="Sebastian Pipping (sebastian@pipping.org)" license="GPL">
   <highlighting>
     <list name="Constants">
       <item>null</item>
@@ -57,8 +57,8 @@
       </context>
 
       <context name="String_Key_Char" lineEndContext="#stay" attribute="Style_Normal">
-        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#pop" attribute="Style_String_Key_Char" />
-        <RegExpr String="\\(u[0-9a-fA-f]+|.)?" context="#pop" attribute="Style_Error" />
+        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-F]{4})" context="#pop" attribute="Style_String_Key_Char" />
+        <RegExpr String="\\(u[0-9a-fA-F]+|.)?" context="#pop" attribute="Style_Error" />
       </context>
 
       <context name="Value" lineEndContext="#stay" attribute="Style_Error" >
@@ -73,8 +73,8 @@
       </context>
 
       <context name="String_Key_Value" lineEndContext="#stay" attribute="Style_Normal">
-        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-f]{4})" context="#pop"  attribute="Style_String_Value_Char" />
-        <RegExpr String="\\(u[0-9a-fA-f]+|.)?" context="#pop" attribute="Style_Error" />
+        <RegExpr String="\\(?:[&quot;\\/bfnrt]|u[0-9a-fA-F]{4})" context="#pop"  attribute="Style_String_Value_Char" />
+        <RegExpr String="\\(u[0-9a-fA-F]+|.)?" context="#pop" attribute="Style_Error" />
       </context>
 
       <context name="Array" lineEndContext="#stay" attribute="Style_Error">
diff --git a/xml/perl.xml b/xml/perl.xml
--- a/xml/perl.xml
+++ b/xml/perl.xml
@@ -42,7 +42,7 @@
 
    Enhance tr/// and y/// support.
 -->
-<language name="Perl" alternativeNames="PL" version="23" kateversion="5.0" section="Scripts" extensions="*.pl;*.PL;*.pm" mimetype="application/x-perl;text/x-perl" priority="5" author="Anders Lund (anders@alweb.dk)" license="LGPLv2">
+<language name="Perl" alternativeNames="PL" version="24" kateversion="6.22" 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="control_flow">
       <item>if</item>
@@ -84,6 +84,7 @@
     <list name="operators">
       <item>and</item>
       <item>or</item>
+      <item>xor</item>
       <item>not</item>
       <item>eq</item>
       <item>ne</item>
@@ -92,6 +93,7 @@
       <item>le</item>
       <item>ge</item>
       <item>cmp</item>
+      <item>isa</item>
     </list>
     <list name="functions">
       <item>abs</item>
@@ -306,13 +308,18 @@
       <item>constant</item>
       <item>bytes</item>
       <item>diagnostics</item>
+      <item>feature</item>
     </list>
     <contexts>
       <context name="normal" attribute="Normal Text" lineEndContext="#stay">
         <DetectSpaces />
 
+        <StringDetect attribute="Keyword" context="EndSection" String="__END__" firstNonSpace="true"/>
         <StringDetect attribute="Keyword" context="data_handle" String="__DATA__" firstNonSpace="true" />
-        <StringDetect attribute="Keyword" context="#stay" String="__END__" firstNonSpace="true"/>
+
+        <WordDetect attribute="Import" context="module" String="use" firstNonSpace="true"/>
+        <WordDetect attribute="Import" context="module" String="no" firstNonSpace="true"/>
+
         <RegExpr attribute="Keyword" context="sub_name_def" String="\bsub\s+" />
         <keyword attribute="Keyword" context="#stay" String="keywords" />
         <keyword attribute="Control Flow" context="#stay" String="control_flow" />
@@ -357,6 +364,7 @@
         <RegExpr attribute="Operator" context="find_pattern" String="\b(?:m|qr)(?=\s*[^\w\s\]})])" />
 
         <RegExpr attribute="Normal Text" context="#stay" String="[\w_]+\s*//?\=?|[&lt;&gt;&quot;':]//?\=?" />
+
         <DetectIdentifier/>
 
         <!-- Avoid conflicts between operators / and // -->
@@ -367,9 +375,13 @@
 
         <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Block" />
         <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Block" />
+
+        <StringDetect String="=>" attribute="FatComma" context="#stay"/>
+        <AnyChar attribute="Operator2" context="#stay" String="=&lt;>&amp;|!+-*/%^~" />
       </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" />
@@ -433,7 +445,7 @@
         <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">
+      <context name="ip_string_6" attribute="String (interpolated)" lineEndContext="#stay">
         <StringDetect 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" />
@@ -474,7 +486,7 @@
         <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">
+      <context name="string_6" attribute="String" lineEndContext="#stay">
         <DetectIdentifier />
         <Detect2Chars attribute="String Special Character" context="#stay" char="\" char1="\" />
         <StringDetect attribute="String Special Character" context="#stay" String="\%1" dynamic="true"/>
@@ -507,7 +519,7 @@
         <IncludeRules context="subst_curlybrace_pattern" />
       </context>
 
-      <context name="subst_maybe_comment" attribute="Pattern" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="subst_maybe_comment" attribute="Pattern" lineEndContext="#pop" fallthroughContext="#pop">
         <DetectChar attribute="Comment" context="#pop!comment" char="#" />
       </context>
 
@@ -542,7 +554,7 @@
         <!-- partially buggy if the character is in a set, a variable, etc. -->
         <RegExpr attribute="Operator" context="#pop!subst_any_replace" String="(.)" beginRegion="Replacement" />
       </context>
-      <context name="subst_any_replace" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
+      <context name="subst_any_replace" attribute="String (interpolated)" lineEndContext="#stay">
         <RegExpr attribute="Operator" context="#pop#pop#pop" String="%1&subst_flags;" dynamic="true" endRegion="Replacement" />
         <IncludeRules context="ipstring_internal_without_identifier" />
       </context>
@@ -584,12 +596,12 @@
       </context>
 
       <!-- Fully parse s / / /. -->
-      <context name="subst_slash_pattern" attribute="Pattern" lineEndContext="#stay" dynamic="true">
+      <context name="subst_slash_pattern" attribute="Pattern" lineEndContext="#stay">
         <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">
+      <context name="subst_slash_replace" attribute="String (interpolated)" lineEndContext="#stay">
         <RegExpr attribute="Operator" context="#pop#pop#pop" String="%1&subst_flags;" dynamic="true" endRegion="Replacement" />
         <IncludeRules context="ipstring_internal" />
       </context>
@@ -604,7 +616,7 @@
         <RegExpr attribute="Operator" context="#pop#pop#pop" String="'&subst_flags;" endRegion="Replacement" />
       </context>
 
-      <context name="tr" attribute="Pattern" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
+      <context name="tr" attribute="Pattern" lineEndContext="#pop" fallthroughContext="#pop" >
         <RegExpr attribute="Pattern" context="#pop" String="\([^)]*\)\s*\(?:[^)]*\)|\{[^}]*\}\s*\{[^}]*\}|\[[^]]*\]\s*\[[^\]]*\]|([^a-zA-Z0-9_\s[\]{}()]).*?\1.*?\1"/>
       </context>
 
@@ -622,7 +634,7 @@
         <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">
+      <context name="pattern" attribute="Pattern" lineEndContext="#stay">
         <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" />
@@ -701,7 +713,7 @@
       </context>
 
       <!-- ====== Variables ====== -->
-      <context name="find_variable" attribute="Data Type" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop" >
+      <context name="find_variable" attribute="Data Type" lineEndContext="#pop" fallthroughContext="#pop">
         <RegExpr attribute="Data Type" context="var_detect" String="\$[#_][\w_]" />
         <RegExpr attribute="Special Variable" context="var_detect" String="\$[0-9]+|[@\$](?:[\+\-_]\B|ARGV\b|INC\b)|[%\$](?:INC\b|ENV\b|SIG\b)|\$\^[A-Z_\]\[\^\?\\]|%([\-\+!]|\^H)" />
         <RegExpr attribute="Data Type" context="var_detect" String="\$\$[\$\w_]|\$+::" />
@@ -713,7 +725,7 @@
         <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" >
+      <context name="find_variable_unsafe" attribute="Data Type" lineEndContext="#pop" fallthroughContext="#pop">
         <RegExpr attribute="Data Type" context="var_detect_unsafe" String="\$[#_][\w_]" />
         <RegExpr attribute="Special Variable" context="var_detect_unsafe" String="\$[0-9]+|[@\$](?:[\+\-_]\B|ARGV\b|INC\b)|[%\$](?:INC\b|ENV\b|SIG\b)" />
         <RegExpr attribute="Special Variable" context="var_detect" String="\$\^[A-Z_\]\[\^\?\\]|%([\-\+!]|\^H)" />
@@ -722,11 +734,11 @@
         <RegExpr attribute="Data Type" context="var_detect_unsafe" String="[\$@%]\{\^?[\w_]+\}|[$@%]|\*\w+" />
         <AnyChar attribute="Operator" context="#pop" String="$@%*" />
       </context>
-      <context name="var_detect"  attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+      <context name="var_detect"  attribute="Data Type" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
         <IncludeRules context="var_detect_unsafe" />
         <IncludeRules context="slash_safe_escape" />
       </context>
-      <context name="var_detect_unsafe"  attribute="Data Type" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="#pop#pop">
+      <context name="var_detect_unsafe"  attribute="Data Type" lineEndContext="#pop#pop" fallthroughContext="#pop#pop">
         <RegExpr attribute="Data Type" context="#stay" String="(?&lt;![0-9])[\w_]+" />
         <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
         <DetectChar attribute="Operator" context="#stay" char="'" />
@@ -738,7 +750,7 @@
 
 
       <!-- ====== Word lists ====== -->
-      <context name="quote_word" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
+      <context name="quote_word" attribute="Normal Text" lineEndContext="#stay">
         <DetectSpaces />
         <DetectIdentifier />
         <StringDetect attribute="Normal Text" context="#stay" String="\%1" dynamic="true" />
@@ -770,26 +782,66 @@
       </context>
 
       <!-- ====== Here Documents ====== -->
+
       <context name="find_here_document" attribute="Normal Text" lineEndContext="#pop" >
-        <RegExpr attribute="Keyword" context="here_document" String="(?|(\w+)\s*;?|\s*&quot;([^&quot;]+)&quot;\s*;?|\s*`([^`]+)`\s*;?)" />
-        <RegExpr attribute="Keyword" context="here_document_dumb" String="\s*'([^']+)'\s*;?" />
+        <RegExpr attribute="Keyword" context="heredoc_html" String="(HTML)\s*;?" />
+        <RegExpr attribute="Keyword" context="heredoc_mysql" String="(MYSQL)\s*;?" />
+        <RegExpr attribute="Keyword" context="heredoc_markdown" String="(MARKDOWN)\s*;?" />
+        <RegExpr attribute="Keyword" context="heredoc" String="(?|(\w+)\s*;?|&quot;([^&quot;]+)&quot;\s*;?|`([^`]+)`\s*;?)" />
+        <RegExpr attribute="Keyword" context="heredoc_ni_html" String="'(HTML)'\s*;?" />
+        <RegExpr attribute="Keyword" context="heredoc_ni_mysql" String="'(MYSQL)'\s*;?" />
+        <RegExpr attribute="Keyword" context="heredoc_ni_markdown" String="'(MARKDOWN)'\s*;?" />
+        <RegExpr attribute="Keyword" context="heredoc_ni" String="'([^']+)'\s*;?" />
       </context>
-      <context name="here_document" attribute="String (interpolated)" lineEndContext="#stay" dynamic="true">
+
+      <context name="heredoc" attribute="String (interpolated)" lineEndContext="#stay">
         <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" />
+        <RegExpr attribute="Keyword" context="heredoc" String="=\s*&lt;&lt;\s*[&quot;']?([A-Z0-9_\-]+)[&quot;']?" beginRegion="HereDocument" />
         <IncludeRules context="ipstring_internal" />
-        <DetectSpaces />
       </context>
-      <context name="here_document_dumb" attribute="Normal Text" lineEndContext="#stay" dynamic="true">
-        <StringDetect attribute="Keyword" context="#pop#pop" String="%1" column="0" dynamic="true" endRegion="HereDocument"/>
-        <DetectSpaces />
-        <DetectIdentifier />
+
+      <context name="heredoc_html" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>
+        <IncludeRules context="ipstring_internal_without_identifier" />
+        <IncludeRules context="##HTML" />
       </context>
 
+      <context name="heredoc_mysql" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>
+        <IncludeRules context="ipstring_internal_without_identifier" />
+        <IncludeRules context="##SQL (MySQL)" />
+      </context>
+
+      <context name="heredoc_markdown" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>
+        <IncludeRules context="ipstring_internal_without_identifier" />
+        <IncludeRules context="Normal Text##Markdown" />
+      </context>
+
+      <context name="heredoc_ni" attribute="String" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>
+      </context>
+
+      <context name="heredoc_ni_html" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>
+        <IncludeRules context="##HTML" />
+      </context>
+
+      <context name="heredoc_ni_mysql" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>
+        <IncludeRules context="##SQL (MySQL)" />
+      </context>
+
+      <context name="heredoc_ni_markdown" attribute="Normal Text" lineEndContext="#stay">
+        <RegExpr attribute="Keyword" context="#pop#pop" String="^%1\b" column="0" dynamic="true" endRegion="HereDocument"/>
+        <IncludeRules context="Normal Text##Markdown" />
+      </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" />
+        <RegExpr attribute="Pod" context="pod" String="^\=(?:head[1-6]|over|back|item|for|begin|end|encoding|pod).*" column="0" beginRegion="POD"/>
+        <StringDetect attribute="Keyword" context="#pop" String="__END__" firstNonSpace="true" />
       </context>
 
       <context name="Backticked" attribute="String (interpolated)" lineEndContext="#stay">
@@ -797,13 +849,13 @@
         <DetectChar attribute="Operator" context="#pop" char="`"/>
       </context>
 
-      <context name="slash_safe_escape" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="slash_safe_escape" attribute="Normal Text" lineEndContext="#pop" 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="sub_name_def" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
+      <context name="sub_name_def" attribute="Normal Text" lineEndContext="#pop" fallthroughContext="#pop">
         <DetectSpaces/>
         <DetectChar attribute="Normal Text" context="sub_arg_definition" char="(" />
         <RegExpr attribute="Function" context="#stay" String="\w+" />
@@ -811,7 +863,7 @@
         <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />
       </context>
 
-      <context name="sub_arg_definition" attribute="Normal Text" lineEndContext="#stay" fallthrough="true" fallthroughContext="#pop#pop">
+      <context name="sub_arg_definition" attribute="Normal Text" lineEndContext="#stay" 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=")" />
@@ -820,7 +872,7 @@
       <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="PodKeyword" context="#stay" String="^\=(?:head[1-6]|over|back|item|for|begin|end|encoding|pod).*" column="0"/>
         <StringDetect attribute="Pod" context="Pod" String="=cut" column="0" endRegion="POD"/>
       </context>
 
@@ -830,8 +882,17 @@
         <DetectIdentifier />
       </context>
 
+      <context name="module" attribute="Comment" lineEndContext="#pop">
+        <DetectSpaces />
+        <keyword attribute="Pragma" context="#pop" String="pragmas" />
+        <RegExpr attribute="Pragma" String="v\d+([.][\d.]*|\b)" context="#pop"/>
+        <RegExpr attribute="Normal Text" String="[a-zA-Z0-9:\\.]+" context="#pop"/>
+      </context>
+
       <context name="Pod" attribute="Pod" lineEndContext="#pop#pop"/>
 
+      <context name="EndSection" attribute="Comment" lineEndContext="#stay"/>
+
     </contexts>
     <itemDatas>
       <itemData name="Normal Text"               defStyleNum="dsNormal" />
@@ -856,6 +917,10 @@
       <itemData name="Data"                      defStyleNum="dsNormal" />
       <itemData name="Comment"                   defStyleNum="dsComment" />
       <itemData name="Pod"                       defStyleNum="dsComment" />
+      <itemData name="FatComma"                  defStyleNum="dsOperator" bold="1" />
+      <itemData name="Import"                    defStyleNum="dsImport" />
+      <itemData name="Operator2"                 defStyleNum="dsOperator" />
+      <itemData name="PodKeyword"                defStyleNum="dsCommentVar" />
     </itemDatas>
   </highlighting>
   <general>
diff --git a/xml/raku.xml b/xml/raku.xml
--- a/xml/raku.xml
+++ b/xml/raku.xml
@@ -73,7 +73,7 @@
   <!-- <!ENTITY regadverb "(?!\()\s*(?::\w+\s*)*(?=[^\w\s])"> -->
   <!ENTITY regadverb "(?!\()\s*(?=[^\p{L}\p{N}\s])">
 ]>
-<language name="Raku" version="10" kateversion="5.62" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
+<language name="Raku" version="12" kateversion="6.22" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">
   <highlighting>
 
     <!-- https://docs.raku.org/routines -->
diff --git a/xml/systemverilog.xml b/xml/systemverilog.xml
--- a/xml/systemverilog.xml
+++ b/xml/systemverilog.xml
@@ -39,7 +39,7 @@
 <!--                                                                       -->
 <!--***********************************************************************-->
 <!DOCTYPE language>
-<language name="SystemVerilog" version="11" kateversion="5.0" section="Hardware" extensions="*.sv;*.svh" mimetype="text/x-systemverilog-src" author="Sean O'Boyle (seanoboyle@intelligentdv.com)" license="GPLv3+">
+<language name="SystemVerilog" version="12" kateversion="5.0" section="Hardware" extensions="*.sv;*.svh" mimetype="text/x-systemverilog-src" author="Sean O'Boyle (seanoboyle@intelligentdv.com)" license="GPLv3+">
   <highlighting>
     <list name="key_deprecated">
        <item>defparam</item>
@@ -854,6 +854,8 @@
         <keyword attribute="Gate Instantiation Keyword" context="#stay" String="key_gates"/>
         <keyword attribute="Standard Library" context="#stay" String="key_stdlib"/>
 
+        <RegExpr attribute="Function" context="#stay" String="\b[a-zA-Z_][\w$]*(?=\s*\()"/>
+
         <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_]+"/>
@@ -864,11 +866,11 @@
         <RegExpr attribute="Port Connection" context="#stay" String="[^\w$]\.[a-zA-Z]+[\w$]*"/>
 
         <DetectChar attribute="String" context="String" char="&quot;"/>
-        <IncludeRules context="FindComments" />
+        <IncludeRules context="FindComments"/>
         <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="Preprocessor" context="#stay" String="\`[a-zA-Z_]+\w*"/>
         <RegExpr attribute="PLI Task" context="#stay" String="\$[a-zA-Z_]+\w*"/>
         <RegExpr attribute="Delay" context="#stay" String="#[\d_]+"/>
       </context>
@@ -893,35 +895,35 @@
       </context>
 
       <context name="FindComments" attribute="Normal Text" lineEndContext="#pop">
-        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true" />
-        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />
+        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>
+        <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true"/>
       </context>
 
       <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">
-        <IncludeRules context="##Doxygen" />
+        <IncludeRules context="##Doxygen"/>
         <Detect2Chars attribute="Comment" context="#pop!Commentar 1" char="/" char1="/"/>
         <Detect2Chars attribute="Comment" context="#pop!Commentar 2" char="/" char1="*" beginRegion="Comment"/>
       </context>
 
       <context attribute="Comment" lineEndContext="#pop" name="Commentar 1">
         <LineContinue attribute="Comment" context="#stay"/>
-        <DetectSpaces />
-        <IncludeRules context="##Comments" />
-        <DetectIdentifier />
+        <DetectSpaces/>
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
       </context>
 
       <context attribute="Comment" lineEndContext="#stay" name="Commentar 2">
-        <DetectSpaces />
+        <DetectSpaces/>
         <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment"/>
-        <IncludeRules context="##Comments" />
-        <DetectIdentifier />
+        <IncludeRules context="##Comments"/>
+        <DetectIdentifier/>
       </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="FindComments" />
+        <IncludeRules context="FindComments"/>
       </context>
 
       <context attribute="Block Name" lineEndContext="#pop" name="Block Name">
@@ -931,16 +933,16 @@
 
     <itemDatas>
       <itemData name="Normal Text" defStyleNum="dsNormal"/>
-      <itemData name="Block Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Block Keyword" defStyleNum="dsControlFlow"/>
       <itemData name="DPI Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Assert Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Coverage Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Generator Keyword" defStyleNum="dsKeyword"/>
-      <itemData name="Confitional Keyword" defStyleNum="dsKeyword"/>
-      <itemData name="Case Keyword" defStyleNum="dsKeyword"/>
-      <itemData name="Loop Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Confitional Keyword" defStyleNum="dsControlFlow"/>
+      <itemData name="Case Keyword" defStyleNum="dsControlFlow"/>
+      <itemData name="Loop Keyword" defStyleNum="dsControlFlow"/>
       <itemData name="Specify Keyword" defStyleNum="dsKeyword"/>
-      <itemData name="Process Block Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Process Block Keyword" defStyleNum="dsControlFlow"/>
       <itemData name="Continuous Assign Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Event Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Time Keyword" defStyleNum="dsKeyword"/>
@@ -951,11 +953,11 @@
       <itemData name="Library Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Interface Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Checker Keyword" defStyleNum="dsKeyword"/>
-      <itemData name="Type Keyword" defStyleNum="dsKeyword"/>
-      <itemData name="Preprocessor Keyword" defStyleNum="dsOthers"/>
-      <itemData name="Preprocessor" defStyleNum="dsOthers"/>
-      <itemData name="System Task Keyword" defStyleNum="dsKeyword"/>
-      <itemData name="Data Type Keyword" defStyleNum="dsKeyword"/>
+      <itemData name="Type Keyword" defStyleNum="dsDataType"/>
+      <itemData name="Preprocessor Keyword" defStyleNum="dsPreprocessor"/>
+      <itemData name="Preprocessor" defStyleNum="dsPreprocessor"/>
+      <itemData name="System Task Keyword" defStyleNum="dsBuiltIn"/>
+      <itemData name="Data Type Keyword" defStyleNum="dsDataType"/>
       <itemData name="Drive/Charge Strength Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Gate Instantiation Keyword" defStyleNum="dsKeyword"/>
       <itemData name="Decimal" defStyleNum="dsBaseN"/>
@@ -967,19 +969,20 @@
       <itemData name="String Char" defStyleNum="dsChar"/>
       <itemData name="Comment" defStyleNum="dsComment"/>
       <itemData name="Deprecated Keyword" defStyleNum="dsError"/>
-      <itemData name="Symbol" defStyleNum="dsNormal"/>
+      <itemData name="Symbol" defStyleNum="dsOperator"/>
       <itemData name="Prep. Lib" defStyleNum="dsFloat"/>
-      <itemData name="PLI Task" defStyleNum="dsDataType"/>
+      <itemData name="PLI Task" defStyleNum="dsBuiltIn"/>
       <itemData name="Integer" defStyleNum="dsDecVal"/>
       <itemData name="Delay" defStyleNum="dsBaseN"/>
       <itemData name="Block Name" defStyleNum="dsDataType"/>
-      <itemData name="Port Connection" defStyleNum="dsDataType"/>
+      <itemData name="Port Connection" defStyleNum="dsAttribute"/>
       <itemData name="Standard Library" defStyleNum="dsOthers"/>
+      <itemData name="Function" defStyleNum="dsFunction"/>
       </itemDatas>
   </highlighting>
   <general>
     <comments>
-      <comment name="singleLine" start="//" position="afterwhitespace" />
+      <comment name="singleLine" start="//" position="afterwhitespace"/>
       <comment name="multiLine" start="/*" end="*/" region="Comment"/>
     </comments>
     <keywords casesensitive="1"/>
diff --git a/xml/verilog.xml b/xml/verilog.xml
--- a/xml/verilog.xml
+++ b/xml/verilog.xml
@@ -1,25 +1,31 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <!DOCTYPE language>
-<language name="Verilog" version="8" kateversion="5.0" section="Hardware" extensions="*.v;*.V;*.vl" mimetype="text/x-verilog-src" author="Yevgen Voronenko (ysv22@drexel.edu), Ryan Dalzell (ryan@tullyroan.com)" license="">
+<language name="Verilog" version="9" kateversion="5.0" 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">
+    <list name="controlflow">
       <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>always</item>
+      <item>initial</item>
+      <item>config</item>
+      <item>endconfig</item>
+    </list>
+
+    <list name="keywords">
+      <item>specparam</item>
+      <item>defparam</item>
+      <item>ifnone</item>
+      <item>wait</item>
       <item>disable</item>
 
       <item>assign</item>
@@ -27,15 +33,11 @@
       <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>
@@ -150,10 +152,11 @@
     <contexts>
       <context attribute="Normal Text" lineEndContext="#stay" name="Normal">
         <DetectSpaces />
-        <RegExpr attribute="Keyword" context="Block name" String="(begin|fork)\ *:" beginRegion="Block"/>
-        <keyword attribute="Keyword" String="beginwords" context="#stay" beginRegion="Block"/>
-        <keyword attribute="Keyword" String="endwords" context="#stay" endRegion="Block"/>
+        <RegExpr attribute="Control Flow" context="Block name" String="(begin|fork)\ *:" beginRegion="Block"/>
+        <keyword attribute="Control Flow" String="beginwords" context="#stay" beginRegion="Block"/>
+        <keyword attribute="Control Flow" String="endwords" context="#stay" endRegion="Block"/>
 
+        <keyword attribute="Control Flow" context="#stay" String="controlflow" />
         <keyword attribute="Keyword" context="#stay" String="keywords" />
         <keyword attribute="Data Type" context="#stay" String="types" />
         <keyword attribute="Drive/charge strength" context="#stay" String="strength" />
@@ -167,6 +170,8 @@
         <Int attribute="Integer" context="#stay" />
 
         <RegExpr attribute="Case label" context="#stay" String="[a-zA-Z0-9_, \t]+\s*:" firstNonSpace="true"/>
+        <RegExpr attribute="Port Connection" context="#stay" String="(?&lt;![\w$])\.[a-zA-Z_][\w$]*"/>
+        <RegExpr attribute="Function" context="#stay" String="\b[a-zA-Z_][\w$]*(?=\s*\()"/>
         <!--<RegExpr attribute="Port map" context="Port" String="\.[a-zA-Z0-9_]+"/>-->
 
         <DetectChar attribute="String" context="String" char="&quot;"/>
@@ -219,6 +224,7 @@
 
     <itemDatas>
       <itemData name="Normal Text" defStyleNum="dsNormal"/>
+      <itemData name="Control Flow"  defStyleNum="dsControlFlow"/>
       <itemData name="Keyword"  defStyleNum="dsKeyword"/>
       <itemData name="Data Type"  defStyleNum="dsDataType"/>
 
@@ -232,9 +238,9 @@
       <itemData name="String Char"  defStyleNum="dsChar"/>
       <itemData name="Comment"  defStyleNum="dsComment"/>
       <itemData name="Symbol"  defStyleNum="dsOperator"/>
-      <itemData name="Preprocessor"  defStyleNum="dsOthers"/>
+      <itemData name="Preprocessor"  defStyleNum="dsPreprocessor"/>
       <itemData name="Prep. Lib"  defStyleNum="dsFloat"/>
-      <itemData name="System Task" defStyleNum="dsDataType"/>
+      <itemData name="System Task" defStyleNum="dsBuiltIn"/>
 
       <itemData name="Integer" defStyleNum="dsDecVal"/>
       <itemData name="Delay" defStyleNum="dsBaseN"/>
@@ -243,6 +249,8 @@
       <itemData name="Gate instantiation" defStyleNum="dsDataType"/>
 <!--       <itemData name="Port map" defStyleNum="dsDataType"/> -->
       <itemData name="Case label" defStyleNum="dsDecVal"/>
+      <itemData name="Function" defStyleNum="dsFunction"/>
+      <itemData name="Port Connection" defStyleNum="dsAttribute"/>
     </itemDatas>
   </highlighting>
   <general>
