packages feed

skylighting-core-0.15.0.1: xml/csv.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language [
  <!ENTITY Tab "&#9;">
  <!ENTITY Pipe "|">
  <!ENTITY Comma ",">
  <!ENTITY Semicolon ";">
  <!ENTITY quoted '"([^"]*+("")?+)*"'>
]>
<!--
Inspired by Rainbow CSV

Language name     | Separator     | Extension | Properties
 TSV              | \t (TAB)      | .tsv .tab |
 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

Although the RFC considers this invalid,
the syntax is tolerant of spaces before double quotes.

  aaa, "bbb,ccc", ddd
       ~ RFC: invalid character in non-escaped rule
-->
<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>

      <!-- 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="Column0_Alone" lineEndContext="#pop" attribute="Column 0">
      </context>
      <!--
      @}
      -->

      <!-- 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="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="Comma_Column1" lineEndContext="#pop#pop" attribute="Column 1">
        <DetectChar char="&Comma;" context="#pop!Comma_Column2_Start" attribute="Column 1 Separator"/>
      </context>
      <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="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="Comma_Column2" lineEndContext="#pop#pop#pop" attribute="Column 2">
        <DetectChar char="&Comma;" context="#pop!Comma_Column3_Start" attribute="Column 2 Separator"/>
      </context>
      <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="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="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="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="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="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="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="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="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="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="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="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="Column0_Quote"/>
      </context>

      <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="Column2_Quote" lineEndContext="#pop!Column2_QuoteNextLine" attribute="Column 2">
      </context>
      <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="Column2_Quote"/>
      </context>

      <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="Column4_Quote" lineEndContext="#pop!Column4_QuoteNextLine" attribute="Column 4">
      </context>
      <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="Column4_Quote"/>
      </context>

      <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="Column6_Quote" lineEndContext="#pop!Column6_QuoteNextLine" attribute="Column 6">
      </context>
      <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="Column6_Quote"/>
      </context>

      <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="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="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>
      <itemData name="Column 0" defStyleNum="dsNormal"/>
      <itemData name="Column 1" defStyleNum="dsVariable"/>
      <itemData name="Column 2" defStyleNum="dsString"/>
      <itemData name="Column 3" defStyleNum="dsBuiltIn"/>
      <itemData name="Column 4" defStyleNum="dsPreprocessor"/>
      <itemData name="Column 5" defStyleNum="dsChar"/>
      <itemData name="Column 6" defStyleNum="dsFunction"/>
      <itemData name="Column 7" defStyleNum="dsBaseN"/>
      <itemData name="Column 8" defStyleNum="dsOperator"/>
      <itemData name="Column 9" defStyleNum="dsDataType"/>

      <itemData name="Column 0 Separator" bold="1" defStyleNum="dsNormal"/>
      <itemData name="Column 1 Separator" bold="1" defStyleNum="dsVariable"/>
      <itemData name="Column 2 Separator" bold="1" defStyleNum="dsString"/>
      <itemData name="Column 3 Separator" bold="1" defStyleNum="dsBuiltIn"/>
      <itemData name="Column 4 Separator" bold="1" defStyleNum="dsPreprocessor"/>
      <itemData name="Column 5 Separator" bold="1" defStyleNum="dsChar"/>
      <itemData name="Column 6 Separator" bold="1" defStyleNum="dsFunction"/>
      <itemData name="Column 7 Separator" bold="1" defStyleNum="dsBaseN"/>
      <itemData name="Column 8 Separator" bold="1" defStyleNum="dsOperator"/>
      <itemData name="Column 9 Separator" bold="1" defStyleNum="dsDataType"/>

      <itemData name="Error" defStyleNum="dsError"/>
    </itemDatas>
  </highlighting>
</language>
<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->