skylighting-core 0.10.2 → 0.10.3
raw patch · 63 files changed
+4439/−1272 lines, 63 files
Files
- changelog.md +17/−0
- skylighting-core.cabal +1/−1
- src/Skylighting/Loader.hs +1/−1
- test/expected/abc.ada.native +347/−102
- test/expected/abc.c.native +223/−68
- test/expected/abc.cpp.native +292/−91
- test/expected/abc.cs.native +303/−142
- test/expected/abc.d.native +186/−59
- test/expected/abc.go.native +179/−60
- test/expected/abc.php.native +71/−73
- test/test-skylighting.hs +4/−4
- xml/actionscript.xml +2/−2
- xml/ada.xml +2/−2
- xml/asp.xml +1/−2
- xml/awk.xml +3/−3
- xml/bash.xml +72/−40
- xml/bibtex.xml +5/−7
- xml/boo.xml +1/−2
- xml/c.xml +2/−2
- xml/cmake.xml +9/−1
- xml/cpp.xml +13/−1
- xml/cs.xml +2/−2
- xml/d.xml +2/−2
- xml/elm.xml +2/−7
- xml/email.xml +9/−2
- xml/fasm.xml +2/−3
- xml/fsharp.xml +2/−2
- xml/glsl.xml +2/−2
- xml/gnuassembler.xml +3/−3
- xml/go.xml +2/−2
- xml/haskell.xml +3/−3
- xml/haskell.xml.patch +13/−0
- xml/idris.xml +1/−3
- xml/isocpp.xml +4/−4
- xml/javascript.xml +1/−2
- xml/julia.xml +2/−2
- xml/latex.xml +1/−1
- xml/lilypond.xml +11/−11
- xml/makefile.xml +3/−3
- xml/mediawiki.xml +1/−3
- xml/metafont.xml +3/−6
- xml/mustache.xml +1/−2
- xml/objectivec.xml +2/−2
- xml/objectivecpp.xml +2/−4
- xml/octave.xml +2/−2
- xml/opencl.xml +2/−2
- xml/perl.xml +1/−2
- xml/php.xml +357/−177
- xml/php.xml.patch +10/−7
- xml/powershell.xml +2/−2
- xml/prolog.xml +2/−2
- xml/purebasic.xml +2/−2
- xml/raku.xml +1782/−0
- xml/rest.xml +2/−2
- xml/ruby.xml +3/−4
- xml/sed.xml +1/−5
- xml/spdx-comments.xml +15/−8
- xml/sql-mysql.xml +1/−2
- xml/sql-postgresql.xml +6/−6
- xml/sql.xml +1/−2
- xml/typescript.xml +3/−3
- xml/verilog.xml +2/−2
- xml/vhdl.xml +437/−308
changelog.md view
@@ -1,5 +1,22 @@ # Revision history for skylighting and skylighting-core +## 0.10.3++ * Add support for raku (#114).++ * Reimplement PR #40 and add haskell.xml.patch (#116).++ * Update syntax definitions: actionscript ada asp awk bash+ bibtex boo c cmake cpp cs d elm email fasm fsharp glsl+ gnuassembler go haskell haskell idris isocpp+ javascript julia latex lilypond makefile mediawiki metafont+ mustache objectivec objectivecpp octave opencl perl php+ php powershell prolog purebasic raku rest ruby sed+ spdx-comments sql-mysql sql-postgresql sql typescript+ verilog vhdl.++ * Fix php.xml.patch so it applies again.+ ## 0.10.2 * Update syntax definitions for abc, actionscript, asn1, ats,
skylighting-core.cabal view
@@ -1,5 +1,5 @@ name: skylighting-core-version: 0.10.2+version: 0.10.3 synopsis: syntax highlighting library description: Skylighting is a syntax highlighting library. It derives its tokenizers from XML syntax
src/Skylighting/Loader.hs view
@@ -23,7 +23,7 @@ isSyntaxFile :: FilePath -> Bool isSyntaxFile = (== syntaxFileExtension) . takeExtension --- | Loads a syntax definition from the specifed file path. The file+-- | Loads a syntax definition from the specified file path. The file -- path must refer to a file containing an XML Kate syntax definition. loadSyntaxFromFile :: FilePath -> IO (Either String Syntax) loadSyntaxFromFile path = do
test/expected/abc.ada.native view
@@ -1,8 +1,16 @@ [ [ ( KeywordTok , "with" )- , ( NormalTok , " Ada.Characters.Handling;" )+ , ( NormalTok , " Ada" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Characters" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Handling;" ) ] , [ ( KeywordTok , "use" )- , ( NormalTok , " Ada.Characters.Handling;" )+ , ( NormalTok , " Ada" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Characters" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Handling;" ) ] , [] , []@@ -16,11 +24,12 @@ , ( KeywordTok , "is" ) , ( NormalTok , " " ) , ( KeywordTok , "array" )- , ( NormalTok , "(" )+ , ( OperatorTok , "(" ) , ( DecValTok , "1" )- , ( NormalTok , ".." )+ , ( OperatorTok , ".." ) , ( DecValTok , "2" )- , ( NormalTok , ") " )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( KeywordTok , "of" ) , ( NormalTok , " " ) , ( DataTypeTok , "Character" )@@ -32,17 +41,28 @@ , ( KeywordTok , "is" ) , ( NormalTok , " " ) , ( KeywordTok , "array" )- , ( NormalTok , "(positive " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "positive " ) , ( KeywordTok , "range" )- , ( NormalTok , " <>) " )+ , ( NormalTok , " " )+ , ( OperatorTok , "<>)" )+ , ( NormalTok , " " ) , ( KeywordTok , "of" ) , ( NormalTok , " Block_Faces;" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "function" )- , ( NormalTok , " Can_Make_Word(W: " )+ , ( NormalTok , " Can_Make_Word" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "W" )+ , ( OperatorTok , ":" )+ , ( NormalTok , " " ) , ( DataTypeTok , "String" )- , ( NormalTok , "; Blocks: Block_List) " )+ , ( NormalTok , "; Blocks" )+ , ( OperatorTok , ":" )+ , ( NormalTok , " Block_List" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( DataTypeTok , "Boolean" )@@ -59,24 +79,44 @@ ] , [] , [ ( KeywordTok , "function" )- , ( NormalTok , " Can_Make_Word(W: " )+ , ( NormalTok , " Can_Make_Word" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "W" )+ , ( OperatorTok , ":" )+ , ( NormalTok , " " ) , ( DataTypeTok , "String" )- , ( NormalTok , "; Blocks: Block_List) " )+ , ( NormalTok , "; Blocks" )+ , ( OperatorTok , ":" )+ , ( NormalTok , " Block_List" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( DataTypeTok , "Boolean" ) , ( NormalTok , " " ) , ( KeywordTok , "is" ) ]-, [ ( NormalTok , " Used : " )+, [ ( NormalTok , " Used " )+ , ( OperatorTok , ":" )+ , ( NormalTok , " " ) , ( KeywordTok , "array" )- , ( NormalTok , "(Blocks'Range) " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "Blocks'Range" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( KeywordTok , "of" ) , ( NormalTok , " " ) , ( DataTypeTok , "Boolean" )- , ( NormalTok , " := (" )+ , ( NormalTok , " " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( KeywordTok , "Others" )- , ( NormalTok , " => False);" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=>" )+ , ( NormalTok , " False" )+ , ( OperatorTok , ")" )+ , ( NormalTok , ";" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "subtype" )@@ -86,13 +126,20 @@ , ( DataTypeTok , "Integer" ) , ( NormalTok , " " ) , ( KeywordTok , "range" )- , ( NormalTok , " W'First..W'Last;" )+ , ( NormalTok , " W'First" )+ , ( OperatorTok , ".." )+ , ( NormalTok , "W'Last;" ) ]-, [ ( NormalTok , " wPos : wIndex;" ) ]+, [ ( NormalTok , " wPos " )+ , ( OperatorTok , ":" )+ , ( NormalTok , " wIndex;" )+ ] , [ ( KeywordTok , "begin" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " W'Length = " )+ , ( NormalTok , " W'Length " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( DecValTok , "0" ) , ( NormalTok , " " ) , ( KeywordTok , "then" )@@ -105,20 +152,37 @@ , ( KeywordTok , "end if" ) , ( NormalTok , ";" ) ]-, [ ( NormalTok , " wPos := W'First;" ) ]+, [ ( NormalTok , " wPos " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " W'First;" )+ ] , [ ( NormalTok , " " ) , ( KeywordTok , "while" ) , ( NormalTok , " True " ) , ( KeywordTok , "loop" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "declare" ) ]-, [ ( NormalTok , " C : " )+, [ ( NormalTok , " C " )+ , ( OperatorTok , ":" )+ , ( NormalTok , " " ) , ( DataTypeTok , "Character" )- , ( NormalTok , " := To_Upper(W(wPos));" )+ , ( NormalTok , " " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " To_Upper" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "W" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "wPos" )+ , ( OperatorTok , "))" )+ , ( NormalTok , ";" ) ]-, [ ( NormalTok , " X : " )+, [ ( NormalTok , " X " )+ , ( OperatorTok , ":" )+ , ( NormalTok , " " ) , ( KeywordTok , "constant" )- , ( NormalTok , " wIndex := wPos;" )+ , ( NormalTok , " wIndex " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " wPos;" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "begin" ) ] , [ ( NormalTok , " " )@@ -130,26 +194,56 @@ ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " (" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( KeywordTok , "not" )- , ( NormalTok , " Used(I)) " )+ , ( NormalTok , " Used" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "I" )+ , ( OperatorTok , "))" )+ , ( NormalTok , " " ) , ( KeywordTok , "then" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " C = To_Upper(Blocks(I)(" )+ , ( NormalTok , " C " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " To_Upper" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "Blocks" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "I" )+ , ( OperatorTok , ")(" ) , ( DecValTok , "1" )- , ( NormalTok , ")) " )+ , ( OperatorTok , "))" )+ , ( NormalTok , " " ) , ( KeywordTok , "or" )- , ( NormalTok , " C = To_Upper(Blocks(I)(" )+ , ( NormalTok , " C " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " To_Upper" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "Blocks" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "I" )+ , ( OperatorTok , ")(" ) , ( DecValTok , "2" )- , ( NormalTok , ")) " )+ , ( OperatorTok , "))" )+ , ( NormalTok , " " ) , ( KeywordTok , "then" ) ]-, [ ( NormalTok , " Used(I) := True;" ) ]+, [ ( NormalTok , " Used" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "I" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " True;" )+ ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " wPos = W'Last " )+ , ( NormalTok , " wPos " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " W'Last " ) , ( KeywordTok , "then" ) ] , [ ( NormalTok , " " )@@ -160,9 +254,13 @@ , ( KeywordTok , "end if" ) , ( NormalTok , ";" ) ]-, [ ( NormalTok- , " wPos := wIndex'Succ(wPos);"- )+, [ ( NormalTok , " wPos " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " wIndex'Succ" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "wPos" )+ , ( OperatorTok , ")" )+ , ( NormalTok , ";" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "exit" )@@ -182,7 +280,9 @@ ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " X = wPos " )+ , ( NormalTok , " X " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " wPos " ) , ( KeywordTok , "then" ) ] , [ ( NormalTok , " " )@@ -210,143 +310,264 @@ , [ ( KeywordTok , "end" ) , ( NormalTok , " Abc;" ) ] , [] , [ ( KeywordTok , "with" )- , ( NormalTok , " Ada.Text_IO, Ada.Strings.Unbounded, Abc;" )+ , ( NormalTok , " Ada" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Text_IO" )+ , ( OperatorTok , "," )+ , ( NormalTok , " Ada" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Strings" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Unbounded" )+ , ( OperatorTok , "," )+ , ( NormalTok , " Abc;" ) ] , [ ( KeywordTok , "use" )- , ( NormalTok , " Ada.Text_IO, Ada.Strings.Unbounded, Abc;" )+ , ( NormalTok , " Ada" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Text_IO" )+ , ( OperatorTok , "," )+ , ( NormalTok , " Ada" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Strings" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Unbounded" )+ , ( OperatorTok , "," )+ , ( NormalTok , " Abc;" ) ] , [] , [ ( KeywordTok , "procedure" ) , ( NormalTok , " Abc_Problem " ) , ( KeywordTok , "is" ) ]-, [ ( NormalTok , " Blocks : Block_List := (" ) ]-, [ ( NormalTok , " (" )+, [ ( NormalTok , " Blocks " )+ , ( OperatorTok , ":" )+ , ( NormalTok , " Block_List " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ ]+, [ ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'B'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'O'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'X'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'K'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'D'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'Q'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'C'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'P'" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " , (" )+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'N'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'A'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'G'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'T'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'R'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'E'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'T'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'G'" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " , (" )+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'Q'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'D'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'F'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'S'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'J'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'W'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'H'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'U'" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " , (" )+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'V'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'I'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'A'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'N'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'O'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'B'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'E'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'R'" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " , (" )+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'F'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'S'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'L'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'Y'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'P'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'C'" )- , ( NormalTok , "), (" )+ , ( OperatorTok , ")," )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( CharTok , "'Z'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'M'" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " );" ) ] , [ ( NormalTok , " " )+ , ( OperatorTok , ")" )+ , ( NormalTok , ";" )+ ]+, [ ( NormalTok , " " ) , ( KeywordTok , "function" ) , ( NormalTok , " " ) , ( StringTok , "\"+\"" )- , ( NormalTok , " (S : " )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "S " )+ , ( OperatorTok , ":" )+ , ( NormalTok , " " ) , ( DataTypeTok , "String" )- , ( NormalTok , ") " )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " Unbounded_String " ) , ( KeywordTok , "renames" ) , ( NormalTok , " To_Unbounded_String;" ) ]-, [ ( NormalTok , " words : " )+, [ ( NormalTok , " words " )+ , ( OperatorTok , ":" )+ , ( NormalTok , " " ) , ( KeywordTok , "array" )- , ( NormalTok , "(positive " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "positive " ) , ( KeywordTok , "range" )- , ( NormalTok , " <>) " )+ , ( NormalTok , " " )+ , ( OperatorTok , "<>)" )+ , ( NormalTok , " " ) , ( KeywordTok , "of" )- , ( NormalTok , " Unbounded_String := (" )+ , ( NormalTok , " Unbounded_String " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) ]-, [ ( NormalTok , " +" ) , ( StringTok , "\"A\"" ) ]-, [ ( NormalTok , " , +" ) , ( StringTok , "\"BARK\"" ) ]-, [ ( NormalTok , " , +" ) , ( StringTok , "\"BOOK\"" ) ]-, [ ( NormalTok , " , +" ) , ( StringTok , "\"TREAT\"" ) ]-, [ ( NormalTok , " , +" ) , ( StringTok , "\"COMMON\"" ) ]-, [ ( NormalTok , " , +" ) , ( StringTok , "\"SQUAD\"" ) ]-, [ ( NormalTok , " , +" ) , ( StringTok , "\"CONFUSE\"" ) ]+, [ ( NormalTok , " " )+ , ( OperatorTok , "+" )+ , ( StringTok , "\"A\"" )+ ] , [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "+" )+ , ( StringTok , "\"BARK\"" )+ ]+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "+" )+ , ( StringTok , "\"BOOK\"" )+ ]+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "+" )+ , ( StringTok , "\"TREAT\"" )+ ]+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "+" )+ , ( StringTok , "\"COMMON\"" )+ ]+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "+" )+ , ( StringTok , "\"SQUAD\"" )+ ]+, [ ( NormalTok , " " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "+" )+ , ( StringTok , "\"CONFUSE\"" )+ ]+, [ ( NormalTok , " " ) , ( CommentTok , "-- Border cases:" ) ] , [ ( NormalTok , " " ) , ( CommentTok , "-- , +\"CONFUSE2\"" ) ] , [ ( NormalTok , " " ) , ( CommentTok , "-- , +\"\"" ) ]-, [ ( NormalTok , " );" ) ]+, [ ( NormalTok , " " )+ , ( OperatorTok , ")" )+ , ( NormalTok , ";" )+ ] , [ ( KeywordTok , "begin" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "for" )@@ -355,11 +576,35 @@ , ( NormalTok , " words'Range " ) , ( KeywordTok , "loop" ) ]-, [ ( NormalTok , " Put_Line ( To_String(words(I)) & " )+, [ ( NormalTok , " Put_Line " )+ , ( OperatorTok , "(" )+ , ( NormalTok , " To_String" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "words" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "I" )+ , ( OperatorTok , "))" )+ , ( NormalTok , " " )+ , ( OperatorTok , "&" )+ , ( NormalTok , " " ) , ( StringTok , "\": \"" )- , ( NormalTok- , " & Boolean'Image(Can_Make_Word(To_String(words(I)),Blocks)) );"- )+ , ( NormalTok , " " )+ , ( OperatorTok , "&" )+ , ( NormalTok , " Boolean'Image" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "Can_Make_Word" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "To_String" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "words" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "I" )+ , ( OperatorTok , "))," )+ , ( NormalTok , "Blocks" )+ , ( OperatorTok , "))" )+ , ( NormalTok , " " )+ , ( OperatorTok , ")" )+ , ( NormalTok , ";" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "end loop" )
test/expected/abc.c.native view
@@ -6,18 +6,36 @@ ] , [] , [ ( DataTypeTok , "int" )- , ( NormalTok , " can_make_words(" )+ , ( NormalTok , " can_make_words" )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "char" )- , ( NormalTok , " **b, " )+ , ( NormalTok , " " )+ , ( OperatorTok , "**" )+ , ( NormalTok , "b" )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( DataTypeTok , "char" )- , ( NormalTok , " *word)" )+ , ( NormalTok , " " )+ , ( OperatorTok , "*" )+ , ( NormalTok , "word" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , "{" ) ]+, [ ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( DataTypeTok , "int" )- , ( NormalTok , " i, ret = " )+ , ( NormalTok , " i" )+ , ( OperatorTok , "," )+ , ( NormalTok , " ret " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( DecValTok , "0" )- , ( NormalTok , ", c = toupper(*word);" )+ , ( OperatorTok , "," )+ , ( NormalTok , " c " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " toupper" )+ , ( OperatorTok , "(*" )+ , ( NormalTok , "word" )+ , ( OperatorTok , ");" ) ] , [] , [ ( PreprocessorTok@@ -27,171 +45,308 @@ , [] , [ ( NormalTok , " " ) , ( ControlFlowTok , "if" )- , ( NormalTok , " (!c) " )+ , ( NormalTok , " " )+ , ( OperatorTok , "(!" )+ , ( NormalTok , "c" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( ControlFlowTok , "return" ) , ( NormalTok , " " ) , ( DecValTok , "1" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "if" )- , ( NormalTok , " (!b[" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(!" )+ , ( NormalTok , "b" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "]) " )+ , ( OperatorTok , "])" )+ , ( NormalTok , " " ) , ( ControlFlowTok , "return" ) , ( NormalTok , " " ) , ( DecValTok , "0" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [] , [ ( NormalTok , " " ) , ( ControlFlowTok , "for" )- , ( NormalTok , " (i = " )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "i " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( DecValTok , "0" )- , ( NormalTok , "; b[i] && !ret; i++) {" )+ , ( OperatorTok , ";" )+ , ( NormalTok , " b" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "&&" )+ , ( NormalTok , " " )+ , ( OperatorTok , "!" )+ , ( NormalTok , "ret" )+ , ( OperatorTok , ";" )+ , ( NormalTok , " i" )+ , ( OperatorTok , "++)" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "if" )- , ( NormalTok , " (b[i][" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "b" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "][" ) , ( DecValTok , "0" )- , ( NormalTok , "] != c && b[i][" )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "!=" )+ , ( NormalTok , " c " )+ , ( OperatorTok , "&&" )+ , ( NormalTok , " b" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "][" ) , ( DecValTok , "1" )- , ( NormalTok , "] != c) " )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "!=" )+ , ( NormalTok , " c" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( ControlFlowTok , "continue" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " SWAP(b[i], b[" )+, [ ( NormalTok , " SWAP" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "b" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "]," )+ , ( NormalTok , " b" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "]);" )+ , ( OperatorTok , "]);" ) ]-, [ ( NormalTok , " ret = can_make_words(b + " )+, [ ( NormalTok , " ret " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " can_make_words" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "b " )+ , ( OperatorTok , "+" )+ , ( NormalTok , " " ) , ( DecValTok , "1" )- , ( NormalTok , ", word + " )+ , ( OperatorTok , "," )+ , ( NormalTok , " word " )+ , ( OperatorTok , "+" )+ , ( NormalTok , " " ) , ( DecValTok , "1" )- , ( NormalTok , ");" )+ , ( OperatorTok , ");" ) ]-, [ ( NormalTok , " SWAP(b[i], b[" )+, [ ( NormalTok , " SWAP" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "b" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "]," )+ , ( NormalTok , " b" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "]);" )+ , ( OperatorTok , "]);" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( ControlFlowTok , "return" )- , ( NormalTok , " ret;" )+ , ( NormalTok , " ret" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] , [] , [ ( DataTypeTok , "int" )- , ( NormalTok , " main(" )+ , ( NormalTok , " main" )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "void" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , "{" ) ]+, [ ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( DataTypeTok , "char" )- , ( NormalTok , "* blocks[] = {" )+ , ( OperatorTok , "*" )+ , ( NormalTok , " blocks" )+ , ( OperatorTok , "[]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"BO\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"XK\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"DQ\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"CP\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"NA\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"GT\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"RE\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"TG\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"QD\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"FS\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"JW\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"HU\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"VI\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"AN\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"OB\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"ER\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"FS\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"LY\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"PC\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"ZM\"" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) ] , [ ( NormalTok , " " ) , ( DecValTok , "0" )- , ( NormalTok , " };" )+ , ( NormalTok , " " )+ , ( OperatorTok , "};" ) ] , [] , [ ( NormalTok , " " ) , ( DataTypeTok , "char" )- , ( NormalTok , " *words[] = {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "*" )+ , ( NormalTok , "words" )+ , ( OperatorTok , "[]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"A\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"BARK\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"BOOK\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"TREAT\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"COMMON\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"SQUAD\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"Confuse\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( DecValTok , "0" ) ]-, [ ( NormalTok , " };" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "};" ) ] , [] , [ ( NormalTok , " " ) , ( DataTypeTok , "char" )- , ( NormalTok , " **w;" )+ , ( NormalTok , " " )+ , ( OperatorTok , "**" )+ , ( NormalTok , "w" )+ , ( OperatorTok , ";" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "for" )- , ( NormalTok , " (w = words; *w; w++)" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "w " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " words" )+ , ( OperatorTok , ";" )+ , ( NormalTok , " " )+ , ( OperatorTok , "*" )+ , ( NormalTok , "w" )+ , ( OperatorTok , ";" )+ , ( NormalTok , " w" )+ , ( OperatorTok , "++)" ) ]-, [ ( NormalTok , " printf(" )+, [ ( NormalTok , " printf" )+ , ( OperatorTok , "(" ) , ( StringTok , "\"%s" ) , ( SpecialCharTok , "\\t" ) , ( StringTok , "%d" ) , ( SpecialCharTok , "\\n" ) , ( StringTok , "\"" )- , ( NormalTok , ", *w, can_make_words(blocks, *w));" )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "*" )+ , ( NormalTok , "w" )+ , ( OperatorTok , "," )+ , ( NormalTok , " can_make_words" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "blocks" )+ , ( OperatorTok , "," )+ , ( NormalTok , " " )+ , ( OperatorTok , "*" )+ , ( NormalTok , "w" )+ , ( OperatorTok , "));" ) ] , [] , [ ( NormalTok , " " ) , ( ControlFlowTok , "return" ) , ( NormalTok , " " ) , ( DecValTok , "0" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] ]
test/expected/abc.cpp.native view
@@ -16,221 +16,422 @@ , [ ( KeywordTok , "typedef" ) , ( NormalTok , " " ) , ( BuiltInTok , "std::" )- , ( NormalTok , "pair<" )+ , ( NormalTok , "pair" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "char" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( DataTypeTok , "char" )- , ( NormalTok , "> " )+ , ( OperatorTok , ">" )+ , ( NormalTok , " " ) , ( DataTypeTok , "item_t" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [ ( KeywordTok , "typedef" ) , ( NormalTok , " " ) , ( BuiltInTok , "std::" )- , ( NormalTok , "vector<" )+ , ( NormalTok , "vector" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "item_t" )- , ( NormalTok , "> " )+ , ( OperatorTok , ">" )+ , ( NormalTok , " " ) , ( DataTypeTok , "list_t" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [] , [ ( DataTypeTok , "bool" )- , ( NormalTok , " can_make_word(" )+ , ( NormalTok , " can_make_word" )+ , ( OperatorTok , "(" ) , ( AttributeTok , "const" ) , ( NormalTok , " " ) , ( BuiltInTok , "std::" )- , ( NormalTok , "string& w, " )+ , ( NormalTok , "string" )+ , ( OperatorTok , "&" )+ , ( NormalTok , " w" )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( AttributeTok , "const" ) , ( NormalTok , " " ) , ( DataTypeTok , "list_t" )- , ( NormalTok , "& vals) {" )+ , ( OperatorTok , "&" )+ , ( NormalTok , " vals" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( BuiltInTok , "std::" )- , ( NormalTok , "set<" )+ , ( NormalTok , "set" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "uint32_t" )- , ( NormalTok , "> used;" )+ , ( OperatorTok , ">" )+ , ( NormalTok , " used" )+ , ( OperatorTok , ";" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "while" )- , ( NormalTok , " (used.size() < w.size()) {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "used" )+ , ( OperatorTok , "." )+ , ( NormalTok , "size" )+ , ( OperatorTok , "()" )+ , ( NormalTok , " " )+ , ( OperatorTok , "<" )+ , ( NormalTok , " w" )+ , ( OperatorTok , "." )+ , ( NormalTok , "size" )+ , ( OperatorTok , "())" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( AttributeTok , "const" ) , ( NormalTok , " " ) , ( DataTypeTok , "char" )- , ( NormalTok , " c = toupper(w[used.size()]);" )+ , ( NormalTok , " c " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " toupper" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "w" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "used" )+ , ( OperatorTok , "." )+ , ( NormalTok , "size" )+ , ( OperatorTok , "()]);" ) ] , [ ( NormalTok , " " ) , ( DataTypeTok , "uint32_t" )- , ( NormalTok , " x = used.size();" )+ , ( NormalTok , " x " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " used" )+ , ( OperatorTok , "." )+ , ( NormalTok , "size" )+ , ( OperatorTok , "();" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "for" )- , ( NormalTok , " (" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "uint32_t" )- , ( NormalTok , " i = " )+ , ( NormalTok , " i " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( DecValTok , "0" )- , ( NormalTok , ", ii = vals.size(); i < ii; ++i) {" )+ , ( OperatorTok , "," )+ , ( NormalTok , " ii " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " vals" )+ , ( OperatorTok , "." )+ , ( NormalTok , "size" )+ , ( OperatorTok , "();" )+ , ( NormalTok , " i " )+ , ( OperatorTok , "<" )+ , ( NormalTok , " ii" )+ , ( OperatorTok , ";" )+ , ( NormalTok , " " )+ , ( OperatorTok , "++" )+ , ( NormalTok , "i" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "if" )- , ( NormalTok , " (used.find(i) == used.end()) {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "used" )+ , ( OperatorTok , "." )+ , ( NormalTok , "find" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "i" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " used" )+ , ( OperatorTok , "." )+ , ( NormalTok , "end" )+ , ( OperatorTok , "())" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "if" )- , ( NormalTok- , " (toupper(vals[i].first) == c || toupper(vals[i].second) == c) {"- )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "toupper" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "vals" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "]." )+ , ( NormalTok , "first" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " c " )+ , ( OperatorTok , "||" )+ , ( NormalTok , " toupper" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "vals" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "]." )+ , ( NormalTok , "second" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " c" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ]-, [ ( NormalTok , " used.insert(i);" ) ]+, [ ( NormalTok , " used" )+ , ( OperatorTok , "." )+ , ( NormalTok , "insert" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "i" )+ , ( OperatorTok , ");" )+ ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "break" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "if" )- , ( NormalTok , " (x == used.size()) " )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "x " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " used" )+ , ( OperatorTok , "." )+ , ( NormalTok , "size" )+ , ( OperatorTok , "())" )+ , ( NormalTok , " " ) , ( ControlFlowTok , "break" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "return" )- , ( NormalTok , " used.size() == w.size();" )+ , ( NormalTok , " used" )+ , ( OperatorTok , "." )+ , ( NormalTok , "size" )+ , ( OperatorTok , "()" )+ , ( NormalTok , " " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " w" )+ , ( OperatorTok , "." )+ , ( NormalTok , "size" )+ , ( OperatorTok , "();" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] , [] , []-, [ ( DataTypeTok , "int" ) , ( NormalTok , " main() {" ) ]+, [ ( DataTypeTok , "int" )+ , ( NormalTok , " main" )+ , ( OperatorTok , "()" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" )+ ] , [ ( NormalTok , " " ) , ( DataTypeTok , "list_t" )- , ( NormalTok , " vals{ {" )+ , ( NormalTok , " vals" )+ , ( OperatorTok , "{" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'B'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'O'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'X'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'K'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'D'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'Q'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'C'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'P'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'N'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'A'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'G'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'T'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'R'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'E'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'T'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'G'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'Q'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'D'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'F'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'S'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'J'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'W'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'H'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'U'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'V'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'I'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'A'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'N'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'O'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'B'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'E'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'R'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'F'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'S'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'L'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'Y'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'P'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'C'" )- , ( NormalTok , "}, {" )+ , ( OperatorTok , "}," )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) , ( CharTok , "'Z'" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( CharTok , "'M'" )- , ( NormalTok , "} };" )+ , ( OperatorTok , "}" )+ , ( NormalTok , " " )+ , ( OperatorTok , "};" ) ] , [ ( NormalTok , " " ) , ( BuiltInTok , "std::" )- , ( NormalTok , "vector<" )+ , ( NormalTok , "vector" )+ , ( OperatorTok , "<" ) , ( BuiltInTok , "std::" )- , ( NormalTok , "string> words{" )+ , ( NormalTok , "string" )+ , ( OperatorTok , ">" )+ , ( NormalTok , " words" )+ , ( OperatorTok , "{" ) , ( StringTok , "\"A\"" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( StringTok , "\"BARK\"" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( StringTok , "\"BOOK\"" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( StringTok , "\"TREAT\"" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( StringTok , "\"COMMON\"" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( StringTok , "\"SQUAD\"" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) , ( StringTok , "\"CONFUSE\"" )- , ( NormalTok , "};" )+ , ( OperatorTok , "};" ) ] , [ ( NormalTok , " " ) , ( ControlFlowTok , "for" )- , ( NormalTok , " (" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( AttributeTok , "const" ) , ( NormalTok , " " ) , ( BuiltInTok , "std::" )- , ( NormalTok , "string& w : words) {" )+ , ( NormalTok , "string" )+ , ( OperatorTok , "&" )+ , ( NormalTok , " w " )+ , ( OperatorTok , ":" )+ , ( NormalTok , " words" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( BuiltInTok , "std::" )- , ( NormalTok , "cout << w << " )+ , ( NormalTok , "cout" )+ , ( OperatorTok , " <<" )+ , ( NormalTok , " w " )+ , ( OperatorTok , "<<" )+ , ( NormalTok , " " ) , ( StringTok , "\": \"" )- , ( NormalTok , " << " )+ , ( NormalTok , " " )+ , ( OperatorTok , "<<" )+ , ( NormalTok , " " ) , ( BuiltInTok , "std::" )- , ( NormalTok , "boolalpha << can_make_word(w,vals) << " )+ , ( NormalTok , "boolalpha" )+ , ( OperatorTok , " <<" )+ , ( NormalTok , " can_make_word" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "w" )+ , ( OperatorTok , "," )+ , ( NormalTok , "vals" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "<<" )+ , ( NormalTok , " " ) , ( StringTok , "\"." ) , ( SpecialCharTok , "\\n" ) , ( StringTok , "\"" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , []-, [ ( NormalTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] ]
test/expected/abc.cs.native view
@@ -1,158 +1,227 @@ [ [ ( KeywordTok , "using" )- , ( NormalTok , " System." )+ , ( NormalTok , " System" )+ , ( OperatorTok , "." ) , ( FunctionTok , "Collections" )- , ( NormalTok , "." )+ , ( OperatorTok , "." ) , ( FunctionTok , "Generic" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [ ( KeywordTok , "using" )- , ( NormalTok , " System." )+ , ( NormalTok , " System" )+ , ( OperatorTok , "." ) , ( FunctionTok , "Linq" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [] , [ ( DataTypeTok , "void" ) , ( NormalTok , " " ) , ( FunctionTok , "Main" )- , ( NormalTok , "()" )+ , ( OperatorTok , "()" ) ]-, [ ( NormalTok , "{" ) ]-, [ ( NormalTok , " List<" )+, [ ( OperatorTok , "{" ) ]+, [ ( NormalTok , " List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "string" )- , ( NormalTok , "> blocks =" )+ , ( OperatorTok , ">" )+ , ( NormalTok , " blocks " )+ , ( OperatorTok , "=" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "new" )- , ( NormalTok , " List<" )+ , ( NormalTok , " List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "string" )- , ( NormalTok , ">() { " )+ , ( OperatorTok , ">()" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" )+ , ( NormalTok , " " ) , ( StringTok , "\"bo\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"xk\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"dq\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"cp\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"na\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"gt\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"re\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"tg\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"qd\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"fs\"" )- , ( NormalTok , "," )+ , ( OperatorTok , "," ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"jw\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"hu\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"vi\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"an\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"ob\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"er\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"fs\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"ly\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"pc\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"zm\"" )- , ( NormalTok , " };" )+ , ( NormalTok , " " )+ , ( OperatorTok , "};" ) ]-, [ ( NormalTok , " List<" )+, [ ( NormalTok , " List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "string" )- , ( NormalTok , "> words = " )+ , ( OperatorTok , ">" )+ , ( NormalTok , " words " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( KeywordTok , "new" )- , ( NormalTok , " List<" )+ , ( NormalTok , " List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "string" )- , ( NormalTok , ">() {" )+ , ( OperatorTok , ">()" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"A\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"BARK\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"BOOK\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"TREAT\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"COMMON\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"SQUAD\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"CONFUSE\"" )- , ( NormalTok , "};" )+ , ( OperatorTok , "};" ) ] , [ ( NormalTok , " " ) ] , [ ( NormalTok , " " ) , ( DataTypeTok , "var" )- , ( NormalTok , " solver = " )+ , ( NormalTok , " solver " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( KeywordTok , "new" ) , ( NormalTok , " " ) , ( FunctionTok , "ABC" )- , ( NormalTok , "(blocks);" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "blocks" )+ , ( OperatorTok , ");" ) ] , [ ( NormalTok , " " ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "foreach" )- , ( NormalTok , "( " )+ , ( OperatorTok , "(" )+ , ( NormalTok , " " ) , ( DataTypeTok , "var" ) , ( NormalTok , " word " ) , ( KeywordTok , "in" )- , ( NormalTok , " words)" )+ , ( NormalTok , " words" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]-, [ ( NormalTok , " Console." )+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ]+, [ ( NormalTok , " Console" )+ , ( OperatorTok , "." ) , ( FunctionTok , "WriteLine" )- , ( NormalTok , "(" )+ , ( OperatorTok , "(" ) , ( StringTok , "\"{0} :{1}\"" )- , ( NormalTok , ", word, solver." )+ , ( OperatorTok , "," )+ , ( NormalTok , " word" )+ , ( OperatorTok , "," )+ , ( NormalTok , " solver" )+ , ( OperatorTok , "." ) , ( FunctionTok , "CanMake" )- , ( NormalTok , "(word));" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "));" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] , [] , [ ( KeywordTok , "class" ) , ( NormalTok , " ABC" ) ]-, [ ( NormalTok , "{" ) ]+, [ ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "readonly" )- , ( NormalTok , " Dictionary<" )+ , ( NormalTok , " Dictionary" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "char" )- , ( NormalTok , ", List<" )+ , ( OperatorTok , "," )+ , ( NormalTok , " List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "int" )- , ( NormalTok , ">> _blockDict = " )+ , ( OperatorTok , ">>" )+ , ( NormalTok , " _blockDict " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( KeywordTok , "new" )- , ( NormalTok , " Dictionary<" )+ , ( NormalTok , " Dictionary" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "char" )- , ( NormalTok , ", List<" )+ , ( OperatorTok , "," )+ , ( NormalTok , " List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "int" )- , ( NormalTok , ">>();" )+ , ( OperatorTok , ">>();" ) ] , [ ( NormalTok , " " ) , ( DataTypeTok , "bool" )- , ( NormalTok , "[] _used;" )+ , ( OperatorTok , "[]" )+ , ( NormalTok , " _used" )+ , ( OperatorTok , ";" ) ] , [ ( NormalTok , " " ) , ( DataTypeTok , "int" )- , ( NormalTok , " _nextBlock;" )+ , ( NormalTok , " _nextBlock" )+ , ( OperatorTok , ";" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "readonly" )- , ( NormalTok , " List<" )+ , ( NormalTok , " List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "string" )- , ( NormalTok , "> _blocks;" )+ , ( OperatorTok , ">" )+ , ( NormalTok , " _blocks" )+ , ( OperatorTok , ";" ) ] , [] , [ ( NormalTok , " " )@@ -161,30 +230,48 @@ , ( DataTypeTok , "void" ) , ( NormalTok , " " ) , ( FunctionTok , "AddBlockChar" )- , ( NormalTok , "(" )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "char" )- , ( NormalTok , " c)" )+ , ( NormalTok , " c" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " (!_blockDict." )+ , ( NormalTok , " " )+ , ( OperatorTok , "(!" )+ , ( NormalTok , "_blockDict" )+ , ( OperatorTok , "." ) , ( FunctionTok , "ContainsKey" )- , ( NormalTok , "(c))" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "c" )+ , ( OperatorTok , "))" ) ]-, [ ( NormalTok , " {" ) ]-, [ ( NormalTok , " _blockDict[c] = " )+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ]+, [ ( NormalTok , " _blockDict" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "c" )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( KeywordTok , "new" )- , ( NormalTok , " List<" )+ , ( NormalTok , " List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "int" )- , ( NormalTok , ">();" )+ , ( OperatorTok , ">();" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " _blockDict[c]." )+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( NormalTok , " _blockDict" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "c" )+ , ( OperatorTok , "]." ) , ( FunctionTok , "Add" )- , ( NormalTok , "(_nextBlock);" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "_nextBlock" )+ , ( OperatorTok , ");" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "private" )@@ -192,51 +279,70 @@ , ( DataTypeTok , "void" ) , ( NormalTok , " " ) , ( FunctionTok , "AddBlock" )- , ( NormalTok , "(" )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "string" )- , ( NormalTok , " block)" )+ , ( NormalTok , " block" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "AddBlockChar" )- , ( NormalTok , "(block[" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "block" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "]);" )+ , ( OperatorTok , "]);" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "AddBlockChar" )- , ( NormalTok , "(block[" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "block" )+ , ( OperatorTok , "[" ) , ( DecValTok , "1" )- , ( NormalTok , "]);" )+ , ( OperatorTok , "]);" ) ]-, [ ( NormalTok , " _nextBlock++;" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " _nextBlock" )+ , ( OperatorTok , "++;" )+ ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "public" ) , ( NormalTok , " " ) , ( FunctionTok , "ABC" )- , ( NormalTok , "(List<" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "List" )+ , ( OperatorTok , "<" ) , ( DataTypeTok , "string" )- , ( NormalTok , "> blocks)" )+ , ( OperatorTok , ">" )+ , ( NormalTok , " blocks" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]-, [ ( NormalTok , " _blocks = blocks;" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ]+, [ ( NormalTok , " _blocks " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " blocks" )+ , ( OperatorTok , ";" )+ ] , [ ( NormalTok , " " ) , ( KeywordTok , "foreach" )- , ( NormalTok , " (" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "var" ) , ( NormalTok , " block " ) , ( KeywordTok , "in" )- , ( NormalTok , " blocks)" )+ , ( NormalTok , " blocks" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "AddBlock" )- , ( NormalTok , "(block);" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "block" )+ , ( OperatorTok , ");" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "public" )@@ -244,46 +350,62 @@ , ( DataTypeTok , "bool" ) , ( NormalTok , " " ) , ( FunctionTok , "CanMake" )- , ( NormalTok , "(" )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "string" )- , ( NormalTok , " word)" )+ , ( NormalTok , " word" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]-, [ ( NormalTok , " word = word." )+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ]+, [ ( NormalTok , " word " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " word" )+ , ( OperatorTok , "." ) , ( FunctionTok , "ToLower" )- , ( NormalTok , "();" )+ , ( OperatorTok , "();" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " (word." )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "." ) , ( FunctionTok , "Length" )- , ( NormalTok , " > _blockDict." )+ , ( NormalTok , " " )+ , ( OperatorTok , ">" )+ , ( NormalTok , " _blockDict" )+ , ( OperatorTok , "." ) , ( FunctionTok , "Count" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( KeywordTok , "false" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " _used = " )+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( NormalTok , " _used " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( KeywordTok , "new" ) , ( NormalTok , " " ) , ( DataTypeTok , "bool" )- , ( NormalTok , "[_blocks." )+ , ( OperatorTok , "[" )+ , ( NormalTok , "_blocks" )+ , ( OperatorTok , "." ) , ( FunctionTok , "Count" )- , ( NormalTok , "];" )+ , ( OperatorTok , "];" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( FunctionTok , "TryMake" )- , ( NormalTok , "(word);" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , ");" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "public" )@@ -291,78 +413,117 @@ , ( DataTypeTok , "bool" ) , ( NormalTok , " " ) , ( FunctionTok , "TryMake" )- , ( NormalTok , "(" )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "string" )- , ( NormalTok , " word)" )+ , ( NormalTok , " word" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " (word == " )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " " ) , ( DataTypeTok , "string" )- , ( NormalTok , "." )+ , ( OperatorTok , "." ) , ( FunctionTok , "Empty" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( KeywordTok , "true" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [ ( NormalTok , " " ) , ( DataTypeTok , "var" )- , ( NormalTok , " blocks = _blockDict[word[" )+ , ( NormalTok , " blocks " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " _blockDict" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "]]." )+ , ( OperatorTok , "]]." ) , ( FunctionTok , "Where" )- , ( NormalTok , "(b => !_used[b]);" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "b " )+ , ( OperatorTok , "=>" )+ , ( NormalTok , " " )+ , ( OperatorTok , "!" )+ , ( NormalTok , "_used" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "b" )+ , ( OperatorTok , "]);" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "foreach" )- , ( NormalTok , " (" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "var" ) , ( NormalTok , " block " ) , ( KeywordTok , "in" )- , ( NormalTok , " blocks)" )+ , ( NormalTok , " blocks" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " {" ) ]-, [ ( NormalTok , " _used[block] = " )+, [ ( NormalTok , " " ) , ( OperatorTok , "{" ) ]+, [ ( NormalTok , " _used" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "block" )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( KeywordTok , "true" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " (" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( FunctionTok , "TryMake" )- , ( NormalTok , "(word." )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "." ) , ( FunctionTok , "Substring" )- , ( NormalTok , "(" )+ , ( OperatorTok , "(" ) , ( DecValTok , "1" )- , ( NormalTok , ")))" )+ , ( OperatorTok , ")))" ) ]-, [ ( NormalTok , " {" ) ]+, [ ( NormalTok , " " )+ , ( OperatorTok , "{" )+ ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( KeywordTok , "true" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " _used[block] = " )+, [ ( NormalTok , " " )+ , ( OperatorTok , "}" )+ ]+, [ ( NormalTok , " _used" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "block" )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( KeywordTok , "false" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( KeywordTok , "false" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] , [] ]
test/expected/abc.d.native view
@@ -2,180 +2,307 @@ , ( ImportTok , " std.stdio, std.ascii, std.algorithm, std.array, std.range" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [] , [ ( WarningTok , "alias" )- , ( NormalTok , " Block = " )+ , ( NormalTok , " Block " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( DataTypeTok , "char" )- , ( NormalTok , "[" )+ , ( OperatorTok , "[" ) , ( DecValTok , "2" )- , ( NormalTok , "];" )+ , ( OperatorTok , "];" ) ] , [] , [ ( DataTypeTok , "bool" )- , ( NormalTok , " canMakeWord(" )+ , ( NormalTok , " canMakeWord" )+ , ( OperatorTok , "(" ) , ( FunctionTok , "immutable" )- , ( NormalTok , " Block[] blocks, " )+ , ( NormalTok , " Block" )+ , ( OperatorTok , "[]" )+ , ( NormalTok , " blocks" )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( AttributeTok , "in" ) , ( NormalTok , " " ) , ( BuiltInTok , "string" )- , ( NormalTok , " word) " )+ , ( NormalTok , " word" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( FunctionTok , "pure" ) , ( NormalTok , " " ) , ( FunctionTok , "nothrow" ) ]-, [ ( KeywordTok , "in " ) , ( NormalTok , "{" ) ]+, [ ( KeywordTok , "in " ) , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( AttributeTok , "assert" )- , ( NormalTok , "(blocks.all!(w => w[].all!isAlpha));" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "blocks.all" )+ , ( OperatorTok , "!(" )+ , ( NormalTok , "w " )+ , ( OperatorTok , "=>" )+ , ( NormalTok , " w" )+ , ( OperatorTok , "[]" )+ , ( NormalTok , ".all" )+ , ( OperatorTok , "!" )+ , ( NormalTok , "isAlpha" )+ , ( OperatorTok , "));" ) ] , [ ( NormalTok , " " ) , ( AttributeTok , "assert" )- , ( NormalTok , "(word.all!isAlpha);" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word.all" )+ , ( OperatorTok , "!" )+ , ( NormalTok , "isAlpha" )+ , ( OperatorTok , ");" ) ]-, [ ( NormalTok , "} " )+, [ ( OperatorTok , "}" )+ , ( NormalTok , " " ) , ( KeywordTok , "body" )- , ( NormalTok , " {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( DataTypeTok , "bool" )- , ( NormalTok , " inner(" )+ , ( NormalTok , " inner" )+ , ( OperatorTok , "(" ) , ( BuiltInTok , "size_t" )- , ( NormalTok , "[] indexes, " )+ , ( OperatorTok , "[]" )+ , ( NormalTok , " indexes" )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( AttributeTok , "in" ) , ( NormalTok , " " ) , ( BuiltInTok , "string" )- , ( NormalTok , " w) " )+ , ( NormalTok , " w" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( FunctionTok , "pure" ) , ( NormalTok , " " ) , ( FunctionTok , "nothrow" )- , ( NormalTok , " {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " (w.empty)" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "w.empty" )+ , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( AttributeTok , "true" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ] , [] , [ ( NormalTok , " " ) , ( FunctionTok , "immutable" )- , ( NormalTok , " c = w[" )+ , ( NormalTok , " c " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " w" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "].toUpper;" )+ , ( OperatorTok , "]" )+ , ( NormalTok , ".toUpper" )+ , ( OperatorTok , ";" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "foreach" )- , ( NormalTok , " (" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" ) , ( FunctionTok , "ref" )- , ( NormalTok , " idx; indexes) {" )+ , ( NormalTok , " idx" )+ , ( OperatorTok , ";" )+ , ( NormalTok , " indexes" )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " (blocks[idx][" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "blocks" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "idx" )+ , ( OperatorTok , "][" ) , ( DecValTok , "0" )- , ( NormalTok , "].toUpper != c &&" )+ , ( OperatorTok , "]" )+ , ( NormalTok , ".toUpper " )+ , ( OperatorTok , "!=" )+ , ( NormalTok , " c " )+ , ( OperatorTok , "&&" ) ]-, [ ( NormalTok , " blocks[idx][" )+, [ ( NormalTok , " blocks" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "idx" )+ , ( OperatorTok , "][" ) , ( DecValTok , "1" )- , ( NormalTok , "].toUpper != c)" )+ , ( OperatorTok , "]" )+ , ( NormalTok , ".toUpper " )+ , ( OperatorTok , "!=" )+ , ( NormalTok , " c" )+ , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "continue" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " indexes[" )+, [ ( NormalTok , " indexes" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "].swap(idx);" )+ , ( OperatorTok , "]" )+ , ( NormalTok , ".swap" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "idx" )+ , ( OperatorTok , ");" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " (inner(indexes[" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "inner" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "indexes" )+ , ( OperatorTok , "[" ) , ( DecValTok , "1" )- , ( NormalTok , " .. $], w[" )+ , ( NormalTok , " .. $" )+ , ( OperatorTok , "]," )+ , ( NormalTok , " w" )+ , ( OperatorTok , "[" ) , ( DecValTok , "1" )- , ( NormalTok , " .. $]))" )+ , ( NormalTok , " .. $" )+ , ( OperatorTok , "]))" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( AttributeTok , "true" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " indexes[" )+, [ ( NormalTok , " indexes" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "].swap(idx);" )+ , ( OperatorTok , "]" )+ , ( NormalTok , ".swap" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "idx" )+ , ( OperatorTok , ");" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( AttributeTok , "false" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "return" )- , ( NormalTok , " inner(blocks." )+ , ( NormalTok , " inner" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "blocks." ) , ( DataTypeTok , "length" )- , ( NormalTok , ".iota.array, word);" )+ , ( NormalTok , ".iota.array" )+ , ( OperatorTok , "," )+ , ( NormalTok , " word" )+ , ( OperatorTok , ");" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] , []-, [ ( DataTypeTok , "void" ) , ( NormalTok , " main() {" ) ]+, [ ( DataTypeTok , "void" )+ , ( NormalTok , " main" )+ , ( OperatorTok , "()" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" )+ ] , [ ( NormalTok , " " ) , ( WarningTok , "enum" )- , ( NormalTok , " Block[] blocks = " )+ , ( NormalTok , " Block" )+ , ( OperatorTok , "[]" )+ , ( NormalTok , " blocks " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( StringTok , "\"BO XK DQ CP NA GT RE TG QD FS" ) ] , [ ( StringTok , " JW HU VI AN OB ER FS LY PC ZM\"" )- , ( NormalTok , ".split;" )+ , ( NormalTok , ".split" )+ , ( OperatorTok , ";" ) ] , [] , [ ( NormalTok , " " ) , ( KeywordTok , "foreach" )- , ( NormalTok , " (w; " )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "w" )+ , ( OperatorTok , ";" )+ , ( NormalTok , " " ) , ( StringTok , "\"\"" )- , ( NormalTok , " ~ " )+ , ( NormalTok , " " )+ , ( OperatorTok , "~" )+ , ( NormalTok , " " ) , ( StringTok , "\"A BARK BoOK TrEAT COmMoN SQUAD conFUsE\"" )- , ( NormalTok , ".split)" )+ , ( NormalTok , ".split" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " writefln(" )+, [ ( NormalTok , " writefln" )+ , ( OperatorTok , "(" ) , ( SpecialStringTok , "`\"%s\" %s`" )- , ( NormalTok , ", w, blocks.canMakeWord(w));" )+ , ( OperatorTok , "," )+ , ( NormalTok , " w" )+ , ( OperatorTok , "," )+ , ( NormalTok , " blocks.canMakeWord" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "w" )+ , ( OperatorTok , "));" ) ] , [] , [ ( NormalTok , " " ) , ( CommentTok , "// Extra test." ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "immutable" )- , ( NormalTok , " Block[] blocks2 = [" )+ , ( NormalTok , " Block" )+ , ( OperatorTok , "[]" )+ , ( NormalTok , " blocks2 " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " )+ , ( OperatorTok , "[" ) , ( StringTok , "\"AB\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"AB\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"AC\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"AC\"" )- , ( NormalTok , "];" )+ , ( OperatorTok , "];" ) ] , [ ( NormalTok , " " ) , ( FunctionTok , "immutable" )- , ( NormalTok , " word = " )+ , ( NormalTok , " word " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( StringTok , "\"abba\"" )- , ( NormalTok , ";" )+ , ( OperatorTok , ";" ) ]-, [ ( NormalTok , " writefln(" )+, [ ( NormalTok , " writefln" )+ , ( OperatorTok , "(" ) , ( SpecialStringTok , "`\"%s\" %s`" )- , ( NormalTok , ", word, blocks2.canMakeWord(word));" )+ , ( OperatorTok , "," )+ , ( NormalTok , " word" )+ , ( OperatorTok , "," )+ , ( NormalTok , " blocks2.canMakeWord" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "));" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] ]
test/expected/abc.go.native view
@@ -1,153 +1,272 @@ [ [ ( KeywordTok , "package" ) , ( NormalTok , " main" ) ] , []-, [ ( KeywordTok , "import" ) , ( NormalTok , " (" ) ]+, [ ( KeywordTok , "import" )+ , ( NormalTok , " " )+ , ( OperatorTok , "(" )+ ] , [ ( NormalTok , " " ) , ( StringTok , "\"fmt\"" ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"strings\"" ) ]-, [ ( NormalTok , ")" ) ]+, [ ( OperatorTok , ")" ) ] , [] , [ ( KeywordTok , "func" )- , ( NormalTok , " newSpeller(blocks " )+ , ( NormalTok , " newSpeller" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "blocks " ) , ( DataTypeTok , "string" )- , ( NormalTok , ") " )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( KeywordTok , "func" )- , ( NormalTok , "(" )+ , ( OperatorTok , "(" ) , ( DataTypeTok , "string" )- , ( NormalTok , ") " )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( DataTypeTok , "bool" )- , ( NormalTok , " {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ]-, [ ( NormalTok , " bl := strings.Fields(blocks)" ) ]+, [ ( NormalTok , " bl " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " strings" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Fields" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "blocks" )+ , ( OperatorTok , ")" )+ ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( KeywordTok , "func" )- , ( NormalTok , "(word " )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word " ) , ( DataTypeTok , "string" )- , ( NormalTok , ") " )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( DataTypeTok , "bool" )- , ( NormalTok , " {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" )- , ( NormalTok , " r(word, bl)" )+ , ( NormalTok , " r" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "," )+ , ( NormalTok , " bl" )+ , ( OperatorTok , ")" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] , [] , [ ( KeywordTok , "func" )- , ( NormalTok , " r(word " )+ , ( NormalTok , " r" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word " ) , ( DataTypeTok , "string" )- , ( NormalTok , ", bl []" )+ , ( OperatorTok , "," )+ , ( NormalTok , " bl " )+ , ( OperatorTok , "[]" ) , ( DataTypeTok , "string" )- , ( NormalTok , ") " )+ , ( OperatorTok , ")" )+ , ( NormalTok , " " ) , ( DataTypeTok , "bool" )- , ( NormalTok , " {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " word == " )+ , ( NormalTok , " word " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " " ) , ( StringTok , "\"\"" )- , ( NormalTok , " {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( OtherTok , "true" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " c := word[" )+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( NormalTok , " c " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " word" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "] | " )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "|" )+ , ( NormalTok , " " ) , ( DecValTok , "32" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "for" )- , ( NormalTok , " i, b := " )+ , ( NormalTok , " i" )+ , ( OperatorTok , "," )+ , ( NormalTok , " b " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " " ) , ( KeywordTok , "range" )- , ( NormalTok , " bl {" )+ , ( NormalTok , " bl " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " c == b[" )+ , ( NormalTok , " c " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " b" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "]|" )+ , ( OperatorTok , "]|" ) , ( DecValTok , "32" )- , ( NormalTok , " || c == b[" )+ , ( NormalTok , " " )+ , ( OperatorTok , "||" )+ , ( NormalTok , " c " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " b" )+ , ( OperatorTok , "[" ) , ( DecValTok , "1" )- , ( NormalTok , "]|" )+ , ( OperatorTok , "]|" ) , ( DecValTok , "32" )- , ( NormalTok , " {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ]-, [ ( NormalTok , " bl[i], bl[" )+, [ ( NormalTok , " bl" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "]," )+ , ( NormalTok , " bl" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "] = bl[" )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " bl" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "], b" )+ , ( OperatorTok , "]," )+ , ( NormalTok , " b" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "if" )- , ( NormalTok , " r(word[" )+ , ( NormalTok , " r" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "[" ) , ( DecValTok , "1" )- , ( NormalTok , ":], bl[" )+ , ( OperatorTok , ":]," )+ , ( NormalTok , " bl" )+ , ( OperatorTok , "[" ) , ( DecValTok , "1" )- , ( NormalTok , ":]) == " )+ , ( OperatorTok , ":])" )+ , ( NormalTok , " " )+ , ( OperatorTok , "==" )+ , ( NormalTok , " " ) , ( OtherTok , "true" )- , ( NormalTok , " {" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( OtherTok , "true" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " bl[i], bl[" )+, [ ( NormalTok , " " )+ , ( OperatorTok , "}" )+ ]+, [ ( NormalTok , " bl" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "]," )+ , ( NormalTok , " bl" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "] = bl[" )+ , ( OperatorTok , "]" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " bl" )+ , ( OperatorTok , "[" ) , ( DecValTok , "0" )- , ( NormalTok , "], bl[i]" )+ , ( OperatorTok , "]," )+ , ( NormalTok , " bl" )+ , ( OperatorTok , "[" )+ , ( NormalTok , "i" )+ , ( OperatorTok , "]" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , " }" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "return" ) , ( NormalTok , " " ) , ( OtherTok , "false" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] , []-, [ ( KeywordTok , "func" ) , ( NormalTok , " main() {" ) ]-, [ ( NormalTok , " sp := newSpeller(" ) ]+, [ ( KeywordTok , "func" )+ , ( NormalTok , " main" )+ , ( OperatorTok , "()" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" )+ ]+, [ ( NormalTok , " sp " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " newSpeller" )+ , ( OperatorTok , "(" )+ ] , [ ( NormalTok , " " ) , ( StringTok , "\"BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM\"" )- , ( NormalTok , ")" )+ , ( OperatorTok , ")" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "for" )- , ( NormalTok , " _, word := " )+ , ( NormalTok , " _" )+ , ( OperatorTok , "," )+ , ( NormalTok , " word " )+ , ( OperatorTok , ":=" )+ , ( NormalTok , " " ) , ( KeywordTok , "range" )- , ( NormalTok , " []" )+ , ( NormalTok , " " )+ , ( OperatorTok , "[]" ) , ( DataTypeTok , "string" )- , ( NormalTok , "{" )+ , ( OperatorTok , "{" ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"A\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"BARK\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"BOOK\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"TREAT\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"COMMON\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"SQUAD\"" )- , ( NormalTok , ", " )+ , ( OperatorTok , "," )+ , ( NormalTok , " " ) , ( StringTok , "\"CONFUSE\"" )- , ( NormalTok , "} {" )+ , ( OperatorTok , "}" )+ , ( NormalTok , " " )+ , ( OperatorTok , "{" ) ]-, [ ( NormalTok , " fmt.Println(word, sp(word))" ) ]-, [ ( NormalTok , " }" ) ]-, [ ( NormalTok , "}" ) ]+, [ ( NormalTok , " fmt" )+ , ( OperatorTok , "." )+ , ( NormalTok , "Println" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "," )+ , ( NormalTok , " sp" )+ , ( OperatorTok , "(" )+ , ( NormalTok , "word" )+ , ( OperatorTok , "))" )+ ]+, [ ( NormalTok , " " ) , ( OperatorTok , "}" ) ]+, [ ( OperatorTok , "}" ) ] ]
test/expected/abc.php.native view
@@ -1,9 +1,11 @@ [ [] , [ ( KeywordTok , "<?php" ) ]-, [ ( KeywordTok , "$words" )- , ( NormalTok , " = " )- , ( KeywordTok , "array" )- , ( OtherTok , "(" )+, [ ( VariableTok , "$words" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " )+ , ( DataTypeTok , "array" )+ , ( NormalTok , "(" ) , ( StringTok , "\"A\"" ) , ( OtherTok , "," ) , ( NormalTok , " " )@@ -23,29 +25,33 @@ , ( OtherTok , "," ) , ( NormalTok , " " ) , ( StringTok , "\"Confuse\"" )- , ( OtherTok , ");" )+ , ( NormalTok , ")" )+ , ( OtherTok , ";" ) ] , [] , [ ( KeywordTok , "function" )- , ( NormalTok , " canMakeWord" )- , ( OtherTok , "(" )- , ( KeywordTok , "$word" )- , ( OtherTok , ")" )- , ( NormalTok , " {" )+ , ( NormalTok , " canMakeWord(" )+ , ( VariableTok , "$word" )+ , ( NormalTok , ") {" ) ] , [ ( NormalTok , " " )- , ( KeywordTok , "$word" )- , ( NormalTok , " = " )+ , ( VariableTok , "$word" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " ) , ( FunctionTok , "strtoupper" )- , ( OtherTok , "(" )- , ( KeywordTok , "$word" )- , ( OtherTok , ");" )+ , ( NormalTok , "(" )+ , ( VariableTok , "$word" )+ , ( NormalTok , ")" )+ , ( OtherTok , ";" ) ] , [ ( NormalTok , " " )- , ( KeywordTok , "$blocks" )- , ( NormalTok , " = " )- , ( KeywordTok , "array" )- , ( OtherTok , "(" )+ , ( VariableTok , "$blocks" )+ , ( NormalTok , " " )+ , ( OperatorTok , "=" )+ , ( NormalTok , " " )+ , ( DataTypeTok , "array" )+ , ( NormalTok , "(" ) ] , [ ( NormalTok , " " ) , ( StringTok , "\"BO\"" )@@ -111,110 +117,102 @@ , ( StringTok , "\"ZM\"" ) , ( OtherTok , "," ) ]-, [ ( NormalTok , " " ) , ( OtherTok , ");" ) ]+, [ ( NormalTok , " )" ) , ( OtherTok , ";" ) ] , [] , [ ( NormalTok , " " )- , ( KeywordTok , "foreach" )- , ( NormalTok , " " )- , ( OtherTok , "(" )+ , ( ControlFlowTok , "foreach" )+ , ( NormalTok , " (" ) , ( FunctionTok , "str_split" )- , ( OtherTok , "(" )- , ( KeywordTok , "$word" )- , ( OtherTok , ")" )- , ( NormalTok , " " )+ , ( NormalTok , "(" )+ , ( VariableTok , "$word" )+ , ( NormalTok , ") " ) , ( KeywordTok , "as" ) , ( NormalTok , " " )- , ( KeywordTok , "$char" )- , ( OtherTok , ")" )- , ( NormalTok , " {" )+ , ( VariableTok , "$char" )+ , ( NormalTok , ") {" ) ] , [ ( NormalTok , " " )- , ( KeywordTok , "foreach" )- , ( NormalTok , " " )- , ( OtherTok , "(" )- , ( KeywordTok , "$blocks" )+ , ( ControlFlowTok , "foreach" )+ , ( NormalTok , " (" )+ , ( VariableTok , "$blocks" ) , ( NormalTok , " " ) , ( KeywordTok , "as" ) , ( NormalTok , " " )- , ( KeywordTok , "$k" )+ , ( VariableTok , "$k" ) , ( NormalTok , " => " )- , ( KeywordTok , "$block" )- , ( OtherTok , ")" )- , ( NormalTok , " {" )+ , ( VariableTok , "$block" )+ , ( NormalTok , ") {" ) ] , [ ( NormalTok , " " )- , ( KeywordTok , "if" )- , ( NormalTok , " " )- , ( OtherTok , "(" )+ , ( ControlFlowTok , "if" )+ , ( NormalTok , " (" ) , ( FunctionTok , "strpos" )- , ( OtherTok , "(" )- , ( KeywordTok , "$block" )+ , ( NormalTok , "(" )+ , ( VariableTok , "$block" ) , ( OtherTok , "," ) , ( NormalTok , " " )- , ( KeywordTok , "$char" )- , ( OtherTok , ")" )- , ( NormalTok , " !== " )+ , ( VariableTok , "$char" )+ , ( NormalTok , ") " )+ , ( OperatorTok , "!==" )+ , ( NormalTok , " " ) , ( KeywordTok , "FALSE" )- , ( OtherTok , ")" )- , ( NormalTok , " {" )+ , ( NormalTok , ") {" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "unset" )- , ( OtherTok , "(" )- , ( KeywordTok , "$blocks" )- , ( OtherTok , "[" )- , ( KeywordTok , "$k" )- , ( OtherTok , "]);" )+ , ( NormalTok , "(" )+ , ( VariableTok , "$blocks" )+ , ( NormalTok , "[" )+ , ( VariableTok , "$k" )+ , ( NormalTok , "])" )+ , ( OtherTok , ";" ) ] , [ ( NormalTok , " " )- , ( KeywordTok , "continue" )- , ( OtherTok , "(" )+ , ( ControlFlowTok , "continue" )+ , ( NormalTok , "(" ) , ( DecValTok , "2" )- , ( OtherTok , ");" )+ , ( NormalTok , ")" )+ , ( OtherTok , ";" ) ] , [ ( NormalTok , " }" ) ] , [ ( NormalTok , " }" ) ] , [ ( NormalTok , " " )- , ( KeywordTok , "return" )+ , ( ControlFlowTok , "return" ) , ( NormalTok , " " ) , ( KeywordTok , "false" ) , ( OtherTok , ";" ) ] , [ ( NormalTok , " }" ) ] , [ ( NormalTok , " " )- , ( KeywordTok , "return" )+ , ( ControlFlowTok , "return" ) , ( NormalTok , " " ) , ( KeywordTok , "true" ) , ( OtherTok , ";" ) ] , [ ( NormalTok , "}" ) ] , []-, [ ( KeywordTok , "foreach" )- , ( NormalTok , " " )- , ( OtherTok , "(" )- , ( KeywordTok , "$words" )+, [ ( ControlFlowTok , "foreach" )+ , ( NormalTok , " (" )+ , ( VariableTok , "$words" ) , ( NormalTok , " " ) , ( KeywordTok , "as" ) , ( NormalTok , " " )- , ( KeywordTok , "$word" )- , ( OtherTok , ")" )- , ( NormalTok , " {" )+ , ( VariableTok , "$word" )+ , ( NormalTok , ") {" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "echo" ) , ( NormalTok , " " )- , ( KeywordTok , "$word" )- , ( NormalTok , "." )+ , ( VariableTok , "$word" )+ , ( OperatorTok , "." ) , ( StringTok , "': '" ) , ( OtherTok , ";" ) ] , [ ( NormalTok , " " ) , ( KeywordTok , "echo" )- , ( NormalTok , " canMakeWord" )- , ( OtherTok , "(" )- , ( KeywordTok , "$word" )- , ( OtherTok , ")" )- , ( NormalTok , " " )+ , ( NormalTok , " canMakeWord(" )+ , ( VariableTok , "$word" )+ , ( NormalTok , ") " ) , ( OtherTok , "?" ) , ( NormalTok , " " ) , ( StringTok , "\"True\"" )@@ -228,7 +226,7 @@ , ( KeywordTok , "echo" ) , ( NormalTok , " " ) , ( StringTok , "\"" )- , ( KeywordTok , "\\r\\n" )+ , ( SpecialCharTok , "\\r\\n" ) , ( StringTok , "\"" ) , ( OtherTok , ";" ) ]
test/test-skylighting.hs view
@@ -151,11 +151,11 @@ , testCase "cpp floats" $ Right [ [ (FloatTok,"0.1") , (BuiltInTok,"f")] , [ (FloatTok,"1.0") , (BuiltInTok,"f")]- , [ (NormalTok,"-") , (FloatTok,"0.1") , (BuiltInTok,"f")]- , [ (NormalTok,"-") , (FloatTok,"1.0") , (BuiltInTok,"F")]- , [ (NormalTok,"-") , (FloatTok,"1.0") , (BuiltInTok,"L")]+ , [ (OperatorTok,"-") , (FloatTok,"0.1") , (BuiltInTok,"f")]+ , [ (OperatorTok,"-") , (FloatTok,"1.0") , (BuiltInTok,"F")]+ , [ (OperatorTok,"-") , (FloatTok,"1.0") , (BuiltInTok,"L")] , [ (FloatTok,"1e3")]- , [ (NormalTok,"-") , (FloatTok,"15e+3")]+ , [ (OperatorTok,"-") , (FloatTok,"15e+3")] , [ (FloatTok,"0.") , (BuiltInTok,"f")] , [ (FloatTok,"1.") , (BuiltInTok,"F")] , [ (FloatTok,"1.E3")]
xml/actionscript.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="ActionScript 2.0" version="8" kateversion="5.62" section="Sources" extensions="*.as" mimetype="text/x-actionscript" license="LGPL" author="Aaron Miller (armantic101@gmail.com)">+<language name="ActionScript 2.0" version="9" kateversion="5.62" section="Sources" extensions="*.as" mimetype="text/x-actionscript" license="LGPL" author="Aaron Miller (armantic101@gmail.com)"> <highlighting> <list name="properties">@@ -308,7 +308,7 @@ <itemData name="String" defStyleNum="dsString"/> <itemData name="String Char" defStyleNum="dsSpecialString"/> <itemData name="Comment" defStyleNum="dsComment"/>- <itemData name="Symbol" defStyleNum="dsNormal"/>+ <itemData name="Symbol" defStyleNum="dsOperator"/> <itemData name="Properties" defStyleNum="dsAttribute" bold="1"/> <itemData name="Global Functions" defStyleNum="dsFunction" bold="1"/> <itemData name="Classes" defStyleNum="dsBuiltIn" bold="1"/>
xml/ada.xml view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <language name="Ada"- version="5"+ version="6" kateversion="5.0" section="Sources" extensions="*.adb;*.ads;*.ada;*.a"@@ -189,7 +189,7 @@ <itemData name="Char" defStyleNum="dsChar" /> <itemData name="String" defStyleNum="dsString" /> <itemData name="Comment" defStyleNum="dsComment" />- <itemData name="Symbol" defStyleNum="dsNormal"/>+ <itemData name="Symbol" defStyleNum="dsOperator"/> <itemData name="Region Marker" defStyleNum="dsRegionMarker" /> </itemDatas> </highlighting>
xml/asp.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="ASP" version="7" kateversion="5.44" section="Markup" extensions="*.asp;" mimetype="text/x-asp-src;text/x-asp-src" author="Antonio Salazar (savedfastcool@gmail.com)" license="LGPL">+<language name="ASP" version="8" kateversion="5.44" section="Markup" extensions="*.asp;" mimetype="text/x-asp-src;text/x-asp-src" author="Antonio Salazar (savedfastcool@gmail.com)" license="LGPL"> <highlighting> <list name="control structures"> <item>select</item>@@ -246,7 +246,6 @@ <RegExpr attribute="HTML Tag" context="#pop" String="<\s*\/\s*script\s*>" insensitive="true" /> <DetectChar attribute="Comment" context="asp_onelinecomment" char="'" /> <DetectChar attribute="String" context="doublequotestring" char=""" />- <DetectChar attribute="String" context="singlequotestring" char="'" /> <DetectChar attribute="Keyword" context="#stay" char="&" /> <RegExpr attribute="String" context="#stay" String="[0123456789]*\.\.\.[0123456789]*" /> <HlCOct attribute="Octal" context="#stay" />
xml/awk.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="AWK" version="5" kateversion="5.0" section="Scripts"+<language name="AWK" version="6" kateversion="5.0" section="Scripts" extensions="*.awk" mimetype="text/x-awk" indenter="cstyle" license="LGPL"> <!-- patched by igli#kate@irc:chat.freenode.net -->@@ -271,8 +271,8 @@ <itemData name="Error" defStyleNum="dsError"/> <itemData name="Special" defStyleNum="dsControlFlow" bold="0"/> <itemData name="Operator" defStyleNum="dsOperator"/>- <itemData name="Symbol" defStyleNum="dsNormal"/>- <itemData name="Separator Symbol" defStyleNum="dsNormal"/>+ <itemData name="Symbol" defStyleNum="dsOperator"/>+ <itemData name="Separator Symbol" defStyleNum="dsOperator"/> <itemData name="Regex" defStyleNum="dsSpecialString" spellChecking="false"/> <itemData name="Regex Op" defStyleNum="dsOthers"/> <itemData name="CharClass" defStyleNum="dsExtension" spellChecking="false"/>
xml/bash.xml view
@@ -2,7 +2,7 @@ <!DOCTYPE language SYSTEM "language.dtd" [ <!ENTITY tab "	">- <!ENTITY funcname "([^&_fragpathseps;{}=#$]|[+!@](?!\())([^&_fragpathseps;{}=$]*+([+!@](?!\())?+)*+">+ <!ENTITY funcname "([^&_fragpathseps;}=#$]|[+!@](?!\())([^&_fragpathseps;}=$]*+([+!@](?!\())?+)*+"> <!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*"> <!ENTITY eos "(?=$|[ &tab;])"> <!-- eol or space following --> <!ENTITY eoexpr "(?=$|[ &tab;<>|&;])">@@ -12,23 +12,25 @@ <!ENTITY wordseps " &tab;&symbolseps;"> <!-- see man bash --> <!ENTITY _fragpathseps "*?+!@&wordseps;&substseps;">- <!ENTITY _fragpathnosep "(?:[+!@](?!\()|\\.)?+">+ <!ENTITY _fragpathnosep "(?:[+!@](?!\()|\\.|&_brace_noexpansion;)?+"> <!ENTITY path "(?:[^&_fragpathseps;]*+&_fragpathnosep;)*+"> <!ENTITY fragpath "(?:[^&_fragpathseps;/]*+&_fragpathnosep;)*+"> <!ENTITY opt "(?:[^&_fragpathseps;=/]*+&_fragpathnosep;)*+"> <!ENTITY pathpart "(?:~|\.\.?|&fragpath;)(?:/&path;|(?=[*?]|[+!@]\(|&fragpath;(?:[/*?]|[+!@]\()))|(?:~|\.\.?)(?=[&wordseps;]|$)"> - <!ENTITY _braceexpansion_spe " &tab;{}\\`'"$">- <!ENTITY brace_noexpansion "\{[^&_braceexpansion_spe;,]*+\}">+ <!ENTITY _braceexpansion_spe " &tab;<>|&;{}\\`'"$">+ <!ENTITY _brace_noexpansion "\{[^&_braceexpansion_spe;,]*+\}"> <!ENTITY _braceexpansion_var "\$(?:\{[^\[\]&_braceexpansion_spe;]*+(?:\[[*@a-zA-Z0-9]\])\})?"> <!ENTITY _braceexpansion_string "'[^']*'|"([^"\`]*+|`[^`]*`)*+"">- <!ENTITY _braceexpansion_consume "\\.|`[^`]*`|&_braceexpansion_string;|&_braceexpansion_var;|&brace_noexpansion;|(?R)?+">- <!ENTITY braceexpansion "{(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_consume;)+?,(?:[^&_braceexpansion_spe;]++|&_braceexpansion_consume;)+?}">+ <!ENTITY _braceexpansion_elems "\\.|`[^`]*`|&_braceexpansion_string;|&_braceexpansion_var;|&_brace_noexpansion;">+ <!ENTITY _braceexpansion_consume "&_braceexpansion_elems;|{(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_elems;)*?}|(?R)?+">+ <!ENTITY _braceexpansion "(?:[^&_braceexpansion_spe;,]++|&_braceexpansion_consume;)*?,(?:[^&_braceexpansion_spe;]++|&_braceexpansion_consume;)*?}">+ <!ENTITY braceexpansion "{&_braceexpansion;"> <!ENTITY heredocq "(?|"([^"]+)"|'([^']+)'|\\(.[^&wordseps;&substseps;]*))"> ]> -<language name="Bash" version="17" kateversion="5.62" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL">+<language name="Bash" version="24" kateversion="5.62" section="Scripts" extensions="*.sh;*.bash;*.ebuild;*.eclass;*.nix;.bashrc;.bash_profile;.bash_login;.profile;PKGBUILD;APKBUILD" mimetype="application/x-shellscript" casesensitive="1" author="Wilbert Berendsen (wilbert@kde.nl)" license="LGPL"> <!-- (c) 2004 by Wilbert Berendsen (wilbert@kde.nl) Changes by Matthew Woehlke (mw_triad@users.sourceforge.net)@@ -71,6 +73,7 @@ <item>command</item> <item>compgen</item> <item>complete</item>+ <item>coproc</item> <item>dirs</item> <item>disown</item> <item>echo</item>@@ -492,12 +495,14 @@ <AnyChar context="CommandMaybeRedirection" String="<>0123456789" lookAhead="1"/> <AnyChar attribute="Error" context="#stay" String=")}"/>++ <LineContinue attribute="Escape" context="#stay"/> </context> <context attribute="Normal Text" lineEndContext="#pop" name="MaybeBracketExpression" fallthroughContext="#pop!Command"> <!-- start expression in double brackets -->- <RegExpr attribute="Keyword" context="ExprDblBracket" String="\[\[(?=$|[ &tab;(])" beginRegion="expression"/>+ <RegExpr attribute="Keyword" context="#pop!ExprDblBracket" String="\[\[(?=$|[ &tab;(])" beginRegion="expression"/> <!-- start expression in single brackets -->- <RegExpr attribute="Builtin" context="ExprBracket" String="\[&eos;" beginRegion="expression"/>+ <RegExpr attribute="Builtin" context="#pop!ExprBracket" String="\[&eos;" beginRegion="expression"/> </context> <context attribute="Normal Text" lineEndContext="#pop" name="MaybeGroup"> <!-- start a group command with { -->@@ -561,14 +566,13 @@ </context> <context attribute="OtherCommand" lineEndContext="#pop#pop" name="CommandName"> <DetectSpaces attribute="Normal Text" context="#pop#pop!CommandArgs"/>+ <DetectIdentifier attribute="OtherCommand" context="#stay"/> <DetectChar context="CommandVariables" char="$" lookAhead="1"/> <IncludeRules context="FindStrings"/>- <DetectChar context="#pop#pop" char="`" lookAhead="1"/> <Detect2Chars attribute="Control" context="#pop#pop" char="&" char1="&"/> <Detect2Chars attribute="Control" context="#pop#pop" char="|" char1="|"/> <DetectChar attribute="Control" context="#pop#pop" char="|"/>- <DetectChar attribute="Control" context="#pop#pop" char=";"/>- <DetectChar context="#pop#pop" char=")" lookAhead="1"/>+ <AnyChar context="#pop#pop" String=";)`" lookAhead="1"/> <AnyChar context="#pop#pop!CommandArgs" String="&<>" lookAhead="1"/> <!-- start expression in double parentheses --> <Detect2Chars attribute="Error" context="#pop#pop!ExprDblParen" char="(" char1="(" beginRegion="expression"/>@@ -604,9 +608,6 @@ <!-- handle &, |, ;, ` --> <AnyChar context="#pop" String="&|;`" lookAhead="1"/> - <!-- handle process subst -->- <Detect2Chars attribute="Redirection" context="ProcessSubst" char="<" char1="("/>- <Detect2Chars attribute="Redirection" context="ProcessSubst" char=">" char1="("/> <!-- handle redirection --> <AnyChar context="CommandArgMaybeRedirection" String="<>0123456789" lookAhead="1"/> @@ -626,7 +627,6 @@ <context attribute="Option" lineEndContext="#pop" name="ShortOption" fallthroughContext="#pop"> <DetectChar attribute="Path" context="PathThenPop" char="/"/>- <AnyChar context="#pop" String="&wordseps;`" lookAhead="1"/> <IncludeRules context="LongOption"/> </context> <context attribute="Option" lineEndContext="#pop" name="LongOption" fallthroughContext="#pop">@@ -674,6 +674,7 @@ <!-- Only highlighting closed braces. The "BraceExpansion" context corrects the closure of braces and allows recursive braces (bug #387915). --> <RegExpr context="#pop!BraceExpansion" String="&braceexpansion;" lookAhead="1"/>+ <RegExpr attribute="Escape" context="#pop!SequenceExpression" String="{(?=([-+]?[0-9]+\.\.[-+]?[0-9]+|[a-zA-Z]\.\.[a-zA-Z])(\.\.[-+]?[0-9]+)?\})"/> </context> <!-- FindPathThenPop consumes path -->@@ -701,20 +702,18 @@ <IncludeRules context="IncExtGlob"/> </context> <context attribute="Path" lineEndContext="#stay" name="IncExtGlob">- <DetectChar attribute="Glob" context="#stay" char="|"/> <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="?" char1="("/> <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="*" char1="("/> <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="+" char1="("/> <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="@" char1="("/> <Detect2Chars attribute="Glob" context="RecursiveExtGlob" char="!" char1="("/>- <AnyChar attribute="Glob" context="#stay" String="?*"/>+ <AnyChar attribute="Glob" context="#stay" String="|?*"/> <IncludeRules context="FindWord"/> <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/> </context> <context attribute="Path" lineEndContext="#pop#pop" name="PathThenPop"> <AnyChar context="#pop#pop" String="&wordseps;`" lookAhead="1"/> <IncludeRules context="FindWord"/>- <LineContinue attribute="Escape" context="#stay"/> <IncludeRules context="FindExtGlobAndPop"/> <AnyChar attribute="Glob" context="#stay" String="?*"/> <DetectChar context="PathMaybeBraceExpansion" char="{" lookAhead="1"/>@@ -742,16 +741,19 @@ <context attribute="Normal Text" lineEndContext="#pop" name="VarAssign" fallthroughContext="#pop"> <DetectChar attribute="Parameter Expansion Operator" context="Subscript" char="["/>- <DetectChar attribute="Variable" context="Assign" char="="/>- <Detect2Chars attribute="Variable" context="Assign" char="+" char1="="/>+ <DetectChar attribute="Operator" context="#pop!Assign" char="="/>+ <Detect2Chars attribute="Operator" context="#pop!Assign" char="+" char1="="/> </context> <context attribute="Normal Text" lineEndContext="#pop" name="DispatchKeyword"> <!-- match do and if blocks -->- <Detect2Chars attribute="Control Flow" context="#pop" char="i" char1="f" beginRegion="if"/>+ <Detect2Chars attribute="Control Flow" context="#pop!NotCond" char="i" char1="f" beginRegion="if"/> <Detect2Chars attribute="Control Flow" context="#pop" char="f" char1="i" endRegion="if"/> <StringDetect attribute="Control Flow" context="#pop" String="done" endRegion="do"/> <Detect2Chars attribute="Control Flow" context="#pop" char="d" char1="o" beginRegion="do"/>+ <!-- handle while/until as a special case -->+ <StringDetect attribute="Control Flow" context="#pop!NotCond" String="while"/>+ <StringDetect attribute="Control Flow" context="#pop!NotCond" String="until"/> <!-- handle for as a special case --> <StringDetect attribute="Control Flow" context="#pop!For" String="for"/> <!-- handle select as a special case -->@@ -767,6 +769,17 @@ <!-- handle keywords --> <DetectIdentifier attribute="Control Flow" context="#pop"/> </context>++ <!-- if ! ..., while ! ... and until ! ... -->+ <context attribute="Normal Text" lineEndContext="#pop" name="NotCond" fallthroughContext="#pop">+ <DetectSpaces attribute="Normal Text" context="#pop!NotCond2"/>+ </context>+ <context attribute="Normal Text" lineEndContext="#pop" name="NotCond2" fallthroughContext="#pop">+ <Detect2Chars attribute="Expression" context="#pop" char="!" char1="&tab;"/>+ <Detect2Chars attribute="Expression" context="#pop" char="!" char1=" "/>+ <LineContinue attribute="Expression" context="#pop" char="!"/>+ </context>+ <context attribute="Normal Text" lineEndContext="#pop" name="For" fallthroughContext="#pop"> <LineContinue attribute="Escape" context="#stay"/> <DetectSpaces attribute="Normal Text" context="#stay"/>@@ -790,6 +803,7 @@ <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char=">" char1=">"/> <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char=">" char1="|"/> <Detect2Chars attribute="Redirection" context="#pop!FdRedirection" char=">" char1="&"/>+ <Detect2Chars attribute="Redirection" context="#pop!ProcessSubst" char=">" char1="("/> <DetectChar attribute="Redirection" context="#pop!WordRedirection" char=">"/> <StringDetect attribute="Redirection" context="#pop!StringRedirection" String="<<<"/> <!-- handle here document -->@@ -797,6 +811,7 @@ <!-- handle input redirection --> <Detect2Chars attribute="Redirection" context="#pop!FdRedirection" char="<" char1="&"/> <Detect2Chars attribute="Redirection" context="#pop!WordRedirection" char="<" char1=">"/>+ <Detect2Chars attribute="Redirection" context="#pop!ProcessSubst" char="<" char1="("/> <DetectChar attribute="Redirection" context="#pop!WordRedirection" char="<"/> </context> <context attribute="Normal Text" lineEndContext="#pop" name="FdRedirection" fallthroughContext="#pop!FdRedirection2">@@ -926,7 +941,8 @@ <DetectChar attribute="Backquote" context="RegularBackq" char="`"/> </context> <context attribute="String DoubleQ" lineEndContext="#stay" name="StringDQDispatchVariables">- <IncludeRules context="DispatchVariables"/>+ <IncludeRules context="DispatchSubstVariables"/>+ <IncludeRules context="DispatchVarnameVariables"/> <DetectChar attribute="String DoubleQ" context="#pop" char="$"/> </context> <context attribute="String DoubleQ" lineEndContext="#pop" name="StringDQEscape">@@ -975,16 +991,19 @@ <!-- VarBraceStart is called as soon as ${ is encoutered --> <context attribute="Variable" lineEndContext="#pop!VarBrace" name="VarBraceStart" fallthroughContext="#pop!VarBrace">- <DetectChar attribute="Parameter Expansion" context="#pop!VarBracePrefix" char="!"/>- <DetectChar attribute="Parameter Expansion" context="#pop!VarBrace" char="#"/>+ <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBracePrefix" char="!"/>+ <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarBrace" char="#"/> </context> <!-- VarBracePrefix called as soon as ${! is encoutered --> <context attribute="Variable" lineEndContext="#pop" name="VarBracePrefix"> <RegExpr attribute="Variable" context="#pop!VarBracePrefixSuffix" String="&varname;"/> </context>- <context attribute="Variable" lineEndContext="#pop" name="VarBracePrefixSuffix">- <DetectChar attribute="Variable" context="#pop" char="}"/>+ <context attribute="Variable" lineEndContext="#pop" name="VarBracePrefixSuffix" fallthroughContext="#pop!VarError">+ <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+ <AnyChar attribute="Parameter Expansion Operator" context="#stay" String="@*"/>+ <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="[@]"/>+ <StringDetect attribute="Parameter Expansion Operator" context="#stay" String="[*]"/> </context> <!-- VarBrace is called as soon as ${ or ${# are encoutered -->@@ -1006,14 +1025,14 @@ <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char=":" char1="+"/> <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="#" char1="#"/> <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="%" char1="%"/>- <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="^" char1="^"/>- <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="," char1=","/>+ <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="^" char1="^"/>+ <Detect2Chars attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="," char1=","/> <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarSub" char=":"/> <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="%"/> <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="#"/> <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarSubst" char="/"/>- <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char="^"/>- <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternateValue" char=","/>+ <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char="^"/>+ <DetectChar attribute="Parameter Expansion Operator" context="#pop!AlternatePatternValue" char=","/> <DetectChar attribute="Parameter Expansion Operator" context="#pop!VarTransformation" char="@"/> </context> @@ -1033,13 +1052,20 @@ <DetectChar attribute="Error" context="#pop" char="$"/> </context> - <!-- called as soon as ${xxx:- ${xxx:= ${xxx:? ${xxx:+ ${xxx^ ${xxx ${xxx# and ${xxx% are encoutered -->+ <!-- called as soon as ${xxx:- ${xxx:= ${xxx:? ${xxx:+ ${xxx# ${xxx% and ${xxx are encoutered --> <context attribute="Normal Text" lineEndContext="#stay" name="AlternateValue"> <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/> <IncludeRules context="FindWord"/> <IncludeRules context="FindPattern"/> </context> + <!-- called as soon as ${xxx^ are ${xxx, are encoutered -->+ <context attribute="Pattern" lineEndContext="#stay" name="AlternatePatternValue">+ <DetectChar attribute="Parameter Expansion" context="#pop" char="}"/>+ <IncludeRules context="FindWord"/>+ <IncludeRules context="FindPattern"/>+ </context>+ <!-- called as soon as ${xxx/ is encoutered --> <context attribute="Normal Text" lineEndContext="#stay" name="VarSubst" fallthroughContext="#pop!VarSubstPat"> <AnyChar attribute="Parameter Expansion Operator" context="#pop!VarSubstPat" String="/#%"/>@@ -1070,14 +1096,19 @@ </context> <context attribute="Escape" lineEndContext="#pop" name="EscapeMaybeBraceExpansion"> <IncludeRules context="DispatchBraceExpansion"/>- <RegExpr attribute="Escape" context="#pop" String="&brace_noexpansion;"/>- <DetectChar attribute="Escape" context="#pop" char="{"/>+ <DetectChar attribute="Escape" context="#pop!BraceExpansion2" char="{"/> </context> <context attribute="Escape" lineEndContext="#pop" name="BraceExpansionVariables"> <IncludeRules context="DispatchVariables"/> <DetectChar attribute="Escape" context="#pop" char="$"/> </context> + <context attribute="Normal Text" lineEndContext="#pop" name="SequenceExpression">+ <AnyChar attribute="Decimal" context="#stay" String="0123456789-+"/>+ <Detect2Chars attribute="Escape" context="#stay" char="." char1="."/>+ <DetectChar attribute="Escape" context="#pop" char="}"/>+ </context>+ <!-- ====== These are the contexts that can be branched to ======= --> <!-- ExprDblParen consumes an expression started in command mode till )) -->@@ -1131,7 +1162,7 @@ <RegExpr attribute="BaseN" context="#pop" String="[0-9a-zA-Z@_]+"/> </context> <context attribute="Error" lineEndContext="#pop" name="NumberError" fallthroughContext="#pop">- <AnyChar attribute="Error" context="NumberError" String="8901234567"/>+ <AnyChar attribute="Error" context="#stay" String="8901234567"/> </context> <!-- ExprDblParenSubst like ExprDblParen but matches )) as Variable -->@@ -1190,7 +1221,7 @@ <context attribute="Normal Text" lineEndContext="#stay" name="FindExprBracketEnd"> <LineContinue attribute="Escape" context="#stay"/>- <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[ &tab;;|&<>]))" endRegion="expression"/>+ <RegExpr attribute="Builtin" context="#pop" String="\](?=($|[ &tab;;|&<>)]))" endRegion="expression"/> </context> <context attribute="Normal Text" lineEndContext="#pop" name="TestMaybeUnary" fallthroughContext="#pop!ExprBracketValue">@@ -1271,7 +1302,7 @@ <LineContinue attribute="Escape" context="#stay"/> <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="&" char1="&"/> <Detect2Chars attribute="Control" context="#pop!ExprDblBracket" char="|" char1="|"/>- <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[ &tab;;|&]))" endRegion="expression"/>+ <RegExpr attribute="Keyword" context="#pop" String="\]\](?=($|[ &tab;;|&)]))" endRegion="expression"/> </context> <context attribute="Normal Text" lineEndContext="#stay" name="ExprDblBracketRegex">@@ -1300,7 +1331,6 @@ <IncludeRules context="FindStrings"/> <DetectChar context="RegexDispatchVariables" char="$" lookAhead="1"/> <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>- <DetectChar context="AssumeEscape" char="\" lookAhead="1"/> </context> <context attribute="Normal Text" lineEndContext="#stay" name="RegexDispatchVariables"> <IncludeRules context="DispatchVariables"/>@@ -1368,7 +1398,7 @@ <!-- Assign consumes an expression till EOL or whitespace --> <context attribute="Normal Text" lineEndContext="#pop" name="Assign" fallthroughContext="#pop!Assign2">- <DetectChar attribute="Variable" context="AssignArray" char="("/>+ <DetectChar attribute="Variable" context="#pop!AssignArray" char="("/> </context> <context attribute="Normal Text" lineEndContext="#pop" name="Assign2" fallthroughContext="#pop"> <DetectChar attribute="Backquote" context="RegularBackq" char="`"/>@@ -1378,6 +1408,7 @@ <!-- AssignArray consumes everything till ), marking assignments --> <context attribute="Normal Text" lineEndContext="#stay" name="AssignArray" fallthroughContext="NormalOption"> <DetectSpaces attribute="Normal Text" context="#stay"/>+ <DetectChar attribute="Comment" context="Comment" char="#"/> <DetectChar attribute="Variable" context="#pop!Assign2" char=")"/> <DetectChar context="AssignArrayKey" char="[" lookAhead="1"/> <DetectChar attribute="Backquote" context="AssignArrayBackq" char="`"/>@@ -1422,6 +1453,7 @@ <context attribute="Normal Text" lineEndContext="#stay" name="CaseIn" fallthroughContext="CasePattern"> <DetectSpaces attribute="Normal Text" context="#stay"/> <DetectChar attribute="Keyword" context="CasePattern" char="("/>+ <DetectChar attribute="Comment" context="Comment" char="#"/> </context> <context attribute="Pattern" lineEndContext="#stay" name="CasePattern"> <DetectSpaces attribute="Normal Text" context="#stay"/>@@ -1465,7 +1497,7 @@ <itemData name="Variable" defStyleNum="dsVariable"/> <itemData name="Expression" defStyleNum="dsOthers"/> <itemData name="Function" defStyleNum="dsFunction"/>- <itemData name="Pattern" defStyleNum="dsNormal"/>+ <itemData name="Pattern" defStyleNum="dsSpecialString"/> <itemData name="Path" defStyleNum="dsNormal"/> <itemData name="Glob" defStyleNum="dsPreprocessor"/> <itemData name="Option" defStyleNum="dsAttribute"/>
xml/bibtex.xml view
@@ -1,12 +1,12 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [- <!ENTITY stringVariable "[a-zA-Z0-9\-]+">+ <!ENTITY stringVariable "[a-zA-Z0-9\-]+"> <!ENTITY fieldFormat "[a-zA-Z0-9\-_\.]+"> <!ENTITY latexCmd "\\([a-zA-Z@]+|[^ ])"> <!ENTITY refKeyFormat "[a-zA-Z0-9_@\\-\\:]+"> <!--taken from kile 2.0.3--> ]>-<language name="BibTeX" version="2" kateversion="5.0" extensions="*.bib" section="Markup" mimetype="text/x-bib" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL">+<language name="BibTeX" version="3" kateversion="5.0" extensions="*.bib" section="Markup" mimetype="text/x-bib" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL"> <highlighting> <list name="kw_entry"> <item>@article</item> @@ -61,18 +61,16 @@ </context> <context name="Field" attribute="Normal Text" lineEndContext="#stay">- <RegExpr String="&fieldFormat;" attribute="Field" firstNonSpace="true"/>+ <RegExpr String="&fieldFormat;" attribute="Field" firstNonSpace="true"/> <DetectSpaces/> <DetectChar char="=" context="#stay"/>- <DetectSpaces/> <DetectChar char="{" context="CurlyBracket"/> <DetectChar char="}" context="#pop" lookAhead="true"/> <DetectChar char=""" attribute="Normal Text" context="QuotedText"/> <DetectChar char="," context="#stay"/> <DetectChar char="#" context="#stay"/> <!-- the bibtex string concatenate character -->- <RegExpr String="[0-9]+" context="#stay"/>- <RegExpr String="&stringVariable;" attribute="String" /> <!-- assume this is a variable created with @String -->- <DetectSpaces/>+ <RegExpr String="[0-9]+" context="#stay"/>+ <RegExpr String="&stringVariable;" attribute="String" /> <!-- assume this is a variable created with @String --> <RegExpr String="." attribute="Error" context="#stay"/> <!--this rule catches all errors--> </context>
xml/boo.xml view
@@ -2,7 +2,7 @@ <!DOCTYPE language> <!-- Based on Python syntax highlighting v1.99 by Primoz Anzur, Paul Giannaros, Michael Bueker, Per Wigren --> <!-- Also based on boo.lang from gtksourceview -->-<language name="Boo" version="8" kateversion="5.0" section="Sources" extensions="*.boo" mimetype="text/x-boo" casesensitive="1" author="Marc Dassonneville" license="LGPL">+<language name="Boo" version="9" kateversion="5.0" section="Sources" extensions="*.boo" mimetype="text/x-boo" casesensitive="1" author="Marc Dassonneville" license="LGPL"> <highlighting> <list name="namespace"> <item>import</item>@@ -188,7 +188,6 @@ <Detect2Chars attribute="Operator" char="|" char1="]" context="#pop" endRegion="qq"/> <AnyChar attribute="Operator" String="+*/%|=;!<>!^&~-" context="#stay"/>- <RegExpr attribute="String Substitution" String="%[a-zA-Z]" context="#stay"/> </context> <context name="parenthesised" attribute="Normal Text" lineEndContext="#stay" noIndentationBasedFolding="true">
xml/c.xml view
@@ -10,7 +10,7 @@ <!ENTITY pphash "&ispphash;\s*"> ]> <language name="C" section="Sources"- version="12" kateversion="5.0"+ version="13" kateversion="5.0" indenter="cstyle" extensions="*.c;*.C;*.h" mimetype="text/x-csrc;text/x-c++src;text/x-chdr"@@ -269,7 +269,7 @@ <itemData name="String" defStyleNum="dsString"/> <itemData name="String Char" defStyleNum="dsSpecialChar"/> <itemData name="Comment" defStyleNum="dsComment"/>- <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>+ <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/> <itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/> <itemData name="Prep. Lib" defStyleNum="dsImport" spellChecking="false"/> <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
xml/cmake.xml view
@@ -16,7 +16,7 @@ <language name="CMake"- version="28"+ version="29" kateversion="5.0" section="Other" extensions="CMakeLists.txt;*.cmake;*.cmake.in"@@ -1345,6 +1345,7 @@ <item>CMAKE_ANDROID_STL_TYPE</item> <item>CMAKE_ANSI_CXXFLAGS</item> <item>CMAKE_APPBUNDLE_PATH</item>+ <item>CMAKE_APPLE_SILICON_PROCESSOR</item> <item>CMAKE_AR</item> <item>CMAKE_ARCHIVE_OUTPUT_DIRECTORY</item> <item>CMAKE_ARGC</item>@@ -1566,6 +1567,9 @@ <item>CMAKE_INSTALL_UCRT_LIBRARIES</item> <item>CMAKE_INTERPROCEDURAL_OPTIMIZATION</item> <item>CMAKE_IOS_INSTALL_COMBINED</item>+ <item>CMAKE_ISPC_HEADER_DIRECTORY</item>+ <item>CMAKE_ISPC_HEADER_SUFFIX</item>+ <item>CMAKE_ISPC_INSTRUCTION_SETS</item> <item>CMAKE_JOB_POOLS</item> <item>CMAKE_JOB_POOL_COMPILE</item> <item>CMAKE_JOB_POOL_LINK</item>@@ -2225,6 +2229,7 @@ <item>CC</item> <item>CFLAGS</item> <item>CMAKE_APPBUNDLE_PATH</item>+ <item>CMAKE_APPLE_SILICON_PROCESSOR</item> <item>CMAKE_BUILD_PARALLEL_LEVEL</item> <item>CMAKE_CONFIG_TYPE</item> <item>CMAKE_EXPORT_COMPILE_COMMANDS</item>@@ -2467,6 +2472,9 @@ <item>INTERFACE_SYSTEM_INCLUDE_DIRECTORIES</item> <item>INTERPROCEDURAL_OPTIMIZATION</item> <item>IOS_INSTALL_COMBINED</item>+ <item>ISPC_HEADER_DIRECTORY</item>+ <item>ISPC_HEADER_SUFFIX</item>+ <item>ISPC_INSTRUCTION_SETS</item> <item>JOB_POOL_COMPILE</item> <item>JOB_POOL_LINK</item> <item>LABELS</item>
xml/cpp.xml view
@@ -11,7 +11,7 @@ <language name="C++" section="Sources"- version="9"+ version="12" kateversion="5.0" indenter="cstyle" style="C++"@@ -38,6 +38,8 @@ <item>SLOT</item> <!-- http://doc.qt.io/qt-5/qapplication.html#macros --> <item>qApp</item>+ <!-- https://doc.qt.io/qt-5/qguiapplication.html#qGuiApp -->+ <item>qGuiApp</item> <!-- http://doc.qt.io/qt-5/qcoreapplication.html#macros --> <item>Q_COREAPP_STARTUP_FUNCTION</item> <item>Q_DECLARE_TR_FUNCTIONS</item>@@ -584,6 +586,8 @@ <item>qmlRegisterUncreatableType</item> <!-- http://doc.qt.io/qt-5/qextensionmanager.html#related-non-members --> <item>qt_extension</item>+ <!-- https://doc.qt.io/qt-5/qvariant.html#related-non-members -->+ <item>qvariant_cast</item> <!-- http://doc.qt.io/qt-5/qdbusargument.html#related-non-members --> <item>qDBusRegisterMetaType</item> <item>qdbus_cast</item>@@ -2176,6 +2180,9 @@ <item>QValueAxis</item> <item>QVariant</item> <item>QVariantAnimation</item>+ <item>QVariantHash</item>+ <item>QVariantList</item>+ <item>QVariantMap</item> <item>QVarLengthArray</item> <item>QVBarModelMapper</item> <item>QVBoxLayout</item>@@ -2352,6 +2359,11 @@ <item>QTouchEventSequence</item> <!-- QTest --> <item>QStringListIterator</item> <item>QStringBuilder</item>+ <!-- Helper classes for C++11-only code, where qOverload (requires C++14) can't be used+ https://doc.qt.io/qt-5/qtglobal.html#qOverload -->+ <item>QOverload</item>+ <item>QConstOverload</item>+ <item>QNonConstOverload</item> </list> <contexts>
xml/cs.xml view
@@ -1,5 +1,5 @@ <!DOCTYPE language SYSTEM "language.dtd">-<language name="C#" version="9" kateversion="5.0" section="Sources" extensions="*.cs" mimetype="text/x-csharp-src;text/x-csharp-hde" indenter="cstyle" style="C++">+<language name="C#" version="10" kateversion="5.0" section="Sources" extensions="*.cs" mimetype="text/x-csharp-src;text/x-csharp-hde" indenter="cstyle" style="C++"> <highlighting> <list name="keywords"> <item>abstract</item>@@ -158,7 +158,7 @@ <itemData name="String" defStyleNum="dsString"/> <itemData name="String Char" defStyleNum="dsSpecialChar"/> <itemData name="Comment" defStyleNum="dsComment"/>- <itemData name="Symbol" defStyleNum="dsNormal"/>+ <itemData name="Symbol" defStyleNum="dsOperator"/> </itemDatas> </highlighting> <general>
xml/d.xml view
@@ -99,7 +99,7 @@ ======================================================================== --> -<language name="D" version="9" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL">+<language name="D" version="10" kateversion="5.0" section="Sources" extensions="*.d;*.D;*.di;*.DI;" mimetype="text/x-dsrc" casesensitive="true" author="Diggory Hardy (diggory.hardy@gmail.com), Aziz Köksal (aziz.koeksal@gmail.com), Jari-Matti Mäkelä (jmjm@iki.fi), Simon J Mackenzie (project.katedxml@smackoz.fastmail.fm)" license="LGPL"> <highlighting> <!-- User-defined keywords (add identifiers you'd like highlighted here) --> <list name="userkeywords">@@ -860,7 +860,7 @@ </contexts> <itemDatas> <itemData name="Normal Text" defStyleNum="dsNormal"/>- <itemData name="Symbol" defStyleNum="dsNormal"/>+ <itemData name="Symbol" defStyleNum="dsOperator"/> <!-- keywords --> <itemData name="Statement" defStyleNum="dsKeyword"/>
xml/elm.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Elm" version="6" kateversion="5.0" section="Sources" extensions="*.elm" author="Bonghyun Kim (bonghyun.d.kim@gmail.com)" license="MIT" style="elm">+<language name="Elm" version="7" kateversion="5.0" section="Sources" extensions="*.elm" author="Bonghyun Kim (bonghyun.d.kim@gmail.com)" license="MIT" style="elm"> <highlighting> <list name="declarations"> <item>type</item>@@ -40,7 +40,6 @@ <context attribute="Normal" lineEndContext="#stay" name="code"> <Detect2Chars attribute="Comment" context="comments" char="{" char1="-" beginRegion="BlockComment" /> <Detect2Chars attribute="Comment" context="comment" char="-" char1="-" />- <StringDetect attribute="Comment" context="documentation" String="{-|" beginRegion="Documentation" /> <keyword attribute="Keyword" context="#stay" String="declarations" /> <keyword attribute="Keyword" context="#stay" String="letExpressions" />@@ -65,8 +64,8 @@ <RegExpr attribute="Float" context="#stay" String="\d+\.\d+(e[+-]?\d+)?" insensitive="true" /> <RegExpr attribute="Char" context="#stay" String="'(.|\\'|\\n|\\r|\\t|\\"|\\\\|\\u\{(10|0?[0-9])[0-9a-fA-F]{4}\})'" />- <DetectChar attribute="String" context="string" char=""" /> <StringDetect attribute="String" context="multilineString" String="""""/>+ <DetectChar attribute="String" context="string" char=""" /> </context> <context attribute="Comment" lineEndContext="#pop" name="comment"> <DetectSpaces />@@ -109,10 +108,6 @@ <RegExpr attribute="Name" context="#stay" String="\b[a-z][\w]*" /> <RegExpr attribute="Type" context="#stay" String="\b[A-Z][\w]*" /> <DetectChar attribute="Normal" context="#pop" char=")" />- </context>- <context attribute="Comment" lineEndContext="#stay" name="documentation">- <WordDetect attribute="Comment" context="#stay" String="@docs" />- <Detect2Chars attribute="Comment" context="#pop" char="-" char1="}" endRegion="Documentation" /> </context> </contexts>
xml/email.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Email" version="5" kateversion="5.0" extensions="*.eml;*.email;*.emlx;*.mbox;*.mbx" section="Other" mimetype="message/rfc822" casesensitive="0" author="Volker Krause (vkrause@kde.org)" license="MIT">+<language name="Email" version="6" kateversion="5.0" extensions="*.eml;*.email;*.emlx;*.mbox;*.mbx" section="Other" mimetype="message/rfc822" casesensitive="0" author="Volker Krause (vkrause@kde.org)" license="MIT"> <highlighting> <list name="header-names"> <item>Authentication-Results:</item>@@ -73,14 +73,20 @@ </context> <context name="string-context" attribute="String" lineEndContext="#stay">- <HlCStringChar/>+ <IncludeRules context="quoted-pair"/> <DetectChar attribute="String" context="#pop" char="""/> </context> <context name="comment-context" attribute="Comment" lineEndContext="#stay">+ <DetectChar attribute="Comment" context="comment-context" char="("/> <DetectChar attribute="Comment" context="#pop" char=")"/>+ <IncludeRules context="quoted-pair"/> </context> + <context name="quoted-pair" attribute="Escaped Character" lineEndContext="#stay">+ <RegExpr attribute="Escaped Character" context="#stay" String="\\[\x00-\x7F]"/>+ </context>+ <context name="body-context" attribute="Normal Text" lineEndContext="#stay"> <RegExpr attribute="Content Boundary" context="#pop!header" String="--[0-9a-zA-Z._=-]{10,}(--)?$" column="0"/> </context>@@ -92,6 +98,7 @@ <itemData name="String" defStyleNum="dsString" spellChecking="false"/> <itemData name="Address" defStyleNum="dsVariable" spellChecking="false"/> <itemData name="Comment" defStyleNum="dsComment" spellChecking="false"/>+ <itemData name="Escaped Character" defStyleNum="dsSpecialChar" spellChecking="false"/> <itemData name="Content Boundary" defStyleNum="dsRegionMarker" spellChecking="false"/> </itemDatas> </highlighting>
xml/fasm.xml view
@@ -8,11 +8,10 @@ <!ENTITY hex "[0-9]&hex_cont;"> <!ENTITY oct_hex "[0-7]&oct_hex_cont;"> <!ENTITY bin_oct_hex "[01]*+(?:&oct_hex_cont;|(?=[byoqh]))">- <!ENTITY baseN "0x[0-9a-f]*+|&bin_oct_hex;|&oct_hex;|&hex;"> <!ENTITY number "[0-9]*+(?:to[0-9]+|(?=d?))"> ]>-<language name="Intel x86 (FASM)" section="Assembler" version="5" kateversion="5.62" extensions="*.asm;*.inc;*.fasm" mimetype="" author="rCX (rCX12@yahoo.com)" license="GPL">+<language name="Intel x86 (FASM)" section="Assembler" version="6" kateversion="5.62" extensions="*.asm;*.inc;*.fasm" mimetype="" author="rCX (rCX12@yahoo.com)" license="GPL"> <highlighting> <list name="registers"> <!-- General purpose registers -->@@ -1663,7 +1662,7 @@ <Detect2Chars attribute="Radix" context="#pop!$Hex" char="0" char1="x"/> <Detect2Chars attribute="Radix" context="#pop!$Hex" char="0" char1="X"/> <RegExpr attribute="Float" context="#pop!FloatSuffix" insensitive="1" String="&float;"/>- <RegExpr attribute="BaseN" context="#pop!BaseSuffix" insensitive="1" String="&baseN;"/>+ <RegExpr attribute="BaseN" context="#pop!BaseSuffix" insensitive="1" String="&bin_oct_hex;|&oct_hex;|&hex;"/> <RegExpr attribute="Number" context="#pop!NumberSuffix" insensitive="1" String="&number;"/> </context> <context name="FloatSuffix" attribute="Float" lineEndContext="#pop" fallthroughContext="#pop!CheckNumberSuffix">
xml/fsharp.xml view
@@ -9,7 +9,7 @@ <!ENTITY ESC "(\\[ntbr'"\\]|\\[0-9]{3}|\\x[0-9A-Fa-f]{2})"> <!-- OCaml character code escapes. --> <!ENTITY DEC "[0-9][0-9_]*"> <!-- Decimal digits with underscores. --> ]>-<language name="FSharp" version="8" kateversion="5.0" section="Sources" extensions="*.fs;*.fsi;*.fsx" mimetype="" priority="10" author="Bas Bossink (bas.bossink@gmail.com)" license="LGPL">+<language name="FSharp" version="9" kateversion="5.0" section="Sources" extensions="*.fs;*.fsi;*.fsx" mimetype="" priority="10" author="Bas Bossink (bas.bossink@gmail.com)" license="LGPL"> <highlighting> <list name="keywords">@@ -256,7 +256,7 @@ <itemDatas> <itemData name="Normal Text" defStyleNum="dsNormal"/> <itemData name="Identifier" defStyleNum="dsNormal"/>- <itemData name="Symbol" defStyleNum="dsNormal"/>+ <itemData name="Symbol" defStyleNum="dsOperator"/> <itemData name="Keyword" defStyleNum="dsKeyword"/> <itemData name="Core Data Type" defStyleNum="dsDataType"/> <itemData name="Decimal" defStyleNum="dsDecVal"/>
xml/glsl.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.vs;*.frag;*.fs;*.geom;*.gs;*.tcs;*.tes" mimetype="text/x-glslsrc" version="7" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL">+<language name="GLSL" section="3D" extensions="*.glsl;*.vert;*.vs;*.frag;*.fs;*.geom;*.gs;*.tcs;*.tes" mimetype="text/x-glslsrc" version="8" kateversion="5.0" author="Oliver Richers (o.richers@tu-bs.de)" license="LGPL"> <highlighting> <list name="keywords"> <item>break</item>@@ -1198,7 +1198,7 @@ <itemData name="Octal" defStyleNum="dsBaseN"/> <itemData name="Hex" defStyleNum="dsBaseN"/> <itemData name="Float" defStyleNum="dsFloat"/>- <itemData name="Symbol" defStyleNum="dsNormal"/>+ <itemData name="Symbol" defStyleNum="dsOperator"/> <itemData name="Preprocessor" defStyleNum="dsPreprocessor"/> <itemData name="Comment" defStyleNum="dsComment"/> </itemDatas>
xml/gnuassembler.xml view
@@ -43,7 +43,7 @@ --> -<language name="GNU Assembler" version="5" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">+<language name="GNU Assembler" version="7" kateversion="5.0" section="Assembler" extensions="*.s;*.S" mimetype="text/x-asm" author="John Zaitseff (J.Zaitseff@zap.org.au), Roland Pabel (roland@pabel.name), Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+"> <highlighting> <list name="keywords"> <item>.abort</item>@@ -235,7 +235,7 @@ <contexts> <context attribute="Normal Text" lineEndContext="#stay" name="Normal">- <RegExpr attribute="Label" context="#stay" String="[_\w\d-]*\s*:" />+ <RegExpr attribute="Label" context="#stay" String="[\.]?[_\w\d-]*\s*:" /> <keyword attribute="Keyword" context="#stay" String="keywords"/> <HlCOct attribute="Octal" context="#stay" /> <HlCHex attribute="Hex" context="#stay" />@@ -287,7 +287,7 @@ <itemData name="Char" defStyleNum="dsChar" /> <itemData name="String" defStyleNum="dsString" /> <itemData name="String Char" defStyleNum="dsSpecialChar" />- <itemData name="Symbol" defStyleNum="dsNormal" />+ <itemData name="Symbol" defStyleNum="dsOperator" /> <itemData name="Comment" defStyleNum="dsComment" /> <itemData name="Preprocessor" defStyleNum="dsPreprocessor" /> </itemDatas>
xml/go.xml view
@@ -26,7 +26,7 @@ --> -<language name="Go" version="6" kateversion="5.0" section="Sources" indenter="cstyle" extensions="*.go" author="Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+">+<language name="Go" version="7" kateversion="5.0" section="Sources" indenter="cstyle" extensions="*.go" author="Miquel Sabaté (mikisabate@gmail.com)" license="GPLv2+"> <highlighting> <list name="keywords"> <!-- Keywords have been taken from The Go Programming Language Specification -> Keywords section -->@@ -162,7 +162,7 @@ <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/> <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/> <itemData name="Char" defStyleNum="dsChar" spellChecking="false"/>- <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>+ <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/> </itemDatas> </highlighting> <general>
xml/haskell.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Haskell" version="16" kateversion="5.53" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell">+<language name="Haskell" version="17" kateversion="5.53" section="Sources" extensions="*.hs;*.chs;*.hs-boot" mimetype="text/x-haskell" author="Nicolas Wu (zenzike@gmail.com)" license="LGPL" indenter="haskell" style="haskell"> <highlighting> <list name="keywords"> <item>case</item>@@ -484,12 +484,12 @@ <RegExpr attribute="Octal" context="#stay" String="0[Oo][0-7]+"/> <RegExpr attribute="Hex" context="#stay" String="0[Xx][0-9A-Fa-f]+"/> <Int attribute="Decimal" context="#stay" />- <DetectChar attribute="Char" context="char" char="'" />+ <DetectChar attribute="Char" context="#stay" String="'(\\'|\\[^']+|[^\\\n])'" /> <!-- see https://github.com/jgm/skylighting/pull/40 --> <DetectChar attribute="String" context="string" char=""" /> <DetectChar attribute="Function Infix" context="infix" char="`"/> <Detect2Chars attribute="EnumFromTo" context="#stay" char ="." char1="." />- <AnyChar attribute="EnumFromTo" context="#stay" String="‥" />+ <DetectChar attribute="EnumFromTo" context="#stay" char="‥" /> <RegExpr attribute="Normal" context="Hamlet" String="\[[wxs]?hamlet\|" /> <StringDetect attribute="Normal" context="Julius" String="[julius|" />
+ xml/haskell.xml.patch view
@@ -0,0 +1,13 @@+diff --git a/skylighting-core/xml/haskell.xml b/skylighting-core/xml/haskell.xml+index 9c6cf4a..bdb65b5 100644+--- a/skylighting-core/xml/haskell.xml++++ b/skylighting-core/xml/haskell.xml+@@ -484,7 +484,7 @@+ <RegExpr attribute="Octal" context="#stay" String="0[Oo][0-7]+"/>+ <RegExpr attribute="Hex" context="#stay" String="0[Xx][0-9A-Fa-f]+"/>+ <Int attribute="Decimal" context="#stay" />+- <DetectChar attribute="Char" context="char" char="'" />++ <DetectChar attribute="Char" context="#stay" String="'(\\'|\\[^']+|[^\\\n])'" /> <!-- see https://github.com/jgm/skylighting/pull/40 -->+ <DetectChar attribute="String" context="string" char=""" />+ + <DetectChar attribute="Function Infix" context="infix" char="`"/>
xml/idris.xml view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <!-- Based on haskell.xml and idris.vim (https://github.com/idris-hackers/idris-vim/blob/6bdb44b85406b75e3b3a4fa265deab1dbe8c6ff1/syntax/idris.vim) -->-<language name="Idris" version="5" kateversion="5.0" section="Sources" extensions="*.idr" author="Alexander Shabalin" license="LGPL">+<language name="Idris" version="6" kateversion="5.0" section="Sources" extensions="*.idr" author="Alexander Shabalin" license="LGPL"> <highlighting> <list name="keywords"> <item>abstract</item>@@ -109,7 +109,6 @@ <DetectChar attribute="String" context="string" char=""" /> <Int attribute="Decimal" context="#stay" /> <RegExpr attribute="Hex" context="#stay" String="0[Xx][0-9A-Fa-f]+"/>- <RegExpr attribute="Octal" context="#stay" String="0[Xx][0-9A-Fa-f]+"/> <RegExpr attribute="Float" context="#stay" String="\d+\.\d+([eE][-+]?\d+)?" /> <RegExpr attribute="Type" context="#stay" String="([A-Z][a-zA-Z0-9_]*'*|_\|_)" /> <RegExpr attribute="Normal" context="#stay" String="[a-z][a-zA-Z0-9_]*'*" />@@ -159,7 +158,6 @@ <itemData name="String" defStyleNum="dsString" spellChecking="true" /> <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" /> <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" />- <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" /> <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" /> <itemData name="Type" defStyleNum="dsDataType" spellChecking="false" /> <itemData name="MetaVar" defStyleNum="dsOthers" spellChecking="false" />
xml/isocpp.xml view
@@ -24,7 +24,7 @@ <language name="ISO C++" section="Sources"- version="21"+ version="23" kateversion="5.0" indenter="cstyle" style="C++"@@ -410,7 +410,7 @@ </context> <context name="IntSuffixPattern" attribute="Error" lineEndContext="#pop#pop" fallthrough="true" fallthroughContext="NumericSuffixError">- <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="[Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?" />+ <RegExpr attribute="Standard Suffix" context="NumericSuffixError" String="([Uu][Ll]{0,2}|[Ll]{0,2}[Uu]?)\b" /> <!-- https://en.cppreference.com/w/cpp/language/user_literal#Standard_library --> <RegExpr attribute="Standard Classes" context="NumericSuffixError" String="(?:i[fl]?|min|[mun]?s|[hyd])\b" /> <DetectChar attribute="Error" context="#pop!NumericUserSuffixPattern" char="_" lookAhead="true" />@@ -806,8 +806,8 @@ <itemData name="String" defStyleNum="dsString" spellChecking="true" /> <itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false" /> <itemData name="Comment" defStyleNum="dsComment" spellChecking="true" />- <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false" />- <itemData name="Separator Symbol" defStyleNum="dsNormal" spellChecking="false" />+ <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false" />+ <itemData name="Separator Symbol" defStyleNum="dsOperator" spellChecking="false" /> <itemData name="Data Members (m_*)" defStyleNum="dsVariable" spellChecking="false" /> <itemData name="Globals (g_*)" defStyleNum="dsVariable" spellChecking="false" /> <itemData name="Statics (s_*)" defStyleNum="dsVariable" spellChecking="false" />
xml/javascript.xml view
@@ -17,7 +17,7 @@ * QML * CoffeeScript (embedded) -->-<language name="JavaScript" version="17" kateversion="5.53" section="Scripts" extensions="*.js;*.kwinscript;*.julius"+<language name="JavaScript" version="18" kateversion="5.53" section="Scripts" extensions="*.js;*.kwinscript;*.julius" mimetype="text/x-javascript;application/x-javascript;application/javascript;text/javascript" indenter="cstyle" author="Anders Lund (anders@alweb.dk), Joseph Wenninger (jowenn@kde.org), Whitehawk Stormchaser (zerokode@gmx.net)" license=""> @@ -1791,7 +1791,6 @@ <RegExpr attribute="Object Member" context="#stay" String="&identifier;(?=\s*\.)" /> <RegExpr attribute="Object Member" context="#pop!NoRegExp" String="&identifier;" /> <IncludeRules context="NoRegExp" />- <DetectSpaces /> <!-- Generic Functions --> <keyword attribute="Function Name" context="#pop!NoRegExp" String="functions" />
xml/julia.xml view
@@ -33,7 +33,7 @@ <!ENTITY hex "[0-9a-fA-F]([0-9a-fA-F_]*[0-9a-fA-F])?"> ]> -<language name="Julia" section="Sources" version="9" kateversion="5.0" extensions="*.jl" casesensitive="1" priority="5" license="MIT">+<language name="Julia" section="Sources" version="10" kateversion="5.0" extensions="*.jl" casesensitive="1" priority="5" license="MIT"> <highlighting> <list name="block_begin">@@ -535,7 +535,7 @@ <RegExpr context="_adjoint" attribute="Variable" String="[a-zA-Z]\w*(?=')" /> <RegExpr context="_adjoint" attribute="Float" String="(∫(\.∫)?|\.∫)([eEfF][+-]?\d+)?(im)?(?=')" /> <RegExpr context="_adjoint" attribute="Delimiter" String="[\)\]}](?=')" />- <RegExpr context="_adjoint" attribute="Operator" String="\.'(?=')" />+ <!-- <RegExpr context="_adjoint" attribute="Operator" String="\.'(?=')" /> --> <!-- If ' is not the adjoint operator, it starts a character or an unterminated char --> <RegExpr context="#stay" attribute="Char" String="'[^']*(''[^']*)*'(?=[^']|$)" />
xml/latex.xml view
@@ -4,7 +4,7 @@ <!ENTITY bullet "×"> <!ENTITY envname "[a-zA-Z]+\*?"> ]>-<language name="LaTeX" version="16" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" >+<language name="LaTeX" version="17" section="Markup" kateversion="5.0" priority="10" extensions="*.tex;*.ltx;*.dtx;*.sty;*.cls;*.bbx;*.cbx;*.lbx;*.tikz;*.pgf" mimetype="text/x-tex" casesensitive="1" author="Jeroen Wijnhout (Jeroen.Wijnhout@kdemail.net)+Holger Danielsson (holger.danielsson@versanet.de)+Michel Ludwig (michel.ludwig@kdemail.net)+Thomas Braun (thomas.braun@virtuell-zuhause.de)" license="LGPL" > <highlighting> <!-- NOTE: Keywords of kind "\something" do not need a delimiter before "\". Using a DetectChar rule with lookAhead to detect "\" at the beginning
xml/lilypond.xml view
@@ -43,11 +43,11 @@ <!ENTITY engraver0 "Accidental|Ambitus|Arpeggio|Auto_beam|Axis_group|Balloon|Bar|Bar_number|Beam|Bend|Break_align|Breathing_sign|Chord_name|Chord_tremolo|Clef|Cluster_spanner|Collision|Completion_heads|Custos|Default_bar_line|Dot_column|Dots|Drum_notes|Dynami_align|Dynamic|Episema|Extender|Figured_bass|Figured_bass_position|Fingering|Font_size|Forbid_line_break|Fretboard|Glissando|Grace_beam|Grace|Grace_spacing|Grid_line_span|Grid_point|Grob_pq|Hara_kiri|Horizontal_bracket"> <!ENTITY engraver1 "Hyphen|Instrument_name|Instrument_switch|Key|Laissez_vibrer|Ledger_line|Ligature_bracket|Lyric|Mark|Measure_grouping|Melody|Mensural_ligature|Metronome_mark|Multi_measure_rest|New_dynamic|New_fingering|Note_head_line|Note_heads|Note_name|Note_spacing|Ottava_spanner|Output_property|Page_turn|Paper_column|Parenthesis|Part_combine|Percent_repeat|Phrasing_slur|Piano_pedal_align|Piano_pedal|Pitch_squash|Pitched_trill|Repeat_acknowledge|Repeat_tie|Rest_collision|Rest|Rhythmic_column|Scheme|Script_column|Script|Script_row"> <!ENTITY engraver2 "Separating_line_group|Slash_repeat|Slur|Spacing|Span_arpeggio|Span_bar|Spanner_break_forbid|Staff_collecting|Staff_symbol|Stanza_number_align|Stanza_number|Stem|String_number|Swallow|System_start_delimiter|Tab_harmonic|Tab_note_heads|Tab_staff_symbol|Text|Text_spanner|Tie|Time_signature|Trill_spanner|Tuplet|Tweak|Vaticana_ligature|Vertical_align|Vertically_spaced_contexts|Volta">- <!ENTITY engravers00 "(&engraver0;)_engraver">- <!ENTITY engravers01 "(&engraver1;)_engraver">- <!ENTITY engravers02 "(&engraver2;)_engraver">- <!ENTITY engravers1 "(&performer;)_performer">- <!ENTITY engravers2 "(&translator;)_translator">+ <!ENTITY engravers00 "(?:&engraver0;)_engraver">+ <!ENTITY engravers01 "(?:&engraver1;)_engraver">+ <!ENTITY engravers02 "(?:&engraver2;)_engraver">+ <!ENTITY engravers1 "(?:&performer;)_performer">+ <!ENTITY engravers2 "(?:&translator;)_translator"> <!ENTITY schemename "[a-zA-Z#][^\s(){}[\];$"]*"> <!ENTITY schemefunc0 "\b(define|defined\?|define\*(-public)?|define-(\*|builtin-markup-(list-)?command|class|(extra-)?display-method|fonts?|grob-property|ly-syntax(-loc|-simple)?|macro(-public)?|markup-(list-)command|method|module|music-function|post-event-display-method|public(-macro|-toplevel)?|safe-public|span-event-display-method)|defmacro(\*(-public)?)?|lambda\*?|and|or|if|cond|case|let\*?|letrec|begin|do|delay|set!|else|(quasi)?quote|unquote(-splicing)?|(define|let|letrec)-syntax|syntax-rules)(?=($|\s|\)))">@@ -56,7 +56,7 @@ ]> <language name="LilyPond" section="Other" style="lilypond" indenter="lilypond"- version="8" kateversion="5.0"+ version="9" kateversion="5.0" extensions="*.ly;*.LY;*.ily;*.ILY;*.lyi;*.LYI" mimetype="text/x-lilypond" author="Wilbert Berendsen (info@wilbertberendsen.nl)" license="LGPL">@@ -1087,11 +1087,11 @@ <DetectChar char="{" attribute="Keyword" context="sectionrules" beginRegion="section"/> <keyword String="contexts" attribute="Context"/> <keyword String="deprecatedcontexts" attribute="Deprecated Context"/>- <RegExpr String="("?)\b(&engravers00;)\b\1" attribute="Engraver"/>- <RegExpr String="("?)\b(&engravers01;)\b\1" attribute="Engraver"/>- <RegExpr String="("?)\b(&engravers02;)\b\1" attribute="Engraver"/>- <RegExpr String="("?)\b(&engravers1;)\b\1" attribute="Engraver"/>- <RegExpr String="("?)\b(&engravers2;)\b\1" attribute="Engraver"/>+ <RegExpr String="("?)\b(?:&engravers00;)\b\1" attribute="Engraver"/>+ <RegExpr String="("?)\b(?:&engravers01;)\b\1" attribute="Engraver"/>+ <RegExpr String="("?)\b(?:&engravers02;)\b\1" attribute="Engraver"/>+ <RegExpr String="("?)\b(?:&engravers1;)\b\1" attribute="Engraver"/>+ <RegExpr String="("?)\b(?:&engravers2;)\b\1" attribute="Engraver"/> <keyword String="layoutobjects" attribute="Layout Object"/> <keyword String="properties" attribute="Property"/> <RegExpr String="\b(&headervars;|&papervars;|&layoutvars;)\b" attribute="Variable"/>
xml/makefile.xml view
@@ -12,7 +12,7 @@ <!-- v10 by Peter J. Mello <admin@petermello.net> Add recognition of POSIX 2013 '::=' operator for variable assignment --> <language name="Makefile" section="Other"- version="11" kateversion="5.0"+ version="12" kateversion="5.0" extensions="GNUmakefile;Makefile;makefile;GNUmakefile.*;Makefile.*;makefile.*;*.mk" mimetype="text/x-makefile" priority="11" author="Per Wigren (wigren@home.se)" license="">@@ -384,6 +384,8 @@ TODO :[range] --> <!-- Modifiers without arguments:-->+ <!-- :Ox Randomize words in variable. -->+ <Detect2Chars attribute="Builtin" context="#pop!expect}" char="O" char1="x"/> <!-- :E Replaces each word in the variable with its suffix. :H Replaces each word in the variable with everything but the last component.@@ -398,8 +400,6 @@ <AnyChar attribute="Builtin" context="#pop!expect}" String="EHOQRTuLP"/> <!-- :sh If the variable is non-empty it is run as a command and the output becomes the new value. --> <Detect2Chars attribute="Builtin" context="#pop!expect}" char="s" char1="h"/>- <!-- :Ox Randomize words in variable. -->- <Detect2Chars attribute="Builtin" context="#pop!expect}" char="O" char1="x"/> <!-- :tA Attempt to convert variable to an absolute path using realpath(3),--> <Detect2Chars attribute="Builtin" context="#pop!expect}" char="t" char1="A"/> <!-- :tl Converts variable to lower-case letters.-->
xml/mediawiki.xml view
@@ -7,7 +7,7 @@ <!ENTITY wikiLinkWithDescription "\[\[[^]|]*\|[^]]*\]\]"> <!ENTITY wikiLinkWithoutDescription "\[\[[^]|]*\]\]"> ]>-<language name="MediaWiki" section="Markup" version="10" kateversion="5.53" extensions="*.mediawiki" mimetype="" license="FDL" >+<language name="MediaWiki" section="Markup" version="11" kateversion="5.53" extensions="*.mediawiki" mimetype="" license="FDL" > <highlighting> <contexts> <context attribute="Normal" lineEndContext="#stay" name="normal" >@@ -82,7 +82,6 @@ <RegExpr String="={6,} *$" context="#pop" attribute="Normal" /> <RegExpr String="={5,5} *$" context="#pop" attribute="Section" /> <RegExpr String="={1,4} *$" context="#pop" attribute="Normal" />- <RegExpr String="={1,4} *$" context="#pop" attribute="Normal" /> <RegExpr String="=*[^=]+$" context="#pop" attribute="Normal" /> </context> <context attribute="Section" lineEndContext="#pop" name="Section4" >@@ -484,7 +483,6 @@ <context name="UnderlinedItalic" attribute="ItalicUnderlined" lineEndContext="#pop" > <IncludeRules context="FindTemplate" /> <Detect2Chars char="'" char1="'" context="#pop" attribute="WikiTag" />- <StringDetect String="'''" context="ItalicUnderlinedBold" attribute="WikiTag" /> <IncludeRules context="FindWikiLinkBeingItalicUnderlined" /> </context> <context name="BoldItalicUnderlined" attribute="BoldItalicUnderlined" lineEndContext="#pop" >
xml/metafont.xml view
@@ -6,7 +6,7 @@ --> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Metapost/Metafont" section="Markup" version="9" kateversion="5.0"+<language name="Metapost/Metafont" section="Markup" version="10" kateversion="5.0" extensions="*.mp;*.mps;*.mpost;*.mf" mimetype="text/x-metapost" author="Yedvilun (yedvilun@gmail.com)" license="LGPL"> <highlighting>@@ -900,10 +900,9 @@ <!--TeX mode : we just define generic TeX commands--> <!--syntax from highlighting file latex.xml--> <context name="TeXMode" attribute="TeX" lineEndContext="#stay">+ <Detect2Chars char="\" char1="(" attribute="Math" context="MathMode" beginRegion="mathMode" /> <DetectChar char="\" attribute="Keyword" context="ContrSeq"/> <DetectChar char="$" attribute="Math" context="MathMode" beginRegion="mathMode" />-- <Detect2Chars char="\" char1="(" attribute="Math" context="MathMode" beginRegion="mathMode" /> <RegExpr String="\betex\b" insensitive="1" attribute="Identifier" context="#pop" endRegion="TeXblock"/> </context> <context name="ContrSeq" attribute="Keyword" lineEndContext="#pop">@@ -926,11 +925,9 @@ <!-- math mode: starting with $ or \( --> <context name="MathMode" attribute="Math" lineEndContext="#stay"> <Detect2Chars char="$" char1="$" attribute="Error" context="#stay" />+ <Detect2Chars char="\" char1=")" attribute="Math" context="#pop" endRegion="mathMode" /> <DetectChar char="\" attribute="Keyword Mathmode" context="MathContrSeq"/> <DetectChar char="$" attribute="Math" context="#pop" endRegion="mathMode" />- <Detect2Chars char="\" char1=")" attribute="Math" context="#pop" endRegion="mathMode" />-- <Detect2Chars char="\" char1="]" attribute="Error" context="#stay" /> </context> <context name="MathContrSeq" attribute="Keyword Mathmode" lineEndContext="#pop"> <DetectChar char="×" attribute="Bullet" context="#stay"/>
xml/mustache.xml view
@@ -43,7 +43,7 @@ * v1 [2019-02-10]: Initial version --> -<language name="Mustache/Handlebars (HTML)" version="6" kateversion="5.53"+<language name="Mustache/Handlebars (HTML)" version="7" kateversion="5.53" section="Markup" priority="1" mimetype="" extensions="*.mustache;*.handlebars;*.hbs;*.ractive;*.hogan;*.hulk;*.html.mst;*.html.mu;*.html.rac" author="Nibaldo González (nibgonz@gmail.com), based on the HTML highlighter by Wilbert Berendsen (wilbert@kde.nl)"@@ -277,7 +277,6 @@ <StringDetect context="#pop" attribute="Comment" String="-->" endRegion="Comment" /> <RegExpr context="#stay" attribute="Error" String="-(?:-(?!->))+" /> <IncludeRules context="MustacheVariables" />- <DetectSpaces /> <IncludeRules context="##Comments" /> </context>
xml/objectivec.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Objective-C" version="6" kateversion="5.0" section="Sources" extensions="*.m;*.h" mimetype="text/x-objc-src;text/x-c-hdr">+<language name="Objective-C" version="7" kateversion="5.0" section="Sources" extensions="*.m;*.h" mimetype="text/x-objc-src;text/x-c-hdr"> <highlighting> <list name="keywords"> <item>break</item>@@ -121,7 +121,7 @@ <itemData name="String" defStyleNum="dsString"/> <itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false"/> <itemData name="Comment" defStyleNum="dsComment"/>- <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>+ <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/> <itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/> <itemData name="Prep. Lib" defStyleNum="dsImport" spellChecking="false"/> </itemDatas>
xml/objectivecpp.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Objective-C++" version="8" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objcpp-src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su">+<language name="Objective-C++" version="10" kateversion="5.0" section="Sources" extensions="*.mm;*.M;*.h" mimetype="text/x-objcpp-src;text/x-c-hdr" author="Gennady Telegin (gepo@lvk.cs.msu.su"> <highlighting> <list name="keywords"> <item>break</item>@@ -184,8 +184,6 @@ <keyword attribute="Extensions" context="#stay" String="extensions" /> - <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />- <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" /> <AnyChar attribute="Symbol" context="#stay" String=":!%&()+,-/.*<=>?[]{|}~^;"/> </context> @@ -276,7 +274,7 @@ <itemData name="String" defStyleNum="dsString"/> <itemData name="String Char" defStyleNum="dsSpecialChar" spellChecking="false"/> <itemData name="Comment" defStyleNum="dsComment"/>- <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>+ <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/> <itemData name="Preprocessor" defStyleNum="dsPreprocessor" spellChecking="false"/> <itemData name="Prep. Lib" defStyleNum="dsImport" spellChecking="false"/> <itemData name="Region Marker" defStyleNum="dsRegionMarker"/>
xml/octave.xml view
@@ -21,7 +21,7 @@ --> <!-- low priority to let Objective-C win for .m files per default -->-<language name="Octave" version="10" kateversion="5.0" section="Scientific" extensions="*.octave;*.m;*.M" priority="-9" mimetype="text/octave" casesensitive="1" license="GPL" author="Luis Silvestre and Federico Zenith">+<language name="Octave" version="11" kateversion="5.0" section="Scientific" extensions="*.octave;*.m;*.M" priority="-9" mimetype="text/octave" casesensitive="1" license="GPL" author="Luis Silvestre and Federico Zenith"> <highlighting> @@ -2784,8 +2784,8 @@ <Detect2Chars context="#stay" attribute="Operator" char="+" char1="+"/> <Detect2Chars context="#stay" attribute="Operator" char="-" char1="-"/> <Detect2Chars context="#stay" attribute="Operator" char="*" char1="*"/>- <Detect2Chars context="#stay" attribute="Operator" char="." char1="*"/> <StringDetect context="#stay" attribute="Operator" String=".**"/>+ <Detect2Chars context="#stay" attribute="Operator" char="." char1="*"/> <Detect2Chars context="#stay" attribute="Operator" char="." char1="^"/> <Detect2Chars context="#stay" attribute="Operator" char="." char1="/"/> <Detect2Chars context="#stay" attribute="Operator" char="." char1="'"/>
xml/opencl.xml view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <language name="OpenCL" section="Sources"- version="7" kateversion="5.0"+ version="8" kateversion="5.0" indenter="cstyle" extensions="*.cl" mimetype="text/x-clsrc"@@ -242,7 +242,7 @@ <itemData name="String" defStyleNum="dsString"/> <itemData name="String Char" defStyleNum="dsChar"/> <itemData name="Comment" defStyleNum="dsComment"/>- <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>+ <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/> <itemData name="Preprocessor" defStyleNum="dsOthers" spellChecking="false"/> <itemData name="Prep. Lib" defStyleNum="dsOthers" spellChecking="false"/> <!--,Qt::darkYellow,Qt::yellow,false,false)); --> <itemData name="Region Marker" defStyleNum="dsRegionMarker" spellChecking="false"/>
xml/perl.xml view
@@ -39,7 +39,7 @@ Enhance tr/// and y/// support. -->-<language name="Perl" version="15" 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" version="16" 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"> <highlighting> <list name="keywords"> <item>if</item>@@ -629,7 +629,6 @@ <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=%1)" dynamic="true" /> <RegExpr attribute="Operator" context="#pop#pop" String="%1[cgimosx]*" dynamic="true" endRegion="Pattern" /> <IncludeRules context="regex_pattern_internal_ip" />- <RegExpr attribute="Pattern Internal Operator" context="#stay" String="\$(?=\%1)" dynamic="true" /> </context> <context name="pattern_brace" attribute="Pattern" lineEndContext="#stay"> <RegExpr attribute="Operator" context="#pop#pop" String="\}[cgimosx]*" endRegion="Pattern" />
xml/php.xml view
@@ -70,63 +70,78 @@ --> <!DOCTYPE language SYSTEM "language.dtd" [- <!ENTITY types "int|integer|bool|boolean|float|double|real|string|array|object">+ <!ENTITY types "integer|bool|boolean|float|double|real|string|array|object">+ <!ENTITY varid "[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*">+ <!ENTITY LNUM "[0-9]++(_[0-9]++)*+">+ <!ENTITY EXPONENT "[eE][+-]?&LNUM;">+ <!ENTITY float "\b&LNUM;(\.(&LNUM;)?(&EXPONENT;)?|&EXPONENT;)|\.&LNUM;(&EXPONENT;)?"> ]> -<language name="PHP/PHP" indenter="cstyle" version="17" kateversion="5.53" section="Scripts" extensions="" priority="5" mimetype="" hidden="true">+<language name="PHP/PHP" indenter="cstyle" version="19" kateversion="5.53" section="Scripts" extensions="" priority="5" mimetype="" hidden="true"> <highlighting>+ <!-- https://secure.php.net/manual/en/reserved.keywords.php --> <list name="control structures"> <!-- PHP 5.6 -->+ <item>break</item> <item>case</item>+ <item>catch</item>+ <item>continue</item> <item>default</item>- <item>if</item>+ <item>die</item>+ <item>do</item> <item>else</item> <item>elseif</item>- <item>while</item>- <item>do</item>- <item>for</item>- <item>foreach</item>- <item>break</item>- <item>continue</item>- <item>switch</item>- <item>return</item>- <item>require</item>- <item>include</item>- <item>endif</item>- <item>endwhile</item> <item>endfor</item> <item>endforeach</item>+ <item>endif</item> <item>endswitch</item>+ <item>endwhile</item>+ <item>exit</item>+ <item>finally</item>+ <item>for</item>+ <item>foreach</item>+ <item>goto</item>+ <item>if</item>+ <item>return</item>+ <item>switch</item>+ <item>throw</item>+ <item>try</item>+ <item>while</item>+ <item>yield</item>++ <!-- PHP 8.0 -->+ <item>match</item> </list> <!-- https://secure.php.net/manual/en/reserved.keywords.php -->+ <list name="operators">+ <item>and</item>+ <item>or</item>+ <item>xor</item>+ </list>++ <!-- https://secure.php.net/manual/en/reserved.keywords.php --> <!-- https://secure.php.net/manual/en/reserved.other-reserved-words.php -->+ <!-- + self + parent + clone (also reserved) --> <list name="keywords"> <!-- PHP 5.6 --> <item>__halt_compiler</item> <item>abstract</item>- <item>and</item>- <item>array</item> <item>as</item> <item>callable</item>- <item>catch</item> <item>class</item> <item>clone</item> <item>const</item> <item>declare</item>- <item>die</item> <item>echo</item> <item>empty</item> <item>enddeclare</item> <item>eval</item>- <item>exit</item> <item>extends</item> <item>final</item>- <item>finally</item> <item>function</item> <item>global</item>- <item>goto</item> <item>implements</item> <item>include</item> <item>include_once</item>@@ -137,7 +152,6 @@ <item>list</item> <item>namespace</item> <item>new</item>- <item>or</item> <item>print</item> <item>private</item> <item>protected</item>@@ -145,31 +159,42 @@ <item>require</item> <item>require_once</item> <item>static</item>- <item>throw</item> <item>trait</item>- <item>try</item> <item>unset</item> <item>use</item> <item>var</item>- <item>xor</item>- <item>yield</item> + <item>parent</item>+ <item>self</item>+ <!-- PHP 7.0 -->- <item>bool</item> <item>false</item>+ <item>numeric</item>+ <item>null</item>+ <item>resource</item>+ <item>true</item>++ <!-- PHP 7.4 -->+ <item>fn</item>+ </list>++ <list name="types">+ <!-- PHP 5.6 -->+ <item>array</item>++ <!-- PHP 7.0 -->+ <item>bool</item> <item>float</item> <item>int</item> <item>mixed</item>- <item>null</item>- <item>numeric</item>- <item>object</item>- <item>resource</item> <item>string</item>- <item>true</item> <!-- PHP 7.1 --> <item>iterable</item> <item>void</item>++ <!-- PHP 7.2 -->+ <item>object</item> </list> <!-- https://secure.php.net/manual/en/reserved.keywords.php -->@@ -177,7 +202,6 @@ <list name="constants"> <!-- PHP 5.6 (Compile-Time Constants) --> <item>__CLASS__</item>- <item>__COMPILER_HALT_OFFSET__</item> <item>__DIR__</item> <item>__FILE__</item> <item>__FUNCTION__</item>@@ -228,13 +252,12 @@ <item>E_USER_ERROR</item> <item>E_USER_WARNING</item> <item>E_USER_NOTICE</item>+ <item>E_RECOVERABLE_ERROR</item> <item>E_DEPRECATED</item> <item>E_USER_DEPRECATED</item> <item>E_ALL</item> <item>E_STRICT</item>- <item>E_COMPILE_ERROR</item>- <item>E_COMPILE_WARNING</item>- <item>E_RECOVERABLE_ERROR</item>+ <item>__COMPILER_HALT_OFFSET__</item> <!-- PHP 7.0 (Core Pre-Defined Constants) --> <item>PHP_INT_MIN</item>@@ -246,6 +269,10 @@ <item>PHP_FLOAT_MIN</item> <item>PHP_FLOAT_MAX</item> + <!-- PHP 7.4 (Core Pre-Defined Constants) -->+ <item>PHP_WINDOWS_EVENT_CTRL_C</item>+ <item>PHP_WINDOWS_EVENT_CTRL_BREAK</item>+ <!-- Undocumented, badly documented or outdated constants --> <item>ALT_DIGITS</item> <item>CIT_CALL_TOSTRING</item>@@ -654,9 +681,12 @@ <item>CRYPT_MD5</item> <item>CRYPT_SALT_LENGTH</item> <item>CRYPT_STD_DES</item>+ <item>CRYPT_SHA256</item>+ <item>CRYPT_SHA512</item> <item>CURLAUTH_ANY</item> <item>CURLAUTH_ANYSAFE</item> <item>CURLAUTH_BASIC</item>+ <item>CURLAUTH_BEARER</item> <item>CURLAUTH_DIGEST</item> <item>CURLAUTH_GSSAPI</item> <item>CURLAUTH_GSSNEGOTIATE</item>@@ -747,7 +777,9 @@ <item>CURLFTP_CREATE_DIR_RETRY</item> <item>CURLHEADER_SEPARATE</item> <item>CURLHEADER_UNIFIED</item>+ <item>CURLINFO_APPCONNECT_TIME_T</item> <item>CURLINFO_CONNECT_TIME</item>+ <item>CURLINFO_CONNECT_TIME_T</item> <item>CURLINFO_CONTENT_LENGTH_DOWNLOAD</item> <item>CURLINFO_CONTENT_LENGTH_DOWNLOAD_T</item> <item>CURLINFO_CONTENT_LENGTH_UPLOAD</item>@@ -755,6 +787,7 @@ <item>CURLINFO_CONTENT_TYPE</item> <item>CURLINFO_EFFECTIVE_URL</item> <item>CURLINFO_FILETIME</item>+ <item>CURLINFO_FILETIME_T</item> <item>CURLINFO_HEADER_OUT</item> <item>CURLINFO_HEADER_SIZE</item> <item>CURLINFO_HTTP_CODE</item>@@ -762,7 +795,9 @@ <item>CURLINFO_LOCAL_IP</item> <item>CURLINFO_LOCAL_PORT</item> <item>CURLINFO_NAMELOOKUP_TIME</item>+ <item>CURLINFO_NAMELOOKUP_TIME_T</item> <item>CURLINFO_PRETRANSFER_TIME</item>+ <item>CURLINFO_PRETRANSFER_TIME_T</item> <item>CURLINFO_PRIMARY_IP</item> <item>CURLINFO_PRIMARY_PORT</item> <item>CURLINFO_PRIVATE</item>@@ -770,6 +805,7 @@ <item>CURLINFO_PROXY_SSL_VERIFYRESULT</item> <item>CURLINFO_REDIRECT_COUNT</item> <item>CURLINFO_REDIRECT_TIME</item>+ <item>CURLINFO_REDIRECT_TIME_T</item> <item>CURLINFO_REDIRECT_URL</item> <item>CURLINFO_REQUEST_SIZE</item> <item>CURLINFO_RESPONSE_CODE</item>@@ -784,7 +820,9 @@ <item>CURLINFO_SPEED_UPLOAD_T</item> <item>CURLINFO_SSL_VERIFYRESULT</item> <item>CURLINFO_STARTTRANSFER_TIME</item>+ <item>CURLINFO_STARTTRANSFER_TIME_T</item> <item>CURLINFO_TOTAL_TIME</item>+ <item>CURLINFO_TOTAL_TIME_T</item> <item>CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE</item> <item>CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE</item> <item>CURLMOPT_MAXCONNECTS</item>@@ -815,14 +853,17 @@ <item>CURLOPT_COOKIE</item> <item>CURLOPT_COOKIEFILE</item> <item>CURLOPT_COOKIEJAR</item>+ <item>CURLOPT_COOKIELIST</item> <item>CURLOPT_COOKIESESSION</item> <item>CURLOPT_CRLF</item> <item>CURLOPT_CUSTOMREQUEST</item> <item>CURLOPT_DEFAULT_PROTOCOL</item>+ <item>CURLOPT_DISALLOW_USERNAME_IN_URL</item> <item>CURLOPT_DNS_CACHE_TIMEOUT</item> <item>CURLOPT_DNS_INTERFACE</item> <item>CURLOPT_DNS_LOCAL_IP4</item> <item>CURLOPT_DNS_LOCAL_IP6</item>+ <item>CURLOPT_DNS_SHUFFLE_ADDRESSES</item> <item>CURLOPT_DNS_USE_GLOBAL_CACHE</item> <item>CURLOPT_EGDSOCKET</item> <item>CURLOPT_ENCODING</item>@@ -843,9 +884,12 @@ <item>CURLOPT_FTP_SSL</item> <item>CURLOPT_FTP_USE_EPRT</item> <item>CURLOPT_FTP_USE_EPSV</item>+ <item>CURLOPT_HAPPY_EYEBALLS_TIMEOUT_MS</item>+ <item>CURLOPT_HAPROXYPROTOCOL</item> <item>CURLOPT_HEADER</item> <item>CURLOPT_HEADERFUNCTION</item> <item>CURLOPT_HEADEROPT</item>+ <item>CURLOPT_HTTP09_ALLOWED</item> <item>CURLOPT_HTTP200ALIASES</item> <item>CURLOPT_HTTPAUTH</item> <item>CURLOPT_HTTPGET</item>@@ -905,6 +949,7 @@ <item>CURLOPT_PROXY_SSL_OPTIONS</item> <item>CURLOPT_PROXY_SSL_VERIFYHOST</item> <item>CURLOPT_PROXY_SSL_VERIFYPEER</item>+ <item>CURLOPT_PROXY_TLS13_CIPHERS</item> <item>CURLOPT_PROXY_TLSAUTH_PASSWORD</item> <item>CURLOPT_PROXY_TLSAUTH_TYPE</item> <item>CURLOPT_PROXY_TLSAUTH_USERNAME</item>@@ -925,6 +970,7 @@ <item>CURLOPT_SHARE</item> <item>CURLOPT_SOCKS5_AUTH</item> <item>CURLOPT_SSH_AUTH_TYPES</item>+ <item>CURLOPT_SSH_COMPRESSION</item> <item>CURLOPT_SSH_HOST_PUBLIC_KEY_MD5</item> <item>CURLOPT_SSH_PRIVATE_KEYFILE</item> <item>CURLOPT_SSH_PUBLIC_KEYFILE</item>@@ -949,12 +995,17 @@ <item>CURLOPT_STREAM_WEIGHT</item> <item>CURLOPT_SUPPRESS_CONNECT_HEADERS</item> <item>CURLOPT_TCP_FASTOPEN</item>+ <item>CURLOPT_TCP_KEEPALIVE</item>+ <item>CURLOPT_TCP_KEEPIDLE</item>+ <item>CURLOPT_TCP_KEEPINTVL</item> <item>CURLOPT_TCP_NODELAY</item> <item>CURLOPT_TFTP_NO_OPTIONS</item> <item>CURLOPT_TIMECONDITION</item> <item>CURLOPT_TIMEOUT</item> <item>CURLOPT_TIMEOUT_MS</item> <item>CURLOPT_TIMEVALUE</item>+ <item>CURLOPT_TIMEVALUE_LARGE</item>+ <item>CURLOPT_TLS13_CIPHERS</item> <item>CURLOPT_TRANSFERTEXT</item> <item>CURLOPT_UNIX_SOCKET_PATH</item> <item>CURLOPT_UNRESTRICTED_AUTH</item>@@ -967,6 +1018,25 @@ <item>CURLOPT_WRITEFUNCTION</item> <item>CURLOPT_WRITEHEADER</item> <item>CURLOPT_XOAUTH2_BEARER</item>+ <item>CURLSSH_AUTH_GSSAPI</item>+ <item>CURL_HTTP_VERSION_2_0</item>+ <item>CURL_LOCK_DATA_CONNECT</item>+ <item>CURL_LOCK_DATA_PSL</item>+ <item>CURL_VERSION_ALTSVC</item>+ <item>CURL_VERSION_ASYNCHDNS</item>+ <item>CURL_VERSION_BROTLI</item>+ <item>CURL_VERSION_CONV</item>+ <item>CURL_VERSION_CURLDEBUG</item>+ <item>CURL_VERSION_DEBUG</item>+ <item>CURL_VERSION_GSSAPI</item>+ <item>CURL_VERSION_GSSNEGOTIATE</item>+ <item>CURL_VERSION_IDN</item>+ <item>CURL_VERSION_MULTI_SSL</item>+ <item>CURL_VERSION_NTLM</item>+ <item>CURL_VERSION_NTLM_WB</item>+ <item>CURL_VERSION_SPNEGO</item>+ <item>CURL_VERSION_SSPI</item>+ <item>CURL_VERSION_TLSAUTH_SRP</item> <item>CURLPAUSE_ALL</item> <item>CURLPAUSE_CONT</item> <item>CURLPAUSE_RECV</item>@@ -1428,6 +1498,8 @@ <item>FILTER_FLAG_ENCODE_AMP</item> <item>FILTER_FLAG_ENCODE_HIGH</item> <item>FILTER_FLAG_ENCODE_LOW</item>+ <item>FILTER_FLAG_HOSTNAME</item>+ <item>FILTER_FLAG_HOST_REQUIRED</item> <item>FILTER_FLAG_IPV4</item> <item>FILTER_FLAG_IPV6</item> <item>FILTER_FLAG_NONE</item>@@ -1436,12 +1508,15 @@ <item>FILTER_FLAG_NO_RES_RANGE</item> <item>FILTER_FLAG_PATH_REQUIRED</item> <item>FILTER_FLAG_QUERY_REQUIRED</item>+ <item>FILTER_FLAG_SCHEME_REQUIRED</item>+ <item>FILTER_FLAG_STRIP_BACKTICK</item> <item>FILTER_FLAG_STRIP_HIGH</item> <item>FILTER_FLAG_STRIP_LOW</item> <item>FILTER_FORCE_ARRAY</item> <item>FILTER_NULL_ON_FAILURE</item> <item>FILTER_REQUIRE_ARRAY</item> <item>FILTER_REQUIRE_SCALAR</item>+ <item>FILTER_SANITIZE_ADD_SLASHES</item> <item>FILTER_SANITIZE_EMAIL</item> <item>FILTER_SANITIZE_ENCODED</item> <item>FILTER_SANITIZE_MAGIC_QUOTES</item>@@ -1453,6 +1528,7 @@ <item>FILTER_SANITIZE_URL</item> <item>FILTER_UNSAFE_RAW</item> <item>FILTER_VALIDATE_BOOLEAN</item>+ <item>FILTER_VALIDATE_DOMAIN</item> <item>FILTER_VALIDATE_EMAIL</item> <item>FILTER_VALIDATE_FLOAT</item> <item>FILTER_VALIDATE_INT</item>@@ -1807,6 +1883,7 @@ <item>IMG_COLOR_STYLEDBRUSHED</item> <item>IMG_COLOR_TILED</item> <item>IMG_COLOR_TRANSPARENT</item>+ <item>IMG_COLOR_TRANSLATE</item> <item>IMG_EFFECT_ALPHABLEND</item> <item>IMG_EFFECT_MULTIPLY</item> <item>IMG_EFFECT_NORMAL</item>@@ -1824,6 +1901,7 @@ <item>IMG_FILTER_PIXELATE</item> <item>IMG_FILTER_SELECTIVE_BLUR</item> <item>IMG_FILTER_SMOOTH</item>+ <item>IMG_FILTER_SCATTER</item> <item>IMG_FLIP_BOTH</item> <item>IMG_FLIP_HORIZONTAL</item> <item>IMG_FLIP_VERTICAL</item>@@ -2320,6 +2398,7 @@ <item>MYSQLI_NUM</item> <item>MYSQLI_NUM_FLAG</item> <item>MYSQLI_OPT_CONNECT_TIMEOUT</item>+ <item>MYSQLI_OPT_READ_TIMEOUT</item> <item>MYSQLI_OPT_INT_AND_FLOAT_NATIVE</item> <item>MYSQLI_OPT_LOCAL_INFILE</item> <item>MYSQLI_OPT_NET_CMD_BUFFER_SIZE</item>@@ -3103,21 +3182,32 @@ <item>PGSQL_BAD_RESPONSE</item> <item>PGSQL_BOTH</item> <item>PGSQL_COMMAND_OK</item>+ <item>PGSQL_CONNECTION_AUTH_OK</item>+ <item>PGSQL_CONNECTION_AWAITING_RESPONSE</item> <item>PGSQL_CONNECTION_BAD</item>+ <item>PGSQL_CONNECTION_MADE</item> <item>PGSQL_CONNECTION_OK</item>+ <item>PGSQL_CONNECTION_SETENV</item>+ <item>PGSQL_CONNECTION_SSL_STARTUP</item>+ <item>PGSQL_CONNECTION_STARTED</item> <item>PGSQL_CONNECT_ASYNC</item>+ <item>PGSQL_CONNECT_ASYNC</item> <item>PGSQL_CONNECT_FORCE_NEW</item> <item>PGSQL_CONV_FORCE_NULL</item> <item>PGSQL_CONV_IGNORE_DEFAULT</item> <item>PGSQL_CONV_IGNORE_NOT_NULL</item> <item>PGSQL_COPY_IN</item> <item>PGSQL_COPY_OUT</item>+ <item>PGSQL_DIAG_COLUMN_NAME</item>+ <item>PGSQL_DIAG_CONSTRAINT_NAME</item> <item>PGSQL_DIAG_CONTEXT</item>+ <item>PGSQL_DIAG_DATATYPE_NAME</item> <item>PGSQL_DIAG_INTERNAL_POSITION</item> <item>PGSQL_DIAG_INTERNAL_QUERY</item> <item>PGSQL_DIAG_MESSAGE_DETAIL</item> <item>PGSQL_DIAG_MESSAGE_HINT</item> <item>PGSQL_DIAG_MESSAGE_PRIMARY</item>+ <item>PGSQL_DIAG_SCHEMA_NAME</item> <item>PGSQL_DIAG_SEVERITY</item> <item>PGSQL_DIAG_SEVERITY_NONLOCALIZED</item> <item>PGSQL_DIAG_SOURCE_FILE</item>@@ -3125,6 +3215,7 @@ <item>PGSQL_DIAG_SOURCE_LINE</item> <item>PGSQL_DIAG_SQLSTATE</item> <item>PGSQL_DIAG_STATEMENT_POSITION</item>+ <item>PGSQL_DIAG_TABLE_NAME</item> <item>PGSQL_DML_ASYNC</item> <item>PGSQL_DML_ESCAPE</item> <item>PGSQL_DML_EXEC</item>@@ -3137,6 +3228,7 @@ <item>PGSQL_FATAL_ERROR</item> <item>PGSQL_LIBPQ_VERSION</item> <item>PGSQL_LIBPQ_VERSION_STR</item>+ <item>PGSQL_LIBPQ_VERSION_STR</item> <item>PGSQL_NONFATAL_ERROR</item> <item>PGSQL_NOTICE_ALL</item> <item>PGSQL_NOTICE_CLEAR</item>@@ -5201,31 +5293,17 @@ <item>__get</item> <item>__invoke</item> <item>__isset</item>+ <item>__serialize</item> <item>__set</item> <item>__set_state</item> <item>__sleep</item> <item>__toString</item>+ <item>__unserialize</item> <item>__unset</item> <item>__wakeup</item> </list> <list name="functions">- <!-- keyword functions -->- <item>array</item>- <item>die</item>- <item>echo</item>- <item>empty</item>- <item>eval</item>- <item>exit</item>- <item>include</item>- <item>include_once</item>- <item>isset</item>- <item>list</item>- <item>print</item>- <item>require</item>- <item>require_once</item>- <item>unset</item>- <!-- standard functions --> <item>_</item> <item>abs</item>@@ -10143,6 +10221,7 @@ <item>xdebug_var_dump</item> </list> + <!-- https://www.php.net/manual/en/reserved.variables.php --> <list name="special-variables"> <item>$GLOBALS</item> <item>$_COOKIE</item>@@ -10155,6 +10234,7 @@ <item>$_SESSION</item> <item>$php_errormsg</item> <item>$this</item>+ <item>$http_response_header</item> </list> <list name="predefined-classes">@@ -10832,100 +10912,72 @@ <contexts> <!-- JGM: Added fallthrough so it will handle snippets that don't begin with <?php -->- <context name="start" lineEndContext="#stay" attribute="Normal Text" fallthrough="true" fallthroughContext="phpsource">- <RegExpr context="phpsource" attribute="Keyword" String="<\?(?:=|php)?" insensitive="true" />+ <context name="start" lineEndContext="#stay" attribute="Normal Text" fallthrough="true" fallthroughContext="phpsource">+ <StringDetect context="phpsource" attribute="Keyword" String="<?php" insensitive="true" />+ <Detect2Chars context="phpsource" attribute="Keyword" char="<" char1="?" /> <Detect2Chars attribute="Keyword" context="#pop" char="?" char1=">" /> </context> <context name="phpsource" attribute="PHP Text" lineEndContext="#stay"> <DetectSpaces />++ <Detect2Chars attribute="Symbol" context="#stay" char="-" char1=">"/>+ <Detect2Chars attribute="Operator" context="#stay" char="?" char1="?"/>+ <Detect2Chars attribute="Scope Resolution" context="#stay" char=":" char1=":" />+ <DetectChar attribute="Scope Resolution" context="#stay" char="\" /> <Detect2Chars attribute="Keyword" context="#pop" char="?" char1=">" lookAhead="true" />+ <AnyChar attribute="Other" context="#stay" String=";,?:" /> - <!-- Alternate PHP Block Syntax- - http://www.php.net/manual/en/control-structures.alternative-syntax.php- -- - We must treat the ternary and case/default statements specially so that the : in those can be- - ignored. Then otherwise we treat the : as a block start, and the 5 different end statements as- - a block end.- -- - The ternary and case/default switch to a context which short-circuits the : detection and- - just pops back to this context instead of starting a block.- -- - We can not use case/default as starting a block because they can be terminated by break. return- - or not at all, making it impossible to determine where the block should end.- -- - Additionally the paamayim nekudotayim (::) must not start a subcontext that is never terminated.- -->+ <IncludeRules context="FindComment"/> - <DetectChar attribute="Other" context="ternary" char="?" />- <RegExpr attribute="Keyword" context="case" String="(case|default)(\s|:|$)" />- <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />- <DetectChar attribute="Normal Text" context="#stay" char=":" beginRegion="Alternate Block" />- <RegExpr attribute="Control Structures" context="#stay" String="(endif|endwhile|endfor|endforeach|endswitch)\b" endRegion="Alternate Block" />- <!--/ Alternate PHP Block Syntax -->+ <StringDetect attribute="Operator" context="#stay" String="<=>" />+ <Detect2Chars attribute="Symbol" context="#stay" char="=" char1=">"/>+ <StringDetect context="heredocstart" String="<<<" lookAhead="1" />+ <AnyChar attribute="Operator" context="#stay" String="=<>&|!+-*/%^~"/> - <DetectChar attribute="Comment" context="onelinecomment" char="#" />- <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>- <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" />- <keyword attribute="Error" context="#stay" String="deprecated"/>- <keyword attribute="Control Structures" context="#stay" String="control structures" />+ <DetectChar attribute="Symbol" context="#stay" char="{" beginRegion="Brace1" />+ <DetectChar attribute="Symbol" context="#stay" char="}" endRegion="Brace1" />++ <keyword attribute="Control Structures" context="control" String="control structures" lookAhead="1"/> <keyword attribute="Keyword" context="#stay" String="keywords" /> <keyword attribute="Classes" context="#stay" String="predefined-classes"/>- <DetectChar attribute="Error" context="#stay" char="@" /> <keyword attribute="Function" context="#stay" String="functions" /> <keyword attribute="Special method" context="#stay" String="special_methods" /> <keyword attribute="Library Constant" context="#stay" String="constants"/>+ <keyword attribute="Operator" context="#stay" String="operators"/>+ <keyword attribute="Types" context="#stay" String="types"/>+ <keyword attribute="Error" context="#stay" String="deprecated"/> <RegExpr attribute="Constant" context="#stay" String="\b[A-Z_][A-Z_0-9]*\b"/> - <!-- Type casts -->- <RegExpr attribute="Types" context="#stay" String="\(\s*(&types;)\s*\)"/>- <DetectIdentifier />++ <StringDetect attribute="Symbol" context="#stay" String="..." />+ <DetectChar context="dot" char="." lookAhead="1"/>+ <AnyChar context="number" String="0123456789" lookAhead="1"/>++ <keyword attribute="Special Variable" context="#stay" String="special-variables"/>+ <RegExpr attribute="Variable" context="#stay" String="\$+&varid;" />+ <DetectChar attribute="String" context="doublequotestring" char=""" /> <DetectChar attribute="String" context="backquotestring" char="`" /> <DetectChar attribute="String" context="singlequotestring" char="'" />- <RegExpr attribute="Backslash Code" context="htmlheredoc" String="<<<"((EO)?HTML)"" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="cssheredoc" String="<<<"((EO)?CSS)"" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="javascriptheredoc" String="<<<"((EO)?JAVASCRIPT)"" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="mysqlheredoc" String="<<<"((EO)?MYSQL)"" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="heredoc" String="<<<"([A-Za-z_][A-Za-z0-9_]*)"" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="htmlheredoc" String="<<<((EO)?HTML)\b" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="cssheredoc" String="<<<((EO)?CSS)\b" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="javascriptheredoc" String="<<<((EO)?JAVASCRIPT)\b" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="mysqlheredoc" String="<<<((EO)?MYSQL)\b" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="heredoc" String="<<<([A-Za-z_][A-Za-z0-9_]*)" beginRegion="Heredoc" />- <RegExpr attribute="Backslash Code" context="htmlnowdoc" String="<<<'((EO)?HTML)'" beginRegion="Nowdoc" />- <RegExpr attribute="Backslash Code" context="cssnowdoc" String="<<<'((EO)?CSS)'" beginRegion="Nowdoc" />- <RegExpr attribute="Backslash Code" context="javascriptnowdoc" String="<<<'((EO)?JAVASCRIPT)'" beginRegion="Nowdoc" />- <RegExpr attribute="Backslash Code" context="mysqlnowdoc" String="<<<'((EO)?MYSQL)'" beginRegion="Nowdoc" />- <RegExpr attribute="Backslash Code" context="nowdoc" String="<<<'([A-Za-z_][A-Za-z0-9_]*)'" beginRegion="Nowdoc" />- <keyword attribute="Special Variable" context="#stay" String="special-variables"/>- <RegExpr attribute="Variable" context="#stay" String="\$+[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*" />- <RegExpr attribute="String" context="#stay" String="[0123456789]*\.\.\.[0123456789]*" />- <RegExpr attribute="Binary" context="#stay" String="0[bB][01]+" />- <HlCOct attribute="Octal" context="#stay" />- <HlCHex attribute="Hex" context="#stay" />- <Float attribute="Float" context="#stay" />- <Int attribute="Decimal" context="#stay" />- <DetectChar attribute="Normal Text" context="#stay" char="{" beginRegion="Brace1" />- <DetectChar attribute="Normal Text" context="#stay" char="}" endRegion="Brace1" />- <AnyChar attribute="Other" context="#stay" String=";(),[]" />- </context> - <context name="MatchComment" attribute="Normal Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">- <IncludeRules context="##Doxygen" />- <Detect2Chars attribute="Comment" context="#pop!onelinecomment" char="/" char1="/" />- <Detect2Chars attribute="Comment" context="#pop!twolinecomment" char="/" char1="*" beginRegion="Comment" />+ <DetectChar attribute="Error Control Operator" context="#stay" char="@" />++ <!-- Type casts -->+ <RegExpr attribute="Cast" context="#stay" String="\(\s*(&types;)\s*\)" insensitive="true"/>+ <AnyChar attribute="Symbol" context="#stay" String="()[]"/> </context> - <context name="ternary" attribute="PHP Text" lineEndContext="#stay">- <!-- the paamayim nekudotayim (::) must not start a subcontext that is never terminated. -->- <Detect2Chars attribute="Normal Text" context="#stay" char=":" char1=":" />- <DetectChar attribute="Other" char=":" context="#pop" />- <IncludeRules context="phpsource" />+ <context name="FindComment" attribute="PHP Text" lineEndContext="#pop">+ <DetectChar attribute="Comment" context="onelinecomment" char="#" />+ <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="/" lookAhead="true"/>+ <Detect2Chars attribute="Comment" context="MatchComment" char="/" char1="*" lookAhead="true" /> </context> - <context name="case" attribute="PHP Text" lineEndContext="#stay">- <IncludeRules context="ternary" />+ <context name="MatchComment" attribute="PHP Text" lineEndContext="#pop" fallthrough="true" fallthroughContext="#pop">+ <IncludeRules context="##Doxygen" />+ <Detect2Chars attribute="Comment" context="#pop!onelinecomment" char="/" char1="/" />+ <Detect2Chars attribute="Comment" context="#pop!twolinecomment" char="/" char1="*" beginRegion="Comment" /> </context> <context name="onelinecomment" attribute="Comment" lineEndContext="#pop">@@ -10938,116 +10990,244 @@ <Detect2Chars attribute="Comment" context="#pop" char="*" char1="/" endRegion="Comment" /> <IncludeRules context="##Comments" /> </context>- <context name="doublebackquotestringcommon" attribute="String" lineEndContext="#stay">- <!-- Common rules for double quoted strings and backticks (execution operator) URL:- http://de3.php.net/manual/en/language.types.string.php#language.types.string.syntax.double -->- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="\" />- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="n" />- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="r" />- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="t" />- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="v" />- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="f" />- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="$" />- <RegExpr attribute="Backslash Code" context="#stay" String="\\[0-7]{1,3}" />- <RegExpr attribute="Backslash Code" context="#stay" String="\\x[0-9A-Fa-f]{1,2}" />- <RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*" />- <RegExpr attribute="Variable" context="#stay" String="\$\{[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*\}" />- <RegExpr attribute="Variable" context="#stay" String="\{\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[([0-9]*|"[^"]*"|\$[a-zA-Z]*)|'[^']*'|\])*(->[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*(\[([0-9]*|"[a-zA-Z_]*")|'[a-zA-Z_]*'|\]|\[.*\])*)*\}" />++ <context name="doublestringvariablecommon" attribute="String" lineEndContext="#stay">+ <keyword attribute="Special Variable" context="dqaftervarname" String="special-variables"/>+ <RegExpr attribute="Variable" context="dqaftervarname" String="\$&varid;" />+ <Detect2Chars attribute="Variable" context="dqcomplexvariable" char="{" char1="$" lookAhead="1"/>+ <Detect2Chars attribute="Variable" context="dqvarnamebrace" char="$" char1="{" lookAhead="1"/> </context>++ <!--+ $var->xxx+ $var[-1]+ $var[1]+ $var[ident]++ $var[$ident]+ ^_ error+ -->+ <context name="dqaftervarname" attribute="String" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <DetectChar attribute="Symbol" context="#pop!dqarray" char="["/>+ <Detect2Chars context="#pop!dqobject" char="-" char1=">" lookAhead="1"/>+ </context>+ <context name="dqarray" attribute="Variable" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <DetectIdentifier attribute="String" context="#pop!dqarrayclose"/>+ <Int attribute="Decimal" context="#pop!dqarrayclose"/>+ <DetectChar attribute="Operator" context="#stay" char="-"/>+ <keyword attribute="Special Variable" context="#pop!dqarrayclose" String="special-variables"/>+ <RegExpr attribute="Variable" context="#pop!dqarrayclose" String="\$&varid;"/>+ <IncludeRules context="finddqarraycharerror"/>+ </context>+ <context name="dqarrayclose" attribute="Variable" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <DetectChar attribute="Symbol" context="#pop" char="]"/>+ <IncludeRules context="finddqarraycharerror"/>+ </context>+ <context name="dqobject" attribute="String" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <RegExpr attribute="Symbol" context="#pop!dqobjectmem" String="->(?=&varid;)"/>+ </context>+ <context name="dqobjectmem" attribute="Variable" lineEndContext="#pop">+ <DetectIdentifier attribute="PHP Text" context="#pop"/>+ </context>+ <context name="finddqarraycharerror" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <RegExpr attribute="Error" context="#pop" String="[^"`]"/>+ </context>++ <context name="dqcomplexvariable" attribute="Variable" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!finddqarraycharerror">+ <DetectChar attribute="Symbol" context="#stay" char="{"/>+ <DetectChar attribute="Variable" context="#pop!dqcomplexvariable2" char="$"/>+ </context>+ <context name="dqcomplexvariable2" attribute="Variable" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!finddqarraycharerror">+ <DetectIdentifier attribute="Variable" context="#pop!dqaftercomplexvariable"/>+ <DetectChar attribute="Variable" context="#stay" char="$"/>+ <IncludeRules context="finddqarraycharerror"/>+ </context>+ <context name="dqaftercomplexvariable" attribute="PHP Text" lineEndContext="#stay">+ <DetectChar attribute="Symbol" context="#pop" char="}"/>+ <DetectChar attribute="Symbol" context="dqaftercomplexvariable" char="{"/>+ <IncludeRules context="phpsource"/>+ </context>++ <context name="dqvarnamebrace" attribute="Variable" lineEndContext="#stay">+ <DetectChar attribute="Symbol" context="#pop!dqcomplexvariable2" char="{"/>+ <DetectChar attribute="Variable" context="#stay" char="$"/>+ </context>+ <context name="backquotestring" attribute="String" lineEndContext="#stay">- <IncludeRules context="doublebackquotestringcommon" />- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="`" />+ <DetectChar context="backquotestringescaped" char="\" lookAhead="1"/>+ <IncludeRules context="doublestringvariablecommon"/> <DetectChar attribute="String" context="#pop" char="`" /> </context>+ <context name="backquotestringescaped" attribute="String" lineEndContext="#stay">+ <!-- Common rules for double quoted strings and backticks (execution operator) URL:+ https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double -->+ <RegExpr attribute="Backslash Code" context="#pop" String="\\([\\nrtvef$`]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u\{[0-9A-Fa-f]+\})"/>+ <DetectChar attribute="String" context="#pop" char="\"/>+ </context>+ <context name="doublequotestring" attribute="String" lineEndContext="#stay">- <IncludeRules context="doublebackquotestringcommon" />- <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1=""" />+ <DetectChar context="doublequotestringescaped" char="\" lookAhead="1"/>+ <IncludeRules context="doublestringvariablecommon"/> <DetectChar attribute="String" context="#pop" char=""" /> </context>+ <context name="doublequotestringescaped" attribute="String" lineEndContext="#stay">+ <!-- Common rules for double quoted strings and backticks (execution operator) URL:+ https://www.php.net/manual/en/language.types.string.php#language.types.string.syntax.double -->+ <RegExpr attribute="Backslash Code" context="#pop" String="\\([\\nrtvef$"]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2}|u\{[0-9A-Fa-f]+\})"/>+ <DetectChar attribute="String" context="#pop" char="\"/>+ </context>+ <context name="singlequotestring" attribute="String" lineEndContext="#stay"> <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="'" /> <Detect2Chars attribute="Backslash Code" context="#stay" char="\" char1="\" /> <DetectChar attribute="String" context="#pop" char="'" /> </context>++ <context name="heredocstart" attribute="Normal Text" lineEndContext="#pop">+ <RegExpr attribute="Heredoc" context="htmlheredoc" String="<<<(?|"((?:EO)?HTML)"|((?:EO)?HTML)\b)" beginRegion="Heredoc" />+ <RegExpr attribute="Heredoc" context="cssheredoc" String="<<<(?|"((?:EO)?CSS)"|((?:EO)?CSS)\b)" beginRegion="Heredoc" />+ <RegExpr attribute="Heredoc" context="javascriptheredoc" String="<<<(?|"((?:EO)?JAVASCRIPT)"|((?:EO)?JAVASCRIPT)\b)" beginRegion="Heredoc" />+ <RegExpr attribute="Heredoc" context="mysqlheredoc" String="<<<(?|"((?:EO)?MYSQL)"|((?:EO)?MYSQL)\b)" beginRegion="Heredoc" />+ <RegExpr attribute="Heredoc" context="heredoc" String="<<<(?|"([A-Za-z_][A-Za-z0-9_]*)"|([A-Za-z_][A-Za-z0-9_]*))" beginRegion="Heredoc" />+ <RegExpr attribute="Nowdoc" context="htmlnowdoc" String="<<<'((?:EO)?HTML)'" beginRegion="Nowdoc" />+ <RegExpr attribute="Nowdoc" context="cssnowdoc" String="<<<'((?:EO)?CSS)'" beginRegion="Nowdoc" />+ <RegExpr attribute="Nowdoc" context="javascriptnowdoc" String="<<<'((?:EO)?JAVASCRIPT)'" beginRegion="Nowdoc" />+ <RegExpr attribute="Nowdoc" context="mysqlnowdoc" String="<<<'((?:EO)?MYSQL)'" beginRegion="Nowdoc" />+ <RegExpr attribute="Nowdoc" context="nowdoc" String="<<<'([A-Za-z_][A-Za-z0-9_]*)'" beginRegion="Nowdoc" />+ <StringDetect attribute="Error" context="#pop" String="<<<" />+ </context>+ <context name="htmlheredoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" column="0" />- <IncludeRules context="commonheredoc" />+ <IncludeRules context="heredoc" /> <IncludeRules context="##HTML" /> </context> <context name="cssheredoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" column="0" />- <IncludeRules context="commonheredoc" />+ <IncludeRules context="heredoc" /> <IncludeRules context="##CSS" /> </context> <context name="mysqlheredoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" column="0" />- <IncludeRules context="commonheredoc" />+ <IncludeRules context="heredoc" /> <IncludeRules context="##SQL (MySQL)" /> </context> <context name="javascriptheredoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" column="0" />- <IncludeRules context="commonheredoc" />+ <IncludeRules context="heredoc" /> <IncludeRules context="Normal##JavaScript" /> </context> <context name="heredoc" attribute="String" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Heredoc" column="0" />- <IncludeRules context="commonheredoc" />- </context>- <context name="commonheredoc" attribute="String" lineEndContext="#stay">- <RegExpr attribute="Variable" context="#stay" String="\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*" />- <RegExpr attribute="Variable" context="#stay" String="\$\{[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*\}" />- <RegExpr attribute="Variable" context="#stay" String="\{\$[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[([0-9]*|"[a-zA-Z_]*")|'[a-zA-Z_]*'|\])*(->[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\[[a-zA-Z0-9_]*\])*(\[([0-9]*|"[a-zA-Z_]*")|'[a-zA-Z_]*'|\])*)*\}" />+ <IncludeRules context="doublestringvariablecommon" />+ <RegExpr attribute="Heredoc" context="#pop" String="^%1(?=;?$)" dynamic="true" endRegion="Heredoc" column="0" /> </context>+ <context name="htmlnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" column="0" />- <IncludeRules context="commonnowdoc" />+ <IncludeRules context="nowdoc" /> <IncludeRules context="##HTML" /> </context> <context name="cssnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" column="0" />- <IncludeRules context="commonnowdoc" />+ <IncludeRules context="nowdoc" /> <IncludeRules context="##CSS" /> </context> <context name="mysqlnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" column="0" />- <IncludeRules context="commonnowdoc" />+ <IncludeRules context="nowdoc" /> <IncludeRules context="##SQL (MySQL)" /> </context> <context name="javascriptnowdoc" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" column="0" />- <IncludeRules context="commonnowdoc" />+ <IncludeRules context="nowdoc" /> <IncludeRules context="Normal##JavaScript" /> </context> <context name="nowdoc" attribute="String" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Backslash Code" context="#pop" String="^%1;?$" dynamic="true" endRegion="Nowdoc" column="0" />- <IncludeRules context="commonnowdoc" />+ <RegExpr attribute="Nowdoc" context="#pop" String="^%1(?=;?$)" dynamic="true" endRegion="Nowdoc" column="0" /> </context>- <context name="commonnowdoc" attribute="String" lineEndContext="#stay">++ <context name="number" attribute="PHP Text" lineEndContext="#stay">+ <IncludeRules context="findfloat"/>+ <RegExpr attribute="Hex" context="#pop" String="\b0[xX][0-9a-fA-F]++(_[0-9a-fA-F]++)*+\b"/>+ <RegExpr attribute="Binary" context="#pop" String="\b0[bB][01]++(_[01]++)*+\b"/>+ <RegExpr attribute="Octal" context="#pop" String="\b0_*+[0-7]++(_[0-7]++)*+\b"/>+ <RegExpr attribute="Decimal" context="#pop" String="\b(0|[1-9][0-9]*+(_[0-9]++)*+)\b"/>+ <AnyChar attribute="Error" context="#pop" String="0123456789"/> </context>+ <context name="findfloat" attribute="PHP Text" lineEndContext="#stay">+ <RegExpr attribute="Float" context="#pop" String="&float;"/>+ </context>++ <context name="dot" attribute="PHP Text" lineEndContext="#stay">+ <IncludeRules context="findfloat"/>+ <DetectChar attribute="Operator" context="#pop" char="."/>+ </context>++ <context name="control" attribute="Control Structures" lineEndContext="#stay">+ <StringDetect attribute="Control Structures" context="#pop!yield" String="yield"/>+ <!-- Alternate PHP Block Syntax+ - http://www.php.net/manual/en/control-structures.alternative-syntax.php+ -->+ <Detect2Chars attribute="Control Structures" context="#pop!MaybeAlternateBlock" char="i" char1="f"/>+ <StringDetect attribute="Control Structures" context="#pop!MaybeAlternateBlock" String="switch"/>+ <StringDetect attribute="Control Structures" context="#pop!MaybeAlternateBlock" String="foreach"/>+ <StringDetect attribute="Control Structures" context="#pop!MaybeAlternateBlock" String="for"/>+ <StringDetect attribute="Control Structures" context="#pop!MaybeAlternateBlock" String="while"/>+ <!-- end statements as a block end -->+ <StringDetect attribute="Control Structures" context="#pop!AlternateBlockEnd" String="end" lookAhead="1"/>+ <!--/ Alternate PHP Block Syntax -->+ <DetectIdentifier attribute="Control Structures" context="#pop"/>+ </context>+ <context name="yield" attribute="PHP Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <DetectSpaces attribute="PHP Text" context="#stay"/>+ <WordDetect attribute="Control Structures" context="#pop" String="from"/>+ </context>+ <context name="AlternateBlockEnd" attribute="Control Structures" lineEndContext="#stay">+ <DetectIdentifier attribute="Control Structures" context="#pop" endRegion="Alternate Block"/>+ </context>++ <context name="MaybeAlternateBlock" attribute="PHP Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <DetectChar attribute="Symbol" context="#pop!MaybeAlternateBlockOpen" char="("/>+ <DetectSpaces attribute="PHP Text"/>+ <IncludeRules context="FindComment"/>+ </context>+ <context name="MaybeAlternateBlockOpen" attribute="PHP Text" lineEndContext="#stay">+ <DetectChar attribute="Symbol" context="ParenOpen" char="("/>+ <DetectChar attribute="Symbol" context="#pop!MaybeAlternateBlockClose" char=")"/>+ <IncludeRules context="phpsource"/>+ </context>+ <context name="ParenOpen" attribute="PHP Text" lineEndContext="#stay">+ <DetectChar attribute="Symbol" context="ParenOpen" char="("/>+ <DetectChar attribute="Symbol" context="#pop" char=")"/>+ <IncludeRules context="phpsource"/>+ </context>+ <context name="MaybeAlternateBlockClose" attribute="PHP Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <DetectChar attribute="Other" context="#pop" char=":" beginRegion="Alternate Block"/>+ <DetectSpaces attribute="PHP Text"/>+ </context>+ </contexts> <itemDatas> <itemData name="Normal Text" defStyleNum="dsNormal" spellChecking="false" /> <itemData name="PHP Text" defStyleNum="dsNormal" spellChecking="false" /> <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false" />- <itemData name="Classes" defStyleNum="dsKeyword" spellChecking="false" />+ <itemData name="Classes" defStyleNum="dsBuiltIn" spellChecking="false" /> <itemData name="Function" defStyleNum="dsFunction" spellChecking="false" />- <itemData name="Special method" defStyleNum="dsFunction" spellChecking="false" />+ <itemData name="Special method" defStyleNum="dsBuiltIn" spellChecking="false" /> <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false" /> <itemData name="Binary" defStyleNum="dsBaseN" spellChecking="false" /> <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false" /> <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false" /> <itemData name="Float" defStyleNum="dsFloat" spellChecking="false" /> <itemData name="String" defStyleNum="dsString" />+ <itemData name="Heredoc" defStyleNum="dsSpecialString" />+ <itemData name="Nowdoc" defStyleNum="dsVerbatimString" /> <itemData name="Comment" defStyleNum="dsComment" />- <itemData name="Special Variable" defStyleNum="dsKeyword" color="#5555FF" selColor="#ffffff" bold="1" italic="0" spellChecking="false" />- <itemData name="Variable" defStyleNum="dsKeyword" color="#5555FF" selColor="#ffffff" bold="0" italic="0" spellChecking="false" />- <itemData name="Library Constant" defStyleNum="dsKeyword" bold="1" spellChecking="false" />- <itemData name="Constant" defStyleNum="dsKeyword" bold="0" spellChecking="false" />- <itemData name="Control Structures" defStyleNum="dsKeyword" color="#A1A100" selColor="#ffffff" bold="0" italic="0" spellChecking="false" />- <itemData name="Backslash Code" defStyleNum="dsKeyword" color="#0F0F8F" selColor="#ffffff" bold="1" italic="0" spellChecking="false" />+ <itemData name="Special Variable" defStyleNum="dsVariable" bold="1" spellChecking="false" />+ <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false" />+ <itemData name="Library Constant" defStyleNum="dsConstant" bold="1" spellChecking="false" />+ <itemData name="Constant" defStyleNum="dsConstant" spellChecking="false" />+ <itemData name="Control Structures" defStyleNum="dsControlFlow" spellChecking="false" />+ <itemData name="Backslash Code" defStyleNum="dsSpecialChar" spellChecking="false" />+ <itemData name="Operator" defStyleNum="dsOperator" spellChecking="false" />+ <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false" />+ <itemData name="Scope Resolution" defStyleNum="dsNormal" spellChecking="false" /> <itemData name="Other" defStyleNum="dsOthers" spellChecking="false" />- <itemData name="Types" defStyleNum="dsDataType" spellChecking="false" />+ <itemData name="Cast" defStyleNum="dsDataType" spellChecking="false" />+ <itemData name="Error Control Operator" defStyleNum="dsPreprocessor" spellChecking="false" /> <itemData name="Error" defStyleNum="dsError" spellChecking="false" /> </itemDatas> </highlighting>
xml/php.xml.patch view
@@ -1,11 +1,14 @@---- a/xml/php.xml-+++ b/xml/php.xml-@@ -5412,6 +5412,7 @@+diff --git a/skylighting-core/xml/php.xml b/skylighting-core/xml/php.xml+index 063bb96..87a1fdd 100644+--- a/skylighting-core/xml/php.xml++++ b/skylighting-core/xml/php.xml+@@ -10911,7 +10911,8 @@ </list> <contexts>-+ <!-- JGM: Added fallthrough so it will handle snippets that don't begin with <?php -->-+ <context name="start" lineEndContext="#stay" attribute="Normal Text" fallthrough="true" fallthroughContext="phpsource"> - <context name="start" lineEndContext="#stay" attribute="Normal Text">- <RegExpr context="phpsource" attribute="Keyword" String="<\?(?:=|php)?" insensitive="true" />- <StringDetect attribute="Keyword" context="#pop" String="?>" />++ <!-- JGM: Added fallthrough so it will handle snippets that don't begin with <?php -->++ <context name="start" lineEndContext="#stay" attribute="Normal Text" fallthrough="true" fallthroughContext="phpsource">+ <StringDetect context="phpsource" attribute="Keyword" String="<?php" insensitive="true" />+ <Detect2Chars context="phpsource" attribute="Keyword" char="<" char1="?" />+ <Detect2Chars attribute="Keyword" context="#pop" char="?" char1=">" />
xml/powershell.xml view
@@ -1,7 +1,7 @@ <!DOCTYPE language SYSTEM "language.dtd"> <language name="PowerShell"- version="9"+ version="10" kateversion="5.0" extensions="*.ps1;*.psm1;*.psd1" section="Scripts"@@ -929,7 +929,7 @@ <itemData name="HereString" defStyleNum="dsVerbatimString"/> <itemData name="Comment" defStyleNum="dsComment"/> <itemData name="Cmdlets" defStyleNum="dsBuiltIn" spellChecking="false"/>- <itemData name="Symbol" defStyleNum="dsNormal" spellChecking="false"/>+ <itemData name="Symbol" defStyleNum="dsOperator" spellChecking="false"/> <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/> <itemData name="Special Variable" defStyleNum="dsVariable" bold="1" spellChecking="false"/> </itemDatas>
xml/prolog.xml view
@@ -101,11 +101,11 @@ <!ENTITY comma ","> <!ENTITY cut "!"> <!ENTITY bar "|">- <!ENTITY tab " ">+ <!ENTITY tab "	"> <!ENTITY bs "\"> ]> <language name="Prolog" section="Sources"- version="13" kateversion="5.62"+ version="14" kateversion="5.62" mimetype="text/x-prolog" extensions="*.prolog;*.dcg;*.pro" author="Torsten Eichstädt (torsten.eichstaedt@web.de)"
xml/purebasic.xml view
@@ -1,5 +1,5 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="PureBasic" version="9" kateversion="5.0" section="Sources" extensions="*.pb;*.pbi" mimetype="text/x-purebasic" author="Alexander Clay (Tuireann@EpicBasic.org);Sven Langenkamp (ace@kylixforum.de)" license="LGPL" priority="1" >+<language name="PureBasic" version="10" kateversion="5.0" section="Sources" extensions="*.pb;*.pbi" mimetype="text/x-purebasic" author="Alexander Clay (Tuireann@EpicBasic.org);Sven Langenkamp (ace@kylixforum.de)" license="LGPL" priority="1" > <highlighting> <list name="keywords"> <item>Break</item>@@ -1744,7 +1744,7 @@ </contexts> <itemDatas> <itemData name="Normal Text" defStyleNum="dsNormal"/>- <itemData name="Operator" defStyleNum="dsNormal"/>+ <itemData name="Operator" defStyleNum="dsOperator"/> <itemData name="Separator" defStyleNum="dsNormal"/> <itemData name="Keyword" defStyleNum="dsKeyword"/> <itemData name="Debug Keyword" defStyleNum="dsKeyword"/>
+ xml/raku.xml view
@@ -0,0 +1,1782 @@+<?xml version="1.0" encoding="UTF-8"?>+<!DOCTYPE language SYSTEM "language.dtd"+[+ <!--+ identifier:+ Alphabetic characters include characters with the Unicode General Category value Letter (L), and the underscore _.+ Alphanumeric characters additionally include characters with the Unicode General Category value Number, Decimal Digit (Nd).+ -->+ <!-- Large values -->+ <!ENTITY _rangealphabetic "A-Za-z\xaa\xb5\xba\xc0-\xd6\xd8-\xf6\xf8-\x{2c1}\x{2C6}-\x{2D1}\x{2E0}-\x{2EE}\x{370}-\x{588}\x{5d0}-\x{17dc}\x{1820}-\x{1aa7}\x{1b05}-\x{2139}\x{2c00}-\x{31ff}\x{3400}\x{4db5}\x{4db5}\x{4e00}-\x{ac00}\x{d7a3}-\x{d7fb}\x{f900}-\x{FD3D}\x{FF64}\x{100fa}\x{10000}-\x{100fa}\x{10280}-\x{20000}\x{2a6d6}-\x{2fa1d}">+ <!ENTITY rangealphabetic "_&_rangealphabetic;">+ <!ENTITY rangenumeric "0-9">+ <!ENTITY alphabetic "[&rangealphabetic;]">+ <!ENTITY numeric "[&rangenumeric;]">+ <!ENTITY alnum "[&rangealphabetic;&rangenumeric;]">+ <!ENTITY ident "(?:&alphabetic;(?:&alnum;+|[-']&alphabetic;)*)">++ <!ENTITY prefixdollarvarname "(?:[&rangealphabetic;0-9/!]|\(\))">+ <!ENTITY dollarvarname "(?:&ident;|[0-9]+|[/!]|\(\))">+ <!ENTITY twigils "*?!.<^:=~">++ <!ENTITY podfmt "BCEIKLMNPRTUVXZ">+ <!ENTITY allnopodfmt "(?:[^&podfmt;]+|[&podfmt;](?![<«]))+">+ <!ENTITY allnopodfmt1 "(?:[^&podfmt;<>]+|[&podfmt;](<(?:<*(?=<))|(?![<«])))+">+ <!ENTITY allnopodfmt2 "(?:[^&podfmt;«»]+|[&podfmt;](?![<«]))+">+ <!ENTITY allnopodfmt3 "(?:[^&podfmt;<>]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+">++ <!ENTITY quotingform_q "(?:q?(?::?[xsahfcb]|:?ww?|:(?:v|exec|words|quotewords|scalar|array|hash|function|closure|backslash|to|heredoc)|)(?::[xsahfcbv]|ww?|exec|words|quotewords|scalar|array|hash|function|closure|backslash|to|heredoc)*)">+ <!ENTITY quotingform_q_assert "(?:\s+(?=\()|\s*(?=[^()>」\]}a-zA-Z0-9]|$))">+ <!ENTITY quotingconstruct "q"ingform_q;"ingform_q_assert;">++ <!ENTITY int10 "(?:[0-9]+(?:_[0-9]+)*)">+ <!ENTITY intN "(?:[0-9a-zA-Z]+(?:_[0-9a-zA-Z]+)*)">++ <!-- <!ENTITY operators "(?:\b(?:X[*~]|Z=|xx=)|\((?:[<>][+=]|[-&+.<>|^]|cont|elem)\)|\+[&+<=>^|]?|~[&<>^|~]?|\.(?::<[^>]+>|\.\.?\^?|[=?^*+.])?|\^(?:fff?\b|\.\.)?\^?|(?:[?…]|f?ff)\^|\[[*+]\]|=(?:==?|=>>?|>|~=)?|<(?:<==|=[=>]?)?|\*\*=?|\?[?|]?|!(?:[=]|eqv\b)?|%%?|&&?|//?|\|\|?|>=?|-[-=]?|::|[−∈∉∋∌∘∩∪≅≠≤≥≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖×÷∖*…])"> -->+ <!-- <!ENTITY hyperoperators "(?:[«»]|<<|>>)"> -->+ <!ENTITY safesymboloperators "−∈∉∋∌∘∩∪≅≠≤≥≼≽⊂⊃⊄⊅⊆⊇⊈⊉⊍⊎⊖×÷∖*…?.+-/=!~&|^%">+ <!ENTITY unsafesymboloperators "<>«»">+ <!ENTITY symboloperators "&safesymboloperators;&unsafesymboloperators;">+ <!ENTITY bracehyperoperator "(?:\[[^\s]+\]|\([^\s]+\))">+ <!ENTITY prefixoperator "R?(?:[XZ]|xx)?">+ <!ENTITY extrasymboloperators "(?:\^fff?\b\^?|\bf?ff\^|\((?:[<>][+=]|[-&+.<>|^]|cont|elem)\))">+ <!ENTITY hyperoperators1 "[«»]&prefixoperator;(?:&&ident;|[&safesymboloperators;<>]+|&bracehyperoperator;)[«»]">+ <!ENTITY hyperoperators2 "(?:<<|>>)&prefixoperator;(?:&&ident;|[&safesymboloperators;«»]+|&bracehyperoperator;)(?:<<|>>)">+ <!ENTITY hyperoperators "&hyperoperators1;|&hyperoperators2;">+ <!ENTITY startstringasoperator "&prefixoperator;<[&symboloperators;]*(?=\s|$)">+ <!ENTITY funcoperator "\[\[\&&ident;\]\]">+ <!ENTITY reductionoperator "\[&prefixoperator;[&symboloperators;]+\]">+ <!ENTITY innerbraceoperator "[&symboloperators;'"]+">+ <!ENTITY operators "&prefixoperator;(?:(?:[&safesymboloperators;>]|&extrasymboloperators;)[&symboloperators;]*|\(&innerbraceoperator;\)|\[&innerbraceoperator;\]|<[&safesymboloperators;'"]+>)">++ <!-- <!ENTITY regadverb "(?!\()\s*(?::\w+\s*)*(?=[^\w\s])"> -->+ <!ENTITY regadverb "(?!\()\s*(?=[^\w\s])">+]>+<language name="Raku" version="8" kateversion="5.53" section="Scripts" extensions="*.raku;*.rakumod;*.rakudoc;*.rakutest;*.pl6;*.PL6;*.p6;*.pm6;*.pod6" priority="6" author="Jonathan Poelen (jonathan.poelen@gmail.com)" license="MIT">+ <highlighting>++ <list name="pod">+ <item>begin</item>+ <item>end</item>+ <item>finish</item>+ <item>for</item>+ <include>podtypename</include>+ </list>++ <list name="podblocktypename">+ <item>pod</item>+ <include>podtypename</include>+ </list>++ <list name="podvalue">+ <item>True</item>+ <item>False</item>+ </list>++ <list name="podtypename">+ <item>head1</item>+ <item>head2</item>+ <item>head3</item>+ <item>head4</item>+ <item>head5</item>+ <item>head6</item>+ <item>item</item>+ <item>item1</item>+ <item>item2</item>+ <item>item3</item>+ <item>item4</item>+ <item>item5</item>+ <item>item6</item>+ <item>para</item>+ <item>code</item>+ <item>defn</item>+ <item>comment</item>+ <item>table</item>+ <item>input</item>+ <item>output</item>+ </list>++ <list name="quoting">+ <item>exec</item>+ <item>words</item>+ <item>quotewords</item>+ <item>scalar</item>+ <item>array</item>+ <item>hash</item>+ <item>function</item>+ <item>closure</item>+ <item>backslash</item>+ <item>heredoc</item>+ <item>val</item>+ </list>++ <list name="declareRoutine">+ <item>macro</item>+ <item>sub</item>+ <item>submethod</item>+ <item>method</item>+ <item>multi</item>+ <item>proto</item>+ <item>only</item>+ <item>category</item>+ </list>++ <list name="regexKeyword">+ <item>rule</item>+ <item>token</item>+ <item>regex</item>+ </list>++ <list name="value">+ <include>podvalue</include>+ <item>self</item>+ </list>++ <list name="varStorage">+ <item>let</item>+ <item>my</item>+ <item>our</item>+ <item>state</item>+ <item>temp</item>+ <item>has</item>+ <item>constant</item>+ </list>++ <list name="controlFlow">+ <!-- conditional -->+ <item>if</item>+ <item>else</item>+ <item>elsif</item>+ <item>unless</item>+ <!-- repeat -->+ <item>for</item>+ <item>loop</item>+ <item>repeat</item>+ <item>while</item>+ <item>until</item>+ <item>gather</item>+ <item>given</item>+ <!-- control flow -->+ <item>take</item>+ <item>do</item>+ <item>when</item>+ <item>next</item>+ <item>last</item>+ <item>redo</item>+ <item>return</item>+ <item>contend</item>+ <item>maybe</item>+ <item>defer</item>+ <item>default</item>+ <item>exit</item>+ <item>make</item>+ <item>continue</item>+ <item>break</item>+ <item>goto</item>+ <item>leave</item>+ <item>async</item>+ <item>lift</item>+ <!-- exception -->+ <item>die</item>+ <item>fail</item>+ <item>try</item>+ <item>warn</item>+ </list>++ <list name="keyword">+ <!-- include -->+ <item>no</item>+ <item>use</item>+ <item>require</item>+ <!-- typeConstraint -->+ <item>is</item>+ <item>as</item>+ <item>but</item>+ <item>trusts</item>+ <item>of</item>+ <item>returns</item>+ <item>handles</item>+ <item>where</item>+ <item>augment</item>+ <item>supersede</item>+ <!-- module -->+ <item>module</item>+ <item>class</item>+ <item>role</item>+ <item>package</item>+ <item>enum</item>+ <item>grammar</item>+ <item>slang</item>+ <item>subset</item>+ <!-- closure trait -->+ <item>BEGIN</item>+ <item>CHECK</item>+ <item>INIT</item>+ <item>START</item>+ <item>FIRST</item>+ <item>ENTER</item>+ <item>LEAVE</item>+ <item>KEEP</item>+ <item>UNDO</item>+ <item>NEXT</item>+ <item>LAST</item>+ <item>PRE</item>+ <item>POST</item>+ <item>END</item>+ <item>CATCH</item>+ <item>CONTROL</item>+ <item>TEMP</item>+ </list>++ <list name="property">+ <item>prec</item>+ <item>irs</item>+ <item>ofs</item>+ <item>ors</item>+ <item>export</item>+ <item>deep</item>+ <item>binary</item>+ <item>unary</item>+ <item>reparsed</item>+ <item>rw</item>+ <item>parsed</item>+ <item>cached</item>+ <item>readonly</item>+ <item>defequiv</item>+ <item>will</item>+ <item>ref</item>+ <item>copy</item>+ <item>inline</item>+ <item>tighter</item>+ <item>looser</item>+ <item>equiv</item>+ <item>assoc</item>+ <item>required</item>+ </list>++ <list name="isProperty">+ <include>property</include>+ <item>signature</item>+ <item>context</item>+ <item>also</item>+ <item>shape</item>+ </list>++ <list name="Number">+ <item>NaN</item>+ <item>Inf</item>+ </list>++ <list name="type">+ <item>Object</item>+ <item>Any</item>+ <item>Junction</item>+ <item>Whatever</item>+ <item>Capture</item>+ <item>Match</item>+ <item>Signature</item>+ <item>Proxy</item>+ <item>Matcher</item>+ <item>Package</item>+ <item>Module</item>+ <item>Class</item>+ <item>Grammar</item>+ <item>Scalar</item>+ <item>Array</item>+ <item>Hash</item>+ <item>KeyHash</item>+ <item>KeySet</item>+ <item>KeyBag</item>+ <item>Pair</item>+ <item>List</item>+ <item>Seq</item>+ <item>Range</item>+ <item>Set</item>+ <item>Bag</item>+ <item>Mapping</item>+ <item>Void</item>+ <item>Undef</item>+ <item>Failure</item>+ <item>Exception</item>+ <item>Code</item>+ <item>Block</item>+ <item>Routine</item>+ <item>Sub</item>+ <item>Macro</item>+ <item>Method</item>+ <item>Submethod</item>+ <item>Regex</item>+ <item>Str</item>+ <item>Blob</item>+ <item>Char</item>+ <item>Byte</item>+ <item>Codepoint</item>+ <item>Grapheme</item>+ <item>StrPos</item>+ <item>StrLen</item>+ <item>Version</item>+ <item>Num</item>+ <item>Complex</item>+ <item>num</item>+ <item>complex</item>+ <item>Bit</item>+ <item>bit</item>+ <item>bool</item>+ <item>True</item>+ <item>False</item>+ <item>Increasing</item>+ <item>Decreasing</item>+ <item>Ordered</item>+ <item>Callable</item>+ <item>AnyChar</item>+ <item>Positional</item>+ <item>Associative</item>+ <item>Ordering</item>+ <item>KeyExtractor</item>+ <item>Comparator</item>+ <item>OrderingPair</item>+ <item>IO</item>+ <item>KitchenSink</item>+ <item>Role</item>+ <item>Int</item>+ <item>int</item>+ <item>int1</item>+ <item>int2</item>+ <item>int4</item>+ <item>int8</item>+ <item>int16</item>+ <item>int32</item>+ <item>int64</item>+ <item>Rat</item>+ <item>rat</item>+ <item>rat1</item>+ <item>rat2</item>+ <item>rat4</item>+ <item>rat8</item>+ <item>rat16</item>+ <item>rat32</item>+ <item>rat64</item>+ <item>Buf</item>+ <item>buf</item>+ <item>buf1</item>+ <item>buf2</item>+ <item>buf4</item>+ <item>buf8</item>+ <item>buf16</item>+ <item>buf32</item>+ <item>buf64</item>+ <item>UInt</item>+ <item>uint</item>+ <item>uint1</item>+ <item>uint2</item>+ <item>uint4</item>+ <item>uint8</item>+ <item>uint16</item>+ <item>uint32</item>+ <item>uint64</item>+ <item>Abstraction</item>+ <item>utf8</item>+ <item>utf16</item>+ <item>utf32</item>+ </list>++ <list name="operator">+ <item>X</item>+ <item>gcd</item>+ <item>ge</item>+ <item>gt</item>+ <item>lcm</item>+ <item>le</item>+ <item>leg</item>+ <item>let</item>+ <item>lt</item>+ <item>map</item>+ <item>max</item>+ <item>min</item>+ <item>minmax</item>+ <item>mod</item>+ <item>ne</item>+ <item>not</item>+ <item>notandthen</item>+ <item>o</item>+ <item>or</item>+ <item>orelse</item>+ <item>print</item>+ <item>push</item>+ <item>say</item>+ <item>so</item>+ <item>substr</item>+ <item>temp</item>+ <item>unicmp</item>+ <item>x</item>+ <item>xor</item>+ <item>xx</item>+ <item>Xeqv</item>+ <item>Z</item>+ <item>and</item>+ <item>andthen</item>+ <item>any</item>+ <item>but</item>+ <item>cmp</item>+ <item>coll</item>+ <item>die</item>+ <item>div</item>+ <item>does</item>+ <item>eq</item>+ <item>eqv</item>+ <item>ff</item>+ <item>fff</item>+ </list>++ <list name="unicodeGeneralCategories">+ <item>L</item> <item>Letter</item>+ <item>LC</item> <item>Cased_Letter</item>+ <item>Lu</item> <item>Uppercase_Letter</item>+ <item>Ll</item> <item>Lowercase_Letter</item>+ <item>Lt</item> <item>Titlecase_Letter</item>+ <item>Lm</item> <item>Modifier_Letter</item>+ <item>Lo</item> <item>Other_Letter</item>+ <item>M</item> <item>Mark</item>+ <item>Mn</item> <item>Nonspacing_Mark</item>+ <item>Mc</item> <item>Spacing_Mark</item>+ <item>Me</item> <item>Enclosing_Mark</item>+ <item>N</item> <item>Number</item>+ <item>Nd</item> <item>Decimal_Number</item> <item>digit</item>+ <item>Nl</item> <item>Letter_Number</item>+ <item>No</item> <item>Other_Number</item>+ <item>P</item> <item>Punctuation</item> <item>punct</item>+ <item>Pc</item> <item>Connector_Punctuation</item>+ <item>Pd</item> <item>Dash_Punctuation</item>+ <item>Ps</item> <item>Open_Punctuation</item>+ <item>Pe</item> <item>Close_Punctuation</item>+ <item>Pi</item> <item>Initial_Punctuation</item>+ <item>Pf</item> <item>Final_Punctuation</item>+ <item>Po</item> <item>Other_Punctuation</item>+ <item>S</item> <item>Symbol</item>+ <item>Sm</item> <item>Math_Symbol</item>+ <item>Sc</item> <item>Currency_Symbol</item>+ <item>Sk</item> <item>Modifier_Symbol</item>+ <item>So</item> <item>Other_Symbol</item>+ <item>Z</item> <item>Separator</item>+ <item>Zs</item> <item>Space_Separator</item>+ <item>Zl</item> <item>Line_Separator</item>+ <item>Zp</item> <item>Paragraph_Separator</item>+ <item>C</item> <item>Other</item>+ <item>Cc</item> <item>Control</item> <item>cntrl</item>+ <item>Cf</item> <item>Format</item>+ <item>Cs</item> <item>Surrogate</item>+ <item>Co</item> <item>Private_Use</item>+ <item>Cn</item> <item>Unassigned</item>+ </list>++ <list name="assertion">+ <item>before</item>+ <item>after</item>+ </list>++ <contexts>++ <context name="Shebang" attribute="Comment" lineEndContext="#pop!base" fallthrough="1" fallthroughContext="#pop!base">+ <RegExpr attribute="Keyword" context="#pop!base" String="^#!\/.*" column="0"/>+ </context>++ <context name="base" attribute="Normal Text" lineEndContext="#stay">+ <DetectSpaces/>+ <DetectChar attribute="Comment" context="StartComment" char="#"/>+ <!-- <DetectChar attribute="Unspace" context="#stay" char="\"/> -->+ <DetectChar attribute="String Delimiter" context="qq_RawString" char="""/>+ <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/>+ <DetectChar char="{" context="Interpolation" attribute="Operator" beginRegion="block"/>+ <RegExpr String="(?:s|tr|TR)®adverb;" context="RegexSubstitution" attribute="Operator"/>+ <RegExpr String="(?:rx|m)®adverb;" context="Regex" attribute="Operator"/>+ <IncludeRules context="find_Variable"/>+ <DetectChar attribute="Pod" context="StartPod" char="=" firstNonSpace="1"/>+ <RegExpr String="»\.|<<\.|&hyperoperators;|&startstringasoperator;|&funcoperator;|&reductionoperator;|&operators;" context="MaybeRegex" attribute="Operator"/>+ <DetectChar char="(" context="SubExpression(" attribute="Operator" beginRegion="block"/>+ <DetectChar char="[" context="SubExpression[" attribute="Operator" beginRegion="block"/>+ <AnyChar String=",;" context="#stay" attribute="Separator Symbol"/>+ <DetectChar attribute="String Delimiter" context="qq_String«" char="«"/>+ <Detect2Chars attribute="String Delimiter" context="qq_String<<" char="<" char1="<"/>+ <DetectChar attribute="String Delimiter" context="q_String<" char="<"/>+ <DetectChar attribute="String Delimiter" context="Q_String「" char="「"/>+ <RegExpr String="Q(\s++(?=['(_]|$)|\s*+(?=[^()>」\]}'&rangealphabetic;&rangenumeric;]|$))" context="Q_String" attribute="String"/>+ <DetectChar char=":" context="MaybeAttribute" attribute="Operator"/>+ <AnyChar String="0123456789." context="Number" lookAhead="1"/>+ <RegExpr attribute="Operator" context="q_QuotingForm" String="q(?="ingform_q;"ingform_q_assert;)"/>+ <keyword String="operator" context="#stay" attribute="Operator"/>+ <keyword String="varStorage" context="#stay" attribute="Variable Storage"/>+ <keyword String="type" context="#stay" attribute="Data Type"/>+ <keyword String="controlFlow" context="#stay" attribute="Control Flow"/>+ <WordDetect String="is" context="Is" attribute="Keyword"/>+ <keyword String="keyword" context="#stay" attribute="Keyword"/>+ <keyword String="declareRoutine" context="#stay" attribute="Declare Routine"/>+ <keyword String="property" context="#stay" attribute="Property"/>+ <keyword String="regexKeyword" context="RegexKeyword" attribute="Keyword"/>+ <keyword String="value" context="#stay" attribute="Keyword Value"/>+ <keyword String="Number" context="#stay" attribute="Float"/>+ <RegExpr String="[A-Z](?:[a-z]+[a-zA-Z0-9]*)+" context="#stay" attribute="Data Type"/>+ <RegExpr String="&ident;" context="#stay" attribute="Normal Text"/>+ </context>++ <context name="Is" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <DetectSpaces/>+ <keyword String="isProperty" context="#pop" attribute="Property"/>+ </context>++ <context name="Interpolation" attribute="Normal Text" lineEndContext="#stay">+ <DetectChar char="}" context="#pop" attribute="Operator" endRegion="block"/>+ <IncludeRules context="base"/>+ </context>++ <context name="SubExpression(" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="base"/>+ <DetectChar char=")" context="#pop" attribute="Operator" endRegion="block"/>+ </context>++ <context name="SubExpression[" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="base"/>+ <DetectChar char="]" context="#pop" attribute="Operator" endRegion="block"/>+ </context>++ <context name="find_Variable" attribute="Normal Text" lineEndContext="#stay">+ <RegExpr String="[%&](?=[?*]&alphabetic;)|(?:\$[&twigils;]|::\?)(?=&alphabetic;)" context="Twigil" attribute="Variable"/>+ <RegExpr String="[$@]\(\)|[%@]?\$/|\$!|\$[0-9]+|[\\@%&$]&ident;" context="#stay" attribute="Variable"/>+ </context>++ <context name="MaybeRegex" attribute="Normal Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <DetectSpaces/>+ <DetectChar char="/" context="#pop!Regex" attribute="Operator" lookAhead="1"/>+ </context>++ <context name="Twigil" attribute="Variable" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <AnyChar String="&twigils;" context="#stay" attribute="Twigil"/>+ <RegExpr String="&ident;" context="#pop" attribute="Variable"/>+ </context>++ <context name="RegexKeyword" attribute="Normal Text" lineEndContext="#pop">+ <DetectChar char="{" context="#pop!RegexKeyword-Pattern{" attribute="Operator" beginRegion="regex"/>+ </context>+ <context name="RegexKeyword-Pattern{" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char="}" context="#pop" attribute="Operator" endRegion="regex"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <!-- Regex -->++ <context name="Regex" attribute="Pattern" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <IncludeRules context="find_RegexClosure"/>+ <RegExpr String="([^\w\s])" context="Pattern" attribute="Operator" beginRegion="regex"/>+ </context>++ <context name="find_RegexClosure" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char=":" context="RegexModifier" attribute="Pattern Modifier"/>+ <DetectChar char="{" context="Pattern{" attribute="Operator" beginRegion="regex"/>+ <DetectChar char="(" context="Pattern(" attribute="Operator" beginRegion="regex"/>+ <DetectChar char="[" context="Pattern[" attribute="Operator" beginRegion="regex"/>+ <DetectChar char="<" context="Pattern<" attribute="Operator" beginRegion="regex"/>+ <DetectSpaces/>+ </context>++ <context name="RegexModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <Detect2Chars char="P" char1="5" context="RegexPerl5" attribute="Pattern Modifier"/>+ <StringDetect String="Perl5" context="RegexPerl5" attribute="Pattern Modifier"/>+ <DetectIdentifier context="#pop" attribute="Pattern Modifier"/>+ </context>++ <context name="RegexPerl5" attribute="Pattern Modifier" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop!IsRegexPerl5">+ <DetectSpaces/>+ </context>++ <context name="IsRegexPerl5" attribute="Pattern" lineEndContext="#stay">+ <IncludeRules context="find_pattern##Perl"/>+ </context>++ <context name="Pattern{" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char="}" context="#pop#pop" attribute="Operator" endRegion="regex"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="Pattern[" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char="]" context="#pop#pop" attribute="Operator" endRegion="regex"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="Pattern(" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char=")" context="#pop#pop" attribute="Operator" endRegion="regex"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="Pattern<" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char=">" context="#pop#pop" attribute="Operator" endRegion="regex"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="Pattern" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char="1" dynamic="1" context="#pop#pop" attribute="Operator" endRegion="regex"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="find_Pattern" attribute="Pattern" lineEndContext="#stay">+ <DetectChar attribute="Operator" context="SubPattern" char="("/>+ <DetectChar char="\" context="PatternMetaChar" attribute="Pattern Character Class"/>+ <DetectChar attribute="String Delimiter" context="qq_RawString" char="""/>+ <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/>+ <DetectChar attribute="Pattern Modifier" context="PatternModifier" char=":" lookAhead="1"/>+ <DetectChar char="{" context="Interpolation" attribute="Operator" beginRegion="block"/>+ <Detect2Chars attribute="Operator" context="RecursivePattern" char="<" char1="("/>+ <Detect2Chars attribute="Operator" context="PatternAssertion" char="<" char1="?"/>+ <Detect2Chars attribute="Operator" context="PatternAssertion" char="<" char1="!"/>+ <Detect2Chars attribute="Operator" context="#stay" char="<" char1="<"/>+ <Detect2Chars attribute="Operator" context="#stay" char=">" char1=">"/>+ <DetectChar attribute="Pattern Meta Character" context="RegexClass" char="<"/>+ <AnyChar attribute="Pattern Quantifier" context="#stay" String="?*+%"/>+ <Detect2Chars attribute="Pattern Quantifier" context="#stay" char="." char1="."/>+ <AnyChar attribute="Operator" context="#stay" String="[]«»~"/>+ <DetectChar attribute="Pattern Special Character" context="#stay" char="."/>+ <Detect2Chars attribute="Variable" context="PatternVariable" char="$" char1="<"/>+ <AnyChar attribute="Pattern Control Flow" context="#stay" String="&|^$"/>+ <DetectChar attribute="Comment" context="StartComment" char="#"/>+ <IncludeRules context="find_Variable"/>+ <RegExpr String="[&rangealphabetic;&rangenumeric;\s]+" context="#stay" attribute="Pattern"/>+ </context>++ <context name="SubPattern" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char=")" context="#pop" attribute="Operator"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="RecursivePattern" attribute="Variable" lineEndContext="#stay">+ <Detect2Chars attribute="Operator" context="#pop" char=")" char1=">"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="PatternModifier" attribute="Pattern Modifier" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <RegExpr context="#pop" attribute="Pattern Modifier" String=":\w+"/>+ <DetectChar attribute="Pattern Control Flow" context="#pop" char=":"/>+ </context>++ <context name="PatternVariable" attribute="Variable" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <RegExpr String="&ident;>?" context="#pop" attribute="Variable"/>+ </context>++ <context name="PatternAssertion" attribute="Normal Text" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!RegexClass">+ <DetectChar attribute="Operator" context="#pop" char=">"/>+ <DetectChar attribute="Operator" context="PatternAssertionCond" char="{"/>+ <keyword attribute="Keyword" String="assertion" context="SubPatternAssertion"/>+ </context>+ <context name="SubPatternAssertion" attribute="Pattern" lineEndContext="#stay">+ <DetectChar char=">" context="#pop#pop" attribute="Operator"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="PatternAssertionCond" attribute="Normal Text" lineEndContext="#stay">+ <Detect2Chars attribute="Operator" context="#pop#pop" char="}" char1=">"/>+ <IncludeRules context="base"/>+ </context>++ <context name="PatternMetaChar" attribute="Pattern Meta Character" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop!CharError">+ <AnyChar attribute="Pattern Character Class" context="#pop" String="nthvsdwNTHVSDW"/>+ <RegExpr String="[^&rangealphabetic;&rangenumeric;]" context="#pop" attribute="Pattern Meta Character"/>+ </context>+++ <!-- Pattern Character Classes -->++ <context name="RegexClass" attribute="Pattern Meta Character" lineEndContext="#stay">+ <DetectSpaces/>+ <AnyChar attribute="Operator" context="#stay" String="-!+()"/>+ <DetectChar attribute="Pattern Meta Character" context="RegexClassRange" char="["/>+ <DetectChar attribute="Pattern Unicode Property" context="RegexClassName" char=":"/>+ <DetectChar attribute="Pattern Meta Character" context="#pop" char=">"/>+ <DetectChar attribute="String Delimiter" context="q_RawString" char="'"/>+ <DetectChar attribute="String Delimiter" context="qq_RawString" char="""/>+ <DetectChar attribute="String Delimiter" context="Q_String「" char="「"/>+ <DetectChar attribute="String Delimiter" context="q_String<" char="<"/>+ <DetectChar attribute="String Delimiter" context="qq_String«" char="«"/>+ <RegExpr attribute="String" context="#stay" String="[^-!+()?:<>'"「«]+"/>+ </context>++ <context name="RegexClassName" attribute="Pattern Unicode Property" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <RegExpr String="\w+" context="#pop" attribute="Pattern Unicode Property"/>+ <!-- auto-completion only -->+ <keyword attribute="Pattern Unicode Property" context="#pop" String="unicodeGeneralCategories"/>+ </context>++ <context name="RegexClassRange" attribute="Pattern Character" lineEndContext="#stay">+ <DetectSpaces/>+ <DetectChar char="\" context="RegexClassRangeMetaChar" attribute="Pattern Character Class"/>+ <Detect2Chars char="." char1="." context="#stay" attribute="Pattern Quantifier"/>+ <DetectChar attribute="Pattern Meta Character" context="#pop" char="]"/>+ </context>++ <context name="RegexClassRangeMetaChar" attribute="Pattern Meta Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <DetectSpaces/>+ <IncludeRules context="find_SpecialChar"/>+ <IncludeRules context="PatternMetaChar"/>+ </context>+++ <!-- Regex Substitution -->++ <context name="RegexSubstitution" attribute="Operator" lineEndContext="#stay">+ <IncludeRules context="find_RegexClosure"/>+ <RegExpr String="([^\w\s])" context="RegexSubstitutionPattern" attribute="Operator" beginRegion="regex"/>+ </context>++ <context name="RegexSubstitutionPattern" attribute="Pattern" lineEndContext="#stay">+ <RegExpr String="(%1)" dynamic="1" context="RegexSubstitutionString" attribute="Operator" endRegion="regex"/>+ <IncludeRules context="find_Pattern"/>+ </context>++ <context name="RegexSubstitutionString" attribute="String" lineEndContext="#stay">+ <DetectChar char="1" dynamic="1" context="#pop#pop#pop" attribute="Operator"/>+ </context>+++ <!-- Number -->++ <context name="Number" attribute="Decimal" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!CharErrorIfNoSep">+ <RegExpr String="&int10;(?:\.&int10;(?:[eE][+-]?&int10;)?|[eE][+-]?&int10;)i?|\.&int10;(?:[eE][+-]?&int10;)?i?" context="CheckNumberError" attribute="Float"/>+ <Detect2Chars char="0" char1="x" context="HexNumber" attribute="Hex"/>+ <Detect2Chars char="0" char1="o" context="OctalNumber" attribute="Octal"/>+ <RegExpr String="&int10;i?" context="CheckNumberError" attribute="Decimal"/>+ <DetectChar char="." context="#pop" attribute="Operator"/>+ </context>++ <context name="HexNumber" attribute="Hex" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep">+ <RegExpr String="[a-fA-F0-9]+(?:_[a-fA-F0-9]+)*i?" context="#pop!CheckNumberError" attribute="Hex"/>+ </context>++ <context name="OctalNumber" attribute="Octal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep">+ <RegExpr String="[0-7]+(?:_[0-7]+)*i?" context="#pop!CheckNumberError" attribute="Octal"/>+ </context>++ <context name="BaseNumber" attribute="Decimal" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop!CharErrorIfNoSep">+ <DetectChar char=">" context="#pop#pop#pop" attribute="Error"/>+ <RegExpr String="&intN;\.&intN;|\.&intN;" context="#pop#pop!BaseNumberClose" attribute="Float"/>+ <RegExpr String="&intN;" context="#pop#pop!BaseNumberClose" attribute="Decimal"/>+ </context>+ <context name="BaseNumberClose" attribute="Decimal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop!CharErrorIfNoSep">+ <DetectChar char=">" context="#pop#pop" attribute="Operator"/>+ <IncludeRules context="CheckNumberError"/>+ </context>++ <context name="CheckNumberError" attribute="Octal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+ <RegExpr String="&alnum;+" context="#pop#pop" attribute="Error"/>+ </context>+++ <!-- Attribute or Key -->++ <context name="MaybeAttribute" attribute="Normal Text" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <Int context="MaybeAttribute2" attribute="Decimal"/>+ <DetectChar char="!" context="#pop" attribute="Operator"/>+ <RegExpr String="&ident;" context="#pop" attribute="Attribute"/>+ </context>++ <context name="MaybeAttribute2" attribute="Decimal" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+ <DetectChar char="<" context="BaseNumber" attribute="Operator"/>+ </context>+++ <!-- Pod -->++ <context name="StartPod" attribute="Pod Typename" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop">+ <WordDetect String="begin" context="PodBegin" attribute="Pod Block"/>+ <WordDetect String="for" context="PodFor" attribute="Pod Typename"/>+ <keyword String="pod" context="PodTypenameValue" attribute="Pod Typename"/>+ <RegExpr String="[_A-Z][-_A-Z0-9]*\b" context="PodTypenameValue" attribute="Pod Typename"/>+ <RegExpr String="&ident;" context="PodTypenameValue" attribute="Pod Unknown"/>+ </context>++ <context name="PodTypenameValue" attribute="Pod Typename Value" lineEndContext="PodTypenameValueNextLine" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Typename Value" context="#stay" String="&allnopodfmt;"/>+ </context>++ <context name="PodTypenameValueNextLine" attribute="Pod Typename Value" lineEndContext="#stay" lineEmptyContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop">+ <DetectSpaces attribute="Normal Text" context="PodTypenameValueOrEmpty"/>+ <DetectChar attribute="Pod" context="#pop#pop#pop" char="=" lookAhead="true"/>+ </context>++ <context name="PodTypenameValueOrEmpty" attribute="Pod Typename Value" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+ <DetectChar attribute="Pod" context="#pop#pop#pop#pop" char="=" lookAhead="true"/>+ </context>+++ <!-- Pod formatting -->++ <context name="PodFormat" attribute="Pod Typename Value" lineEndContext="#stay">+ <Detect2Chars char="B" char1="<" attribute="Pod Bold" context="#pop!PodFormatB"/>+ <Detect2Chars char="B" char1="«" attribute="Pod Bold" context="#pop!PodFormatB2"/>+ <Detect2Chars char="I" char1="<" attribute="Pod Italic" context="#pop!PodFormatI"/>+ <Detect2Chars char="I" char1="«" attribute="Pod Italic" context="#pop!PodFormatI2"/>+ <Detect2Chars char="L" char1="<" attribute="Pod Link" context="#pop!PodFormatL"/>+ <Detect2Chars char="L" char1="«" attribute="Pod Link" context="#pop!PodFormatL2"/>+ <Detect2Chars char="N" char1="<" attribute="Pod Note" context="#pop!PodFormatN"/>+ <Detect2Chars char="N" char1="«" attribute="Pod Note" context="#pop!PodFormatN2"/>+ <Detect2Chars char="P" char1="<" attribute="Pod Link" context="#pop!PodFormatL"/>+ <Detect2Chars char="P" char1="«" attribute="Pod Link" context="#pop!PodFormatL2"/>+ <Detect2Chars char="Z" char1="<" attribute="Pod Comment" context="#pop!PodFormatZ"/>+ <Detect2Chars char="Z" char1="«" attribute="Pod Comment" context="#pop!PodFormatZ2"/>+ <Detect2Chars char="U" char1="<" attribute="Pod Underline" context="#pop!PodFormatU"/>+ <Detect2Chars char="U" char1="«" attribute="Pod Underline" context="#pop!PodFormatU2"/>+ <Detect2Chars char="C" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>+ <Detect2Chars char="C" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>+ <Detect2Chars char="E" char1="<" attribute="Pod Unicode" context="#pop!PodFormatE"/>+ <Detect2Chars char="E" char1="«" attribute="Pod Unicode" context="#pop!PodFormatE2"/>+ <Detect2Chars char="K" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>+ <Detect2Chars char="K" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>+ <Detect2Chars char="R" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>+ <Detect2Chars char="R" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>+ <Detect2Chars char="T" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>+ <Detect2Chars char="T" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>+ <Detect2Chars char="V" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatV"/>+ <Detect2Chars char="V" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatV2"/>+ <Detect2Chars char="X" char1="<" attribute="Pod Indexed Terms" context="#pop!PodFormatX"/>+ <Detect2Chars char="X" char1="«" attribute="Pod Indexed Terms" context="#pop!PodFormatX2"/>+ <Detect2Chars char="M" char1="<" attribute="Pod Verbatim" context="#pop!PodFormatVT"/>+ <Detect2Chars char="M" char1="«" attribute="Pod Verbatim" context="#pop!PodFormatVT2"/>+ </context>++ <context name="PodFormatB" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatB1">+ <DetectChar char="<" attribute="Pod Bold" context="#pop!PodFormatB3"/>+ </context>+ <context name="PodFormatB1" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt1;"/>+ <DetectChar char="<" attribute="Pod Bold" context="PodFormatB1"/>+ <DetectChar char=">" attribute="Pod Bold" context="#pop"/>+ </context>+ <context name="PodFormatB2" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt2;"/>+ <DetectChar char="«" attribute="Pod Bold" context="PodFormatB2"/>+ <DetectChar char="»" attribute="Pod Bold" context="#pop"/>+ </context>+ <context name="PodFormatB3" attribute="Pod Bold" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Bold" context="#stay" String="&allnopodfmt3;"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Bold" context="PodFormatB3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Bold" context="#pop"/>+ </context>++ <context name="PodFormatE" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatE1">+ <DetectChar char="<" attribute="Pod Unicode" context="#pop!PodFormatE3"/>+ </context>+ <context name="PodFormatE1" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt1;"/>+ <DetectChar char="<" attribute="Pod Unicode" context="PodFormatE1"/>+ <DetectChar char=">" attribute="Pod Unicode" context="#pop"/>+ </context>+ <context name="PodFormatE2" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt2;"/>+ <DetectChar char="«" attribute="Pod Unicode" context="PodFormatE2"/>+ <DetectChar char="»" attribute="Pod Unicode" context="#pop"/>+ </context>+ <context name="PodFormatE3" attribute="Pod Unicode" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Unicode" context="#stay" String="&allnopodfmt3;"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Unicode" context="PodFormatE3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Unicode" context="#pop"/>+ </context>++ <context name="PodFormatI" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatI1">+ <DetectChar char="<" attribute="Pod Italic" context="#pop!PodFormatI3"/>+ </context>+ <context name="PodFormatI1" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt1;"/>+ <DetectChar char="<" attribute="Pod Italic" context="PodFormatI1"/>+ <DetectChar char=">" attribute="Pod Italic" context="#pop"/>+ </context>+ <context name="PodFormatI2" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt2;"/>+ <DetectChar char="«" attribute="Pod Italic" context="PodFormatI2"/>+ <DetectChar char="»" attribute="Pod Italic" context="#pop"/>+ </context>+ <context name="PodFormatI3" attribute="Pod Italic" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Italic" context="#stay" String="&allnopodfmt3;"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Italic" context="PodFormatI3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Italic" context="#pop"/>+ </context>++ <context name="PodFormatL" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatL1">+ <DetectChar char="<" attribute="Pod Link" context="#pop!PodFormatL3"/>+ </context>+ <context name="PodFormatL1" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|]+|[&podfmt;](?![<«]))+"/>+ <DetectChar char="|" attribute="Pod Operator" context="#stay"/>+ <DetectChar char=">" attribute="Pod Link" context="#pop"/>+ </context>+ <context name="PodFormatL2" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|]+|[&podfmt;](?![<«]))+"/>+ <DetectChar char="|" attribute="Pod Operator" context="#stay"/>+ <DetectChar char="»" attribute="Pod Link" context="#pop"/>+ </context>+ <context name="PodFormatL3" attribute="Pod Link" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+"/>+ <DetectChar char="|" attribute="Pod Operator" context="#stay"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Link" context="#pop"/>+ </context>++ <context name="PodFormatN" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatN1">+ <DetectChar char="<" attribute="Pod Note" context="#pop!PodFormatN3"/>+ </context>+ <context name="PodFormatN1" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt1;"/>+ <DetectChar char="<" attribute="Pod Note" context="PodFormatN1"/>+ <DetectChar char=">" attribute="Pod Note" context="#pop"/>+ </context>+ <context name="PodFormatN2" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt2;"/>+ <DetectChar char="«" attribute="Pod Note" context="PodFormatN2"/>+ <DetectChar char="»" attribute="Pod Note" context="#pop"/>+ </context>+ <context name="PodFormatN3" attribute="Pod Note" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Note" context="#stay" String="&allnopodfmt3;"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Note" context="PodFormatN3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Note" context="#pop"/>+ </context>++ <context name="PodFormatU" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatU1">+ <DetectChar char="<" attribute="Pod Underline" context="#pop!PodFormatU3"/>+ </context>+ <context name="PodFormatU1" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt1;"/>+ <DetectChar char="<" attribute="Pod Underline" context="PodFormatU1"/>+ <DetectChar char=">" attribute="Pod Underline" context="#pop"/>+ </context>+ <context name="PodFormatU2" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt2;"/>+ <DetectChar char="«" attribute="Pod Underline" context="PodFormatU2"/>+ <DetectChar char="»" attribute="Pod Underline" context="#pop"/>+ </context>+ <context name="PodFormatU3" attribute="Pod Underline" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Underline" context="#stay" String="&allnopodfmt3;"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Underline" context="PodFormatU3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Underline" context="#pop"/>+ </context>++ <context name="PodFormatV" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatV1">+ <DetectChar char="<" attribute="Pod Verbatim" context="#pop!PodFormatV3"/>+ </context>+ <context name="PodFormatV1" attribute="Pod Verbatim" lineEndContext="#stay">+ <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/>+ <DetectChar char="<" attribute="Pod Verbatim" context="PodFormatV1"/>+ <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/>+ </context>+ <context name="PodFormatV2" attribute="Pod Verbatim" lineEndContext="#stay">+ <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/>+ <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatV2"/>+ <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/>+ </context>+ <context name="PodFormatV3" attribute="Pod Verbatim" lineEndContext="#stay">+ <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Verbatim" context="PodFormatV3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/>+ </context>++ <context name="PodFormatVT" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatVT1">+ <DetectChar char="<" attribute="Pod Verbatim" context="#pop!PodFormatVT3"/>+ </context>+ <context name="PodFormatVT1" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt1;"/>+ <DetectChar char="<" attribute="Pod Verbatim" context="PodFormatVT1"/>+ <DetectChar char=">" attribute="Pod Verbatim" context="#pop"/>+ </context>+ <context name="PodFormatVT2" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt2;"/>+ <DetectChar char="«" attribute="Pod Verbatim" context="PodFormatVT2"/>+ <DetectChar char="»" attribute="Pod Verbatim" context="#pop"/>+ </context>+ <context name="PodFormatVT3" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Verbatim" context="#stay" String="&allnopodfmt3;"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Verbatim" context="PodFormatVT3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Verbatim" context="#pop"/>+ </context>++ <context name="PodFormatZ" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatZ1">+ <DetectChar char="<" attribute="Pod Comment" context="#pop!PodFormatZ3"/>+ </context>+ <context name="PodFormatZ1" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt1;"/>+ <DetectChar char="<" attribute="Pod Comment" context="PodFormatZ1"/>+ <DetectChar char=">" attribute="Pod Comment" context="#pop"/>+ </context>+ <context name="PodFormatZ2" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt2;"/>+ <DetectChar char="«" attribute="Pod Comment" context="PodFormatZ2"/>+ <DetectChar char="»" attribute="Pod Comment" context="#pop"/>+ </context>+ <context name="PodFormatZ3" attribute="Pod Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Comment" context="#stay" String="&allnopodfmt3;"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Comment" context="PodFormatZ3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Comment" context="#pop"/>+ </context>++ <context name="PodFormatX" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!PodFormatX1">+ <DetectChar char="<" attribute="Pod Indexed Terms" context="#pop!PodFormatX3"/>+ </context>+ <context name="PodFormatX1" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|;,]+|[&podfmt;](?![<«]))+"/>+ <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>+ <DetectChar char=">" attribute="Pod Indexed Terms" context="#pop"/>+ </context>+ <context name="PodFormatX2" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;«»|;,]+|[&podfmt;](?![<«]))+"/>+ <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>+ <DetectChar char="«" attribute="Pod Indexed Terms" context="PodFormatX2"/>+ <DetectChar char="»" attribute="Pod Indexed Terms" context="#pop"/>+ </context>+ <context name="PodFormatX3" attribute="Pod Indexed Terms" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodFormat">+ <RegExpr attribute="Pod Link" context="#stay" String="(?:[^&podfmt;<>|;,]+|[&podfmt;](?![<«])|>(?!>)|<(?!<))+"/>+ <AnyChar String="|;," attribute="Pod Operator" context="#stay"/>+ <Detect2Chars char="<" char1="<" attribute="Pod Indexed Terms" context="PodFormatX3"/>+ <Detect2Chars char=">" char1=">" attribute="Pod Indexed Terms" context="#pop"/>+ </context>++ <!-- Pod =begin -->++ <context name="PodBegin" attribute="Pod Typename Value" lineEndContext="#pop#pop!Error">+ <DetectSpaces attribute="Normal Text"/>+ <WordDetect String="code" context="PodBeginCode" attribute="Pod Typename Value" beginRegion="pod"/>+ <WordDetect String="comment" context="PodBeginComment" attribute="Pod Typename Value" beginRegion="pod"/>+ <RegExpr String="(&ident;)" context="PodBeginTypename" attribute="Pod Typename Value" beginRegion="pod"/>+ <!-- auto-completion only -->+ <keyword String="podblocktypename" context="#stay" attribute="Pod Typename Value"/>+ </context>++ <context name="PodBeginCode" attribute="Error" lineEndContext="PodInnerCode">+ <DetectSpaces attribute="Normal Text"/>+ <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/>+ <DetectChar char="=" context="PodEndCode" attribute="Pod" firstNonSpace="1"/>+ </context>++ <context name="PodInnerCode" attribute="Pod Verbatim" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodCode">+ <RegExpr String="^\s*=end\s+code\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/>+ </context>+ <context name="PodCode" attribute="Pod Verbatim" lineEndContext="#pop"/>++ <context name="PodEndCode" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">+ <StringDetect String="end" context="PodEndCodeName" attribute="Pod Block" endRegion="pod"/>+ </context>+ <context name="PodEndCodeName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop#pop!Error">+ <DetectSpaces attribute="Normal Text"/>+ <StringDetect String="code" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>+ </context>+++ <context name="PodBeginComment" attribute="Error" lineEndContext="PodInnerComment">+ <DetectSpaces attribute="Normal Text"/>+ <DetectChar char="=" context="PodEndComment" attribute="Pod" firstNonSpace="1"/>+ </context>++ <context name="PodInnerComment" attribute="Comment" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodComment">+ <RegExpr String="^\s*=end\s+comment\s*$" context="#pop" attribute="Pod" column="0" lookAhead="1"/>+ </context>+ <context name="PodComment" attribute="Comment" lineEndContext="#pop"/>++ <context name="PodEndComment" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">+ <StringDetect String="end" context="PodEndCommentName" attribute="Pod Block" endRegion="pod"/>+ </context>+ <context name="PodEndCommentName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop#pop!Error">+ <DetectSpaces attribute="Normal Text"/>+ <StringDetect String="comment" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>+ </context>+++ <context name="PodBeginTypename" attribute="Error" lineEndContext="PodInnerBlock">+ <RegExpr String="^\s*=end\s+%1\b" dynamic="1" context="PodEnd" attribute="Pod" column="0" lookAhead="1"/>+ <DetectSpaces attribute="Normal Text"/>+ <DetectChar char=":" context="PodBlockConfigKey" attribute="Pod Operator"/>+ <DetectChar char="=" context="PodEndError" attribute="Pod" firstNonSpace="1"/>+ </context>++ <context name="PodInnerBlock" attribute="Pod Paragraph" lineEndContext="#stay" fallthrough="1" fallthroughContext="PodInnerBlockFormat">+ <RegExpr String="^\s*=end\b" context="#pop" attribute="Pod" column="0" lookAhead="1"/>+ <DetectSpaces/>+ <DetectChar char="=" context="StartPod" attribute="Pod" firstNonSpace="1"/>+ <RegExpr attribute="Pod Paragraph" context="#stay" String="&allnopodfmt;"/>+ </context>++ <context name="PodInnerBlockFormat" attribute="Pod Paragraph" lineEndContext="#stay">+ <IncludeRules context="PodFormat"/>+ </context>++ <context name="PodEnd" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">+ <DetectSpaces attribute="Normal Text"/>+ <DetectChar char="=" context="#stay" attribute="Pod"/>+ <StringDetect String="end" context="PodEndName" attribute="Pod Block" endRegion="pod"/>+ </context>+ <context name="PodEndName" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop#pop">+ <DetectSpaces attribute="Normal Text"/>+ <RegExpr String="&ident;" context="#pop#pop#pop#pop!Error" attribute="Pod Typename Value"/>+ </context>++ <context name="PodEndError" attribute="Pod Paragraph" lineEndContext="#pop#pop#pop">+ <StringDetect String="end" attribute="Pod Block" context="#pop#pop#pop!Error" endRegion="pod"/>+ </context>++ <!-- Pod configuration for =begin -->++ <context name="PodBlockConfigError" attribute="Error" lineEndContext="#pop#pop!PodInnerBlock"/>++ <context name="PodBlockConfigKey" attribute="Pod Key" lineEndContext="#pop!PodInnerBlock" fallthrough="1" fallthroughContext="PodBlockConfigError">+ <DetectChar char="!" context="#pop!PodBlockConfigKeyName" attribute="Pod Operator"/>+ <Int context="PodBlockConfigKeyIntName" attribute="Decimal"/>+ <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/>+ </context>++ <context name="PodBlockConfigKeyName" attribute="Pod Key" lineEndContext="#pop!PodTypenameValue" fallthrough="1" fallthroughContext="PodBlockConfigError">+ <DetectIdentifier context="PodBlockConfigParam" attribute="Pod Key"/>+ </context>++ <context name="PodBlockConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop!PodBlockConfigError" fallthrough="1" fallthroughContext="#pop!PodBlockConfigError">+ <DetectIdentifier context="#pop#pop" attribute="Pod Key"/>+ </context>++ <context name="PodBlockConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop">+ <DetectChar char="<" context="PodParamSequence" attribute="Pod Operator"/>+ <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/>+ <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/>+ </context>+++ <!-- Pod =for -->++ <context name="PodFor" attribute="Pod Typename" lineEndContext="#pop#pop!Error" fallthrough="1" fallthroughContext="#pop#pop!Error">+ <DetectSpaces attribute="Normal Text"/>+ <keyword String="podtypename" context="#pop!PodConfig" attribute="Pod Typename"/>+ </context>++ <!-- Pod configuration for =for -->++ <context name="PodConfigError" attribute="Error" lineEndContext="#pop#pop!PodTypenameValue"/>++ <context name="PodConfig" attribute="Normal Text" lineEndContext="#pop!PodTypenameValue" fallthrough="1" fallthroughContext="PodConfigError">+ <DetectSpaces/>+ <DetectChar char=":" context="PodConfigKey" attribute="Pod Operator"/>+ </context>++ <context name="PodConfigKey" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthrough="1" fallthroughContext="#pop!PodConfigError">+ <DetectChar char="!" context="#pop!PodConfigKeyName" attribute="Pod Operator"/>+ <Int context="PodConfigKeyIntName" attribute="Decimal"/>+ <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/>+ </context>++ <context name="PodConfigKeyName" attribute="Pod Key" lineEndContext="#pop#pop!PodTypenameValue" fallthrough="1" fallthroughContext="#pop!PodConfigError">+ <DetectIdentifier context="PodConfigParam" attribute="Pod Key"/>+ </context>++ <context name="PodConfigKeyIntName" attribute="Pod Key" lineEndContext="#pop#pop#pop!PodConfigError" fallthrough="1" fallthroughContext="#pop#pop!PodConfigError">+ <DetectIdentifier context="#pop#pop" attribute="Pod Key"/>+ </context>++ <context name="PodConfigParam" attribute="Pod Key" lineEndContext="#pop#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+ <DetectChar char="<" context="PodParamSequence" attribute="Pod Operator"/>+ <DetectChar char="{" context="PodParamHash" attribute="Pod Operator"/>+ <AnyChar String="([" context="PodParamList" attribute="Pod Operator"/>+ </context>++ <context name="PodParamSequence" attribute="Pod Config" lineEndContext="#stay">+ <DetectSpaces/>+ <keyword String="podvalue" context="#stay" attribute="Data Type"/>+ <DetectIdentifier/>+ <AnyChar String="0123456789." context="Number" lookAhead="1"/>+ <DetectChar char=">" context="#pop#pop#pop" attribute="Pod Operator"/>+ <DetectChar char="'" context="PodSQString" attribute="String"/>+ <DetectChar char=""" context="PodQString" attribute="String"/>+ </context>++ <context name="PodParamHash" attribute="Pod Config" lineEndContext="#stay">+ <DetectSpaces/>+ <Detect2Chars char="=" char1=">" context="#stay" attribute="Pod Operator"/>+ <DetectChar char="," context="#stay" attribute="Pod Operator"/>+ <keyword String="podvalue" context="#stay" attribute="Data Type"/>+ <DetectIdentifier/>+ <DetectChar char="'" context="PodSQString" attribute="String"/>+ <DetectChar char=""" context="PodQString" attribute="String"/>+ <AnyChar String="0123456789." context="Number" lookAhead="1"/>+ <DetectChar char="}" context="#pop#pop#pop" attribute="Pod Operator"/>+ </context>++ <context name="PodParamList" attribute="Pod Config" lineEndContext="#stay">+ <DetectSpaces/>+ <DetectChar char="," context="#stay" attribute="Pod Operator"/>+ <keyword String="podvalue" context="#stay" attribute="Data Type"/>+ <DetectIdentifier/>+ <DetectChar char="'" context="PodSQString" attribute="String"/>+ <DetectChar char=""" context="PodQString" attribute="String"/>+ <AnyChar String="0123456789." context="Number" lookAhead="1"/>+ <AnyChar String="])" context="#pop#pop#pop" attribute="Pod Operator"/>+ </context>+++ <!-- Pod String -->++ <context name="PodSQString" attribute="String" lineEndContext="#stay">+ <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/>+ <DetectChar char="'" context="#pop" attribute="String Delimiter"/>+ <RegExpr String="(?:[^\\']*|\\[^']|\\$)*" context="#stay" attribute="String"/>+ </context>++ <context name="PodQString" attribute="String" lineEndContext="#stay">+ <DetectChar char=""" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="\" context="SpecialChar" attribute="String Special Character"/>+ <RegExpr String="(?:[^"\\]*|\\$)*" context="#stay" attribute="String"/>+ </context>++ <context name="find_SpecialChar" attribute="String Special Character" lineEndContext="#stay">+ <Detect2Chars char="c" char1="[" context="UnicodeCodepoint" attribute="String Special Character"/>+ <DetectChar char="c" context="UnicodeCodepointDecimal" attribute="String Special Character"/>+ <DetectChar char="x" context="HexaString" attribute="String Special Character"/>+ <DetectChar char="o" context="OctalString" attribute="String Special Character"/>+ </context>++ <context name="SpecialChar" attribute="String Special Character" lineEndContext="#pop">+ <IncludeRules context="find_SpecialChar"/>+ <RegExpr String="." context="#pop" attribute="String"/>+ </context>++ <context name="UnicodeCodepoint" attribute="String Special Character" lineEndContext="#stay">+ <DetectSpaces/>+ <DetectIdentifier/>+ <DetectChar char="]" context="#pop#pop" attribute="String Special Character"/>+ <DetectChar char="," context="#stay" attribute="Separator Symbol"/>+ </context>++ <context name="UnicodeCodepointDecimal" attribute="String Special Character" lineEndContext="#pop#pop">+ <!-- 0 to 1114111 -->+ <RegExpr String="0*(?:1(?:0\d{5}|1(?:O\d{4}|(?:1[0-3]\d{3}|4(?:0\d\d|1(?:0\d|1[01]))))))|\d{1,6}|0+" context="UnicodeCodepointDecimalCheck" attribute="String Special Character"/>+ <RegExpr String="[^"]" context="#pop" attribute="Error"/>+ </context>+ <context name="UnicodeCodepointDecimalCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop">+ <AnyChar String="0123456789" context="#pop#pop#pop" attribute="Error"/>+ </context>++ <context name="HexaString" attribute="String Special Character" lineEndContext="#pop#pop">+ <DetectChar char="[" context="HexaStringBracket" attribute="String Special Character"/>+ <!-- 0 to 0x10FFFF -->+ <RegExpr String="0*(?:10[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})|0+" context="HexaStringCheck" attribute="String Special Character"/>+ <RegExpr String="[^"]" context="#pop#pop" attribute="Error"/>+ </context>+ <context name="HexaStringCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop">+ <AnyChar String="0123456789abcdefABCDEF" context="#pop#pop#pop" attribute="Error"/>+ </context>+ <context name="HexaStringBracket" attribute="String Special Character" lineEndContext="#stay">+ <DetectSpaces/>+ <DetectChar char="]" context="#pop#pop#pop" attribute="Error"/>+ <!-- 0 to 0x10FFFF -->+ <RegExpr String="0*(?:10[0-9a-fA-F]{4}|[0-9a-fA-F]{1,5})|0+" context="HexaStringBracketCheck" attribute="String Special Character"/>+ </context>+ <context name="HexaStringBracketCheck" attribute="String Special Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop#pop">+ <DetectChar char="]" context="#pop#pop#pop#pop" attribute="String Special Character"/>+ <DetectChar char="," context="#pop" attribute="Separator Symbol"/>+ <RegExpr String="[^]"]" context="#stay" attribute="Error"/>+ </context>++ <context name="OctalString" attribute="String Special Character" lineEndContext="#pop#pop">+ <DetectChar char="[" context="OctalStringBracket" attribute="String Special Character"/>+ <!-- 0 to 0o4177777 -->+ <RegExpr String="0*(?:[0-3][0-7]{6}|4[01]|[0-7])[0-7]{0,5}|0+" context="OctalStringCheck" attribute="String Special Character"/>+ <RegExpr String="[^"]" context="#stay" attribute="Error"/>+ </context>+ <context name="OctalStringCheck" attribute="Error" lineEndContext="#pop#pop#pop" fallthrough="1" fallthroughContext="#pop#pop#pop">+ <AnyChar String="01234567" context="#pop#pop#pop" attribute="Error"/>+ </context>+ <context name="OctalStringBracket" attribute="String Special Character" lineEndContext="#stay">+ <DetectChar char="]" context="#pop#pop#pop" attribute="Error"/>+ <!-- 0 to 0o4177777 -->+ <RegExpr String="0*(?:[0-3][0-7]{6}|4[01]|[0-7])[0-7]{0,5}|0+" context="OctalStringBracketCheck" attribute="String Special Character"/>+ </context>+ <context name="OctalStringBracketCheck" attribute="String Special Character" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop#pop#pop">+ <DetectChar char="]" context="#pop#pop#pop#pop" attribute="String Special Character"/>+ <DetectChar char="," context="#pop" attribute="Separator Symbol"/>+ <RegExpr String="[^]"]" context="#stay" attribute="Error"/>+ </context>+++ <!-- Q String -->++ <context name="Q_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop">+ <DetectSpaces attribute="String"/>+ <DetectChar char=":" context="#pop!Q_StringModifier" attribute="Operator"/>+ <DetectChar char="(" context="#pop!Q_String(" attribute="String Delimiter"/>+ <DetectChar char="[" context="#pop!Q_String[" attribute="String Delimiter"/>+ <DetectChar char="{" context="#pop!Q_String{" attribute="String Delimiter"/>+ <DetectChar char="「" context="#pop!Q_String「" attribute="String Delimiter"/>+ <DetectChar char="<" context="#pop!Q_String<" attribute="String Delimiter"/>+ <RegExpr String="([^()>」\]}'&_rangealphabetic;&rangenumeric;])" context="#pop!Q_StringAny" attribute="String Delimiter"/>+ </context>++ <context name="Q_String(" attribute="String" lineEndContext="#stay">+ <DetectChar char=")" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="(" context="Q_String(" attribute="String Delimiter"/>+ <RegExpr String="[^()]*" context="#stay" attribute="String"/>+ </context>++ <context name="Q_String[" attribute="String" lineEndContext="#stay">+ <DetectChar char="]" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="[" context="Q_String[" attribute="String Delimiter"/>+ <RegExpr String="[^\[\]]*" context="#stay" attribute="String"/>+ </context>++ <context name="Q_String{" attribute="String" lineEndContext="#stay">+ <DetectChar char="}" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="{" context="Q_String{" attribute="String Delimiter"/>+ <RegExpr String="[^{}]*" context="#stay" attribute="String"/>+ </context>++ <context name="Q_String「" attribute="String" lineEndContext="#stay">+ <DetectChar char="」" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="「" context="Q_String「" attribute="String Delimiter"/>+ <RegExpr String="[^「」]*" context="#stay" attribute="String"/>+ </context>++ <context name="Q_String<" attribute="String" lineEndContext="#stay">+ <DetectChar char=">" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="<" context="Q_String<" attribute="String Delimiter"/>+ <RegExpr String="[^<>]*" context="#stay" attribute="String"/>+ </context>++ <context name="Q_StringAny" attribute="String" lineEndContext="#stay">+ <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>+ <RegExpr String="[^%1]*" dynamic="1" context="#stay" attribute="String"/>+ </context>++ <context name="q_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop!q_String">+ <DetectChar char=":" context="#pop#pop!q_QuotingForm2" attribute="Operator"/>+ </context>++ <context name="qq_Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop!qq_String">+ <DetectChar char=":" context="#pop!qq_QuotingForm" attribute="Operator"/>+ </context>++ <context name="Q_StringModifier" attribute="Operator" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop!q_QuotingForm2">+ <DetectChar char="q" context="#pop!q_QuotingForm" attribute="Operator"/>+ <DetectChar char="'" context="q_Q_StringModifier" attribute="Operator"/>+ <DetectChar char=""" context="qq_Q_StringModifier" attribute="Operator"/>+ </context>++ <context name="q_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="#pop!q_QuotingForm2">+ <DetectChar char="q" context="#pop!qq_QuotingForm" attribute="Operator"/>+ <DetectChar char=":" context="#pop!q_QuotingForm2" attribute="Operator"/>+ </context>+ <context name="q_QuotingForm2" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="q_String">+ <WordDetect String="heredoc" context="q_Heredoc" attribute="Operator"/>+ <keyword String="quoting" context="#stay" attribute="Operator"/>+ <AnyChar String="wvx:sahfb" context="#stay" attribute="Operator"/>+ <!-- :closure as qq -->+ <DetectChar char="c" context="#pop!qq_QuotingForm" attribute="Operator"/>+ <Detect2Chars char="t" char1="o" context="q_Heredoc" attribute="Operator"/>+ </context>++ <context name="qq_QuotingForm" attribute="Operator" lineEndContext="#pop" fallthrough="1" fallthroughContext="qq_String">+ <WordDetect String="heredoc" context="qq_Heredoc" attribute="Operator"/>+ <keyword String="quoting" context="#stay" attribute="Operator"/>+ <AnyChar String="wvx:sahfcb" context="#stay" attribute="Operator"/>+ <Detect2Chars char="t" char1="o" context="qq_Heredoc" attribute="Operator"/>+ </context>+++ <!-- q and qq Heredoc -->++ <context name="q_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+ <RegExpr String="/([^/]+)/" context="q_HeredocTerminator" attribute="String Delimiter"/>+ </context>+ <context name="q_HeredocTerminator" attribute="String" lineEndContext="#stay">+ <DetectSpaces/>+ <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/>+ <RegExpr String="(?:[^\\]*|\\(?![\\%1]|"ingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/>+ <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>+ </context>++ <context name="qq_Heredoc" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+ <RegExpr String="/([^/]+)/" context="qq_HeredocTerminator" attribute="String Delimiter"/>+ </context>+ <context name="qq_HeredocTerminator" attribute="String" lineEndContext="#stay">+ <DetectSpaces/>+ <StringDetect String="%1" dynamic="1" context="#pop#pop#pop" attribute="String Delimiter" firstNonSpace="1"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="[^\\${@&]*" context="#stay" attribute="String"/>+ </context>+++ <!-- q String -->++ <context name="q_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop">+ <DetectSpaces/>+ <DetectChar char="(" context="#pop#pop!q_String(" attribute="String Delimiter"/>+ <DetectChar char="[" context="#pop#pop!q_String[" attribute="String Delimiter"/>+ <DetectChar char="{" context="#pop#pop!q_String{" attribute="String Delimiter"/>+ <DetectChar char="<" context="#pop#pop!q_String<" attribute="String Delimiter"/>+ <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!q_StringAny" attribute="String Delimiter"/>+ </context>++ <context name="q_String(" attribute="String" lineEndContext="#stay">+ <DetectChar char=")" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="(" context="q_String(" attribute="String Delimiter"/>+ <Detect2Chars char="\" char1="(" context="#stay" attribute="String Special Character"/>+ <Detect2Chars char="\" char1=")" context="#stay" attribute="String Special Character"/>+ <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>+ <RegExpr String="(?:[^()\\]*|\\(?![()\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/>+ <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>+ </context>++ <context name="q_String[" attribute="String" lineEndContext="#stay">+ <DetectChar char="]" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="[" context="q_String[" attribute="String Delimiter"/>+ <Detect2Chars char="\" char1="[" context="#stay" attribute="String Special Character"/>+ <Detect2Chars char="\" char1="]" context="#stay" attribute="String Special Character"/>+ <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>+ <RegExpr String="(?:[^\[\]\\]*|\\(?![\[\]\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/>+ <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>+ </context>++ <context name="q_String{" attribute="String" lineEndContext="#stay">+ <DetectChar char="}" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="{" context="q_String{" attribute="String Delimiter"/>+ <Detect2Chars char="\" char1="{" context="#stay" attribute="String Special Character"/>+ <Detect2Chars char="\" char1="}" context="#stay" attribute="String Special Character"/>+ <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>+ <RegExpr String="(?:[^{}\\]*|\\(?![{}\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/>+ <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>+ </context>++ <context name="q_String<" attribute="String" lineEndContext="#stay">+ <DetectChar char=">" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="<" context="q_String<" attribute="String Delimiter"/>+ <Detect2Chars char="\" char1="<" context="#stay" attribute="String Special Character"/>+ <Detect2Chars char="\" char1=">" context="#stay" attribute="String Special Character"/>+ <Detect2Chars char="\" char1="\" context="#stay" attribute="String Special Character"/>+ <RegExpr String="(?:[^<>\\]*|\\(?![<>\\]|"ingconstruct;|$))*" context="#stay" attribute="String"/>+ <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>+ </context>++ <context name="q_StringAny" attribute="String" lineEndContext="#stay">+ <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>+ <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/>+ <RegExpr String="(?:[^\\%1]*|\\(?![\\%1]|"ingconstruct;|$))*" dynamic="1" context="#stay" attribute="String"/>+ <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>+ </context>++ <context name="q_RawString" attribute="String" lineEndContext="#stay">+ <DetectChar char="'" context="#pop" attribute="String Delimiter"/>+ <Detect2Chars char="\" char1="'" context="#stay" attribute="String Special Character"/>+ <RegExpr String="(?:[^\\']*|\\(?![\\']|"ingconstruct;|$))*" context="#stay" attribute="String"/>+ <Detect2Chars char="\" char1="q" context="q_QuotingForm" attribute="Operator"/>+ </context>++ <!-- qq String -->++ <context name="qq_String" attribute="String" lineEndContext="#stay" fallthrough="1" fallthroughContext="#pop#pop">+ <DetectSpaces/>+ <DetectChar char="(" context="#pop#pop!qq_String(" attribute="String Delimiter"/>+ <DetectChar char="[" context="#pop#pop!qq_String[" attribute="String Delimiter"/>+ <DetectChar char="{" context="#pop#pop!qq_String{" attribute="String Delimiter"/>+ <DetectChar char="<" context="#pop#pop!qq_String<" attribute="String Delimiter"/>+ <RegExpr String="([^a-zA-Z0-9])" context="#pop#pop!qq_StringAny" attribute="String Delimiter"/>+ </context>++ <context name="qq_String(" attribute="String" lineEndContext="#stay">+ <DetectChar char=")" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="(" context="qq_String(" attribute="String Delimiter"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="[^()\\${@&]*" context="#stay" attribute="String"/>+ </context>++ <context name="qq_String[" attribute="String" lineEndContext="#stay">+ <DetectChar char="]" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="[" context="qq_String[" attribute="String Delimiter"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="[^\[\]\\${@&]*" context="#stay" attribute="String"/>+ </context>++ <context name="qq_String{" attribute="String" lineEndContext="#stay">+ <DetectChar char="}" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="{" context="qq_String{" attribute="String Delimiter"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="[^{}\\$@&]*" context="#stay" attribute="String"/>+ </context>++ <context name="qq_String<" attribute="String" lineEndContext="#stay">+ <DetectChar char=">" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="<" context="qq_String<" attribute="String Delimiter"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="[^<>\\${@&]*" context="#stay" attribute="String"/>+ </context>++ <context name="qq_String«" attribute="String" lineEndContext="#stay">+ <DetectChar char="»" context="#pop" attribute="String Delimiter"/>+ <DetectChar char="«" context="qq_String«" attribute="String Delimiter"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="[^«»\\${@&]*" context="#stay" attribute="String"/>+ </context>++ <context name="qq_String<<" attribute="String" lineEndContext="#stay">+ <Detect2Chars char=">" char1=">" context="#pop" attribute="String Delimiter"/>+ <Detect2Chars char="<" char1="<" context="qq_String<<" attribute="String Delimiter"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="([^<>\\${@&]*|<(?!<)|>(?!>))" context="#stay" attribute="String"/>+ </context>++ <context name="qq_StringAny" attribute="String" lineEndContext="#stay">+ <DetectChar char="1" dynamic="1" context="#pop" attribute="String Delimiter"/>+ <StringDetect String="\%1" dynamic="1" context="#stay" attribute="String Special Character"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="[^%1\\${@&]*" dynamic="1" context="#stay" attribute="String"/>+ </context>++ <context name="qq_RawString" attribute="String" lineEndContext="#stay">+ <DetectChar char=""" context="#pop" attribute="String Delimiter"/>+ <IncludeRules context="find_qq_StringCommon"/>+ <RegExpr String="[^\\"${@&]*" context="#stay" attribute="String"/>+ </context>++ <context name="find_qq_StringCommon" attribute="String" lineEndContext="#stay">+ <DetectChar char="\" context="qq_StringEscape" attribute="Operator" lookAhead="1"/>+ <DetectChar char="{" context="qq_Interpolation" attribute="String (interpolated)"/>+ <DetectChar char="$" context="qq_StringMaybeVar$" attribute="String" lookAhead="1"/>+ <AnyChar String="@%" context="qq_StringMaybeVar" attribute="String" lookAhead="1"/>+ <DetectChar char="&" context="qq_StringSigil" attribute="String" lookAhead="1"/>+ </context>++ <context name="qq_StringEscape" attribute="String Special Character" lineEndContext="#pop">+ <Detect2Chars char="\" char1="q" context="#pop!q_QuotingForm" attribute="Operator"/>+ <Detect2Chars char="\" char1="x" context="HexaString" attribute="String Special Character"/>+ <StringDetect String="\c[" context="UnicodeCodepoint" attribute="String Special Character"/>+ <Detect2Chars char="\" char1="c" context="UnicodeCodepointDecimal" attribute="String Special Character"/>+ <Detect2Chars char="\" char1="o" context="OctalString" attribute="String Special Character"/>+ <RegExpr String="\\.?" context="#pop" attribute="String Special Character"/>+ </context>++ <context name="qq_Interpolation" attribute="String (interpolated)" lineEndContext="#stay">+ <DetectChar char="}" context="#pop" attribute="String (interpolated)"/>+ <IncludeRules context="base"/>+ </context>++ <context name="qq_StringSigil" attribute="Function" lineEndContext="#stay">+ <RegExpr String="&&ident;\(" context="#pop!FunctionParameters" attribute="Function"/>+ <DetectChar char="&" context="#pop" attribute="String"/>+ </context>++ <context name="qq_StringMaybeVar$" attribute="String" lineEndContext="#stay">+ <RegExpr String="\$(?=[&twigils;]?&prefixdollarvarname;)" context="qq_InterpolationVar" attribute="Variable"/>+ <DetectChar char="$" context="#pop" attribute="String"/>+ </context>++ <context name="qq_StringMaybeVar" attribute="String" lineEndContext="#stay">+ <RegExpr String="@\(\)|[%@]\$/|[@%]&ident;" context="qq_Interpolation1" attribute="Variable"/>+ <AnyChar String="@%" context="#pop" attribute="String"/>+ </context>++ <context name="qq_InterpolationVar" attribute="String" lineEndContext="#stay">+ <AnyChar String="&twigils;" context="#stay" attribute="Twigil"/>+ <RegExpr String="&dollarvarname;" context="#pop!qq_Interpolation1" attribute="Variable"/>+ </context>++ <context name="qq_Interpolation1" attribute="String" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop#pop">+ <DetectChar char="[" context="qq_InterpolationIndex" attribute="Function"/>+ <DetectChar char="." context="qq_InterpolationFunction" attribute="Function" lookAhead="1"/>+ </context>++ <context name="qq_InterpolationIndex" attribute="String" lineEndContext="#stay">+ <DetectChar char="]" context="#pop#pop#pop" attribute="Function"/>+ <IncludeRules context="base"/>+ </context>++ <context name="qq_InterpolationFunction" attribute="String" lineEndContext="#stay">+ <RegExpr String="(?:\.&ident;)*\.&ident;\(" context="#pop#pop#pop!FunctionParameters" attribute="Function"/>+ <DetectChar char="." context="#pop#pop#pop" attribute="String"/>+ </context>++ <context name="FunctionParameters" attribute="String" lineEndContext="#stay">+ <DetectChar char=")" context="#pop" attribute="Function"/>+ <DetectChar char="(" context="FunctionParameters" attribute="Function"/>+ <IncludeRules context="base"/>+ </context>+++ <!-- Comment -->++ <context name="StartComment" attribute="Comment" lineEndContext="#pop" fallthrough="1" fallthroughContext="SingleLineComment">+ <DetectChar attribute="Comment" context="MultilineComment" char="`"/>+ <AnyChar attribute="Pod Operator" context="MultilineComment" String="=|"/>+ </context>++ <context name="MultilineComment" attribute="Comment" lineEndContext="#pop#pop" fallthrough="1" fallthroughContext="#pop!SingleLineComment">+ <!-- TODO a new rule is needed to find the corresponding closures -->+ <StringDetect attribute="Comment" context="#pop#pop!MultilineComment(((" String="(((" beginRegion="comment"/>+ <StringDetect attribute="Comment" context="#pop#pop!MultilineComment[[[" String="[[[" beginRegion="comment"/>+ <StringDetect attribute="Comment" context="#pop#pop!MultilineComment{{{" String="{{{" beginRegion="comment"/>+ <StringDetect attribute="Comment" context="#pop#pop!MultilineComment«««" String="«««" beginRegion="comment"/>+ <StringDetect attribute="Comment" context="#pop#pop!MultilineComment<<<" String="<<<" beginRegion="comment"/>+ <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment((" char="(" char1="(" beginRegion="comment"/>+ <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment[[" char="[" char1="[" beginRegion="comment"/>+ <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment{{" char="{" char1="{" beginRegion="comment"/>+ <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment««" char="«" char1="«" beginRegion="comment"/>+ <Detect2Chars attribute="Comment" context="#pop#pop!MultilineComment<<" char="<" char1="<" beginRegion="comment"/>+ <DetectChar attribute="Comment" context="#pop#pop!MultilineComment(" char="(" beginRegion="comment"/>+ <DetectChar attribute="Comment" context="#pop#pop!MultilineComment[" char="[" beginRegion="comment"/>+ <DetectChar attribute="Comment" context="#pop#pop!MultilineComment{" char="{" beginRegion="comment"/>+ <DetectChar attribute="Comment" context="#pop#pop!MultilineComment«" char="«" beginRegion="comment"/>+ <DetectChar attribute="Comment" context="#pop#pop!MultilineComment<" char="<" beginRegion="comment"/>+ <!-- etc -->+ </context>++ <context name="MultilineComment(((" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <StringDetect String=")))" attribute="Comment" context="#pop" endRegion="comment"/>+ <StringDetect String="(((" attribute="Comment" context="MultilineComment(((" beginRegion="comment"/>+ </context>+ <context name="MultilineComment[[[" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <StringDetect String="]]]" attribute="Comment" context="#pop" endRegion="comment"/>+ <StringDetect String="[[[" attribute="Comment" context="MultilineComment[[[" beginRegion="comment"/>+ </context>+ <context name="MultilineComment{{{" attribute="Comment" lineEndContext="#stay">+ <StringDetect String="}}}" attribute="Comment" context="#pop" endRegion="comment"/>+ <StringDetect String="{{{" attribute="Comment" context="MultilineComment{{{" beginRegion="comment"/>+ <IncludeRules context="SingleLineComment"/>+ </context>+ <context name="MultilineComment«««" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <StringDetect String="»»»" attribute="Comment" context="#pop" endRegion="comment"/>+ <StringDetect String="«««" attribute="Comment" context="MultilineComment«««" beginRegion="comment"/>+ </context>+ <context name="MultilineComment<<<" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <StringDetect String=">>>" attribute="Comment" context="#pop" endRegion="comment"/>+ <StringDetect String="<<<" attribute="Comment" context="MultilineComment<<<" beginRegion="comment"/>+ </context>++ <context name="MultilineComment((" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <Detect2Chars char=")" char1=")" attribute="Comment" context="#pop" endRegion="comment"/>+ <Detect2Chars char="(" char1="(" attribute="Comment" context="MultilineComment((" beginRegion="comment"/>+ </context>+ <context name="MultilineComment[[" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <Detect2Chars char="]" char1="]" attribute="Comment" context="#pop" endRegion="comment"/>+ <Detect2Chars char="[" char1="[" attribute="Comment" context="MultilineComment[[" beginRegion="comment"/>+ </context>+ <context name="MultilineComment{{" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <Detect2Chars char="}" char1="}" attribute="Comment" context="#pop" endRegion="comment"/>+ <Detect2Chars char="{" char1="{" attribute="Comment" context="MultilineComment{{" beginRegion="comment"/>+ </context>+ <context name="MultilineComment««" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <Detect2Chars char="»" char1="»" attribute="Comment" context="#pop" endRegion="comment"/>+ <Detect2Chars char="«" char1="«" attribute="Comment" context="MultilineComment««" beginRegion="comment"/>+ </context>+ <context name="MultilineComment<<" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <Detect2Chars char=">" char1=">" attribute="Comment" context="#pop" endRegion="comment"/>+ <Detect2Chars char="<" char1="<" attribute="Comment" context="MultilineComment<<" beginRegion="comment"/>+ </context>++ <context name="MultilineComment(" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <DetectChar char=")" attribute="Comment" context="#pop" endRegion="comment"/>+ <DetectChar char="(" attribute="Comment" context="MultilineComment(" beginRegion="comment"/>+ </context>+ <context name="MultilineComment[" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <DetectChar char="]" attribute="Comment" context="#pop" endRegion="comment"/>+ <DetectChar char="[" attribute="Comment" context="MultilineComment[" beginRegion="comment"/>+ </context>+ <context name="MultilineComment{" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <DetectChar char="}" attribute="Comment" context="#pop" endRegion="comment"/>+ <DetectChar char="{" attribute="Comment" context="MultilineComment{" beginRegion="comment"/>+ </context>+ <context name="MultilineComment«" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <DetectChar char="»" attribute="Comment" context="#pop" endRegion="comment"/>+ <DetectChar char="«" attribute="Comment" context="MultilineComment«" beginRegion="comment"/>+ </context>+ <context name="MultilineComment<" attribute="Comment" lineEndContext="#stay">+ <IncludeRules context="SingleLineComment"/>+ <DetectChar char=">" attribute="Comment" context="#pop" endRegion="comment"/>+ <DetectChar char="<" attribute="Comment" context="MultilineComment<" beginRegion="comment"/>+ </context>++ <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop#pop">+ <DetectSpaces/>+ <IncludeRules context="##Comments"/>+ <DetectIdentifier/>+ </context>+++ <!-- Error -->++ <context name="Error" attribute="Error" lineEndContext="#pop"/>++ <context name="CharErrorIfNoSep" attribute="Error" lineEndContext="#pop">+ <RegExpr String="[^;)]" context="#pop" attribute="Error"/>+ </context>++ <context name="CharError" attribute="Error" lineEndContext="#pop">+ <RegExpr String="." context="#pop" attribute="Error"/>+ </context>++ </contexts>++ <itemDatas>+ <itemData name="Normal Text" defStyleNum="dsNormal"/>+ <itemData name="Keyword" defStyleNum="dsKeyword" spellChecking="false"/>+ <itemData name="Keyword Value" defStyleNum="dsKeyword" spellChecking="false"/>+ <itemData name="Variable" defStyleNum="dsVariable" spellChecking="false"/>+ <itemData name="Twigil" defStyleNum="dsAttribute" spellChecking="false"/>+ <itemData name="Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>+ <itemData name="Variable Storage" defStyleNum="dsKeyword" spellChecking="false" bold="1"/>+ <itemData name="Property" defStyleNum="dsBuiltIn" spellChecking="false" italic="1"/>+ <itemData name="Declare Routine" defStyleNum="dsBuiltIn" spellChecking="false"/>+ <itemData name="Function" defStyleNum="dsFunction" spellChecking="false"/>+ <itemData name="Operator" defStyleNum="dsKeyword" spellChecking="false"/>+ <itemData name="Separator Symbol" defStyleNum="dsNormal" spellChecking="false"/>+ <itemData name="Data Type" defStyleNum="dsDataType" spellChecking="false"/>+ <itemData name="Attribute" defStyleNum="dsAttribute" spellChecking="false"/>+ <itemData name="Decimal" defStyleNum="dsDecVal" spellChecking="false"/>+ <itemData name="Octal" defStyleNum="dsBaseN" spellChecking="false"/>+ <itemData name="Hex" defStyleNum="dsBaseN" spellChecking="false"/>+ <itemData name="Float" defStyleNum="dsFloat" spellChecking="false"/>+ <itemData name="String" defStyleNum="dsString"/>+ <itemData name="String Delimiter" defStyleNum="dsChar" spellChecking="false"/>+ <itemData name="String (interpolated)" defStyleNum="dsString"/>+ <itemData name="String Special Character" defStyleNum="dsChar"/>+ <itemData name="Pattern" defStyleNum="dsOthers" spellChecking="false"/>+ <itemData name="Pattern Meta Character" defStyleNum="dsChar" spellChecking="false"/>+ <itemData name="Pattern Character Class" defStyleNum="dsBaseN" spellChecking="false"/>+ <itemData name="Pattern Unicode Property" defStyleNum="dsBaseN" spellChecking="false"/>+ <itemData name="Pattern Character" defStyleNum="dsChar" spellChecking="false"/>+ <itemData name="Pattern Modifier" defStyleNum="dsKeyword" spellChecking="false"/>+ <itemData name="Pattern Quantifier" defStyleNum="dsControlFlow" spellChecking="false"/>+ <itemData name="Pattern Control Flow" defStyleNum="dsControlFlow" spellChecking="false"/>+ <itemData name="Pattern Special Character" defStyleNum="dsBuiltIn" spellChecking="false"/>+ <itemData name="Comment" defStyleNum="dsComment"/>+ <itemData name="Error" defStyleNum="dsError" spellChecking="false"/>+ <itemData name="Pod" defStyleNum="dsDocumentation" spellChecking="false"/>+ <itemData name="Pod Paragraph" defStyleNum="dsDocumentation"/>+ <itemData name="Pod Block" defStyleNum="dsRegionMarker" spellChecking="false"/>+ <itemData name="Pod Typename" defStyleNum="dsAnnotation" spellChecking="false"/>+ <itemData name="Pod Typename Value" defStyleNum="dsCommentVar" spellChecking="false"/>+ <itemData name="Pod Unknown" defStyleNum="dsError" spellChecking="false"/>+ <itemData name="Pod Operator" defStyleNum="dsOperator" spellChecking="false"/>+ <itemData name="Pod Key" defStyleNum="dsAttribute" spellChecking="false"/>+ <itemData name="Pod Config" defStyleNum="dsCommentVar" spellChecking="false"/>+ <itemData name="Pod Bold" defStyleNum="dsDocumentation" bold="1"/>+ <itemData name="Pod Italic" defStyleNum="dsDocumentation" italic="1"/>+ <itemData name="Pod Underline" defStyleNum="dsDocumentation" underline="1"/>+ <itemData name="Pod Link" defStyleNum="dsOthers" underline="1"/>+ <itemData name="Pod Note" defStyleNum="dsInformation"/>+ <itemData name="Pod Comment" defStyleNum="dsComment"/>+ <itemData name="Pod Verbatim" defStyleNum="dsInformation" spellChecking="false"/>+ <itemData name="Pod Unicode" defStyleNum="dsChar" spellChecking="false"/>+ <itemData name="Pod Indexed Terms" defStyleNum="dsOthers" spellChecking="false"/>+ </itemDatas>+ </highlighting>+ <general>+ <comments>+ <comment name="singleLine" start="#"/>+ </comments>+ <keywords casesensitive="1" weakDeliminator="-'"/>+ </general>+</language>+<!-- kate: space-indent on; indent-width 2; replace-tabs on; -->
xml/rest.xml view
@@ -14,7 +14,7 @@ Copyright 2010 Matt Williams (matt@milliams.com) Copyright 2014 Matthew Woehlke (mw_triad@users.sourceforge.net) -->-<language name="reStructuredText" extensions="*.rst" section="Markup" mimetype="text/x-rst" version="8" kateversion="5.0" casesensitive="1">+<language name="reStructuredText" extensions="*.rst" section="Markup" mimetype="text/x-rst" version="9" kateversion="5.0" casesensitive="1"> <highlighting> @@ -32,7 +32,7 @@ <RegExpr attribute="Code" String="::$" context="CodeBlock" /> <RegExpr attribute="SubstitutionDefinition" context="#stay" String="^\s*\.\. \|[&SimpleReferenceNameChars; ]+\|\s+[&SimpleReferenceNameChars;]+::\s" minimal="true" column="0"/> <RegExpr attribute="Field" String=":(?=([^:]*\\:)*[^:]*:(\s|$))" context="Field" firstNonSpace="true"/>- <RegExpr attribute="Comment" context="Comment" String="^(\s*)\.\.(\s|$)(?!([\w\-_\.]+)(:[\w\-_\.]+)*::(\s|$))" column="0"/>+ <RegExpr attribute="Comment" context="Comment" String="^(\s*)\.\.(?:\s|$)(?![\w\-_\.]+(?::[\w\-_\.]+)*::(?:\s|$))" column="0"/> <!-- Keep in sync with Markdown’s implicitlink entity --> <RegExpr attribute="StandaloneHyperlink" context="#stay" String="\b&startlink;[^">\s`\)]*[^\s!"'`\(\)\*,\.:;<>\?~\]\}\\](?=[[:punct:]]*(?:[\s\)]|$))" />
xml/ruby.xml view
@@ -31,7 +31,7 @@ <!-- Hold the "language" opening tag on a single line, as mentioned in "language.dtd". --> <language name="Ruby" section="Scripts"- version="14" kateversion="5.0"+ version="15" kateversion="5.0" extensions="*.rb;*.rjs;*.rxml;*.xml.erb;*.js.erb;*.rake;Rakefile;Gemfile;*.gemspec;Vagrantfile" mimetype="application/x-ruby" style="ruby" indenter="ruby"@@ -199,7 +199,8 @@ <!-- "def" - "end" blocks --> <!-- check for statement modifiers with regexes --> <DetectChar attribute="Operator" char="{" context="Find closing block brace" beginRegion="def block"/>- <RegExpr attribute="Keyword" String="(\=|\(|\[|\{)\s*(if|unless|while|until)\b" context="#stay" beginRegion="def block"/>+ <DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/>+ <RegExpr attribute="Keyword" String="[=([]\s*(if|unless|while|until)\b" context="#stay" beginRegion="def block"/> <RegExpr attribute="Keyword" String="(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block" /> <RegExpr attribute="Keyword" String="\;\s*(while|until)\b(?!.*\bdo\b)" context="#stay" beginRegion="def block"/> <RegExpr attribute="Keyword" String="(if|unless)\b" context="#stay" beginRegion="def block" firstNonSpace="true"/>@@ -297,8 +298,6 @@ <DetectChar attribute="Delimiter" char="[" context="#stay"/> <DetectChar attribute="Delimiter" char="]" context="check_div_1"/>- <DetectChar attribute="Delimiter" char="{" context="#stay" beginRegion="def block"/>- <DetectChar attribute="Delimiter" char="}" context="check_div_1" endRegion="def block"/> <RegExpr attribute="Instance Variable" String="@[a-zA-Z_0-9]+" context="check_div_1"/> <RegExpr attribute="Class Variable" String="@@[a-zA-Z_0-9]+" context="check_div_1"/>
xml/sed.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="sed" section="Scripts" version="5" kateversion="5.0" extensions="*.sed" mimetype="text/x-sed" author="Bart Sas (bart.sas@gmail.com)" license="GPL">+<language name="sed" section="Scripts" version="6" kateversion="5.0" extensions="*.sed" mimetype="text/x-sed" author="Bart Sas (bart.sas@gmail.com)" license="GPL"> <highlighting> <contexts> <context name="BeginningOfLine" attribute="Normal" lineEndContext="#stay">@@ -14,7 +14,6 @@ <DetectChar char=":" attribute="Label" context="Label"/> <DetectChar char="!" attribute="Negation" context="Command"/> <IncludeRules context="Command"/>- <RegExpr String="\S" attribute="Error" context="Error"/> </context> <context name="FirstAddressRegex" attribute="Regex" lineEndContext="Error" dynamic="true">@@ -28,7 +27,6 @@ <DetectSpaces/> <DetectChar char="!" attribute="Negation" context="Command"/> <IncludeRules context="AfterFirstAddress2"/>- <RegExpr String="\S" attribute="Error" context="Error"/> </context> <context name="AfterFirstAddress2" attribute="Normal" lineEndContext="BeginningOfLine">@@ -36,7 +34,6 @@ <DetectChar char="," attribute="Normal" context="SecondAddress"/> <DetectChar char="~" attribute="Normal" context="Step"/> <IncludeRules context="Command"/>- <RegExpr String="\S" attribute="Error" context="Error"/> </context> <context name="SecondAddress" attribute="Normal" lineEndContext="Error">@@ -59,7 +56,6 @@ <DetectSpaces/> <DetectChar char="!" attribute="Negation" context="Command"/> <IncludeRules context="Command"/>- <RegExpr String="\S" attribute="Error" context="Error"/> </context> <context name="Step" attribute="Normal" lineEndContext="Error">
xml/spdx-comments.xml view
@@ -1,7 +1,7 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd"> <language- version="2"+ version="4" kateversion="3.1" name="SPDX-Comments" section="Other"@@ -42,6 +42,7 @@ <item>AML</item> <item>AMPAS</item> <item>ANTLR-PD</item>+ <item>ANTLR-PD-fallback</item> <item>APAFML</item> <item>APL-1.0</item> <item>APSL-1.0</item>@@ -77,6 +78,7 @@ <item>BSD-Protection</item> <item>BSD-Source-Code</item> <item>BSL-1.0</item>+ <item>BUSL-1.1</item> <item>Bahyph</item> <item>Barr</item> <item>Beerware</item>@@ -92,6 +94,7 @@ <item>CC-BY-2.5</item> <item>CC-BY-3.0</item> <item>CC-BY-3.0-AT</item>+ <item>CC-BY-3.0-US</item> <item>CC-BY-4.0</item> <item>CC-BY-NC-1.0</item> <item>CC-BY-NC-2.0</item>@@ -116,6 +119,7 @@ <item>CC-BY-ND-4.0</item> <item>CC-BY-SA-1.0</item> <item>CC-BY-SA-2.0</item>+ <item>CC-BY-SA-2.0-UK</item> <item>CC-BY-SA-2.5</item> <item>CC-BY-SA-3.0</item> <item>CC-BY-SA-3.0-AT</item>@@ -206,6 +210,7 @@ <item>Glulxe</item> <item>HPND</item> <item>HPND-sell-variant</item>+ <item>HTMLTIDY</item> <item>HaskellReport</item> <item>Hippocratic-2.1</item> <item>IBM-pibs</item>@@ -252,6 +257,7 @@ <item>MIT-advertising</item> <item>MIT-enna</item> <item>MIT-feh</item>+ <item>MIT-open-group</item> <item>MITNFA</item> <item>MPL-1.0</item> <item>MPL-1.1</item>@@ -515,6 +521,7 @@ </list> <contexts>+ <context name="Normal" attribute="SPDX Tag" lineEndContext="#pop"> <WordDetect String="SPDX-License-Identifier:" attribute="SPDX Tag" context="license-expression" /> <keyword String="tags" attribute="SPDX Tag" />@@ -536,13 +543,13 @@ </contexts> <itemDatas>- <itemData name="SPDX Tag" defStyleNum="dsAnnotation" italic="true" />- <itemData name="SPDX Value" defStyleNum="dsAnnotation" italic="true" />- <itemData name="SPDX License" defStyleNum="dsAnnotation" italic="true" />- <itemData name="SPDX License Exception" defStyleNum="dsAnnotation" italic="true" />- <itemData name="SPDX Deprecated License" defStyleNum="dsAnnotation" italic="true" />- <itemData name="SPDX Deprecated License Exception" defStyleNum="dsAnnotation" italic="true" />- <itemData name="SPDX License Expression Operator" defStyleNum="dsOperator" italic="true" />+ <itemData name="SPDX Tag" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />+ <itemData name="SPDX Value" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />+ <itemData name="SPDX License" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />+ <itemData name="SPDX License Exception" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />+ <itemData name="SPDX Deprecated License" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />+ <itemData name="SPDX Deprecated License Exception" defStyleNum="dsAnnotation" italic="true" spellChecking="false" />+ <itemData name="SPDX License Expression Operator" defStyleNum="dsOperator" italic="true" spellChecking="false" /> </itemDatas> </highlighting>
xml/sql-mysql.xml view
@@ -6,7 +6,7 @@ modifications by Milian Wolff (mail@milianw.de) v3 fix comments by Gene Thomas <gene@genethomas.com> -->-<language name="SQL (MySQL)" version="7" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">+<language name="SQL (MySQL)" version="8" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license=""> <highlighting> <list name="controlFlow"> <item>BEGIN</item>@@ -392,7 +392,6 @@ <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="CHARACTER SET"/> <!-- using the lists --> <keyword attribute="Keyword" context="#stay" String="keywords"/>- <LineContinue attribute="Symbol" context="#stay" char="/" column="0"/> <keyword attribute="Operator Keyword" context="#stay" String="operators"/> <keyword attribute="ControlFlow" context="#stay" String="controlFlow"/> <AnyChar attribute="Operator" context="#stay" String="+-*/=<>"/>
xml/sql-postgresql.xml view
@@ -3,7 +3,7 @@ <!-- PostgreSQL SQL, syntax definition based on sql.xml by Yury Lebedev v5 fix comments by Gene Thomas <gene@genethomas.com> -->-<language name="SQL (PostgreSQL)" version="11" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license="">+<language name="SQL (PostgreSQL)" version="12" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Shane Wright (me@shanewright.co.uk)" license=""> <highlighting> <list name="controlFlow"> <item>BEGIN</item>@@ -1008,16 +1008,16 @@ <Int attribute="Decimal" context="#stay"/> <DetectChar attribute="String" context="String" char="'"/> <DetectChar attribute="Identifier" context="Identifier" char="""/>- <AnyChar attribute="Symbol" context="#stay" String=":&"/>- <RegExpr attribute="Preprocessor" context="Preprocessor" String="@@?[^@ \t\r\n]" column="0"/>- <RegExpr attribute="Operator" context="MultiLineString" String="\$([^\$\n\r]*)\$"/>- <AnyChar attribute="Operator" context="#stay" String="+-*/=%^!<>&|@~#"/> <Detect2Chars attribute="Operator" context="#stay" char=":" char1="="/>+ <AnyChar attribute="Symbol" context="#stay" String=":&"/> <Detect2Chars attribute="Operator" context="#stay" char="." char1="."/> <!-- geometric operators --> <Detect2Chars attribute="Operator" context="#stay" char="?" char1="#"/> <Detect2Chars attribute="Operator" context="#stay" char="?" char1="-"/> <Detect2Chars attribute="Operator" context="#stay" char="?" char1="|"/>+ <RegExpr attribute="Preprocessor" context="Preprocessor" String="@@?[^@ \t\r\n]" column="0"/>+ <RegExpr attribute="Operator" context="MultiLineString" String="\$([^\$\n\r]*)\$"/>+ <AnyChar attribute="Operator" context="#stay" String="+-*/=%^!<>&|@~#"/> </context> <context name="CreateFunction" attribute="Normal Text" lineEndContext="#stay"> <RegExpr attribute="Function" context="FunctionBody" String="\$([^\$\n\r]*)\$"/>@@ -1033,7 +1033,7 @@ <context name="String" attribute="String" lineEndContext="#stay"> <LineContinue attribute="String" context="#pop"/> <HlCStringChar attribute="String Char" context="#stay"/>- <DetectChar attribute="Symbol" context="#stay" char="&"/>+ <DetectChar attribute="Symbol" context="#stay" char="&"/> <DetectChar attribute="String" context="#pop" char="'"/> </context> <context name="SingleLineComment" attribute="Comment" lineEndContext="#pop">
xml/sql.xml view
@@ -5,7 +5,7 @@ v3 fix comments by Gene Thomas <gene@genethomas.com> --> <!-- kate: space-indent on; indent-width 2; replace-tabs on; -->-<language name="SQL" version="7" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Yury Lebedev (yurylebedev@mail.ru)" license="LGPL">+<language name="SQL" version="8" kateversion="5.44" section="Database" extensions="*.sql;*.SQL;*.ddl;*.DDL" mimetype="text/x-sql" casesensitive="0" author="Yury Lebedev (yurylebedev@mail.ru)" license="LGPL"> <highlighting> <list name="controlFlow"> <item>BEGIN</item>@@ -881,7 +881,6 @@ <LineContinue attribute="Symbol" context="#stay" char="/" column="0"/> <!-- conflict with "operators" keywords --> <keyword attribute="Keyword" String="keywords" context="#stay"/>- <LineContinue attribute="Symbol" context="#stay" char="/" column="0"/> <keyword attribute="Operator Keyword" context="#stay" String="operators"/> <keyword attribute="ControlFlow" context="#stay" String="controlFlow"/> <AnyChar attribute="Operator" context="#stay" String="+-*/=<>"/>
xml/typescript.xml view
@@ -61,7 +61,7 @@ --> <language name="TypeScript"- version="11"+ version="12" kateversion="5.53" section="Scripts" extensions="*.ts"@@ -328,7 +328,8 @@ <context name="Normal-ParametersOverridden" attribute="Normal Text" lineEndContext="#stay"> <IncludeRules context="Normal Pt1" /> <IncludeRules context="Normal Pt2" />- <RegExpr context="#stay" attribute="Parameter" String="¶meter;" />+ <!-- unrecheable by Regex=&identifier; in "JSBase##JavaScript" included by "Normal Pt2"+ <RegExpr context="#stay" attribute="Parameter" String="¶meter;" />--> </context> <context name="ConditionalExpressionEnd" attribute="Normal Text" lineEndContext="#stay"> <AnyChar context="#pop" String=";,}])" lookAhead="true" />@@ -579,7 +580,6 @@ <RegExpr context="#stay" attribute="Object Member" String="&identifier;(?=&objectPoint;)" /> <RegExpr context="#pop!NoRegExp" attribute="Object Member" String="&identifier;" /> <IncludeRules context="NoRegExp" />- <DetectSpaces /> <!-- Generic functions --> <keyword context="#pop!NoRegExp" attribute="Function Name" String="functions" />
xml/verilog.xml view
@@ -1,6 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd">-<language name="Verilog" version="6" 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="7" 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"> <item>macromodule</item>@@ -232,7 +232,7 @@ <itemData name="String" defStyleNum="dsString"/> <itemData name="String Char" defStyleNum="dsChar"/> <itemData name="Comment" defStyleNum="dsComment"/>- <itemData name="Symbol" defStyleNum="dsNormal"/>+ <itemData name="Symbol" defStyleNum="dsOperator"/> <itemData name="Preprocessor" defStyleNum="dsOthers"/> <itemData name="Prep. Lib" defStyleNum="dsFloat"/> <itemData name="System Task" defStyleNum="dsDataType"/>
xml/vhdl.xml view
@@ -1,19 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE language SYSTEM "language.dtd" [ <!ENTITY funcname "[A-Za-z_:][A-Za-z0-9_:#%@-]*">- <!ENTITY varname "\b(?!(?:process|constant|signal|variable))([A-Za-z_][A-Za-z0-9_]*)\b">- <!ENTITY bos "(\b)"> <!-- bol or space following -->- <!ENTITY eos "\b"> <!-- eol or space following -->- <!ENTITY noword "(?![\w$+-])"> <!-- no word, $, + or - following -->- <!ENTITY label "((&varname;)\s*:\s*)?">-+ <!ENTITY varname "[A-Za-z_][A-Za-z0-9_]*">+ <!ENTITY identifier "\b(?:[A-Za-z_][A-Za-z0-9_]*)\b|/(?:[^/]++(?://)?+)*+/">+ <!ENTITY bos "\b"> <!-- bol or space following --> ]>-<language name="VHDL" version="11" kateversion="5.0" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de), Luigi Calligaris (luigi.calligaris@stfc.ac.uk)">+<language name="VHDL" version="13" kateversion="5.62" section="Hardware" extensions="*.vhdl;*.vhd" mimetype="text/x-vhdl" author="Rocky Scaletta (rocky@purdue.edu), Stefan Endrullis (stefan@endrullis.de), Florent Ouchet (outchy@users.sourceforge.net), Chris Higgs (chiggs.99@gmail.com), Jan Michel (jan@mueschelsoft.de), Luigi Calligaris (luigi.calligaris@stfc.ac.uk)"> <highlighting> <list name="keywordsToplevel"> <item>file</item> <item>library</item> <item>use</item>+ <item>with</item> </list> <list name="keywords">@@ -30,6 +28,7 @@ <item>block</item> <item>body</item> <item>bus</item>+ <item>case</item> <item>component</item> <item>constant</item> <item>context</item>@@ -37,8 +36,9 @@ <item>default</item> <item>disconnect</item> <item>downto</item>+ <item>else</item>+ <item>elsif</item> <item>end</item>- <item>exit</item> <item>fairness</item> <item>falling_edge</item> <item>file</item>@@ -49,6 +49,7 @@ <item>generic</item> <item>group</item> <item>guarded</item>+ <item>if</item> <item>impure</item> <item>inertial</item> <item>is</item>@@ -57,7 +58,6 @@ <item>literal</item> <item>map</item> <item>new</item>- <item>next</item> <item>null</item> <item>of</item> <item>on</item>@@ -77,7 +77,6 @@ <item>reject</item> <item>release</item> <item>report</item>- <item>return</item> <item>rising_edge</item> <item>select</item> <item>sequence</item>@@ -86,6 +85,7 @@ <item>shared</item> <item>strong</item> <item>subtype</item>+ <item>then</item> <item>to</item> <item>transport</item> <item>type</item>@@ -125,11 +125,10 @@ <item>srl</item> </list> - <list name="if">- <item>if</item>- <item>else</item>- <item>elsif</item>- <item>then</item>+ <list name="controls">+ <item>exit</item>+ <item>next</item>+ <item>return</item> </list> <list name="signals">@@ -146,11 +145,6 @@ <item>others</item> </list> - <list name="case">- <item>case</item>- <item>when</item>- </list>- <list name="timeunits"> <item>fs</item> <item>ps</item>@@ -215,388 +209,389 @@ <contexts> <!-- start / global environment -->- <context name="start" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>+ <context name="start" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preDeclaration"/> - <RegExpr attribute="Control" context="architecture_main" insensitive="true" lookAhead="true"- String="&bos;architecture\s+(&varname;)&eos;"/>- <StringDetect attribute="Control" context="entity" insensitive="true"- String="entity"/>- <RegExpr attribute="Control" context="package" insensitive="true" lookAhead="true" beginRegion="PackageRegion1"- String="&bos;package\s+(&varname;)\s+is&eos;"/>- <RegExpr attribute="Control" context="packagebody" lookAhead="true" insensitive="true" beginRegion="PackageBodyRegion1"- String="&bos;package\s+body\s+(&varname;)\s+is&eos;"/>- <!-- <StringDetect attribute="Control" context="arch_decl" String="package" />temporary-->- <RegExpr attribute="Control" context="configuration" insensitive="true" lookAhead="true"- String="&bos;configuration\s+(&varname;)&eos;"/>+ <WordDetect attribute="Control" context="entity" insensitive="1" String="entity"/>+ <WordDetect attribute="Control" context="configuration" insensitive="1" String="configuration"/>+ <WordDetect attribute="Control" context="architecture" insensitive="1" String="architecture"/>+ <WordDetect attribute="Control" context="package" insensitive="1" String="package"/>+ <keyword attribute="Keyword" context="#stay" String="keywordsToplevel"/>++ <IncludeRules context="postDeclaration"/> </context> - <context name="package" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="#stay" insensitive="true" String="&bos;package&eos;" />- <RegExpr attribute="Keyword" context="packagemain" insensitive="true" String="&bos;is&eos;" />- <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;" dynamic="true"/>- <RegExpr attribute="Redirection" context="#pop" dynamic="true" endRegion="PackageRegion1" insensitive="true"- String="&bos;end(\s+package)?(\s+%2)?\s*;" />- <IncludeRules context="generalDetection"/>+ <context name="package" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Control" context="#pop!packagebody" insensitive="true" String="body"/>+ <RegExpr attribute="Name" context="package_main" beginRegion="PackageRegion1"+ String="(&identifier;)"/> </context> - <context name="packagemain" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Keyword" context="#pop" lookAhead="true" insensitive="true" String="&bos;end&eos;" />- <RegExpr attribute="Keyword" context="packagefunction" insensitive="true" String="&bos;function&eos;" />- <IncludeRules context="generalDetection"/>+ <context name="package_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="package_decl">+ <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"+ String="&bos;end(\s+package\b)?(\s+%1)?\s*;" endRegion="EntityRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"+ String="end" endRegion="EntityRegion1"/> </context> - <context name="packagefunction" attribute="Normal Text" lineEndContext="#stay">- <RegExpr attribute="Name" context="#pop" insensitive="true" String="&bos;&varname;&eos;" />+ <context name="package_decl" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preDeclaration"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <IncludeRules context="postDeclaration"/> </context> <!-- package body environment --> - <context name="packagebody" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="#stay" insensitive="true" String="&bos;package&eos;" />- <RegExpr attribute="Keyword" context="packagebodymain" insensitive="true" String="&bos;is&eos;" />- <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;" dynamic="true"/>- <RegExpr attribute="Redirection" context="#pop" dynamic="true" endRegion="PackageBodyRegion1" insensitive="true"- String="&bos;end(\s+package)?(\s+%2)?\s*;" />- <IncludeRules context="generalDetection"/>- </context>-- <context name="packagebodymain" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Keyword" context="#pop" lookAhead="true" insensitive="true" String="&bos;end\s+package&eos;" />- <RegExpr attribute="Keyword" context="packagebodyfunc1" beginRegion="PackBodyFunc" insensitive="true" lookAhead="true" String="&bos;function\s+(&varname;)&eos;" />- <IncludeRules context="generalDetection"/>+ <context name="packagebody" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">+ <IncludeRules context="blank"/>+ <RegExpr attribute="Name" context="packagebody_main" beginRegion="PackageBodyRegion1"+ String="(&identifier;)"/> </context> - <context name="packagebodyfunc1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Redirection" context="packagebodyfunc2" beginRegion="RegionFunction" insensitive="true" String="&bos;begin&eos;" />- <RegExpr attribute="Keyword" context="#pop" insensitive="true" endRegion="PackBodyFunc" dynamic="true" String="&bos;end(\s+function)?(\s+%2)?&eos;" />- <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;" dynamic="true"/>- <IncludeRules context="generalDetection"/>+ <context name="packagebody_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="package_decl">+ <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"+ String="&bos;end(\s+package\s+body\b)?(\s+%1)?\s*;" endRegion="EntityRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"+ String="end" endRegion="EntityRegion1"/> </context> - <context name="packagebodyfunc2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Redirection" context="#pop" insensitive="true" lookAhead="true" endRegion="RegionFunction"- String="&bos;end(\s+function)?&eos;"/>- <!--<RegExpr attribute="Error" context="#pop" insensitive="true" dynamic="true" lookAhead="true" endRegion="RegionFunction"- String="&bos;end\s+function(\s+&varname;)?&eos;"/>-->- <RegExpr attribute="Process" context="#stay" insensitive="true"- String="&bos;begin&eos;"/>- <IncludeRules context="proc_rules"/>+<!--====ARCHITECTURE ===============-->+ <context name="architecture" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="blank"/>+ <RegExpr attribute="Name" context="arch_of" beginRegion="ArchitectureRegion1"+ String="(&identifier;)"/> </context> --<!--====ARCHITECTURE ===============-->- <context name="architecture_main" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="arch_start" insensitive="true" lookAhead="true" beginRegion="ArchitectureRegion1"- String="&bos;architecture\s+(&varname;)\s+of\s+(&varname;)\s+is"/>- <RegExpr attribute="Control" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ArchitectureRegion1"- String="&bos;end(\s+architecture)?(\s+%2)?\s*;"/>- <RegExpr attribute="Error" context="#pop#pop" insensitive="true" endRegion="ArchitectureRegion1"- String="&bos;end(\s+architecture)?(\s+&varname;)\s*;"/>- <IncludeRules context="detect_arch_parts"/>+ <context name="arch_of" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="arch_decl">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Keyword" context="arch_ref" insensitive="1" String="of"/>+ <RegExpr attribute="Control" context="#pop#pop" insensitive="1" dynamic="1"+ String="&bos;end(\s+architecture\b)?(\s+%1)?\s*;" endRegion="ArchitectureRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="1"+ String="end" endRegion="ArchitectureRegion1"/> </context> -<!-- architecture environment "before begin" -->- <context name="arch_start" attribute="Control" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Keyword" context="arch_decl" insensitive="true" String="&bos;is&eos;" />- <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;" dynamic="true"/>- <RegExpr attribute="Reference" context="#stay" insensitive="true" String="&bos;%4&eos;" dynamic="true"/>- <IncludeRules context="generalDetection"/>+ <context name="arch_ref" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!arch_decl">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Keyword" context="#pop!arch_decl" insensitive="1" String="is" />+ <RegExpr attribute="Reference" context="#pop!arch_decl" String="&identifier;"/> </context> <context name="arch_decl" attribute="Normal Text" lineEndContext="#stay">- <IncludeRules context="preDetection"/>- <keyword attribute="Signal" context="signal" insensitive="true" String="signals"/>- <StringDetect attribute="Control" context="archfunc1" insensitive="true" String="function" beginRegion="ArchFunctionRegion1"/>- <StringDetect attribute="Control" context="entity" insensitive="true" String="component"/>- <StringDetect attribute="Control" context="#pop#pop" insensitive="true" String="begin"/>- <IncludeRules context="generalDetection"/>+ <IncludeRules context="preDeclaration"/>+ <WordDetect attribute="Control" context="#pop!parallel_stmt" insensitive="true" String="begin"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <IncludeRules context="postDeclaration"/> </context> - <context name="archfunc1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Redirection" context="archfunc2" beginRegion="RegionFunction" insensitive="true" String="&bos;begin&eos;" />- <RegExpr attribute="Keyword" context="#pop" insensitive="true" endRegion="ArchFunctionRegion1" dynamic="true" String="&bos;end(\s+function)?(\s+%2)?&eos;" />- <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;" dynamic="true"/>- <IncludeRules context="generalDetection"/>+<!--====if ===============-->+ <context name="if_start" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="if_expr">+ <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="IfRegion1"+ String="&bos;end\s+if(\s+&varname;)?\s*;"/>+ <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"+ String="end" endRegion="IfRegion1"/> </context> - <context name="archfunc2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Redirection" context="#pop" insensitive="true" lookAhead="true" endRegion="RegionFunction"- String="&bos;end(\s+function)?&eos;"/>- <!--<RegExpr attribute="Error" context="#pop" insensitive="true" dynamic="true" lookAhead="true" endRegion="RegionFunction"- String="&bos;end\s+function(\s+&varname;)?&eos;"/>-->- <RegExpr attribute="Process" context="#stay" insensitive="true"- String="&bos;begin&eos;"/>- <IncludeRules context="proc_rules"/>+ <context name="if_expr" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <WordDetect attribute="Control" context="if_body" insensitive="true" String="then"/>+ <IncludeRules context="postExpression"/> </context> + <context name="if_body" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_decl">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Control" context="#pop#pop" insensitive="true" String="end" lookAhead="1"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="elsif"/>+ <WordDetect attribute="Control" context="#pop#pop!sequential_stmt" insensitive="true" String="else"/>+ <IncludeRules context="sequentialStatementKw"/>+ <IncludeRules context="label"/>+ </context> -<!-- parts of architecture body -->- <context name="detect_arch_parts" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Normal Text" context="generate1" lookAhead="true" insensitive="true"- String="&bos;(&varname;\s*:\s*)(if|for).*\s+generate&eos;"/>- <RegExpr attribute="Normal Text" context="process1" lookAhead="true" insensitive="true"- String="&bos;(&varname;\s*:\s*)?process&eos;"/>- <RegExpr attribute="Normal Text" context="instance" lookAhead="true" insensitive="true" beginRegion="InstanceRegion1"- String="&bos;(&varname;)\s*:\s*((entity\s+)?(&varname;)(\.&varname;)?)"/>+<!--====case ===============-->+ <context name="case" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Keyword" context="#pop!case_stmt" insensitive="true" String="is"/>+ <IncludeRules context="postExpression"/>+ </context> - <IncludeRules context="generalDetection"/>+ <context name="case_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="case_when">+ <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="CaseRegion1"+ String="&bos;end\s+case(&varname;)?\s*;"/>+ <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"+ String="end" endRegion="CaseRegion1"/> </context> -<!--====generate ===============-->- <context name="generate1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="generate2" insensitive="true" beginRegion="GenerateRegion"- String="&bos;(generate|loop)&eos;"/>- <RegExpr attribute="Name" context="#stay" dynamic="true" insensitive="true"- String="&bos;%3&eos;"/>- <RegExpr attribute="Control" context="#stay" insensitive="true"- String="&bos;(for|if|while)&eos;"/>- <IncludeRules context="generalDetection"/>+ <context name="case_when" attribute="Normal Text" lineEndContext="#stay">+ <Detect2Chars char="=" char1=">" attribute="Operator" context="case_when2" beginRegion="CaseWhenRegion1"/>+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Control" insensitive="true" String="when"/>+ <IncludeRules context="postExpression"/> </context> - <context name="generate2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="#stay" insensitive="true"- String="&bos;begin&eos;"/>- <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="GenerateRegion"- String="&bos;end\s+(generate|loop)(\s+&varname;)?"/>- <IncludeRules context="detect_arch_parts"/>+ <context name="case_when2" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_decl">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="when" endRegion="CaseWhenRegion1"/>+ <WordDetect attribute="Control" context="#pop#pop" insensitive="true" String="end" lookAhead="1" endRegion="CaseWhenRegion1"/>+ <IncludeRules context="sequentialStatementKw"/>+ <IncludeRules context="label"/> </context>+ <!-- 'when' and 'end case' are checked at the beginning of the line for better code folding --> +<!--====while ===============-->+ <context name="while" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Control" context="#pop!loop" insensitive="true" String="loop" beginRegion="LoopRegion1"/>+ <IncludeRules context="postExpression"/>+ </context> -<!--====process ===============-->-<!-- process environment -->+<!--====loop ===============-->+ <context name="loop" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">+ <RegExpr attribute="Control" context="#pop" insensitive="true" endRegion="LoopRegion1"+ String="&bos;end\s+loop(&varname;)?\s*;"/>+ <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"+ String="end" endRegion="CaseRegion1"/>+ </context> - <context name="process1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Process" context="#pop" insensitive="true" dynamic="true" endRegion="RegionProcess"- String="&bos;end\s+process(\s+%3)?"/>- <RegExpr attribute="Error" context="#pop" insensitive="true" endRegion="RegionProcess"- String="&bos;end\s+process(\s+&varname;)?"/>- <RegExpr attribute="Process" context="#stay" insensitive="true" beginRegion="RegionProcess"- String="&bos;process&eos;"/>- <RegExpr attribute="Process" context="#stay" insensitive="true"- String="&bos;begin&eos;"/>- <IncludeRules context="proc_rules"/>+<!--====declare ===============-->+ <context name="declare" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Redirection" context="#pop!declare_begin" insensitive="true"+ String="begin"/>+ <keyword attribute="Signal" context="signal" String="signals"/>+ <IncludeRules context="postExpression"/> </context> - <context name="proc_rules" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <RegExpr attribute="Name" context="#stay" insensitive="true"- String="&bos;&varname;(?=\s*:(?!=))"/>- <RegExpr attribute="Control" context="if_start" insensitive="true"- String="&bos;if&eos;"/>- <RegExpr attribute="Control" context="case1" lookAhead="true" insensitive="true"- String="&bos;case&eos;"/>- <RegExpr attribute="Control" context="forwhile1" lookAhead="true" insensitive="true"- String="&bos;((&varname;)\s*:\s*)?((for|while)\s+.+\s+)loop&eos;"/>- <IncludeRules context="generalDetection"/>+ <context name="declare_begin" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">+ <RegExpr attribute="Redirection" context="#pop" insensitive="true" endRegion="DeclareRegion1"+ String="&bos;end(\s+declare)?\s*;"/>+ <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"+ String="end" endRegion="ProcedureRegion1"/> </context> +<!--====ENTITY ===============-->+<!-- entity environment -->+ <context name="entity" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">+ <IncludeRules context="blank"/>+ <RegExpr attribute="Name" context="entity_main" beginRegion="EntityRegion1"+ String="(&identifier;)"/>+ </context> + <context name="entity_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="entity_decl">+ <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"+ String="&bos;end(\s+entity\b)?(\s+%1)?\s*;" endRegion="EntityRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"+ String="end" endRegion="EntityRegion1"/>+ </context> -<!--====instance =============== -->- <!-- When an instance has been detected-->- <context name="instance" attribute="Error" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Reference" context="#stay" String="&bos;%4&eos;" dynamic="true"/>- <RegExpr attribute="Name" context="#stay" String="&bos;%3&eos;" dynamic="true"/>- <RegExpr attribute="Keyword" context="instanceMap" insensitive="true" beginRegion="InstanceMapRegion"- String="&bos;(port|generic)\s+map\s*\(" />- <DetectChar attribute="Normal Text" context="#pop" char=";" endRegion="InstanceRegion1"/>- <IncludeRules context="generalDetection"/>+ <context name="entity_decl" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preDeclaration"/>+ <WordDetect attribute="Control" context="#stay" insensitive="true" String="generic"/>+ <WordDetect attribute="Control" context="#stay" insensitive="true" String="port"/>+ <WordDetect attribute="Keyword" context="#pop!parallel_stmt" insensitive="true" String="begin"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <IncludeRules context="postDeclaration"/> </context> - <!-- Inside a port or generic map-->- <context name="instanceMap" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <AnyChar attribute="Error" context="#stay" String="<;:"/>- <DetectChar attribute="Error" context="#stay" char=":" />- <IncludeRules context="preDetection"/>- <DetectChar attribute="Normal Text" context="#pop" char=")" endRegion="InstanceMapRegion"/>- <DetectChar attribute="Normal Text" context="instanceInnerPar" char="("/>- <IncludeRules context="generalDetection"/>+<!--====Configuration ===============-->+<!-- configuration environment -->+ <context name="configuration" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">+ <IncludeRules context="blank"/>+ <RegExpr attribute="Name" context="conf_of" beginRegion="ConfigurationRegion1"+ String="(&identifier;)"/> </context> - <!-- Inside parantheses inside a map-->- <context name="instanceInnerPar" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <DetectChar attribute="Normal Text" context="#pop" char=")" endRegion="instanceInnerPar"/>- <DetectChar attribute="Normal Text" context="instanceInnerPar" char="("/>- <DetectChar attribute="Error" context="#stay" char=";"/>- <IncludeRules context="generalDetection"/>+ <context name="conf_of" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="conf_is">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Keyword" context="conf_ref" insensitive="1" String="of"/>+ <RegExpr attribute="Control" context="#pop#pop" insensitive="1" dynamic="1"+ String="&bos;end(\s+configuration\b)?(\s+%1)?\s*;" endRegion="ConfigurationRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="1"+ String="end" endRegion="ConfigurationRegion1"/> </context> -<!--====loop ===============-->- <context name="forwhile1" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="forwhile2" insensitive="true" beginRegion="ForWhileRegion"- String="&bos;loop&eos;"/>- <RegExpr attribute="Name" context="#stay" dynamic="true" insensitive="true"- String="&bos;%3&eos;"/>- <RegExpr attribute="Control" context="#stay" insensitive="true"- String="&bos;(for|while)&eos;"/>- <IncludeRules context="generalDetection"/>+ <context name="conf_ref" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop!conf_decl">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Keyword" context="#pop!conf_decl" insensitive="1" String="is" />+ <RegExpr attribute="Reference" context="#pop!conf_is" String="&identifier;"/> </context> - <context name="forwhile2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="#stay" insensitive="true"- String="&bos;begin&eos;"/>- <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="ForWhileRegion"- String="&bos;end\s+loop(\s+&varname;)?"/>- <IncludeRules context="proc_rules"/>+ <context name="conf_is" attribute="Control" lineEndContext="#stay" fallthroughContext="#pop#pop#pop">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Keyword" context="#pop!conf_decl" insensitive="1" String="is" /> </context> -<!--====if ===============-->- <context name="if_start" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="if" insensitive="true" beginRegion="IfRegion1"- String="&bos;then&eos;"/>- <IncludeRules context="generalDetection"/>+ <context name="conf_decl" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preDeclaration"/>+ <WordDetect attribute="Control" context="conf_for" insensitive="1" String="for"/>+ <WordDetect attribute="Control" context="#pop" insensitive="1" lookAhead="1" String="end"/>+ <IncludeRules context="postDeclaration"/> </context> - <context name="if" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="IfRegion1"- String="&bos;end\s+if(\s+&varname;)?\s*;"/>- <IncludeRules context="proc_rules"/>- <keyword attribute="Control" context="#stay" insensitive="true" String="if"/>+ <context name="conf_for" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preDeclaration"/>+ <WordDetect attribute="Control" context="conf_for" insensitive="1" String="for"/>+ <WordDetect attribute="Control" context="conf_for_end" insensitive="1" lookAhead="1" String="end"/>+ <IncludeRules context="postDeclaration"/> </context> + <context name="conf_for_end" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!expressionError">+ <RegExpr attribute="Control" context="#pop#pop" insensitive="true" String="&bos;end(\s+for\b)?\s*;"/>+ </context> -<!--====case ===============--> - <context name="case1" attribute="Normal Text" lineEndContext="#stay">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Keyword" context="case2" insensitive="true"- String="&bos;is&eos;"/>- <keyword attribute="Control" context="#stay" insensitive="true" beginRegion="CaseRegion1" String="case"/>- <IncludeRules context="generalDetection"/>+<!--====Basic Stuff ===============-->+<!-- comment and spaces -->+ <context name="blank" attribute="Normal Text" lineEndContext="#stay">+ <DetectSpaces attribute="Normal Text" context="#stay"/>+ <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/> </context> - <context name="case2" attribute="Normal Text" lineEndContext="#stay">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="#pop#pop" insensitive="true" endRegion="CaseRegion1"- String="&bos;end\s+case(&varname;)?\s*;"/>- <RegExpr attribute="Control" context="caseWhen" lookAhead="true" insensitive="true"- String="&bos;when(\s+&varname;)?&eos;"/>- <IncludeRules context="proc_rules"/>+<!-- declaration -->+ <context name="preDeclaration" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="blank"/>+ <AnyChar attribute="Operator" context="#stay" String="[&><=:+-*/|`].,"/>+ <DetectChar attribute="Vector" context="string" char="""/>+ <DetectChar attribute="Attribute" context="attribute" char="'"/>+ <Int attribute="Integer" context="#stay"/> </context> - <context name="caseWhen" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <Detect2Chars char="=" char1=">" attribute="Operator" context="caseWhen2" beginRegion="CaseWhenRegion1"/>- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" insensitive="true"- String="&bos;when&eos;"/>- <RegExpr attribute="Name" insensitive="true" dynamic="true"- String="&bos;%2&eos;"/>- <IncludeRules context="proc_rules"/>+ <context name="postDeclaration" attribute="Normal Text" lineEndContext="#stay">+ <WordDetect attribute="Signal" context="type" insensitive="1" String="type"/>+ <WordDetect attribute="Control" context="function" insensitive="1" String="function"/>+ <WordDetect attribute="Keyword" context="procedure" insensitive="1" String="procedure"/>+ <WordDetect attribute="Keyword" context="component" insensitive="1" String="component"/>+ <keyword attribute="Data Type" context="#stay" String="types"/>+ <keyword attribute="Data Type" context="#stay" String="timeunits"/>+ <keyword attribute="Signal" context="signal" String="signals"/>+ <keyword attribute="Range" context="#stay" String="range"/>+ <keyword attribute="Keyword" context="#stay" String="keywords"/>+ <keyword attribute="Control" context="#stay" String="controls"/>+ <DetectIdentifier attribute="Normal Text"/> </context> - <context name="caseWhen2" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="#pop#pop" lookAhead="true" insensitive="true" endRegion="CaseWhenRegion1" firstNonSpace="true"- String="(when|end\s+case)&eos;"/>- <IncludeRules context="proc_rules"/>+<!-- label -->+ <context name="label" attribute="Normal Text" lineEndContext="#stay">+ <RegExpr attribute="Name" context="after_label" String="\b(?!process|constant|signal|variable)&varname;(?=\s*:(?!=))"/> </context>- <!-- 'when' and 'end case' are checked at the beginning of the line for better code folding --> + <context name="after_label" attribute="Normal Text" lineEndContext="#stay">+ <DetectChar attribute="Operator" context="#pop" char=":"/>+ <DetectSpaces attribute="Normal Text"/>+ </context> +<!-- parallel statement -->+ <context name="parallel_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="parallel_stmt_decl">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <IncludeRules context="parallelStatementKw"/>+ <IncludeRules context="label"/>+ </context> + <context name="parallelStatementKw" attribute="Normal Text" lineEndContext="#stay">+ <WordDetect attribute="Control" context="generate" insensitive="1" String="if" beginRegion="GenerateRegion1"/>+ <WordDetect attribute="Control" context="generate" insensitive="1" String="for" beginRegion="GenerateRegion1"/>+ <WordDetect attribute="Control" context="block" insensitive="1" String="block" beginRegion="BlockRegion1"/>+ <WordDetect attribute="Process" context="process" insensitive="1" String="process" beginRegion="ProcessRegion1"/>+ <WordDetect attribute="Keyword" context="#stay" insensitive="1" String="postponed"/>+ </context> -<!--====ENTITY ===============-->-<!-- entity environment -->+ <context name="parallel_stmt_decl" attribute="Normal Text" lineEndContext="#stay">+ <DetectChar attribute="Normal Text" context="#pop" char=";"/>+ <IncludeRules context="preDeclaration"/>+ <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="generic"/>+ <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="port"/>+ <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="map"/>+ <IncludeRules context="postDeclaration"/>+ </context> - <context name="entity" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Name" context="entity_main" beginRegion="EntityRegion1" insensitive="true"- String="(&varname;)"/>- <IncludeRules context="generalDetection"/>+<!-- sequential statement -->+ <context name="sequential_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt_decl">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <IncludeRules context="sequentialStatementKw"/>+ <IncludeRules context="label"/> </context> + <context name="sequentialStatementKw" attribute="Normal Text" lineEndContext="#stay">+ <WordDetect attribute="Control" context="if_start" insensitive="1" String="if" beginRegion="IfRegion1"/>+ <WordDetect attribute="Control" context="case" insensitive="1" String="case" beginRegion="CaseRegion1"/>+ <WordDetect attribute="Control" context="while" insensitive="1" String="while"/>+ <WordDetect attribute="Control" context="while" insensitive="1" String="for"/>+ <WordDetect attribute="Control" context="loop" insensitive="1" String="loop" beginRegion="LoopRegion1"/>+ <WordDetect attribute="Keyword" context="declare" insensitive="1" String="declare" beginRegion="DeclareRegion1"/>+ </context> - <context name="entity_main" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="#pop#pop" dynamic="true" insensitive="true" endRegion="EntityRegion1"- String="&bos;end(\s+(entity|component))?(\s+%1)?\s*;"/>- <RegExpr attribute="Error" context="#pop#pop" insensitive="true" endRegion="EntityRegion1"- String="&bos;end(\s+(entity|component))?(\s+&varname;)?\s*;"/>- <StringDetect attribute="Control" context="#stay" insensitive="true" String="generic"/>- <StringDetect attribute="Control" context="#stay" insensitive="true" String="port"/>- <IncludeRules context="generalDetection"/>+ <context name="sequential_stmt_decl" attribute="Normal Text" lineEndContext="#stay">+ <DetectChar attribute="Normal Text" context="#pop" char=";"/>+ <IncludeRules context="preDeclaration"/>+ <IncludeRules context="postDeclaration"/> </context> -<!--====Configuration ===============-->-<!-- configuration environment -->- <context name="configuration" attribute="Normal Text" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Control" context="conf_start" insensitive="true" lookAhead="true" beginRegion="ConfigurationRegion1"- String="&bos;configuration\s+(&varname;)\s+of\s+(&varname;)\s+is"/>- <RegExpr attribute="Control" context="#pop#pop" insensitive="true" dynamic="true" endRegion="ConfigurationRegion1"- String="&bos;end(\s+configuration)?(\s+%2)?\s*;"/>- <RegExpr attribute="Error" context="#pop#pop" insensitive="true" endRegion="ConfigurationRegion1"- String="&bos;end(\s+configuration)?(\s+&varname;)\s*;"/>+<!-- if/for generate -->+ <context name="generate" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Control" context="generate_stmt" insensitive="1" String="generate"/>+ <IncludeRules context="postExpression"/> </context> - <context name="conf_start" attribute="Control" lineEndContext="#stay" dynamic="true">- <IncludeRules context="preDetection"/>- <RegExpr attribute="Keyword" context="conf_decl" insensitive="true" String="&bos;is&eos;" />- <RegExpr attribute="Name" context="#stay" insensitive="true" String="&bos;%2&eos;" dynamic="true"/>- <RegExpr attribute="Reference" context="#stay" insensitive="true" String="&bos;%4&eos;" dynamic="true"/>- <IncludeRules context="generalDetection"/>+ <context name="generate_stmt" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="parallel_stmt">+ <RegExpr attribute="Control" context="#pop#pop" insensitive="1"+ String="&bos;end(\s+generate\b)?(\s+&varname;)?\s*;" endRegion="GenerateRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"+ String="end" endRegion="GenerateRegion1"/> </context> - <context name="conf_decl" attribute="Normal Text" lineEndContext="#stay">- <IncludeRules context="preDetection"/>- <StringDetect attribute="Control" context="conf_for" insensitive="true" String="for"/>- <StringDetect attribute="Control" context="#pop#pop" insensitive="true" lookAhead="true" String="end"/>- <IncludeRules context="generalDetection"/>+<!-- block -->+ <context name="block" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="entity_decl">+ <RegExpr attribute="Control" context="#pop#pop" insensitive="1"+ String="&bos;end(\s+block\b)?(\s+&varname;)?\s*;" endRegion="BlockRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"+ String="end" endRegion="BlockRegion1"/> </context> - <context name="conf_for" attribute="Normal Text" lineEndContext="#stay">- <IncludeRules context="preDetection"/>- <StringDetect attribute="Control" context="conf_for" insensitive="true" String="for"/>- <RegExpr attribute="Control" context="#pop" insensitive="true" String="end(\s+&varname;)?"/>- <IncludeRules context="generalDetection"/>+<!-- process -->+ <context name="process" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="process_decl">+ <RegExpr attribute="Process" context="#pop" insensitive="1"+ String="&bos;end(\s+postponed)?(\s+process\b)?(\s+&varname;)?\s*;" endRegion="ProcessRegion1"/>+ <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"+ String="end" endRegion="ProcessRegion1"/> </context> + <context name="process_decl" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preDeclaration"/>+ <WordDetect attribute="Process" context="#pop!sequential_stmt" insensitive="true" String="begin"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <IncludeRules context="postDeclaration"/>+ </context> -<!--====Basic Stuff ===============-->-<!-- basic rules -->- <context name="preDetection" attribute="Normal Text" lineEndContext="#stay">- <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/>+<!-- expression -->+ <context name="preExpression" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="blank"/>+ <AnyChar attribute="Operator" context="#stay" String="[&><=:+-*/|`].,"/> <DetectChar attribute="Vector" context="string" char="""/>- <AnyChar attribute="Operator" context="#stay" String="[&><=:+\-*\/|].,"/> <DetectChar attribute="Attribute" context="attribute" char="'"/>+ <Int attribute="Integer" context="#stay"/> </context> ---<!-- general detection -->- <context name="generalDetection" attribute="Normal Text" lineEndContext="#stay">+ <context name="postExpression" attribute="Normal Text" lineEndContext="#stay"> <keyword attribute="Data Type" context="#stay" String="types"/> <keyword attribute="Data Type" context="#stay" String="timeunits"/>- <keyword attribute="Signal" context="signal" String="signals" beginRegion="sig"/> <keyword attribute="Range" context="#stay" String="range"/> <keyword attribute="Keyword" context="#stay" String="keywords"/>- <Int attribute="Integer" context="#stay"/>- <HlCChar attribute="Bit" context="#stay"/>- <DetectSpaces attribute="Normal Text" context="#stay"/>+ <DetectIdentifier attribute="Normal Text"/> </context> +<!-- expression error -->+ <context name="expressionError" attribute="Error" lineEndContext="#stay">+ <Detect2Chars attribute="Comment" context="comment" char="-" char1="-"/>+ <DetectChar attribute="Error" context="#pop" char=";"/>+ </context>+ <!-- other environments --> <context name="comment" attribute="Comment" lineEndContext="#pop"> <DetectSpaces />@@ -612,7 +607,7 @@ <DetectChar attribute="Attribute" context="par in att" char="("/> <DetectChar attribute="Normal Text" context="#pop" char=" "/> <DetectChar attribute="Attribute" context="#pop" char="'"/>- <AnyChar attribute="Attribute" context="#pop" String=")=<>" lookAhead="true" />+ <AnyChar attribute="Attribute" context="#pop" String=")=<>;" lookAhead="true" /> </context> <context name="quot in att" attribute="Attribute" lineEndContext="#stay">@@ -623,10 +618,145 @@ </context> <context name="signal" attribute="Normal Text" lineEndContext="#stay">- <IncludeRules context="preDetection"/>- <DetectChar attribute="Normal Text" lookAhead="true" context="#pop" char=";" endRegion="sig"/>- <IncludeRules context="generalDetection"/>+ <IncludeRules context="preExpression"/>+ <DetectChar attribute="Normal Text" context="#pop" char=";"/>+ <IncludeRules context="postExpression"/> </context>++<!-- type -->+ <context name="type" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Signal" context="type_is" insensitive="1" String="is"/>+ <DetectIdentifier attribute="Normal Text"/>+ </context>++ <context name="type_is" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop#pop!signal">+ <IncludeRules context="blank"/>+ <WordDetect attribute="Keyword" context="#pop#pop!type_record" insensitive="1" String="record" beginRegion="sig"/>+ <WordDetect attribute="Keyword" context="#pop#pop!type_range" insensitive="1" String="range"/>+ </context>++<!-- type range -->+ <context name="type_range" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Control" context="type_range_units" insensitive="1" String="units" beginRegion="UnitRegion1"/>+ <IncludeRules context="postExpression"/>+ </context>++ <context name="type_range_units" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="type_range_units_decl">+ <RegExpr attribute="Control" context="#pop#pop" insensitive="1"+ String="&bos;end\s+units(\s+&varname;)?\s*;" endRegion="UnitRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"+ String="end" endRegion="GenerateRegion1"/>+ </context>++ <context name="type_range_units_decl" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <IncludeRules context="postExpression"/>+ </context>++<!-- type record -->+ <context name="type_record" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="type_record_body">+ <IncludeRules context="blank"/>+ <RegExpr attribute="Keyword" context="#pop" insensitive="1"+ String="&bos;end\s+record;" endRegion="sig"/>+ <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"+ String="end" endRegion="sig"/>+ </context>++ <context name="type_record_body" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="blank"/>+ <DetectChar attribute="Normal Text" context="#stay" char=";"/>+ <DetectChar attribute="Operator" context="#stay" char=":"/>+ <WordDetect attribute="Keyword" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <DetectIdentifier attribute="Normal Text"/>+ </context>++<!-- function -->+ <context name="function" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="function_name">+ <IncludeRules context="blank"/>+ <DetectIdentifier attribute="Name" context="function_name"/>+ </context>++ <context name="function_name" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Control" context="function_return" insensitive="true" String="return"/>+ <IncludeRules context="postExpression"/>+ </context>++ <context name="function_return" attribute="Normal Text" lineEndContext="#stay">+ <DetectSpaces attribute="Normal Text" context="#stay"/>+ <DetectChar attribute="Normal Text" context="#pop#pop#pop" char=";"/>+ <WordDetect attribute="Keyword" context="#pop#pop#pop!function_is" insensitive="1" String="is" beginRegion="FunctionRegion1"/>+ <keyword attribute="Data Type" context="#stay" String="types"/>+ </context>++ <context name="function_is" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Redirection" context="#pop!function_begin" insensitive="true"+ String="begin" beginRegion="FunctionRegion1"/>+ <keyword attribute="Signal" context="signal" String="signals"/>+ <IncludeRules context="postExpression"/>+ </context>++ <context name="function_begin" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">+ <RegExpr attribute="Redirection" context="#pop" insensitive="1"+ String="&bos;end(\s+function\b)?(\s+(&varname;|"[^"]+"))?\s*;" endRegion="FunctionRegion1"/>+ <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"+ String="end" endRegion="FunctionRegion1"/>+ </context>++<!-- procedure -->+ <context name="procedure" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="blank"/>+ <DetectIdentifier attribute="Name" context="procedure_name"/>+ </context>++ <context name="procedure_name" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Control" context="#pop#pop!procedure_is" insensitive="true" String="is"/>+ <keyword attribute="Signal" context="signal" String="signals"/>+ <IncludeRules context="postExpression"/>+ </context>++ <context name="procedure_is" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Redirection" context="#pop!procedure_begin" insensitive="true"+ String="begin" endRegion="ProcedureRegion1"/>+ <keyword attribute="Signal" context="signal" String="signals"/>+ <IncludeRules context="postExpression"/>+ </context>++ <context name="procedure_begin" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="sequential_stmt">+ <RegExpr attribute="Redirection" context="#pop" insensitive="1"+ String="&bos;end(\s+procedure)?(\s+&varname;)?\s*;" endRegion="ProcedureRegion1"/>+ <WordDetect attribute="Error" context="#pop!expressionError" insensitive="true"+ String="end" endRegion="ProcedureRegion1"/>+ </context>++<!-- component -->+ <context name="component" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="#pop">+ <IncludeRules context="blank"/>+ <RegExpr attribute="Name" context="component_main" beginRegion="ComponentRegion1"+ String="(&identifier;)"/>+ </context>++ <context name="component_main" attribute="Normal Text" lineEndContext="#stay" fallthroughContext="component_body">+ <RegExpr attribute="Control" context="#pop#pop" dynamic="1" insensitive="1"+ String="&bos;end\s+component\b(\s+%1)?\s*;" endRegion="ComponentRegion1"/>+ <WordDetect attribute="Error" context="#pop#pop!expressionError" insensitive="true"+ String="end" endRegion="ComponentRegion1"/>+ </context>++ <context name="component_body" attribute="Normal Text" lineEndContext="#stay">+ <IncludeRules context="preExpression"/>+ <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="generic"/>+ <WordDetect attribute="Keyword" context="#stay" insensitive="true" String="port"/>+ <WordDetect attribute="Control" context="#pop" insensitive="true" String="end" lookAhead="1"/>+ <IncludeRules context="postExpression"/>+ </context>+ </contexts> <itemDatas> <itemData name="Normal Text" defStyleNum="dsNormal"/>@@ -634,7 +764,6 @@ <itemData name="Data Type" defStyleNum="dsDataType"/> <itemData name="Comment" defStyleNum="dsComment"/> <itemData name="Integer" defStyleNum="dsDecVal"/>- <itemData name="Bit" defStyleNum="dsChar"/> <itemData name="Reference" defStyleNum="dsFunction"/> <itemData name="Error" defStyleNum="dsError" bold="1"/> <itemData name="Vector" defStyleNum="dsString"/>