<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE language [
<!ENTITY Tab "	">
<!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='^("ed;;|;|[^|"][^|;]*;)' context="Semicolon_Column0_Start"/>
<RegExpr lookAhead="1" column="0" String='^\||[^"][^|]*\|' context="Pipe_Column0"/>
<RegExpr lookAhead="1" column="0" String='^("ed;,|,|[^"][^,]*,)' 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=""" char1=""" context="Comma_Column0_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column0_QuoteContinuation!Column0_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column1_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column1_QuoteContinuation!Column1_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column2_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column2_QuoteContinuation!Column2_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column3_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column3_QuoteContinuation!Column3_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column4_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column4_QuoteContinuation!Column4_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column5_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column5_QuoteContinuation!Column5_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column6_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column6_QuoteContinuation!Column6_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column7_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column7_QuoteContinuation!Column7_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column8_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column8_QuoteContinuation!Column8_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Comma_Column9_QuoteContinuation"/>
<DetectChar char=""" context="Comma_Column9_QuoteContinuation!Column9_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column0_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column0_QuoteContinuation!Column0_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column1_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column1_QuoteContinuation!Column1_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column2_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column2_QuoteContinuation!Column2_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column3_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column3_QuoteContinuation!Column3_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column4_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column4_QuoteContinuation!Column4_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column5_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column5_QuoteContinuation!Column5_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column6_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column6_QuoteContinuation!Column6_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column7_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column7_QuoteContinuation!Column7_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column8_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column8_QuoteContinuation!Column8_Quote"/>
<AnyChar String=" 	"/>
</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=""" char1=""" context="Semicolon_Column9_QuoteContinuation"/>
<DetectChar char=""" context="Semicolon_Column9_QuoteContinuation!Column9_Quote"/>
<AnyChar String=" 	"/>
</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="	" context="Tab_Column1" attribute="Column 0 Separator"/>
</context>
<context name="Tab_Column1" lineEndContext="#pop" attribute="Column 1">
<DetectChar char="	" context="Tab_Column2" attribute="Column 1 Separator"/>
</context>
<context name="Tab_Column2" lineEndContext="#pop#pop" attribute="Column 2">
<DetectChar char="	" context="Tab_Column3" attribute="Column 2 Separator"/>
</context>
<context name="Tab_Column3" lineEndContext="#pop#pop#pop" attribute="Column 3">
<DetectChar char="	" context="Tab_Column4" attribute="Column 3 Separator"/>
</context>
<context name="Tab_Column4" lineEndContext="#pop#pop#pop#pop" attribute="Column 4">
<DetectChar char="	" context="Tab_Column5" attribute="Column 4 Separator"/>
</context>
<context name="Tab_Column5" lineEndContext="#pop#pop#pop#pop#pop" attribute="Column 5">
<DetectChar char="	" context="Tab_Column6" attribute="Column 5 Separator"/>
</context>
<context name="Tab_Column6" lineEndContext="#pop#pop#pop#pop#pop#pop" attribute="Column 6">
<DetectChar char="	" 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="	" 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="	" 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="	" 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=""" context="#pop"/>
</context>
<context name="Column0_FindQuote" lineEndContext="#stay" attribute="Column 0">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column1_FindQuote" lineEndContext="#stay" attribute="Column 1">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column2_FindQuote" lineEndContext="#stay" attribute="Column 2">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column3_FindQuote" lineEndContext="#stay" attribute="Column 3">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column4_FindQuote" lineEndContext="#stay" attribute="Column 4">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column5_FindQuote" lineEndContext="#stay" attribute="Column 5">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column6_FindQuote" lineEndContext="#stay" attribute="Column 6">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column7_FindQuote" lineEndContext="#stay" attribute="Column 7">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column8_FindQuote" lineEndContext="#stay" attribute="Column 8">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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=""" context="#pop"/>
</context>
<context name="Column9_FindQuote" lineEndContext="#stay" attribute="Column 9">
<RangeDetect char=""" char1="""/>
<DetectChar char=""" 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; -->