skylighting-core 0.15 → 0.15.0.1
raw patch · 11 files changed
+776/−228 lines, 11 filesPVP ok
version bump matches the API change (PVP)
API changes (from Hackage documentation)
Files
- changelog.md +5/−0
- skylighting-core.cabal +1/−1
- test/expected/abc.perl.native +10/−7
- test/test-skylighting.hs +22/−17
- xml/csv.xml +566/−117
- xml/isocpp.xml +17/−7
- xml/json.xml +5/−5
- xml/perl.xml +95/−30
- xml/raku.xml +1/−1
- xml/systemverilog.xml +30/−27
- xml/verilog.xml +24/−16
changelog.md view
@@ -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,
skylighting-core.cabal view
@@ -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
test/expected/abc.perl.native view
@@ -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 , ")" )
test/test-skylighting.hs view
@@ -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
xml/csv.xml view
@@ -1,16 +1,20 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language [- <!ENTITY sep ",">+ <!ENTITY Tab "	">+ <!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=""" char1=""" context="Column0Quote"/>- <DetectChar char=""" 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='^("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="Column0Quote" lineEndContext="#pop" attribute="Column 0" fallthroughContext="#pop">- <RangeDetect char=""" char1="""/>- <DetectChar char=""" 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=""" 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=""" 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="Column1" lineEndContext="#pop!Column0" attribute="Column 1">- <DetectChar char="&sep;" context="#pop!Column2" attribute="Column 1 Separator"/>- <RangeDetect char=""" char1=""" context="Column1Quote"/>- <DetectChar char=""" 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=""" char1=""" context="Comma_Column1_QuoteContinuation"/>+ <DetectChar char=""" context="Comma_Column1_QuoteContinuation!Column1_Quote"/>+ <AnyChar String=" 	"/> </context>- <context name="Column1Quote" lineEndContext="#pop#pop!Column0" attribute="Column 1" fallthroughContext="#pop">- <RangeDetect char=""" char1="""/>- <DetectChar char=""" 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=""" 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=""" char1=""" context="Column2Quote"/>- <DetectChar char=""" 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=""" char1=""" context="Comma_Column2_QuoteContinuation"/>+ <DetectChar char=""" context="Comma_Column2_QuoteContinuation!Column2_Quote"/>+ <AnyChar String=" 	"/> </context>- <context name="Column2Quote" lineEndContext="#pop#pop!Column0" attribute="Column 2" fallthroughContext="#pop">- <RangeDetect char=""" char1="""/>- <DetectChar char=""" 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=""" 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=""" char1=""" context="Column3Quote"/>- <DetectChar char=""" 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=""" char1=""" context="Comma_Column3_QuoteContinuation"/>+ <DetectChar char=""" context="Comma_Column3_QuoteContinuation!Column3_Quote"/>+ <AnyChar String=" 	"/> </context>- <context name="Column3Quote" lineEndContext="#pop#pop!Column0" attribute="Column 3" fallthroughContext="#pop">- <RangeDetect char=""" char1="""/>- <DetectChar char=""" 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=""" 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=""" char1=""" context="Column4Quote"/>- <DetectChar char=""" 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=""" char1=""" context="Comma_Column4_QuoteContinuation"/>+ <DetectChar char=""" context="Comma_Column4_QuoteContinuation!Column4_Quote"/>+ <AnyChar String=" 	"/> </context>- <context name="Column4Quote" lineEndContext="#pop#pop!Column0" attribute="Column 4" fallthroughContext="#pop">- <RangeDetect char=""" char1="""/>- <DetectChar char=""" 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=""" 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=""" char1=""" context="Column5Quote"/>- <DetectChar char=""" 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=""" char1=""" context="Comma_Column5_QuoteContinuation"/>+ <DetectChar char=""" context="Comma_Column5_QuoteContinuation!Column5_Quote"/>+ <AnyChar String=" 	"/> </context>- <context name="Column5Quote" lineEndContext="#pop#pop!Column0" attribute="Column 5" fallthroughContext="#pop">- <RangeDetect char=""" char1="""/>- <DetectChar char=""" 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=""" 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=""" char1=""" context="Column6Quote"/>- <DetectChar char=""" 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=""" char1=""" context="Comma_Column6_QuoteContinuation"/>+ <DetectChar char=""" context="Comma_Column6_QuoteContinuation!Column6_Quote"/>+ <AnyChar String=" 	"/> </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=""" 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="#pop!Column6MultiLine"/>- <IncludeRules context="Error"/>+ <DetectChar char=""" context="Column0_Quote"/> </context>- <context name="Column6MultiLine" lineEndContext="#stay" attribute="Column 6">- <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column1_FindQuote" lineEndContext="#stay" attribute="Column 1">+ <RangeDetect char=""" char1="""/>+ <DetectChar char=""" 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=""" char1=""" context="Column7Quote"/>- <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column2_FindQuote" lineEndContext="#stay" attribute="Column 2"> <RangeDetect char=""" char1="""/>- <DetectChar char=""" context="#pop!Column7MultiLine"/>- <IncludeRules context="Error"/>+ <DetectChar char=""" context="Column2_Quote"/> </context>- <context name="Column7MultiLine" lineEndContext="#stay" attribute="Column 7">- <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column3_FindQuote" lineEndContext="#stay" attribute="Column 3">+ <RangeDetect char=""" char1="""/>+ <DetectChar char=""" 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=""" char1=""" context="Column8Quote"/>- <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column4_FindQuote" lineEndContext="#stay" attribute="Column 4"> <RangeDetect char=""" char1="""/>- <DetectChar char=""" context="#pop!Column8MultiLine"/>- <IncludeRules context="Error"/>+ <DetectChar char=""" context="Column4_Quote"/> </context>- <context name="Column8MultiLine" lineEndContext="#stay" attribute="Column 8">- <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column5_FindQuote" lineEndContext="#stay" attribute="Column 5">+ <RangeDetect char=""" char1="""/>+ <DetectChar char=""" 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=""" char1=""" context="Column9Quote"/>- <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column6_FindQuote" lineEndContext="#stay" attribute="Column 6"> <RangeDetect char=""" char1="""/>- <DetectChar char=""" context="#pop!Column9MultiLine"/>- <IncludeRules context="Error"/>+ <DetectChar char=""" context="Column6_Quote"/> </context>- <context name="Column9MultiLine" lineEndContext="#stay" attribute="Column 9">- <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column7_FindQuote" lineEndContext="#stay" attribute="Column 7">+ <RangeDetect char=""" char1="""/>+ <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column8_FindQuote" lineEndContext="#stay" attribute="Column 8">+ <RangeDetect char=""" char1="""/>+ <DetectChar char=""" 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=""" context="#pop"/>+ </context>+ <context name="Column9_FindQuote" lineEndContext="#stay" attribute="Column 9">+ <RangeDetect char=""" char1="""/>+ <DetectChar char=""" context="Column9_Quote"/>+ </context>++ <!--+ @}+ -->+ </contexts> <itemDatas>
xml/isocpp.xml view
@@ -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="<" char1=">" /> <IncludeRules context="Preprocessor" /> <DetectIdentifier/>+ </context>++ <context name="Embed" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!Preprocessor">+ <DetectSpaces/>+ <RangeDetect attribute="Prep. Lib" context="#pop!Preprocessor" char=""" char1=""" />+ <RangeDetect attribute="Prep. Lib" context="#pop!Preprocessor" char="<" char1=">" /> </context> <context name="PreprocessorIfDef" attribute="Preprocessor" lineEndContext="#pop" fallthroughContext="#pop!LineError">
xml/json.xml view
@@ -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="\\(?:["\\/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="\\(?:["\\/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="\\(?:["\\/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="\\(?:["\\/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">
xml/perl.xml view
@@ -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*//?\=?|[<>"':]//?\=?" />+ <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="=<>&|!+-*/%^~" /> </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=">" 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="<" char1=">" /> <DetectChar attribute="Operator" context="#pop#pop" char=">" 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="(?<![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*"([^"]+)"\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*;?|"([^"]+)"\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*<<\s*["']?([A-Z0-9_\-]+)["']?" beginRegion="HEREDoc" />+ <RegExpr attribute="Keyword" context="heredoc" String="=\s*<<\s*["']?([A-Z0-9_\-]+)["']?" 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="&\[];" /> <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>
xml/raku.xml view
@@ -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 -->
xml/systemverilog.xml view
@@ -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="""/>- <IncludeRules context="FindComments" />+ <IncludeRules context="FindComments"/> <AnyChar attribute="Symbol" context="#stay" String="!%&()+,-<=+/:;>?[]^{|}~@"/> <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=""" char1="""/> <RangeDetect attribute="Prep. Lib" context="#stay" char="<" char1=">"/>- <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"/>
xml/verilog.xml view
@@ -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="(?<![\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="""/>@@ -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>