packages feed

highlighter 0.1 → 0.2

raw patch · 117 files changed

+4592/−3455 lines, 117 filesPVP ok

version bump matches the API change (PVP)

API changes (from Hackage documentation)

+ Text.Highlighter.Lexers.Autohotkey: lexer :: Lexer
+ Text.Highlighter.Lexers.BlitzMax: lexer :: Lexer
+ Text.Highlighter.Lexers.Duel: lexer :: Lexer
+ Text.Highlighter.Lexers.Factor: lexer :: Lexer
+ Text.Highlighter.Lexers.GoodDataCL: lexer :: Lexer
+ Text.Highlighter.Lexers.Hybris: lexer :: Lexer
+ Text.Highlighter.Lexers.Ioke: lexer :: Lexer
+ Text.Highlighter.Lexers.Maql: lexer :: Lexer
+ Text.Highlighter.Lexers.PostScript: lexer :: Lexer
+ Text.Highlighter.Lexers.Properties: lexer :: Lexer
+ Text.Highlighter.Lexers.ProtoBuf: lexer :: Lexer
+ Text.Highlighter.Lexers.Scss: lexer :: Lexer
+ Text.Highlighter.Lexers.Velocity: lexer :: Lexer
+ Text.Highlighter.Lexers.Verilog: lexer :: Lexer
+ Text.Highlighter.Types: CapturesTo :: Callback -> NextState
+ Text.Highlighter.Types: instance Show Callback
+ Text.Highlighter.Types: type Callback = [String] -> TokenMatcher
- Text.Highlighter.Lexer: nextState :: NextState -> LexerM ()
+ Text.Highlighter.Lexer: nextState :: NextState -> [ByteString] -> LexerM ()

Files

highlighter.cabal view
@@ -1,5 +1,5 @@ name:                highlighter-version:             0.1+version:             0.2 synopsis:            source code highlighting description:     Processes source code using tons of lexers, tokenizing it and formatting it as e.g. HTML.@@ -30,105 +30,119 @@     , Text.Highlighter.Lexer     , Text.Highlighter.Lexers     , Text.Highlighter.Formatters.Html-    , Text.Highlighter.Lexers.Brainfuck-    , Text.Highlighter.Lexers.Bash+    , Text.Highlighter.Lexers.ABAP+    , Text.Highlighter.Lexers.ActionScript+    , Text.Highlighter.Lexers.ActionScript3+    , Text.Highlighter.Lexers.Ada+    , Text.Highlighter.Lexers.Antlr     , Text.Highlighter.Lexers.ApacheConf-    , Text.Highlighter.Lexers.Erlang+    , Text.Highlighter.Lexers.AppleScript+    , Text.Highlighter.Lexers.Asymptote+    , Text.Highlighter.Lexers.Atomo+    , Text.Highlighter.Lexers.Autohotkey+    , Text.Highlighter.Lexers.Bash+    , Text.Highlighter.Lexers.Batch+    , Text.Highlighter.Lexers.BBCode+    , Text.Highlighter.Lexers.Befunge+    , Text.Highlighter.Lexers.BlitzMax+    , Text.Highlighter.Lexers.Boo+    , Text.Highlighter.Lexers.Brainfuck+    , Text.Highlighter.Lexers.C+    , Text.Highlighter.Lexers.Clojure+    , Text.Highlighter.Lexers.CMake     , Text.Highlighter.Lexers.CoffeeScript-    , Text.Highlighter.Lexers.MySql+    , Text.Highlighter.Lexers.Coldfusion+    , Text.Highlighter.Lexers.CommonLisp     , Text.Highlighter.Lexers.Cpp-    , Text.Highlighter.Lexers.Felix-    , Text.Highlighter.Lexers.CMake-    , Text.Highlighter.Lexers.Mako-    , Text.Highlighter.Lexers.Python-    , Text.Highlighter.Lexers.Boo-    , Text.Highlighter.Lexers.ActionScript-    , Text.Highlighter.Lexers.VbNet-    , Text.Highlighter.Lexers.SquidConf+    , Text.Highlighter.Lexers.Css+    , Text.Highlighter.Lexers.Cython     , Text.Highlighter.Lexers.D-    , Text.Highlighter.Lexers.Logtalk-    , Text.Highlighter.Lexers.BBCode-    , Text.Highlighter.Lexers.MuPAD+    , Text.Highlighter.Lexers.DarcsPatch     , Text.Highlighter.Lexers.DebianControl-    , Text.Highlighter.Lexers.PythonTraceback-    , Text.Highlighter.Lexers.Coldfusion-    , Text.Highlighter.Lexers.Objdump+    , Text.Highlighter.Lexers.Diff+    , Text.Highlighter.Lexers.Django+    , Text.Highlighter.Lexers.Duel+    , Text.Highlighter.Lexers.Dylan+    , Text.Highlighter.Lexers.Erlang+    , Text.Highlighter.Lexers.Factor+    , Text.Highlighter.Lexers.Felix+    , Text.Highlighter.Lexers.Fortran+    , Text.Highlighter.Lexers.Gas+    , Text.Highlighter.Lexers.GenshiText+    , Text.Highlighter.Lexers.Gettext     , Text.Highlighter.Lexers.Gherkin-    , Text.Highlighter.Lexers.Io-    , Text.Highlighter.Lexers.Vala-    , Text.Highlighter.Lexers.Haskell-    , Text.Highlighter.Lexers.Lua-    , Text.Highlighter.Lexers.Xml-    , Text.Highlighter.Lexers.Groff     , Text.Highlighter.Lexers.GLShader-    , Text.Highlighter.Lexers.GenshiText-    , Text.Highlighter.Lexers.Gas+    , Text.Highlighter.Lexers.Gnuplot     , Text.Highlighter.Lexers.Go-    , Text.Highlighter.Lexers.Perl+    , Text.Highlighter.Lexers.GoodDataCL+    , Text.Highlighter.Lexers.Groff+    , Text.Highlighter.Lexers.Haskell+    , Text.Highlighter.Lexers.Haxe+    , Text.Highlighter.Lexers.Html+    , Text.Highlighter.Lexers.Hybris     , Text.Highlighter.Lexers.Ini-    , Text.Highlighter.Lexers.Tcsh-    , Text.Highlighter.Lexers.DarcsPatch+    , Text.Highlighter.Lexers.Io+    , Text.Highlighter.Lexers.Ioke+    , Text.Highlighter.Lexers.IrcLogs+    , Text.Highlighter.Lexers.Java+    , Text.Highlighter.Lexers.Javascript+    , Text.Highlighter.Lexers.LighttpdConf     , Text.Highlighter.Lexers.Llvm-    , Text.Highlighter.Lexers.NginxConf-    , Text.Highlighter.Lexers.AppleScript+    , Text.Highlighter.Lexers.Logtalk+    , Text.Highlighter.Lexers.Lua+    , Text.Highlighter.Lexers.Mako+    , Text.Highlighter.Lexers.Maql+    , Text.Highlighter.Lexers.Matlab     , Text.Highlighter.Lexers.MiniD-    , Text.Highlighter.Lexers.Ooc-    , Text.Highlighter.Lexers.Sql+    , Text.Highlighter.Lexers.Modelica+    , Text.Highlighter.Lexers.Modula2+    , Text.Highlighter.Lexers.MoinWiki+    , Text.Highlighter.Lexers.MOOCode+    , Text.Highlighter.Lexers.MuPAD+    , Text.Highlighter.Lexers.Mxml+    , Text.Highlighter.Lexers.MySql     , Text.Highlighter.Lexers.Nasm-    , Text.Highlighter.Lexers.SourcesList+    , Text.Highlighter.Lexers.Newspeak+    , Text.Highlighter.Lexers.NginxConf     , Text.Highlighter.Lexers.NumPy-    , Text.Highlighter.Lexers.Modula2-    , Text.Highlighter.Lexers.Vim-    , Text.Highlighter.Lexers.Ragel-    , Text.Highlighter.Lexers.Haxe-    , Text.Highlighter.Lexers.Redcode-    , Text.Highlighter.Lexers.Django-    , Text.Highlighter.Lexers.Scala-    , Text.Highlighter.Lexers.LighttpdConf-    , Text.Highlighter.Lexers.Css-    , Text.Highlighter.Lexers.Fortran-    , Text.Highlighter.Lexers.Gnuplot-    , Text.Highlighter.Lexers.Befunge-    , Text.Highlighter.Lexers.Dylan-    , Text.Highlighter.Lexers.Matlab-    , Text.Highlighter.Lexers.Html-    , Text.Highlighter.Lexers.IrcLogs-    , Text.Highlighter.Lexers.Prolog-    , Text.Highlighter.Lexers.Smalltalk-    , Text.Highlighter.Lexers.Xslt-    , Text.Highlighter.Lexers.S+    , Text.Highlighter.Lexers.Objdump+    , Text.Highlighter.Lexers.ObjectiveC+    , Text.Highlighter.Lexers.ObjectiveJ     , Text.Highlighter.Lexers.Ocaml-    , Text.Highlighter.Lexers.Gettext+    , Text.Highlighter.Lexers.Ooc+    , Text.Highlighter.Lexers.Perl+    , Text.Highlighter.Lexers.Php+    , Text.Highlighter.Lexers.PostScript     , Text.Highlighter.Lexers.Povray-    , Text.Highlighter.Lexers.ABAP-    , Text.Highlighter.Lexers.Diff-    , Text.Highlighter.Lexers.Python3Traceback+    , Text.Highlighter.Lexers.Prolog+    , Text.Highlighter.Lexers.Properties+    , Text.Highlighter.Lexers.ProtoBuf+    , Text.Highlighter.Lexers.Python     , Text.Highlighter.Lexers.Python3-    , Text.Highlighter.Lexers.Batch-    , Text.Highlighter.Lexers.Antlr-    , Text.Highlighter.Lexers.Cython+    , Text.Highlighter.Lexers.Python3Traceback+    , Text.Highlighter.Lexers.PythonTraceback+    , Text.Highlighter.Lexers.Ragel+    , Text.Highlighter.Lexers.RagelEmbedded+    , Text.Highlighter.Lexers.Redcode+    , Text.Highlighter.Lexers.S+    , Text.Highlighter.Lexers.Scala     , Text.Highlighter.Lexers.Scheme-    , Text.Highlighter.Lexers.Clojure-    , Text.Highlighter.Lexers.Modelica+    , Text.Highlighter.Lexers.Scss+    , Text.Highlighter.Lexers.Smalltalk+    , Text.Highlighter.Lexers.Smarty+    , Text.Highlighter.Lexers.SourcesList+    , Text.Highlighter.Lexers.Sql+    , Text.Highlighter.Lexers.SquidConf     , Text.Highlighter.Lexers.Tcl-    , Text.Highlighter.Lexers.MOOCode-    , Text.Highlighter.Lexers.Newspeak+    , Text.Highlighter.Lexers.Tcsh     , Text.Highlighter.Lexers.Tex-    , Text.Highlighter.Lexers.Javascript-    , Text.Highlighter.Lexers.CommonLisp-    , Text.Highlighter.Lexers.RagelEmbedded-    , Text.Highlighter.Lexers.Atomo-    , Text.Highlighter.Lexers.C-    , Text.Highlighter.Lexers.Smarty-    , Text.Highlighter.Lexers.Java-    , Text.Highlighter.Lexers.Ada-    , Text.Highlighter.Lexers.ObjectiveJ-    , Text.Highlighter.Lexers.Mxml-    , Text.Highlighter.Lexers.Php-    , Text.Highlighter.Lexers.Asymptote-    , Text.Highlighter.Lexers.MoinWiki-    , Text.Highlighter.Lexers.ObjectiveC-    , Text.Highlighter.Lexers.ActionScript3+    , Text.Highlighter.Lexers.Vala+    , Text.Highlighter.Lexers.VbNet+    , Text.Highlighter.Lexers.Velocity+    , Text.Highlighter.Lexers.Verilog+    , Text.Highlighter.Lexers.Vim+    , Text.Highlighter.Lexers.Xml+    , Text.Highlighter.Lexers.Xslt     }    build-depends:
src/Text/Highlighter/Lexer.hs view
@@ -65,13 +65,13 @@     i <- gets lsInput     case match (compile (mRegexp m) fs) i opts of         Just [] -> do-            nextState (mNextState m)+            nextState (mNextState m) []             return []          Just (s:ss) -> do             modify $ \ls -> ls { lsInput = BS.drop (BS.length s) i } -            nextState (mNextState m)+            nextState (mNextState m) (s:ss)              toTokens (s:ss) (mType m) @@ -109,7 +109,7 @@          _ -> tryAllFirst ms -    + isBOL :: LexerM Bool isBOL = do     ld <- gets lsLexed@@ -125,7 +125,8 @@ toTokens :: [BS.ByteString] -> TokenType -> LexerM [Token] toTokens (s:_) (Using l) = do     either throwError return (runLexer l s)-toTokens (_:ss) (ByGroups ts) = liftM concat $ zipWithM (\s t -> toTokens [s] t) ss ts+toTokens (_:ss) (ByGroups ts) =+    liftM concat $ zipWithM (\s t -> toTokens [s] t) ss ts toTokens (s:_) t = return [Token t s] toTokens [] _ = return [] @@ -137,17 +138,21 @@     | otherwise =         let (pre, next) = skipFailed (BS.tail i) r         in (BS.cons (BS.head i) pre, next)-            -nextState :: NextState -> LexerM ()-nextState Continue = return ()-nextState Pop =++nextState :: NextState -> [BS.ByteString] -> LexerM ()+nextState Continue _ = return ()+nextState Pop _ =     modify $ \ls -> ls { lsState = tail (lsState ls) }-nextState (PopNum n) =+nextState (PopNum n) _ =     modify $ \ls -> ls { lsState = drop n (lsState ls) }-nextState Push =+nextState Push _ =     modify $ \ls -> ls { lsState = head (lsState ls) : lsState ls }-nextState (GoTo n) =+nextState (GoTo n) _ =     modify $ \ls -> ls { lsState = n : lsState ls }-nextState (DoAll nss) = mapM_ nextState nss-nextState (Combined nss) =+nextState (CapturesTo f) cs =+    modify $ \ls -> ls { lsState = f (map fromBS cs) : lsState ls }+  where+    fromBS = map (toEnum . fromEnum) . BS.unpack+nextState (DoAll nss) cs = mapM_ (flip nextState cs) nss+nextState (Combined nss) _ =     modify $ \ls -> ls { lsState = concat nss : lsState ls }
src/Text/Highlighter/Lexers.hs view
@@ -2,207 +2,235 @@  import Text.Highlighter.Types -import qualified Text.Highlighter.Lexers.Brainfuck-import qualified Text.Highlighter.Lexers.Bash+import qualified Text.Highlighter.Lexers.ABAP+import qualified Text.Highlighter.Lexers.ActionScript+import qualified Text.Highlighter.Lexers.ActionScript3+import qualified Text.Highlighter.Lexers.Ada+import qualified Text.Highlighter.Lexers.Antlr import qualified Text.Highlighter.Lexers.ApacheConf-import qualified Text.Highlighter.Lexers.Erlang+import qualified Text.Highlighter.Lexers.AppleScript+import qualified Text.Highlighter.Lexers.Asymptote+import qualified Text.Highlighter.Lexers.Atomo+import qualified Text.Highlighter.Lexers.Autohotkey+import qualified Text.Highlighter.Lexers.Bash+import qualified Text.Highlighter.Lexers.Batch+import qualified Text.Highlighter.Lexers.BBCode+import qualified Text.Highlighter.Lexers.Befunge+import qualified Text.Highlighter.Lexers.BlitzMax+import qualified Text.Highlighter.Lexers.Boo+import qualified Text.Highlighter.Lexers.Brainfuck+import qualified Text.Highlighter.Lexers.C+import qualified Text.Highlighter.Lexers.Clojure+import qualified Text.Highlighter.Lexers.CMake import qualified Text.Highlighter.Lexers.CoffeeScript-import qualified Text.Highlighter.Lexers.MySql+import qualified Text.Highlighter.Lexers.Coldfusion+import qualified Text.Highlighter.Lexers.CommonLisp import qualified Text.Highlighter.Lexers.Cpp-import qualified Text.Highlighter.Lexers.Felix-import qualified Text.Highlighter.Lexers.CMake-import qualified Text.Highlighter.Lexers.Mako-import qualified Text.Highlighter.Lexers.Python-import qualified Text.Highlighter.Lexers.Boo-import qualified Text.Highlighter.Lexers.ActionScript-import qualified Text.Highlighter.Lexers.VbNet-import qualified Text.Highlighter.Lexers.SquidConf+import qualified Text.Highlighter.Lexers.Css+import qualified Text.Highlighter.Lexers.Cython import qualified Text.Highlighter.Lexers.D-import qualified Text.Highlighter.Lexers.Logtalk-import qualified Text.Highlighter.Lexers.BBCode-import qualified Text.Highlighter.Lexers.MuPAD+import qualified Text.Highlighter.Lexers.DarcsPatch import qualified Text.Highlighter.Lexers.DebianControl-import qualified Text.Highlighter.Lexers.PythonTraceback-import qualified Text.Highlighter.Lexers.Coldfusion-import qualified Text.Highlighter.Lexers.Objdump+import qualified Text.Highlighter.Lexers.Diff+import qualified Text.Highlighter.Lexers.Django+import qualified Text.Highlighter.Lexers.Duel+import qualified Text.Highlighter.Lexers.Dylan+import qualified Text.Highlighter.Lexers.Erlang+import qualified Text.Highlighter.Lexers.Factor+import qualified Text.Highlighter.Lexers.Felix+import qualified Text.Highlighter.Lexers.Fortran+import qualified Text.Highlighter.Lexers.Gas+import qualified Text.Highlighter.Lexers.GenshiText+import qualified Text.Highlighter.Lexers.Gettext import qualified Text.Highlighter.Lexers.Gherkin-import qualified Text.Highlighter.Lexers.Io-import qualified Text.Highlighter.Lexers.Vala-import qualified Text.Highlighter.Lexers.Haskell-import qualified Text.Highlighter.Lexers.Lua-import qualified Text.Highlighter.Lexers.Xml-import qualified Text.Highlighter.Lexers.Groff import qualified Text.Highlighter.Lexers.GLShader-import qualified Text.Highlighter.Lexers.GenshiText-import qualified Text.Highlighter.Lexers.Gas+import qualified Text.Highlighter.Lexers.Gnuplot import qualified Text.Highlighter.Lexers.Go-import qualified Text.Highlighter.Lexers.Perl+import qualified Text.Highlighter.Lexers.GoodDataCL+import qualified Text.Highlighter.Lexers.Groff+import qualified Text.Highlighter.Lexers.Haskell+import qualified Text.Highlighter.Lexers.Haxe+import qualified Text.Highlighter.Lexers.Html+import qualified Text.Highlighter.Lexers.Hybris import qualified Text.Highlighter.Lexers.Ini-import qualified Text.Highlighter.Lexers.Tcsh-import qualified Text.Highlighter.Lexers.DarcsPatch+import qualified Text.Highlighter.Lexers.Io+import qualified Text.Highlighter.Lexers.Ioke+import qualified Text.Highlighter.Lexers.IrcLogs+import qualified Text.Highlighter.Lexers.Java+import qualified Text.Highlighter.Lexers.Javascript+import qualified Text.Highlighter.Lexers.LighttpdConf import qualified Text.Highlighter.Lexers.Llvm-import qualified Text.Highlighter.Lexers.NginxConf-import qualified Text.Highlighter.Lexers.AppleScript+import qualified Text.Highlighter.Lexers.Logtalk+import qualified Text.Highlighter.Lexers.Lua+import qualified Text.Highlighter.Lexers.Mako+import qualified Text.Highlighter.Lexers.Maql+import qualified Text.Highlighter.Lexers.Matlab import qualified Text.Highlighter.Lexers.MiniD-import qualified Text.Highlighter.Lexers.Ooc-import qualified Text.Highlighter.Lexers.Sql+import qualified Text.Highlighter.Lexers.Modelica+import qualified Text.Highlighter.Lexers.Modula2+import qualified Text.Highlighter.Lexers.MoinWiki+import qualified Text.Highlighter.Lexers.MOOCode+import qualified Text.Highlighter.Lexers.MuPAD+import qualified Text.Highlighter.Lexers.Mxml+import qualified Text.Highlighter.Lexers.MySql import qualified Text.Highlighter.Lexers.Nasm-import qualified Text.Highlighter.Lexers.SourcesList+import qualified Text.Highlighter.Lexers.Newspeak+import qualified Text.Highlighter.Lexers.NginxConf import qualified Text.Highlighter.Lexers.NumPy-import qualified Text.Highlighter.Lexers.Modula2-import qualified Text.Highlighter.Lexers.Vim-import qualified Text.Highlighter.Lexers.Ragel-import qualified Text.Highlighter.Lexers.Haxe-import qualified Text.Highlighter.Lexers.Redcode-import qualified Text.Highlighter.Lexers.Django-import qualified Text.Highlighter.Lexers.Scala-import qualified Text.Highlighter.Lexers.LighttpdConf-import qualified Text.Highlighter.Lexers.Css-import qualified Text.Highlighter.Lexers.Fortran-import qualified Text.Highlighter.Lexers.Gnuplot-import qualified Text.Highlighter.Lexers.Befunge-import qualified Text.Highlighter.Lexers.Dylan-import qualified Text.Highlighter.Lexers.Matlab-import qualified Text.Highlighter.Lexers.Html-import qualified Text.Highlighter.Lexers.IrcLogs-import qualified Text.Highlighter.Lexers.Prolog-import qualified Text.Highlighter.Lexers.Smalltalk-import qualified Text.Highlighter.Lexers.Xslt-import qualified Text.Highlighter.Lexers.S+import qualified Text.Highlighter.Lexers.Objdump+import qualified Text.Highlighter.Lexers.ObjectiveC+import qualified Text.Highlighter.Lexers.ObjectiveJ import qualified Text.Highlighter.Lexers.Ocaml-import qualified Text.Highlighter.Lexers.Gettext+import qualified Text.Highlighter.Lexers.Ooc+import qualified Text.Highlighter.Lexers.Perl+import qualified Text.Highlighter.Lexers.Php+import qualified Text.Highlighter.Lexers.PostScript import qualified Text.Highlighter.Lexers.Povray-import qualified Text.Highlighter.Lexers.ABAP-import qualified Text.Highlighter.Lexers.Diff-import qualified Text.Highlighter.Lexers.Python3Traceback+import qualified Text.Highlighter.Lexers.Prolog+import qualified Text.Highlighter.Lexers.Properties+import qualified Text.Highlighter.Lexers.ProtoBuf+import qualified Text.Highlighter.Lexers.Python import qualified Text.Highlighter.Lexers.Python3-import qualified Text.Highlighter.Lexers.Batch-import qualified Text.Highlighter.Lexers.Antlr-import qualified Text.Highlighter.Lexers.Cython+import qualified Text.Highlighter.Lexers.Python3Traceback+import qualified Text.Highlighter.Lexers.PythonTraceback+import qualified Text.Highlighter.Lexers.Ragel+import qualified Text.Highlighter.Lexers.RagelEmbedded+import qualified Text.Highlighter.Lexers.Redcode+import qualified Text.Highlighter.Lexers.S+import qualified Text.Highlighter.Lexers.Scala import qualified Text.Highlighter.Lexers.Scheme-import qualified Text.Highlighter.Lexers.Clojure-import qualified Text.Highlighter.Lexers.Modelica+import qualified Text.Highlighter.Lexers.Scss+import qualified Text.Highlighter.Lexers.Smalltalk+import qualified Text.Highlighter.Lexers.Smarty+import qualified Text.Highlighter.Lexers.SourcesList+import qualified Text.Highlighter.Lexers.Sql+import qualified Text.Highlighter.Lexers.SquidConf import qualified Text.Highlighter.Lexers.Tcl-import qualified Text.Highlighter.Lexers.MOOCode-import qualified Text.Highlighter.Lexers.Newspeak+import qualified Text.Highlighter.Lexers.Tcsh import qualified Text.Highlighter.Lexers.Tex-import qualified Text.Highlighter.Lexers.Javascript-import qualified Text.Highlighter.Lexers.CommonLisp-import qualified Text.Highlighter.Lexers.RagelEmbedded-import qualified Text.Highlighter.Lexers.Atomo-import qualified Text.Highlighter.Lexers.C-import qualified Text.Highlighter.Lexers.Smarty-import qualified Text.Highlighter.Lexers.Java-import qualified Text.Highlighter.Lexers.Ada-import qualified Text.Highlighter.Lexers.ObjectiveJ-import qualified Text.Highlighter.Lexers.Mxml-import qualified Text.Highlighter.Lexers.Php-import qualified Text.Highlighter.Lexers.Asymptote-import qualified Text.Highlighter.Lexers.MoinWiki-import qualified Text.Highlighter.Lexers.ObjectiveC-import qualified Text.Highlighter.Lexers.ActionScript3+import qualified Text.Highlighter.Lexers.Vala+import qualified Text.Highlighter.Lexers.VbNet+import qualified Text.Highlighter.Lexers.Velocity+import qualified Text.Highlighter.Lexers.Verilog+import qualified Text.Highlighter.Lexers.Vim+import qualified Text.Highlighter.Lexers.Xml+import qualified Text.Highlighter.Lexers.Xslt   lexers :: [(String, Lexer)] lexers = concat-    [ map (\e -> (e, Text.Highlighter.Lexers.Brainfuck.lexer)) (lExtensions Text.Highlighter.Lexers.Brainfuck.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Bash.lexer)) (lExtensions Text.Highlighter.Lexers.Bash.lexer)+    [ map (\e -> (e, Text.Highlighter.Lexers.ABAP.lexer)) (lExtensions Text.Highlighter.Lexers.ABAP.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.ActionScript.lexer)) (lExtensions Text.Highlighter.Lexers.ActionScript.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.ActionScript3.lexer)) (lExtensions Text.Highlighter.Lexers.ActionScript3.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Ada.lexer)) (lExtensions Text.Highlighter.Lexers.Ada.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Antlr.lexer)) (lExtensions Text.Highlighter.Lexers.Antlr.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.ApacheConf.lexer)) (lExtensions Text.Highlighter.Lexers.ApacheConf.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Erlang.lexer)) (lExtensions Text.Highlighter.Lexers.Erlang.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.AppleScript.lexer)) (lExtensions Text.Highlighter.Lexers.AppleScript.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Asymptote.lexer)) (lExtensions Text.Highlighter.Lexers.Asymptote.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Atomo.lexer)) (lExtensions Text.Highlighter.Lexers.Atomo.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Autohotkey.lexer)) (lExtensions Text.Highlighter.Lexers.Autohotkey.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Bash.lexer)) (lExtensions Text.Highlighter.Lexers.Bash.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Batch.lexer)) (lExtensions Text.Highlighter.Lexers.Batch.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.BBCode.lexer)) (lExtensions Text.Highlighter.Lexers.BBCode.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Befunge.lexer)) (lExtensions Text.Highlighter.Lexers.Befunge.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.BlitzMax.lexer)) (lExtensions Text.Highlighter.Lexers.BlitzMax.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Boo.lexer)) (lExtensions Text.Highlighter.Lexers.Boo.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Brainfuck.lexer)) (lExtensions Text.Highlighter.Lexers.Brainfuck.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.C.lexer)) (lExtensions Text.Highlighter.Lexers.C.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Clojure.lexer)) (lExtensions Text.Highlighter.Lexers.Clojure.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.CMake.lexer)) (lExtensions Text.Highlighter.Lexers.CMake.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.CoffeeScript.lexer)) (lExtensions Text.Highlighter.Lexers.CoffeeScript.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.MySql.lexer)) (lExtensions Text.Highlighter.Lexers.MySql.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Coldfusion.lexer)) (lExtensions Text.Highlighter.Lexers.Coldfusion.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.CommonLisp.lexer)) (lExtensions Text.Highlighter.Lexers.CommonLisp.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Cpp.lexer)) (lExtensions Text.Highlighter.Lexers.Cpp.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Felix.lexer)) (lExtensions Text.Highlighter.Lexers.Felix.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.CMake.lexer)) (lExtensions Text.Highlighter.Lexers.CMake.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Mako.lexer)) (lExtensions Text.Highlighter.Lexers.Mako.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Python.lexer)) (lExtensions Text.Highlighter.Lexers.Python.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Boo.lexer)) (lExtensions Text.Highlighter.Lexers.Boo.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.ActionScript.lexer)) (lExtensions Text.Highlighter.Lexers.ActionScript.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.VbNet.lexer)) (lExtensions Text.Highlighter.Lexers.VbNet.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.SquidConf.lexer)) (lExtensions Text.Highlighter.Lexers.SquidConf.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Css.lexer)) (lExtensions Text.Highlighter.Lexers.Css.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Cython.lexer)) (lExtensions Text.Highlighter.Lexers.Cython.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.D.lexer)) (lExtensions Text.Highlighter.Lexers.D.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Logtalk.lexer)) (lExtensions Text.Highlighter.Lexers.Logtalk.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.BBCode.lexer)) (lExtensions Text.Highlighter.Lexers.BBCode.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.MuPAD.lexer)) (lExtensions Text.Highlighter.Lexers.MuPAD.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.DarcsPatch.lexer)) (lExtensions Text.Highlighter.Lexers.DarcsPatch.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.DebianControl.lexer)) (lExtensions Text.Highlighter.Lexers.DebianControl.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.PythonTraceback.lexer)) (lExtensions Text.Highlighter.Lexers.PythonTraceback.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Coldfusion.lexer)) (lExtensions Text.Highlighter.Lexers.Coldfusion.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Objdump.lexer)) (lExtensions Text.Highlighter.Lexers.Objdump.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Diff.lexer)) (lExtensions Text.Highlighter.Lexers.Diff.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Django.lexer)) (lExtensions Text.Highlighter.Lexers.Django.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Duel.lexer)) (lExtensions Text.Highlighter.Lexers.Duel.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Dylan.lexer)) (lExtensions Text.Highlighter.Lexers.Dylan.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Erlang.lexer)) (lExtensions Text.Highlighter.Lexers.Erlang.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Factor.lexer)) (lExtensions Text.Highlighter.Lexers.Factor.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Felix.lexer)) (lExtensions Text.Highlighter.Lexers.Felix.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Fortran.lexer)) (lExtensions Text.Highlighter.Lexers.Fortran.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Gas.lexer)) (lExtensions Text.Highlighter.Lexers.Gas.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.GenshiText.lexer)) (lExtensions Text.Highlighter.Lexers.GenshiText.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Gettext.lexer)) (lExtensions Text.Highlighter.Lexers.Gettext.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Gherkin.lexer)) (lExtensions Text.Highlighter.Lexers.Gherkin.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Io.lexer)) (lExtensions Text.Highlighter.Lexers.Io.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Vala.lexer)) (lExtensions Text.Highlighter.Lexers.Vala.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Haskell.lexer)) (lExtensions Text.Highlighter.Lexers.Haskell.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Lua.lexer)) (lExtensions Text.Highlighter.Lexers.Lua.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Xml.lexer)) (lExtensions Text.Highlighter.Lexers.Xml.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Groff.lexer)) (lExtensions Text.Highlighter.Lexers.Groff.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.GLShader.lexer)) (lExtensions Text.Highlighter.Lexers.GLShader.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.GenshiText.lexer)) (lExtensions Text.Highlighter.Lexers.GenshiText.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Gas.lexer)) (lExtensions Text.Highlighter.Lexers.Gas.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Gnuplot.lexer)) (lExtensions Text.Highlighter.Lexers.Gnuplot.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Go.lexer)) (lExtensions Text.Highlighter.Lexers.Go.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Perl.lexer)) (lExtensions Text.Highlighter.Lexers.Perl.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.GoodDataCL.lexer)) (lExtensions Text.Highlighter.Lexers.GoodDataCL.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Groff.lexer)) (lExtensions Text.Highlighter.Lexers.Groff.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Haskell.lexer)) (lExtensions Text.Highlighter.Lexers.Haskell.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Haxe.lexer)) (lExtensions Text.Highlighter.Lexers.Haxe.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Html.lexer)) (lExtensions Text.Highlighter.Lexers.Html.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Hybris.lexer)) (lExtensions Text.Highlighter.Lexers.Hybris.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Ini.lexer)) (lExtensions Text.Highlighter.Lexers.Ini.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Tcsh.lexer)) (lExtensions Text.Highlighter.Lexers.Tcsh.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.DarcsPatch.lexer)) (lExtensions Text.Highlighter.Lexers.DarcsPatch.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Io.lexer)) (lExtensions Text.Highlighter.Lexers.Io.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Ioke.lexer)) (lExtensions Text.Highlighter.Lexers.Ioke.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.IrcLogs.lexer)) (lExtensions Text.Highlighter.Lexers.IrcLogs.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Java.lexer)) (lExtensions Text.Highlighter.Lexers.Java.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Javascript.lexer)) (lExtensions Text.Highlighter.Lexers.Javascript.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.LighttpdConf.lexer)) (lExtensions Text.Highlighter.Lexers.LighttpdConf.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Llvm.lexer)) (lExtensions Text.Highlighter.Lexers.Llvm.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.NginxConf.lexer)) (lExtensions Text.Highlighter.Lexers.NginxConf.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.AppleScript.lexer)) (lExtensions Text.Highlighter.Lexers.AppleScript.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Logtalk.lexer)) (lExtensions Text.Highlighter.Lexers.Logtalk.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Lua.lexer)) (lExtensions Text.Highlighter.Lexers.Lua.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Mako.lexer)) (lExtensions Text.Highlighter.Lexers.Mako.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Maql.lexer)) (lExtensions Text.Highlighter.Lexers.Maql.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Matlab.lexer)) (lExtensions Text.Highlighter.Lexers.Matlab.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.MiniD.lexer)) (lExtensions Text.Highlighter.Lexers.MiniD.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Ooc.lexer)) (lExtensions Text.Highlighter.Lexers.Ooc.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Sql.lexer)) (lExtensions Text.Highlighter.Lexers.Sql.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Modelica.lexer)) (lExtensions Text.Highlighter.Lexers.Modelica.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Modula2.lexer)) (lExtensions Text.Highlighter.Lexers.Modula2.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.MoinWiki.lexer)) (lExtensions Text.Highlighter.Lexers.MoinWiki.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.MOOCode.lexer)) (lExtensions Text.Highlighter.Lexers.MOOCode.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.MuPAD.lexer)) (lExtensions Text.Highlighter.Lexers.MuPAD.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Mxml.lexer)) (lExtensions Text.Highlighter.Lexers.Mxml.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.MySql.lexer)) (lExtensions Text.Highlighter.Lexers.MySql.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Nasm.lexer)) (lExtensions Text.Highlighter.Lexers.Nasm.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.SourcesList.lexer)) (lExtensions Text.Highlighter.Lexers.SourcesList.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Newspeak.lexer)) (lExtensions Text.Highlighter.Lexers.Newspeak.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.NginxConf.lexer)) (lExtensions Text.Highlighter.Lexers.NginxConf.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.NumPy.lexer)) (lExtensions Text.Highlighter.Lexers.NumPy.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Modula2.lexer)) (lExtensions Text.Highlighter.Lexers.Modula2.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Vim.lexer)) (lExtensions Text.Highlighter.Lexers.Vim.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Ragel.lexer)) (lExtensions Text.Highlighter.Lexers.Ragel.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Haxe.lexer)) (lExtensions Text.Highlighter.Lexers.Haxe.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Redcode.lexer)) (lExtensions Text.Highlighter.Lexers.Redcode.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Django.lexer)) (lExtensions Text.Highlighter.Lexers.Django.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Scala.lexer)) (lExtensions Text.Highlighter.Lexers.Scala.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.LighttpdConf.lexer)) (lExtensions Text.Highlighter.Lexers.LighttpdConf.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Css.lexer)) (lExtensions Text.Highlighter.Lexers.Css.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Fortran.lexer)) (lExtensions Text.Highlighter.Lexers.Fortran.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Gnuplot.lexer)) (lExtensions Text.Highlighter.Lexers.Gnuplot.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Befunge.lexer)) (lExtensions Text.Highlighter.Lexers.Befunge.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Dylan.lexer)) (lExtensions Text.Highlighter.Lexers.Dylan.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Matlab.lexer)) (lExtensions Text.Highlighter.Lexers.Matlab.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Html.lexer)) (lExtensions Text.Highlighter.Lexers.Html.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.IrcLogs.lexer)) (lExtensions Text.Highlighter.Lexers.IrcLogs.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Prolog.lexer)) (lExtensions Text.Highlighter.Lexers.Prolog.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Smalltalk.lexer)) (lExtensions Text.Highlighter.Lexers.Smalltalk.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Xslt.lexer)) (lExtensions Text.Highlighter.Lexers.Xslt.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.S.lexer)) (lExtensions Text.Highlighter.Lexers.S.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Objdump.lexer)) (lExtensions Text.Highlighter.Lexers.Objdump.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.ObjectiveC.lexer)) (lExtensions Text.Highlighter.Lexers.ObjectiveC.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.ObjectiveJ.lexer)) (lExtensions Text.Highlighter.Lexers.ObjectiveJ.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Ocaml.lexer)) (lExtensions Text.Highlighter.Lexers.Ocaml.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Gettext.lexer)) (lExtensions Text.Highlighter.Lexers.Gettext.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Ooc.lexer)) (lExtensions Text.Highlighter.Lexers.Ooc.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Perl.lexer)) (lExtensions Text.Highlighter.Lexers.Perl.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Php.lexer)) (lExtensions Text.Highlighter.Lexers.Php.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.PostScript.lexer)) (lExtensions Text.Highlighter.Lexers.PostScript.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Povray.lexer)) (lExtensions Text.Highlighter.Lexers.Povray.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.ABAP.lexer)) (lExtensions Text.Highlighter.Lexers.ABAP.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Diff.lexer)) (lExtensions Text.Highlighter.Lexers.Diff.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Python3Traceback.lexer)) (lExtensions Text.Highlighter.Lexers.Python3Traceback.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Prolog.lexer)) (lExtensions Text.Highlighter.Lexers.Prolog.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Properties.lexer)) (lExtensions Text.Highlighter.Lexers.Properties.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.ProtoBuf.lexer)) (lExtensions Text.Highlighter.Lexers.ProtoBuf.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Python.lexer)) (lExtensions Text.Highlighter.Lexers.Python.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Python3.lexer)) (lExtensions Text.Highlighter.Lexers.Python3.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Batch.lexer)) (lExtensions Text.Highlighter.Lexers.Batch.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Antlr.lexer)) (lExtensions Text.Highlighter.Lexers.Antlr.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Cython.lexer)) (lExtensions Text.Highlighter.Lexers.Cython.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Python3Traceback.lexer)) (lExtensions Text.Highlighter.Lexers.Python3Traceback.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.PythonTraceback.lexer)) (lExtensions Text.Highlighter.Lexers.PythonTraceback.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Ragel.lexer)) (lExtensions Text.Highlighter.Lexers.Ragel.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.RagelEmbedded.lexer)) (lExtensions Text.Highlighter.Lexers.RagelEmbedded.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Redcode.lexer)) (lExtensions Text.Highlighter.Lexers.Redcode.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.S.lexer)) (lExtensions Text.Highlighter.Lexers.S.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Scala.lexer)) (lExtensions Text.Highlighter.Lexers.Scala.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Scheme.lexer)) (lExtensions Text.Highlighter.Lexers.Scheme.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Clojure.lexer)) (lExtensions Text.Highlighter.Lexers.Clojure.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Modelica.lexer)) (lExtensions Text.Highlighter.Lexers.Modelica.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Scss.lexer)) (lExtensions Text.Highlighter.Lexers.Scss.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Smalltalk.lexer)) (lExtensions Text.Highlighter.Lexers.Smalltalk.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Smarty.lexer)) (lExtensions Text.Highlighter.Lexers.Smarty.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.SourcesList.lexer)) (lExtensions Text.Highlighter.Lexers.SourcesList.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Sql.lexer)) (lExtensions Text.Highlighter.Lexers.Sql.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.SquidConf.lexer)) (lExtensions Text.Highlighter.Lexers.SquidConf.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Tcl.lexer)) (lExtensions Text.Highlighter.Lexers.Tcl.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.MOOCode.lexer)) (lExtensions Text.Highlighter.Lexers.MOOCode.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Newspeak.lexer)) (lExtensions Text.Highlighter.Lexers.Newspeak.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Tcsh.lexer)) (lExtensions Text.Highlighter.Lexers.Tcsh.lexer)     , map (\e -> (e, Text.Highlighter.Lexers.Tex.lexer)) (lExtensions Text.Highlighter.Lexers.Tex.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Javascript.lexer)) (lExtensions Text.Highlighter.Lexers.Javascript.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.CommonLisp.lexer)) (lExtensions Text.Highlighter.Lexers.CommonLisp.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.RagelEmbedded.lexer)) (lExtensions Text.Highlighter.Lexers.RagelEmbedded.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Atomo.lexer)) (lExtensions Text.Highlighter.Lexers.Atomo.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.C.lexer)) (lExtensions Text.Highlighter.Lexers.C.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Smarty.lexer)) (lExtensions Text.Highlighter.Lexers.Smarty.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Java.lexer)) (lExtensions Text.Highlighter.Lexers.Java.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Ada.lexer)) (lExtensions Text.Highlighter.Lexers.Ada.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.ObjectiveJ.lexer)) (lExtensions Text.Highlighter.Lexers.ObjectiveJ.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Mxml.lexer)) (lExtensions Text.Highlighter.Lexers.Mxml.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Php.lexer)) (lExtensions Text.Highlighter.Lexers.Php.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.Asymptote.lexer)) (lExtensions Text.Highlighter.Lexers.Asymptote.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.MoinWiki.lexer)) (lExtensions Text.Highlighter.Lexers.MoinWiki.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.ObjectiveC.lexer)) (lExtensions Text.Highlighter.Lexers.ObjectiveC.lexer)-    , map (\e -> (e, Text.Highlighter.Lexers.ActionScript3.lexer)) (lExtensions Text.Highlighter.Lexers.ActionScript3.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Vala.lexer)) (lExtensions Text.Highlighter.Lexers.Vala.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.VbNet.lexer)) (lExtensions Text.Highlighter.Lexers.VbNet.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Velocity.lexer)) (lExtensions Text.Highlighter.Lexers.Velocity.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Verilog.lexer)) (lExtensions Text.Highlighter.Lexers.Verilog.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Vim.lexer)) (lExtensions Text.Highlighter.Lexers.Vim.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Xml.lexer)) (lExtensions Text.Highlighter.Lexers.Xml.lexer)+    , map (\e -> (e, Text.Highlighter.Lexers.Xslt.lexer)) (lExtensions Text.Highlighter.Lexers.Xslt.lexer)     ] 
src/Text/Highlighter/Lexers/ABAP.hs view
@@ -5,48 +5,48 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\66\65\80"-    , lAliases = ["\97\98\97\112"]-    , lExtensions = ["\46\97\98\97\112"]-    , lMimetypes = ["\116\101\120\116\47\120\45\97\98\97\112"]+    { lName = "ABAP"+    , lAliases = ["abap"]+    , lExtensions = [".abap"]+    , lMimetypes = ["text/x-abap"]     , lStart = root'     , lFlags = [caseless, multiline]     }  variableNames' :: TokenMatcher variableNames' =-    [ tok "\60\91\92\83\95\93\43\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\92\119\93\91\92\119\95\126\93\42\40\63\58\40\92\91\92\93\41\124\45\62\92\42\41\63" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    [ tok "<[\\S_]+>" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[\\w][\\w_\126]*(?:(\\[\\])|->\\*)?" (Arbitrary "Name" :. Arbitrary "Variable")     ]  root' :: TokenMatcher root' =     [ anyOf common'-    , tok "\40\67\65\76\76\92\115\43\40\63\58\66\65\68\73\124\67\85\83\84\79\77\69\82\45\70\85\78\67\84\73\79\78\124\70\85\78\67\84\73\79\78\41\41\40\92\115\43\41\40\92\39\63\92\83\43\92\39\63\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\40\67\65\76\76\92\115\43\40\63\58\68\73\65\76\79\71\124\83\67\82\69\69\78\124\83\85\66\83\67\82\69\69\78\124\83\69\76\69\67\84\73\79\78\45\83\67\82\69\69\78\124\84\82\65\78\83\65\67\84\73\79\78\124\84\82\65\78\83\70\79\82\77\65\84\73\79\78\41\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\70\79\82\77\124\80\69\82\70\79\82\77\41\40\92\115\43\41\40\91\92\119\95\93\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\40\80\69\82\70\79\82\77\41\40\92\115\43\41\40\92\40\41\40\91\92\119\95\93\43\41\40\92\41\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\77\79\68\85\76\69\41\40\92\115\43\41\40\92\83\43\41\40\92\115\43\41\40\73\78\80\85\84\124\79\85\84\80\85\84\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100")])-    , tok "\40\77\69\84\72\79\68\41\40\92\115\43\41\40\91\92\119\95\126\93\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\40\92\115\43\41\40\91\92\119\95\92\45\93\43\41\40\91\61\92\45\93\62\41\40\91\92\119\95\92\45\126\93\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\40\63\60\61\40\61\124\45\41\62\41\40\91\92\119\95\92\45\126\93\43\41\40\63\61\92\40\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\40\65\68\68\45\67\79\82\82\69\83\80\79\78\68\73\78\71\124\65\85\84\72\79\82\73\84\89\45\67\72\69\67\75\124\67\76\65\83\83\45\68\65\84\65\124\67\76\65\83\83\45\69\86\69\78\84\83\124\67\76\65\83\83\45\77\69\84\72\79\68\83\124\67\76\65\83\83\45\80\79\79\76\124\68\69\76\69\84\69\45\65\68\74\65\67\69\78\84\124\68\73\86\73\68\69\45\67\79\82\82\69\83\80\79\78\68\73\78\71\124\69\68\73\84\79\82\45\67\65\76\76\124\69\78\72\65\78\67\69\77\69\78\84\45\80\79\73\78\84\124\69\78\72\65\78\67\69\77\69\78\84\45\83\69\67\84\73\79\78\124\69\88\73\84\45\67\79\77\77\65\78\68\124\70\73\69\76\68\45\71\82\79\85\80\83\124\70\73\69\76\68\45\83\89\77\66\79\76\83\124\70\85\78\67\84\73\79\78\45\80\79\79\76\124\73\78\84\69\82\70\65\67\69\45\80\79\79\76\124\73\78\86\69\82\84\69\68\45\68\65\84\69\124\76\79\65\68\45\79\70\45\80\82\79\71\82\65\77\124\76\79\71\45\80\79\73\78\84\124\77\69\83\83\65\71\69\45\73\68\124\77\79\86\69\45\67\79\82\82\69\83\80\79\78\68\73\78\71\124\77\85\76\84\73\80\76\89\45\67\79\82\82\69\83\80\79\78\68\73\78\71\124\78\69\87\45\76\73\78\69\124\78\69\87\45\80\65\71\69\124\78\69\87\45\83\69\67\84\73\79\78\124\78\79\45\69\88\84\69\78\83\73\79\78\124\79\85\84\80\85\84\45\76\69\78\71\84\72\124\80\82\73\78\84\45\67\79\78\84\82\79\76\124\83\69\76\69\67\84\45\79\80\84\73\79\78\83\124\83\84\65\82\84\45\79\70\45\83\69\76\69\67\84\73\79\78\124\83\85\66\84\82\65\67\84\45\67\79\82\82\69\83\80\79\78\68\73\78\71\124\83\89\78\84\65\88\45\67\72\69\67\75\124\83\89\83\84\69\77\45\69\88\67\69\80\84\73\79\78\83\124\84\89\80\69\45\80\79\79\76\124\84\89\80\69\45\80\79\79\76\83\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\67\82\69\65\84\69\92\115\43\40\80\85\66\76\73\67\124\80\82\73\86\65\84\69\124\68\65\84\65\124\79\66\74\69\67\84\41\124\40\40\80\85\66\76\73\67\124\80\82\73\86\65\84\69\124\80\82\79\84\69\67\84\69\68\41\92\115\43\83\69\67\84\73\79\78\124\40\84\89\80\69\124\76\73\75\69\41\40\92\115\43\40\76\73\78\69\92\115\43\79\70\124\82\69\70\92\115\43\84\79\124\40\83\79\82\84\69\68\124\83\84\65\78\68\65\82\68\124\72\65\83\72\69\68\41\92\115\43\84\65\66\76\69\92\115\43\79\70\41\41\63\124\70\82\79\77\92\115\43\40\68\65\84\65\66\65\83\69\124\77\69\77\79\82\89\41\124\67\65\76\76\92\115\43\77\69\84\72\79\68\124\40\71\82\79\85\80\124\79\82\68\69\82\41\32\66\89\124\72\65\86\73\78\71\124\83\69\80\65\82\65\84\69\68\32\66\89\124\71\69\84\92\115\43\40\66\65\68\73\124\66\73\84\124\67\85\82\83\79\82\124\68\65\84\65\83\69\84\124\76\79\67\65\76\69\124\80\65\82\65\77\69\84\69\82\124\80\70\45\83\84\65\84\85\83\124\40\80\82\79\80\69\82\84\89\124\82\69\70\69\82\69\78\67\69\41\92\115\43\79\70\124\82\85\78\92\115\43\84\73\77\69\124\84\73\77\69\92\115\43\40\83\84\65\77\80\41\63\41\63\124\83\69\84\92\115\43\40\66\73\84\124\66\76\65\78\75\92\115\43\76\73\78\69\83\124\67\79\85\78\84\82\89\124\67\85\82\83\79\82\124\68\65\84\65\83\69\84\124\69\88\84\69\78\68\69\68\92\115\43\67\72\69\67\75\124\72\65\78\68\76\69\82\124\72\79\76\68\92\115\43\68\65\84\65\124\76\65\78\71\85\65\71\69\124\76\69\70\84\92\115\43\83\67\82\79\76\76\45\66\79\85\78\68\65\82\89\124\76\79\67\65\76\69\124\77\65\82\71\73\78\124\80\65\82\65\77\69\84\69\82\124\80\70\45\83\84\65\84\85\83\124\80\82\79\80\69\82\84\89\92\115\43\79\70\124\82\85\78\92\115\43\84\73\77\69\92\115\43\40\65\78\65\76\89\90\69\82\124\67\76\79\67\75\92\115\43\82\69\83\79\76\85\84\73\79\78\41\124\83\67\82\69\69\78\124\84\73\84\76\69\66\65\82\124\85\80\65\68\84\69\92\115\43\84\65\83\75\92\115\43\76\79\67\65\76\124\85\83\69\82\45\67\79\77\77\65\78\68\41\124\67\79\78\86\69\82\84\92\115\43\40\40\73\78\86\69\82\84\69\68\45\41\63\68\65\84\69\124\84\73\77\69\124\84\73\77\69\92\115\43\83\84\65\77\80\124\84\69\88\84\41\124\40\67\76\79\83\69\124\79\80\69\78\41\92\115\43\40\68\65\84\65\83\69\84\124\67\85\82\83\79\82\41\124\40\84\79\124\70\82\79\77\41\92\115\43\40\68\65\84\65\32\66\85\70\70\69\82\124\73\78\84\69\82\78\65\76\32\84\65\66\76\69\124\77\69\77\79\82\89\32\73\68\124\68\65\84\65\66\65\83\69\124\83\72\65\82\69\68\92\115\43\40\77\69\77\79\82\89\124\66\85\70\70\69\82\41\41\124\68\69\83\67\82\73\66\69\92\115\43\40\68\73\83\84\65\78\67\69\92\115\43\66\69\84\87\69\69\78\124\70\73\69\76\68\124\76\73\83\84\124\84\65\66\76\69\41\124\70\82\69\69\92\115\40\77\69\77\79\82\89\124\79\66\74\69\67\84\41\63\124\80\82\79\67\69\83\83\92\115\43\40\66\69\70\79\82\69\92\115\43\79\85\84\80\85\84\124\65\70\84\69\82\92\115\43\73\78\80\85\84\124\79\78\92\115\43\40\86\65\76\85\69\45\82\69\81\85\69\83\84\124\72\69\76\80\45\82\69\81\85\69\83\84\41\41\124\65\84\92\115\43\40\76\73\78\69\45\83\69\76\69\67\84\73\79\78\124\85\83\69\82\45\67\79\77\77\65\78\68\124\69\78\68\92\115\43\79\70\124\78\69\87\41\124\65\84\92\115\43\83\69\76\69\67\84\73\79\78\45\83\67\82\69\69\78\40\92\115\43\40\79\78\40\92\115\43\40\66\76\79\67\75\124\40\72\69\76\80\124\86\65\76\85\69\41\45\82\69\81\85\69\83\84\92\115\43\70\79\82\124\69\78\68\92\115\43\79\70\124\82\65\68\73\79\66\85\84\84\79\78\92\115\43\71\82\79\85\80\41\41\63\124\79\85\84\80\85\84\41\41\63\124\83\69\76\69\67\84\73\79\78\45\83\67\82\69\69\78\58\63\92\115\43\40\40\66\69\71\73\78\124\69\78\68\41\92\115\43\79\70\92\115\43\40\40\84\65\66\66\69\68\92\115\43\41\63\66\76\79\67\75\124\76\73\78\69\124\83\67\82\69\69\78\41\124\67\79\77\77\69\78\84\124\70\85\78\67\84\73\79\78\92\115\43\75\69\89\124\73\78\67\76\85\68\69\92\115\43\66\76\79\67\75\83\124\80\79\83\73\84\73\79\78\124\80\85\83\72\66\85\84\84\79\78\124\83\75\73\80\124\85\76\73\78\69\41\124\76\69\65\86\69\92\115\43\40\76\73\83\84\45\80\82\79\67\69\83\83\73\78\71\124\80\82\79\71\82\65\77\124\83\67\82\69\69\78\124\84\79\32\76\73\83\84\45\80\82\79\67\69\83\83\73\78\71\124\84\79\32\84\82\65\78\83\65\67\84\73\79\78\41\40\69\78\68\73\78\71\124\83\84\65\82\84\73\78\71\41\92\115\43\65\84\124\70\79\82\77\65\84\92\115\43\40\67\79\76\79\82\124\73\78\84\69\78\83\73\70\73\69\68\124\73\78\86\69\82\83\69\124\72\79\84\83\80\79\84\124\73\78\80\85\84\124\70\82\65\77\69\83\124\82\69\83\69\84\41\124\65\83\92\115\43\40\67\72\69\67\75\66\79\88\124\83\85\66\83\67\82\69\69\78\124\87\73\78\68\79\87\41\124\87\73\84\72\92\115\43\40\40\40\78\79\78\45\41\63\85\78\73\81\85\69\41\63\92\115\43\75\69\89\124\70\82\65\77\69\41\124\40\66\69\71\73\78\124\69\78\68\41\92\115\43\79\70\124\68\69\76\69\84\69\40\92\115\43\65\68\74\65\67\69\78\84\92\115\43\68\85\80\76\73\67\65\84\69\83\92\115\70\82\79\77\41\63\124\67\79\77\80\65\82\73\78\71\40\92\115\43\65\76\76\92\115\43\70\73\69\76\68\83\41\63\124\73\78\83\69\82\84\40\92\115\43\73\78\73\84\73\65\76\92\115\43\76\73\78\69\92\115\43\73\78\84\79\124\92\115\43\76\73\78\69\83\92\115\43\79\70\41\63\124\73\78\92\115\43\40\40\66\89\84\69\124\67\72\65\82\65\67\84\69\82\41\92\115\43\77\79\68\69\124\80\82\79\71\82\65\77\41\124\69\78\68\45\79\70\45\40\68\69\70\73\78\73\84\73\79\78\124\80\65\71\69\124\83\69\76\69\67\84\73\79\78\41\124\87\73\84\72\92\115\43\70\82\65\77\69\40\92\115\43\84\73\84\76\69\41\124\65\78\68\92\115\43\40\77\65\82\75\124\82\69\84\85\82\78\41\124\67\76\73\69\78\84\92\115\43\83\80\69\67\73\70\73\69\68\124\67\79\82\82\69\83\80\79\78\68\73\78\71\92\115\43\70\73\69\76\68\83\92\115\43\79\70\124\73\70\92\115\43\70\79\85\78\68\124\70\79\82\92\115\43\69\86\69\78\84\124\73\78\72\69\82\73\84\73\78\71\92\115\43\70\82\79\77\124\76\69\65\86\69\92\115\43\84\79\92\115\43\83\67\82\69\69\78\124\76\79\79\80\92\115\43\65\84\92\115\43\40\83\67\82\69\69\78\41\63\124\76\79\87\69\82\92\115\43\67\65\83\69\124\77\65\84\67\72\67\79\68\69\92\115\43\79\66\74\69\67\84\124\77\79\68\73\70\92\115\43\73\68\124\77\79\68\73\70\89\92\115\43\83\67\82\69\69\78\124\78\69\83\84\73\78\71\92\115\43\76\69\86\69\76\124\78\79\92\115\43\73\78\84\69\82\86\65\76\83\124\79\70\92\115\43\83\84\82\85\67\84\85\82\69\124\82\65\68\73\79\66\85\84\84\79\78\92\115\43\71\82\79\85\80\124\82\65\78\71\69\92\115\43\79\70\124\82\69\70\92\115\43\84\79\124\83\85\80\80\82\69\83\83\32\68\73\65\76\79\71\124\84\65\66\76\69\92\115\43\79\70\124\85\80\80\69\82\92\115\43\67\65\83\69\124\84\82\65\78\83\80\79\82\84\73\78\71\92\115\43\78\79\92\115\43\70\73\69\76\68\83\124\86\65\76\85\69\92\115\43\67\72\69\67\75\124\86\73\83\73\66\76\69\92\115\43\76\69\78\71\84\72\124\72\69\65\68\69\82\92\115\43\76\73\78\69\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\94\124\40\63\60\61\40\92\115\124\92\46\41\41\41\40\65\66\66\82\69\86\73\65\84\69\68\124\65\68\68\124\65\76\73\65\83\69\83\124\65\80\80\69\78\68\124\65\83\83\69\82\84\124\65\83\83\73\71\78\40\73\78\71\41\63\124\65\84\40\92\115\43\70\73\82\83\84\41\63\124\66\65\67\75\124\66\76\79\67\75\124\66\82\69\65\75\45\80\79\73\78\84\124\67\65\83\69\124\67\65\84\67\72\124\67\72\65\78\71\73\78\71\124\67\72\69\67\75\124\67\76\65\83\83\124\67\76\69\65\82\124\67\79\76\76\69\67\84\124\67\79\76\79\82\124\67\79\77\77\73\84\124\67\82\69\65\84\69\124\67\79\77\77\85\78\73\67\65\84\73\79\78\124\67\79\77\80\79\78\69\78\84\83\63\124\67\79\77\80\85\84\69\124\67\79\78\67\65\84\69\78\65\84\69\124\67\79\78\68\69\78\83\69\124\67\79\78\83\84\65\78\84\83\124\67\79\78\84\69\88\84\83\124\67\79\78\84\73\78\85\69\124\67\79\78\84\82\79\76\83\124\68\65\84\65\124\68\69\67\73\77\65\76\83\124\68\69\70\65\85\76\84\124\68\69\70\73\78\69\124\68\69\70\73\78\73\84\73\79\78\124\68\69\70\69\82\82\69\68\124\68\69\77\65\78\68\124\68\69\84\65\73\76\124\68\73\82\69\67\84\79\82\89\124\68\73\86\73\68\69\124\68\79\124\69\76\83\69\40\73\70\41\63\124\69\78\68\65\84\124\69\78\68\67\65\83\69\124\69\78\68\67\76\65\83\83\124\69\78\68\68\79\124\69\78\68\70\79\82\77\124\69\78\68\70\85\78\67\84\73\79\78\124\69\78\68\73\70\124\69\78\68\76\79\79\80\124\69\78\68\77\69\84\72\79\68\124\69\78\68\77\79\68\85\76\69\124\69\78\68\83\69\76\69\67\84\124\69\78\68\84\82\89\124\69\78\72\65\78\67\69\77\69\78\84\124\69\86\69\78\84\83\124\69\88\67\69\80\84\73\79\78\83\124\69\88\73\84\124\69\88\80\79\82\84\124\69\88\80\79\82\84\73\78\71\124\69\88\84\82\65\67\84\124\70\69\84\67\72\124\70\73\69\76\68\83\63\124\70\73\78\68\124\70\79\82\124\70\79\82\77\124\70\79\82\77\65\84\124\70\82\69\69\124\70\82\79\77\124\72\73\68\69\124\73\68\124\73\70\124\73\77\80\79\82\84\124\73\77\80\76\69\77\69\78\84\65\84\73\79\78\124\73\77\80\79\82\84\73\78\71\124\73\78\124\73\78\67\76\85\68\69\124\73\78\67\76\85\68\73\78\71\124\73\78\68\69\88\124\73\78\70\79\84\89\80\69\83\124\73\78\73\84\73\65\76\73\90\65\84\73\79\78\124\73\78\84\69\82\70\65\67\69\124\73\78\84\69\82\70\65\67\69\83\124\73\78\84\79\124\76\69\78\71\84\72\124\76\73\78\69\83\124\76\79\65\68\124\76\79\67\65\76\124\74\79\73\78\124\75\69\89\124\77\65\88\73\77\85\77\124\77\69\83\83\65\71\69\124\77\69\84\72\79\68\91\83\93\63\124\77\73\78\73\77\85\77\124\77\79\68\85\76\69\124\77\79\68\73\70\89\124\77\79\86\69\124\77\85\76\84\73\80\76\89\124\78\79\68\69\83\124\79\66\76\73\71\65\84\79\82\89\124\79\70\124\79\70\70\124\79\78\124\79\86\69\82\76\65\89\124\80\65\67\75\124\80\65\82\65\77\69\84\69\82\83\124\80\69\82\67\69\78\84\65\71\69\124\80\79\83\73\84\73\79\78\124\80\82\79\71\82\65\77\124\80\82\79\86\73\68\69\124\80\85\66\76\73\67\124\80\85\84\124\82\65\73\83\69\124\82\65\73\83\73\78\71\124\82\65\78\71\69\83\124\82\69\65\68\124\82\69\67\69\73\86\69\124\82\69\70\82\69\83\72\124\82\69\74\69\67\84\124\82\69\80\79\82\84\124\82\69\83\69\82\86\69\124\82\69\83\85\77\69\124\82\69\84\82\89\124\82\69\84\85\82\78\124\82\69\84\85\82\78\73\78\71\124\82\73\71\72\84\124\82\79\76\76\66\65\67\75\124\83\67\82\79\76\76\124\83\69\65\82\67\72\124\83\69\76\69\67\84\124\83\72\73\70\84\124\83\73\78\71\76\69\124\83\75\73\80\124\83\79\82\84\124\83\80\76\73\84\124\83\84\65\84\73\67\83\124\83\84\79\80\124\83\85\66\77\73\84\124\83\85\66\84\82\65\67\84\124\83\85\77\124\83\85\77\77\65\82\89\124\83\85\77\77\73\78\71\124\83\85\80\80\76\89\124\84\65\66\76\69\124\84\65\66\76\69\83\124\84\73\77\69\83\124\84\73\84\76\69\124\84\79\124\84\79\80\45\79\70\45\80\65\71\69\124\84\82\65\78\83\70\69\82\124\84\82\65\78\83\76\65\84\69\124\84\82\89\124\84\89\80\69\83\124\85\76\73\78\69\124\85\78\68\69\82\124\85\78\80\65\67\75\124\85\80\68\65\84\69\124\85\83\73\78\71\124\86\65\76\85\69\124\86\65\76\85\69\83\124\86\73\65\124\87\65\73\84\124\87\72\69\78\124\87\72\69\82\69\124\87\72\73\76\69\124\87\73\84\72\124\87\73\78\68\79\87\124\87\82\73\84\69\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\97\98\115\124\97\99\111\115\124\97\115\105\110\124\97\116\97\110\124\98\111\111\108\99\124\98\111\111\108\120\124\98\105\116\95\115\101\116\124\99\104\97\114\95\111\102\102\124\99\104\97\114\108\101\110\124\99\101\105\108\124\99\109\97\120\124\99\109\105\110\124\99\111\110\100\101\110\115\101\124\99\111\110\116\97\105\110\115\124\99\111\110\116\97\105\110\115\95\97\110\121\95\111\102\124\99\111\110\116\97\105\110\115\95\97\110\121\95\110\111\116\95\111\102\124\99\111\110\99\97\116\95\108\105\110\101\115\95\111\102\124\99\111\115\124\99\111\115\104\124\99\111\117\110\116\124\99\111\117\110\116\95\97\110\121\95\111\102\124\99\111\117\110\116\95\97\110\121\95\110\111\116\95\111\102\124\100\98\109\97\120\108\101\110\124\100\105\115\116\97\110\99\101\124\101\115\99\97\112\101\124\101\120\112\124\102\105\110\100\124\102\105\110\100\95\101\110\100\124\102\105\110\100\95\97\110\121\95\111\102\124\102\105\110\100\95\97\110\121\95\110\111\116\95\111\102\124\102\108\111\111\114\124\102\114\97\99\124\102\114\111\109\95\109\105\120\101\100\124\105\110\115\101\114\116\124\108\105\110\101\115\124\108\111\103\124\108\111\103\49\48\124\109\97\116\99\104\124\109\97\116\99\104\101\115\124\110\109\97\120\124\110\109\105\110\124\110\117\109\111\102\99\104\97\114\124\114\101\112\101\97\116\124\114\101\112\108\97\99\101\124\114\101\115\99\97\108\101\124\114\101\118\101\114\115\101\124\114\111\117\110\100\124\115\101\103\109\101\110\116\124\115\104\105\102\116\95\108\101\102\116\124\115\104\105\102\116\95\114\105\103\104\116\124\115\105\103\110\124\115\105\110\124\115\105\110\104\124\115\113\114\116\124\115\116\114\108\101\110\124\115\117\98\115\116\114\105\110\103\124\115\117\98\115\116\114\105\110\103\95\97\102\116\101\114\124\115\117\98\115\116\114\105\110\103\95\102\114\111\109\124\115\117\98\115\116\114\105\110\103\95\98\101\102\111\114\101\124\115\117\98\115\116\114\105\110\103\95\116\111\124\116\97\110\124\116\97\110\104\124\116\111\95\117\112\112\101\114\124\116\111\95\108\111\119\101\114\124\116\111\95\109\105\120\101\100\124\116\114\97\110\115\108\97\116\101\124\116\114\117\110\99\124\120\115\116\114\108\101\110\41\40\92\40\41\92\98" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\38\91\48\45\57\93" (Arbitrary "\78\97\109\101")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\40\63\60\61\40\92\115\124\46\41\41\40\65\78\68\124\69\81\124\78\69\124\71\84\124\76\84\124\71\69\124\76\69\124\67\79\124\67\78\124\67\65\124\78\65\124\67\83\124\78\79\84\124\78\83\124\67\80\124\78\80\124\66\89\84\69\45\67\79\124\66\89\84\69\45\67\78\124\66\89\84\69\45\67\65\124\66\89\84\69\45\78\65\124\66\89\84\69\45\67\83\124\66\89\84\69\45\78\83\124\73\83\92\115\43\40\78\79\84\92\115\43\41\63\40\73\78\73\84\73\65\76\124\65\83\83\73\71\78\69\68\124\82\69\81\85\69\83\84\69\68\124\66\79\85\78\68\41\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114")+    , tok "(CALL\\s+(?:BADI|CUSTOMER-FUNCTION|FUNCTION))(\\s+)(\\'?\\S+\\'?)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(CALL\\s+(?:DIALOG|SCREEN|SUBSCREEN|SELECTION-SCREEN|TRANSACTION|TRANSFORMATION))\\b" (Arbitrary "Keyword")+    , tok "(FORM|PERFORM)(\\s+)([\\w_]+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(PERFORM)(\\s+)(\\()([\\w_]+)(\\))" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Punctuation")])+    , tok "(MODULE)(\\s+)(\\S+)(\\s+)(INPUT|OUTPUT)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Keyword")])+    , tok "(METHOD)(\\s+)([\\w_\126]+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(\\s+)([\\w_\\-]+)([=\\-]>)([\\w_\\-\126]+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Operator"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(?<=(=|-)>)([\\w_\\-\126]+)(?=\\()" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "(ADD-CORRESPONDING|AUTHORITY-CHECK|CLASS-DATA|CLASS-EVENTS|CLASS-METHODS|CLASS-POOL|DELETE-ADJACENT|DIVIDE-CORRESPONDING|EDITOR-CALL|ENHANCEMENT-POINT|ENHANCEMENT-SECTION|EXIT-COMMAND|FIELD-GROUPS|FIELD-SYMBOLS|FUNCTION-POOL|INTERFACE-POOL|INVERTED-DATE|LOAD-OF-PROGRAM|LOG-POINT|MESSAGE-ID|MOVE-CORRESPONDING|MULTIPLY-CORRESPONDING|NEW-LINE|NEW-PAGE|NEW-SECTION|NO-EXTENSION|OUTPUT-LENGTH|PRINT-CONTROL|SELECT-OPTIONS|START-OF-SELECTION|SUBTRACT-CORRESPONDING|SYNTAX-CHECK|SYSTEM-EXCEPTIONS|TYPE-POOL|TYPE-POOLS)\\b" (Arbitrary "Keyword")+    , tok "CREATE\\s+(PUBLIC|PRIVATE|DATA|OBJECT)|((PUBLIC|PRIVATE|PROTECTED)\\s+SECTION|(TYPE|LIKE)(\\s+(LINE\\s+OF|REF\\s+TO|(SORTED|STANDARD|HASHED)\\s+TABLE\\s+OF))?|FROM\\s+(DATABASE|MEMORY)|CALL\\s+METHOD|(GROUP|ORDER) BY|HAVING|SEPARATED BY|GET\\s+(BADI|BIT|CURSOR|DATASET|LOCALE|PARAMETER|PF-STATUS|(PROPERTY|REFERENCE)\\s+OF|RUN\\s+TIME|TIME\\s+(STAMP)?)?|SET\\s+(BIT|BLANK\\s+LINES|COUNTRY|CURSOR|DATASET|EXTENDED\\s+CHECK|HANDLER|HOLD\\s+DATA|LANGUAGE|LEFT\\s+SCROLL-BOUNDARY|LOCALE|MARGIN|PARAMETER|PF-STATUS|PROPERTY\\s+OF|RUN\\s+TIME\\s+(ANALYZER|CLOCK\\s+RESOLUTION)|SCREEN|TITLEBAR|UPADTE\\s+TASK\\s+LOCAL|USER-COMMAND)|CONVERT\\s+((INVERTED-)?DATE|TIME|TIME\\s+STAMP|TEXT)|(CLOSE|OPEN)\\s+(DATASET|CURSOR)|(TO|FROM)\\s+(DATA BUFFER|INTERNAL TABLE|MEMORY ID|DATABASE|SHARED\\s+(MEMORY|BUFFER))|DESCRIBE\\s+(DISTANCE\\s+BETWEEN|FIELD|LIST|TABLE)|FREE\\s(MEMORY|OBJECT)?|PROCESS\\s+(BEFORE\\s+OUTPUT|AFTER\\s+INPUT|ON\\s+(VALUE-REQUEST|HELP-REQUEST))|AT\\s+(LINE-SELECTION|USER-COMMAND|END\\s+OF|NEW)|AT\\s+SELECTION-SCREEN(\\s+(ON(\\s+(BLOCK|(HELP|VALUE)-REQUEST\\s+FOR|END\\s+OF|RADIOBUTTON\\s+GROUP))?|OUTPUT))?|SELECTION-SCREEN:?\\s+((BEGIN|END)\\s+OF\\s+((TABBED\\s+)?BLOCK|LINE|SCREEN)|COMMENT|FUNCTION\\s+KEY|INCLUDE\\s+BLOCKS|POSITION|PUSHBUTTON|SKIP|ULINE)|LEAVE\\s+(LIST-PROCESSING|PROGRAM|SCREEN|TO LIST-PROCESSING|TO TRANSACTION)(ENDING|STARTING)\\s+AT|FORMAT\\s+(COLOR|INTENSIFIED|INVERSE|HOTSPOT|INPUT|FRAMES|RESET)|AS\\s+(CHECKBOX|SUBSCREEN|WINDOW)|WITH\\s+(((NON-)?UNIQUE)?\\s+KEY|FRAME)|(BEGIN|END)\\s+OF|DELETE(\\s+ADJACENT\\s+DUPLICATES\\sFROM)?|COMPARING(\\s+ALL\\s+FIELDS)?|INSERT(\\s+INITIAL\\s+LINE\\s+INTO|\\s+LINES\\s+OF)?|IN\\s+((BYTE|CHARACTER)\\s+MODE|PROGRAM)|END-OF-(DEFINITION|PAGE|SELECTION)|WITH\\s+FRAME(\\s+TITLE)|AND\\s+(MARK|RETURN)|CLIENT\\s+SPECIFIED|CORRESPONDING\\s+FIELDS\\s+OF|IF\\s+FOUND|FOR\\s+EVENT|INHERITING\\s+FROM|LEAVE\\s+TO\\s+SCREEN|LOOP\\s+AT\\s+(SCREEN)?|LOWER\\s+CASE|MATCHCODE\\s+OBJECT|MODIF\\s+ID|MODIFY\\s+SCREEN|NESTING\\s+LEVEL|NO\\s+INTERVALS|OF\\s+STRUCTURE|RADIOBUTTON\\s+GROUP|RANGE\\s+OF|REF\\s+TO|SUPPRESS DIALOG|TABLE\\s+OF|UPPER\\s+CASE|TRANSPORTING\\s+NO\\s+FIELDS|VALUE\\s+CHECK|VISIBLE\\s+LENGTH|HEADER\\s+LINE)\\b" (Arbitrary "Keyword")+    , tok "(^|(?<=(\\s|\\.)))(ABBREVIATED|ADD|ALIASES|APPEND|ASSERT|ASSIGN(ING)?|AT(\\s+FIRST)?|BACK|BLOCK|BREAK-POINT|CASE|CATCH|CHANGING|CHECK|CLASS|CLEAR|COLLECT|COLOR|COMMIT|CREATE|COMMUNICATION|COMPONENTS?|COMPUTE|CONCATENATE|CONDENSE|CONSTANTS|CONTEXTS|CONTINUE|CONTROLS|DATA|DECIMALS|DEFAULT|DEFINE|DEFINITION|DEFERRED|DEMAND|DETAIL|DIRECTORY|DIVIDE|DO|ELSE(IF)?|ENDAT|ENDCASE|ENDCLASS|ENDDO|ENDFORM|ENDFUNCTION|ENDIF|ENDLOOP|ENDMETHOD|ENDMODULE|ENDSELECT|ENDTRY|ENHANCEMENT|EVENTS|EXCEPTIONS|EXIT|EXPORT|EXPORTING|EXTRACT|FETCH|FIELDS?|FIND|FOR|FORM|FORMAT|FREE|FROM|HIDE|ID|IF|IMPORT|IMPLEMENTATION|IMPORTING|IN|INCLUDE|INCLUDING|INDEX|INFOTYPES|INITIALIZATION|INTERFACE|INTERFACES|INTO|LENGTH|LINES|LOAD|LOCAL|JOIN|KEY|MAXIMUM|MESSAGE|METHOD[S]?|MINIMUM|MODULE|MODIFY|MOVE|MULTIPLY|NODES|OBLIGATORY|OF|OFF|ON|OVERLAY|PACK|PARAMETERS|PERCENTAGE|POSITION|PROGRAM|PROVIDE|PUBLIC|PUT|RAISE|RAISING|RANGES|READ|RECEIVE|REFRESH|REJECT|REPORT|RESERVE|RESUME|RETRY|RETURN|RETURNING|RIGHT|ROLLBACK|SCROLL|SEARCH|SELECT|SHIFT|SINGLE|SKIP|SORT|SPLIT|STATICS|STOP|SUBMIT|SUBTRACT|SUM|SUMMARY|SUMMING|SUPPLY|TABLE|TABLES|TIMES|TITLE|TO|TOP-OF-PAGE|TRANSFER|TRANSLATE|TRY|TYPES|ULINE|UNDER|UNPACK|UPDATE|USING|VALUE|VALUES|VIA|WAIT|WHEN|WHERE|WHILE|WITH|WINDOW|WRITE)\\b" (Arbitrary "Keyword")+    , tok "(abs|acos|asin|atan|boolc|boolx|bit_set|char_off|charlen|ceil|cmax|cmin|condense|contains|contains_any_of|contains_any_not_of|concat_lines_of|cos|cosh|count|count_any_of|count_any_not_of|dbmaxlen|distance|escape|exp|find|find_end|find_any_of|find_any_not_of|floor|frac|from_mixed|insert|lines|log|log10|match|matches|nmax|nmin|numofchar|repeat|replace|rescale|reverse|round|segment|shift_left|shift_right|sign|sin|sinh|sqrt|strlen|substring|substring_after|substring_from|substring_before|substring_to|tan|tanh|to_upper|to_lower|to_mixed|translate|trunc|xstrlen)(\\()\\b" (ByGroups [(Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Punctuation")])+    , tok "&[0-9]" (Arbitrary "Name")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "(?<=(\\s|.))(AND|EQ|NE|GT|LT|GE|LE|CO|CN|CA|NA|CS|NOT|NS|CP|NP|BYTE-CO|BYTE-CN|BYTE-CA|BYTE-NA|BYTE-CS|BYTE-NS|IS\\s+(NOT\\s+)?(INITIAL|ASSIGNED|REQUESTED|BOUND))\\b" (Arbitrary "Operator")     , anyOf variableNames'-    , tok "\91\63\42\60\62\61\92\45\43\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\39\40\39\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\91\47\59\58\40\41\92\91\92\93\44\92\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    , tok "[?*<>=\\-+]" (Arbitrary "Operator")+    , tok "'(''|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "[/;:()\\[\\],\\.]" (Arbitrary "Punctuation")     ]  common' :: TokenMatcher common' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\94\92\42\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\92\34\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "^\\*.*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "\\\".*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")     ] 
src/Text/Highlighter/Lexers/ActionScript.hs view
@@ -5,32 +5,32 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\99\116\105\111\110\83\99\114\105\112\116"-    , lAliases = ["\97\115", "\97\99\116\105\111\110\115\99\114\105\112\116"]-    , lExtensions = ["\46\97\115"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\97\99\116\105\111\110\115\99\114\105\112\116", "\116\101\120\116\47\120\45\97\99\116\105\111\110\115\99\114\105\112\116", "\116\101\120\116\47\97\99\116\105\111\110\115\99\114\105\112\116"]+    { lName = "ActionScript"+    , lAliases = ["as", "actionscript"]+    , lExtensions = [".as"]+    , lMimetypes = ["application/x-actionscript", "text/x-actionscript", "text/actionscript"]     , lStart = root'     , lFlags = [dotall]     }  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\46\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\47\40\92\92\92\92\124\92\92\47\124\91\94\47\92\110\93\41\42\47\91\103\105\109\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\91\126\92\94\92\42\33\37\38\60\62\92\124\43\61\58\59\44\47\63\92\92\45\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\123\125\92\91\92\93\40\41\59\46\93\43" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\99\97\115\101\124\100\101\102\97\117\108\116\124\102\111\114\124\101\97\99\104\124\105\110\124\119\104\105\108\101\124\100\111\124\98\114\101\97\107\124\114\101\116\117\114\110\124\99\111\110\116\105\110\117\101\124\105\102\124\101\108\115\101\124\116\104\114\111\119\124\116\114\121\124\99\97\116\99\104\124\118\97\114\124\119\105\116\104\124\110\101\119\124\116\121\112\101\111\102\124\97\114\103\117\109\101\110\116\115\124\105\110\115\116\97\110\99\101\111\102\124\116\104\105\115\124\115\119\105\116\99\104\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\108\97\115\115\124\112\117\98\108\105\99\124\102\105\110\97\108\124\105\110\116\101\114\110\97\108\124\110\97\116\105\118\101\124\111\118\101\114\114\105\100\101\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\115\116\97\116\105\99\124\105\109\112\111\114\116\124\101\120\116\101\110\100\115\124\105\109\112\108\101\109\101\110\116\115\124\105\110\116\101\114\102\97\99\101\124\105\110\116\114\105\110\115\105\99\124\114\101\116\117\114\110\124\115\117\112\101\114\124\100\121\110\97\109\105\99\124\102\117\110\99\116\105\111\110\124\99\111\110\115\116\124\103\101\116\124\110\97\109\101\115\112\97\99\101\124\112\97\99\107\97\103\101\124\115\101\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\124\78\97\78\124\73\110\102\105\110\105\116\121\124\45\73\110\102\105\110\105\116\121\124\117\110\100\101\102\105\110\101\100\124\86\111\105\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\65\99\99\101\115\115\105\98\105\108\105\116\121\124\65\99\99\101\115\115\105\98\105\108\105\116\121\80\114\111\112\101\114\116\105\101\115\124\65\99\116\105\111\110\83\99\114\105\112\116\86\101\114\115\105\111\110\124\65\99\116\105\118\105\116\121\69\118\101\110\116\124\65\110\116\105\65\108\105\97\115\84\121\112\101\124\65\112\112\108\105\99\97\116\105\111\110\68\111\109\97\105\110\124\65\115\66\114\111\97\100\99\97\115\116\101\114\124\65\114\114\97\121\124\65\115\121\110\99\69\114\114\111\114\69\118\101\110\116\124\65\86\77\49\77\111\118\105\101\124\66\101\118\101\108\70\105\108\116\101\114\124\66\105\116\109\97\112\124\66\105\116\109\97\112\68\97\116\97\124\66\105\116\109\97\112\68\97\116\97\67\104\97\110\110\101\108\124\66\105\116\109\97\112\70\105\108\116\101\114\124\66\105\116\109\97\112\70\105\108\116\101\114\81\117\97\108\105\116\121\124\66\105\116\109\97\112\70\105\108\116\101\114\84\121\112\101\124\66\108\101\110\100\77\111\100\101\124\66\108\117\114\70\105\108\116\101\114\124\66\111\111\108\101\97\110\124\66\121\116\101\65\114\114\97\121\124\67\97\109\101\114\97\124\67\97\112\97\98\105\108\105\116\105\101\115\124\67\97\112\115\83\116\121\108\101\124\67\108\97\115\115\124\67\111\108\111\114\124\67\111\108\111\114\77\97\116\114\105\120\70\105\108\116\101\114\124\67\111\108\111\114\84\114\97\110\115\102\111\114\109\124\67\111\110\116\101\120\116\77\101\110\117\124\67\111\110\116\101\120\116\77\101\110\117\66\117\105\108\116\73\110\73\116\101\109\115\124\67\111\110\116\101\120\116\77\101\110\117\69\118\101\110\116\124\67\111\110\116\101\120\116\77\101\110\117\73\116\101\109\124\67\111\110\118\117\108\116\105\111\110\70\105\108\116\101\114\124\67\83\77\83\101\116\116\105\110\103\115\124\68\97\116\97\69\118\101\110\116\124\68\97\116\101\124\68\101\102\105\110\105\116\105\111\110\69\114\114\111\114\124\68\101\108\101\116\101\79\98\106\101\99\116\83\97\109\112\108\101\124\68\105\99\116\105\111\110\97\114\121\124\68\105\115\112\108\97\99\109\101\110\116\77\97\112\70\105\108\116\101\114\124\68\105\115\112\108\97\121\79\98\106\101\99\116\124\68\105\115\112\108\97\99\109\101\110\116\77\97\112\70\105\108\116\101\114\77\111\100\101\124\68\105\115\112\108\97\121\79\98\106\101\99\116\67\111\110\116\97\105\110\101\114\124\68\114\111\112\83\104\97\100\111\119\70\105\108\116\101\114\124\69\110\100\105\97\110\124\69\79\70\69\114\114\111\114\124\69\114\114\111\114\124\69\114\114\111\114\69\118\101\110\116\124\69\118\97\108\69\114\114\111\114\124\69\118\101\110\116\124\69\118\101\110\116\68\105\115\112\97\116\99\104\101\114\124\69\118\101\110\116\80\104\97\115\101\124\69\120\116\101\114\110\97\108\73\110\116\101\114\102\97\99\101\124\70\105\108\101\70\105\108\116\101\114\124\70\105\108\101\82\101\102\101\114\101\110\99\101\124\70\105\108\101\82\101\102\101\114\101\110\99\101\76\105\115\116\124\70\111\99\117\115\68\105\114\101\99\116\105\111\110\124\70\111\99\117\115\69\118\101\110\116\124\70\111\110\116\124\70\111\110\116\83\116\121\108\101\124\70\111\110\116\84\121\112\101\124\70\114\97\109\101\76\97\98\101\108\124\70\117\108\108\83\99\114\101\101\110\69\118\101\110\116\124\70\117\110\99\116\105\111\110\124\71\108\111\119\70\105\108\116\101\114\124\71\114\97\100\105\101\110\116\66\101\118\101\108\70\105\108\116\101\114\124\71\114\97\100\105\101\110\116\71\108\111\119\70\105\108\116\101\114\124\71\114\97\100\105\101\110\116\84\121\112\101\124\71\114\97\112\104\105\99\115\124\71\114\105\100\70\105\116\84\121\112\101\124\72\84\84\80\83\116\97\116\117\115\69\118\101\110\116\124\73\66\105\116\109\97\112\68\114\97\119\97\98\108\101\124\73\68\51\73\110\102\111\124\73\68\97\116\97\73\110\112\117\116\124\73\68\97\116\97\79\117\116\112\117\116\124\73\68\121\110\97\109\105\99\80\114\111\112\101\114\116\121\79\117\116\112\117\116\73\68\121\110\97\109\105\99\80\114\111\112\101\114\116\121\87\114\105\116\101\114\124\73\69\118\101\110\116\68\105\115\112\97\116\99\104\101\114\124\73\69\120\116\101\114\110\97\108\105\122\97\98\108\101\124\73\108\108\101\103\97\108\79\112\101\114\97\116\105\111\110\69\114\114\111\114\124\73\77\69\124\73\77\69\67\111\110\118\101\114\115\105\111\110\77\111\100\101\124\73\77\69\69\118\101\110\116\124\105\110\116\124\73\110\116\101\114\97\99\116\105\118\101\79\98\106\101\99\116\124\73\110\116\101\114\112\111\108\97\116\105\111\110\77\101\116\104\111\100\124\73\110\118\97\108\105\100\83\87\70\69\114\114\111\114\124\73\110\118\111\107\101\69\118\101\110\116\124\73\79\69\114\114\111\114\124\73\79\69\114\114\111\114\69\118\101\110\116\124\74\111\105\110\116\83\116\121\108\101\124\75\101\121\124\75\101\121\98\111\97\114\100\124\75\101\121\98\111\97\114\100\69\118\101\110\116\124\75\101\121\76\111\99\97\116\105\111\110\124\76\105\110\101\83\99\97\108\101\77\111\100\101\124\76\111\97\100\101\114\124\76\111\97\100\101\114\67\111\110\116\101\120\116\124\76\111\97\100\101\114\73\110\102\111\124\76\111\97\100\86\97\114\115\124\76\111\99\97\108\67\111\110\110\101\99\116\105\111\110\124\76\111\99\97\108\101\124\77\97\116\104\124\77\97\116\114\105\120\124\77\101\109\111\114\121\69\114\114\111\114\124\77\105\99\114\111\112\104\111\110\101\124\77\111\114\112\104\83\104\97\112\101\124\77\111\117\115\101\124\77\111\117\115\101\69\118\101\110\116\124\77\111\118\105\101\67\108\105\112\124\77\111\118\105\101\67\108\105\112\76\111\97\100\101\114\124\78\97\109\101\115\112\97\99\101\124\78\101\116\67\111\110\110\101\99\116\105\111\110\124\78\101\116\83\116\97\116\117\115\69\118\101\110\116\124\78\101\116\83\116\114\101\97\109\124\78\101\119\79\98\106\101\99\116\83\97\109\112\108\101\124\78\117\109\98\101\114\124\79\98\106\101\99\116\124\79\98\106\101\99\116\69\110\99\111\100\105\110\103\124\80\105\120\101\108\83\110\97\112\112\105\110\103\124\80\111\105\110\116\124\80\114\105\110\116\74\111\98\124\80\114\105\110\116\74\111\98\79\112\116\105\111\110\115\124\80\114\105\110\116\74\111\98\79\114\105\101\110\116\97\116\105\111\110\124\80\114\111\103\114\101\115\115\69\118\101\110\116\124\80\114\111\120\121\124\81\78\97\109\101\124\82\97\110\103\101\69\114\114\111\114\124\82\101\99\116\97\110\103\108\101\124\82\101\102\101\114\101\110\99\101\69\114\114\111\114\124\82\101\103\69\120\112\124\82\101\115\112\111\110\100\101\114\124\83\97\109\112\108\101\124\83\99\101\110\101\124\83\99\114\105\112\116\84\105\109\101\111\117\116\69\114\114\111\114\124\83\101\99\117\114\105\116\121\124\83\101\99\117\114\105\116\121\68\111\109\97\105\110\124\83\101\99\117\114\105\116\121\69\114\114\111\114\124\83\101\99\117\114\105\116\121\69\114\114\111\114\69\118\101\110\116\124\83\101\99\117\114\105\116\121\80\97\110\101\108\124\83\101\108\101\99\116\105\111\110\124\83\104\97\112\101\124\83\104\97\114\101\100\79\98\106\101\99\116\124\83\104\97\114\101\100\79\98\106\101\99\116\70\108\117\115\104\83\116\97\116\117\115\124\83\105\109\112\108\101\66\117\116\116\111\110\124\83\111\99\107\101\116\124\83\111\117\110\100\124\83\111\117\110\100\67\104\97\110\110\101\108\124\83\111\117\110\100\76\111\97\100\101\114\67\111\110\116\101\120\116\124\83\111\117\110\100\77\105\120\101\114\124\83\111\117\110\100\84\114\97\110\115\102\111\114\109\124\83\112\114\101\97\100\77\101\116\104\111\100\124\83\112\114\105\116\101\124\83\116\97\99\107\70\114\97\109\101\124\83\116\97\99\107\79\118\101\114\102\108\111\119\69\114\114\111\114\124\83\116\97\103\101\124\83\116\97\103\101\65\108\105\103\110\124\83\116\97\103\101\68\105\115\112\108\97\121\83\116\97\116\101\124\83\116\97\103\101\81\117\97\108\105\116\121\124\83\116\97\103\101\83\99\97\108\101\77\111\100\101\124\83\116\97\116\105\99\84\101\120\116\124\83\116\97\116\117\115\69\118\101\110\116\124\83\116\114\105\110\103\124\83\116\121\108\101\83\104\101\101\116\124\83\87\70\86\101\114\115\105\111\110\124\83\121\110\99\69\118\101\110\116\124\83\121\110\116\97\120\69\114\114\111\114\124\83\121\115\116\101\109\124\84\101\120\116\67\111\108\111\114\84\121\112\101\124\84\101\120\116\70\105\101\108\100\124\84\101\120\116\70\105\101\108\100\65\117\116\111\83\105\122\101\124\84\101\120\116\70\105\101\108\100\84\121\112\101\124\84\101\120\116\70\111\114\109\97\116\124\84\101\120\116\70\111\114\109\97\116\65\108\105\103\110\124\84\101\120\116\76\105\110\101\77\101\116\114\105\99\115\124\84\101\120\116\82\101\110\100\101\114\101\114\124\84\101\120\116\83\110\97\112\115\104\111\116\124\84\105\109\101\114\124\84\105\109\101\114\69\118\101\110\116\124\84\114\97\110\115\102\111\114\109\124\84\121\112\101\69\114\114\111\114\124\117\105\110\116\124\85\82\73\69\114\114\111\114\124\85\82\76\76\111\97\100\101\114\124\85\82\76\76\111\97\100\101\114\68\97\116\97\70\111\114\109\97\116\124\85\82\76\82\101\113\117\101\115\116\124\85\82\76\82\101\113\117\101\115\116\72\101\97\100\101\114\124\85\82\76\82\101\113\117\101\115\116\77\101\116\104\111\100\124\85\82\76\83\116\114\101\97\109\124\85\82\76\86\97\114\105\97\98\101\108\101\115\124\86\101\114\105\102\121\69\114\114\111\114\124\86\105\100\101\111\124\88\77\76\124\88\77\76\68\111\99\117\109\101\110\116\124\88\77\76\76\105\115\116\124\88\77\76\78\111\100\101\124\88\77\76\78\111\100\101\84\121\112\101\124\88\77\76\83\111\99\107\101\116\124\88\77\76\85\73\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\100\101\99\111\100\101\85\82\73\124\100\101\99\111\100\101\85\82\73\67\111\109\112\111\110\101\110\116\124\101\110\99\111\100\101\85\82\73\124\101\115\99\97\112\101\124\101\118\97\108\124\105\115\70\105\110\105\116\101\124\105\115\78\97\78\124\105\115\88\77\76\78\97\109\101\124\99\108\101\97\114\73\110\116\101\114\118\97\108\124\102\115\99\111\109\109\97\110\100\124\103\101\116\84\105\109\101\114\124\103\101\116\85\82\76\124\103\101\116\86\101\114\115\105\111\110\124\105\115\70\105\110\105\116\101\124\112\97\114\115\101\70\108\111\97\116\124\112\97\114\115\101\73\110\116\124\115\101\116\73\110\116\101\114\118\97\108\124\116\114\97\99\101\124\117\112\100\97\116\101\65\102\116\101\114\69\118\101\110\116\124\117\110\101\115\99\97\112\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\79\116\104\101\114")-    , tok "\91\48\45\57\93\91\48\45\57\93\42\92\46\91\48\45\57\93\43\40\91\101\69\93\91\48\45\57\93\43\41\63\91\102\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "/(\\\\\\\\|\\\\/|[^/\\n])*/[gim]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "[\126\\^\\*!%&<>\\|+=:;,/?\\\\-]+" (Arbitrary "Operator")+    , tok "[{}\\[\\]();.]+" (Arbitrary "Punctuation")+    , tok "(case|default|for|each|in|while|do|break|return|continue|if|else|throw|try|catch|var|with|new|typeof|arguments|instanceof|this|switch)\\b" (Arbitrary "Keyword")+    , tok "(class|public|final|internal|native|override|private|protected|static|import|extends|implements|interface|intrinsic|return|super|dynamic|function|const|get|namespace|package|set)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "(true|false|null|NaN|Infinity|-Infinity|undefined|Void)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(Accessibility|AccessibilityProperties|ActionScriptVersion|ActivityEvent|AntiAliasType|ApplicationDomain|AsBroadcaster|Array|AsyncErrorEvent|AVM1Movie|BevelFilter|Bitmap|BitmapData|BitmapDataChannel|BitmapFilter|BitmapFilterQuality|BitmapFilterType|BlendMode|BlurFilter|Boolean|ByteArray|Camera|Capabilities|CapsStyle|Class|Color|ColorMatrixFilter|ColorTransform|ContextMenu|ContextMenuBuiltInItems|ContextMenuEvent|ContextMenuItem|ConvultionFilter|CSMSettings|DataEvent|Date|DefinitionError|DeleteObjectSample|Dictionary|DisplacmentMapFilter|DisplayObject|DisplacmentMapFilterMode|DisplayObjectContainer|DropShadowFilter|Endian|EOFError|Error|ErrorEvent|EvalError|Event|EventDispatcher|EventPhase|ExternalInterface|FileFilter|FileReference|FileReferenceList|FocusDirection|FocusEvent|Font|FontStyle|FontType|FrameLabel|FullScreenEvent|Function|GlowFilter|GradientBevelFilter|GradientGlowFilter|GradientType|Graphics|GridFitType|HTTPStatusEvent|IBitmapDrawable|ID3Info|IDataInput|IDataOutput|IDynamicPropertyOutputIDynamicPropertyWriter|IEventDispatcher|IExternalizable|IllegalOperationError|IME|IMEConversionMode|IMEEvent|int|InteractiveObject|InterpolationMethod|InvalidSWFError|InvokeEvent|IOError|IOErrorEvent|JointStyle|Key|Keyboard|KeyboardEvent|KeyLocation|LineScaleMode|Loader|LoaderContext|LoaderInfo|LoadVars|LocalConnection|Locale|Math|Matrix|MemoryError|Microphone|MorphShape|Mouse|MouseEvent|MovieClip|MovieClipLoader|Namespace|NetConnection|NetStatusEvent|NetStream|NewObjectSample|Number|Object|ObjectEncoding|PixelSnapping|Point|PrintJob|PrintJobOptions|PrintJobOrientation|ProgressEvent|Proxy|QName|RangeError|Rectangle|ReferenceError|RegExp|Responder|Sample|Scene|ScriptTimeoutError|Security|SecurityDomain|SecurityError|SecurityErrorEvent|SecurityPanel|Selection|Shape|SharedObject|SharedObjectFlushStatus|SimpleButton|Socket|Sound|SoundChannel|SoundLoaderContext|SoundMixer|SoundTransform|SpreadMethod|Sprite|StackFrame|StackOverflowError|Stage|StageAlign|StageDisplayState|StageQuality|StageScaleMode|StaticText|StatusEvent|String|StyleSheet|SWFVersion|SyncEvent|SyntaxError|System|TextColorType|TextField|TextFieldAutoSize|TextFieldType|TextFormat|TextFormatAlign|TextLineMetrics|TextRenderer|TextSnapshot|Timer|TimerEvent|Transform|TypeError|uint|URIError|URLLoader|URLLoaderDataFormat|URLRequest|URLRequestHeader|URLRequestMethod|URLStream|URLVariabeles|VerifyError|Video|XML|XMLDocument|XMLList|XMLNode|XMLNodeType|XMLSocket|XMLUI)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(decodeURI|decodeURIComponent|encodeURI|escape|eval|isFinite|isNaN|isXMLName|clearInterval|fscommand|getTimer|getURL|getVersion|isFinite|parseFloat|parseInt|setInterval|trace|updateAfterEvent|unescape)\\b" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "[$a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Other")+    , tok "[0-9][0-9]*\\.[0-9]+([eE][0-9]+)?[fd]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-f]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")     ] 
src/Text/Highlighter/Lexers/ActionScript3.hs view
@@ -5,54 +5,54 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\99\116\105\111\110\83\99\114\105\112\116\32\51"-    , lAliases = ["\97\115\51", "\97\99\116\105\111\110\115\99\114\105\112\116\51"]-    , lExtensions = ["\46\97\115"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\97\99\116\105\111\110\115\99\114\105\112\116", "\116\101\120\116\47\120\45\97\99\116\105\111\110\115\99\114\105\112\116", "\116\101\120\116\47\97\99\116\105\111\110\115\99\114\105\112\116"]+    { lName = "ActionScript 3"+    , lAliases = ["as3", "actionscript3"]+    , lExtensions = [".as"]+    , lMimetypes = ["application/x-actionscript", "text/x-actionscript", "text/actionscript"]     , lStart = root'     , lFlags = [multiline, dotall]     }  defval' :: TokenMatcher defval' =-    [ tokNext "\40\61\41\40\92\115\42\41\40\91\94\40\41\44\93\43\41\40\92\115\42\41\40\44\63\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Using lexer), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")]) Pop-    , tokNext "\44\63" (Arbitrary "\79\112\101\114\97\116\111\114") Pop+    [ tokNext "(=)(\\s*)([^(),]+)(\\s*)(,?)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Text"), (Using lexer), (Arbitrary "Text"), (Arbitrary "Operator")]) Pop+    , tokNext ",?" (Arbitrary "Operator") Pop     ]  type' :: TokenMatcher type' =-    [ tokNext "\40\92\115\42\41\40\58\41\40\92\115\42\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\92\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")]) (PopNum 2)-    , tokNext "\92\115\42" (Arbitrary "\84\101\120\116") (PopNum 2)+    [ tokNext "(\\s*)(:)(\\s*)([$a-zA-Z_][a-zA-Z0-9_]*|\\*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type")]) (PopNum 2)+    , tokNext "\\s*" (Arbitrary "Text") (PopNum 2)     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\40\102\117\110\99\116\105\111\110\92\115\43\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")]) (GoTo funcparams')-    , tok "\40\118\97\114\124\99\111\110\115\116\41\40\92\115\43\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\58\41\40\92\115\42\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")])-    , tok "\40\105\109\112\111\114\116\124\112\97\99\107\97\103\101\41\40\92\115\43\41\40\40\63\58\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\92\46\41\43\41\40\92\115\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")])-    , tok "\40\110\101\119\41\40\92\115\43\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\46\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\47\40\92\92\92\92\124\92\92\47\124\91\94\92\110\93\41\42\47\91\103\105\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\40\92\46\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")])-    , tok "\40\99\97\115\101\124\100\101\102\97\117\108\116\124\102\111\114\124\101\97\99\104\124\105\110\124\119\104\105\108\101\124\100\111\124\98\114\101\97\107\124\114\101\116\117\114\110\124\99\111\110\116\105\110\117\101\124\105\102\124\101\108\115\101\124\116\104\114\111\119\124\116\114\121\124\99\97\116\99\104\124\119\105\116\104\124\110\101\119\124\116\121\112\101\111\102\124\97\114\103\117\109\101\110\116\115\124\105\110\115\116\97\110\99\101\111\102\124\116\104\105\115\124\115\119\105\116\99\104\124\105\109\112\111\114\116\124\105\110\99\108\117\100\101\124\97\115\124\105\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\108\97\115\115\124\112\117\98\108\105\99\124\102\105\110\97\108\124\105\110\116\101\114\110\97\108\124\110\97\116\105\118\101\124\111\118\101\114\114\105\100\101\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\115\116\97\116\105\99\124\105\109\112\111\114\116\124\101\120\116\101\110\100\115\124\105\109\112\108\101\109\101\110\116\115\124\105\110\116\101\114\102\97\99\101\124\105\110\116\114\105\110\115\105\99\124\114\101\116\117\114\110\124\115\117\112\101\114\124\100\121\110\97\109\105\99\124\102\117\110\99\116\105\111\110\124\99\111\110\115\116\124\103\101\116\124\110\97\109\101\115\112\97\99\101\124\112\97\99\107\97\103\101\124\115\101\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\124\78\97\78\124\73\110\102\105\110\105\116\121\124\45\73\110\102\105\110\105\116\121\124\117\110\100\101\102\105\110\101\100\124\118\111\105\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\100\101\99\111\100\101\85\82\73\124\100\101\99\111\100\101\85\82\73\67\111\109\112\111\110\101\110\116\124\101\110\99\111\100\101\85\82\73\124\101\115\99\97\112\101\124\101\118\97\108\124\105\115\70\105\110\105\116\101\124\105\115\78\97\78\124\105\115\88\77\76\78\97\109\101\124\99\108\101\97\114\73\110\116\101\114\118\97\108\124\102\115\99\111\109\109\97\110\100\124\103\101\116\84\105\109\101\114\124\103\101\116\85\82\76\124\103\101\116\86\101\114\115\105\111\110\124\105\115\70\105\110\105\116\101\124\112\97\114\115\101\70\108\111\97\116\124\112\97\114\115\101\73\110\116\124\115\101\116\73\110\116\101\114\118\97\108\124\116\114\97\99\101\124\117\112\100\97\116\101\65\102\116\101\114\69\118\101\110\116\124\117\110\101\115\99\97\112\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")-    , tok "\91\48\45\57\93\91\48\45\57\93\42\92\46\91\48\45\57\93\43\40\91\101\69\93\91\48\45\57\93\43\41\63\91\102\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\91\126\92\94\92\42\33\37\38\60\62\92\124\43\61\58\59\44\47\63\92\92\123\125\92\91\92\93\40\41\59\46\45\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "(function\\s+)([$a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(\\()" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Operator")]) (GoTo funcparams')+    , tok "(var|const)(\\s+)([$a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(:)(\\s*)([$a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type")])+    , tok "(import|package)(\\s+)((?:[$a-zA-Z_][a-zA-Z0-9_]*|\\.)+)(\\s*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Text")])+    , tok "(new)(\\s+)([$a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(\\()" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "/(\\\\\\\\|\\\\/|[^\\n])*/[gisx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "(\\.)([$a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Name" :. Arbitrary "Attribute")])+    , tok "(case|default|for|each|in|while|do|break|return|continue|if|else|throw|try|catch|with|new|typeof|arguments|instanceof|this|switch|import|include|as|is)\\b" (Arbitrary "Keyword")+    , tok "(class|public|final|internal|native|override|private|protected|static|import|extends|implements|interface|intrinsic|return|super|dynamic|function|const|get|namespace|package|set)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "(true|false|null|NaN|Infinity|-Infinity|undefined|void)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(decodeURI|decodeURIComponent|encodeURI|escape|eval|isFinite|isNaN|isXMLName|clearInterval|fscommand|getTimer|getURL|getVersion|isFinite|parseFloat|parseInt|setInterval|trace|updateAfterEvent|unescape)\\b" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "[$a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "[0-9][0-9]*\\.[0-9]+([eE][0-9]+)?[fd]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-f]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "[\126\\^\\*!%&<>\\|+=:;,/?\\\\{}\\[\\]();.-]+" (Arbitrary "Operator")     ]  funcparams' :: TokenMatcher funcparams' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\40\92\115\42\41\40\92\46\92\46\92\46\41\63\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\58\41\40\92\115\42\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\92\42\41\40\92\115\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Arbitrary "\84\101\120\116")]) (GoTo defval')-    , tokNext "\92\41" (Arbitrary "\79\112\101\114\97\116\111\114") (GoTo type')+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "(\\s*)(\\.\\.\\.)?([$a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(:)(\\s*)([$a-zA-Z_][a-zA-Z0-9_]*|\\*)(\\s*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name"), (Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Text")]) (GoTo defval')+    , tokNext "\\)" (Arbitrary "Operator") (GoTo type')     ] 
src/Text/Highlighter/Lexers/Ada.hs view
@@ -5,121 +5,121 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\100\97"-    , lAliases = ["\97\100\97", "\97\100\97\57\53\97\100\97\50\48\48\53"]-    , lExtensions = ["\46\97\100\98", "\46\97\100\115", "\46\97\100\97"]-    , lMimetypes = ["\116\101\120\116\47\120\45\97\100\97"]+    { lName = "Ada"+    , lAliases = ["ada", "ada95ada2005"]+    , lExtensions = [".adb", ".ads", ".ada"]+    , lMimetypes = ["text/x-ada"]     , lStart = root'     , lFlags = [caseless, multiline]     }  package_instantiation' :: TokenMatcher package_instantiation' =-    [ tok "\40\34\91\94\34\93\43\34\124\91\97\45\122\48\45\57\95\93\43\41\40\92\115\43\41\40\61\62\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\91\97\45\122\48\45\57\46\95\92\39\34\93" (Arbitrary "\84\101\120\116")-    , tokNext "\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tok "(\"[^\"]+\"|[a-z0-9_]+)(\\s+)(=>)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tok "[a-z0-9._\\'\"]" (Arbitrary "Text")+    , tokNext "\\)" (Arbitrary "Punctuation") Pop     , anyOf root'     ]  formal_part' :: TokenMatcher formal_part' =-    [ tokNext "\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\40\91\97\45\122\48\45\57\95\93\43\41\40\92\115\42\41\40\44\124\58\91\94\61\93\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\105\110\124\110\111\116\124\110\117\108\108\124\111\117\116\124\97\99\99\101\115\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")+    [ tokNext "\\)" (Arbitrary "Punctuation") Pop+    , tok "([a-z0-9_]+)(\\s*)(,|:[^=])" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tok "(in|not|null|out|access)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")     , anyOf root'     ]  attribute' :: TokenMatcher attribute' =-    [ tok "\40\39\41\40\91\97\45\122\65\45\90\48\45\57\95\93\43\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")])+    [ tok "(')([a-zA-Z0-9_]+)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Attribute")])     ]  subprogram' :: TokenMatcher subprogram' =-    [ tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (DoAll [Pop, (GoTo formal_part')])-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tokNext "\105\115\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100") Pop-    , tok "\34\91\94\34\93\43\34\124\91\97\45\122\48\45\57\95\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")+    [ tokNext "\\(" (Arbitrary "Punctuation") (DoAll [Pop, (GoTo formal_part')])+    , tokNext ";" (Arbitrary "Punctuation") Pop+    , tokNext "is\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved") Pop+    , tok "\"[^\"]+\"|[a-z0-9_]+" (Arbitrary "Name" :. Arbitrary "Function")     , anyOf root'     ]  numbers' :: TokenMatcher numbers' =-    [ tok "\91\48\45\57\95\93\43\35\91\48\45\57\97\45\102\93\43\35" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\95\93\43\92\46\91\48\45\57\95\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\95\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "[0-9_]+#[0-9a-f]+#" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9_]+\\.[0-9_]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9_]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ]  type_def' :: TokenMatcher type_def' =-    [ tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo formal_part')-    , tok "\119\105\116\104\124\97\110\100\124\117\115\101" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tokNext "\97\114\114\97\121\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100") (DoAll [Pop, (GoTo array_def')])-    , tokNext "\114\101\99\111\114\100\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100") (GoTo formal_part')+    [ tokNext ";" (Arbitrary "Punctuation") Pop+    , tokNext "\\(" (Arbitrary "Punctuation") (GoTo formal_part')+    , tok "with|and|use" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tokNext "array\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved") (DoAll [Pop, (GoTo array_def')])+    , tokNext "record\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved") (GoTo formal_part')     , anyOf root'     ]  end' :: TokenMatcher end' =-    [ tok "\40\105\102\124\99\97\115\101\124\114\101\99\111\114\100\124\108\111\111\112\124\115\101\108\101\99\116\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\34\91\94\34\93\43\34\124\91\97\45\122\65\45\90\48\45\57\95\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\91\10\92\115\93\43" (Arbitrary "\84\101\120\116")-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tok "(if|case|record|loop|select)" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "\"[^\"]+\"|[a-zA-Z0-9_]+" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "[\10\\s]+" (Arbitrary "Text")+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  array_def' :: TokenMatcher array_def' =-    [ tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\40\91\97\45\122\48\45\57\95\93\43\41\40\92\115\43\41\40\114\97\110\103\101\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")])+    [ tokNext ";" (Arbitrary "Punctuation") Pop+    , tok "([a-z0-9_]+)(\\s+)(range)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Reserved")])     , anyOf root'     ]  package' :: TokenMatcher package' =-    [ tok "\98\111\100\121" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\105\115\92\115\43\110\101\119\124\114\101\110\97\109\101\115" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tokNext "\105\115" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100") Pop-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo package_instantiation')-    , tok "\40\91\97\45\122\65\45\90\48\45\57\95\46\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")+    [ tok "body" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "is\\s+new|renames" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tokNext "is" (Arbitrary "Keyword" :. Arbitrary "Reserved") Pop+    , tokNext ";" (Arbitrary "Punctuation") Pop+    , tokNext "\\(" (Arbitrary "Punctuation") (GoTo package_instantiation')+    , tok "([a-zA-Z0-9_.]+)" (Arbitrary "Name" :. Arbitrary "Class")     , anyOf root'     ]  import' :: TokenMatcher import' =-    [ tokNext "\91\97\45\122\48\45\57\95\46\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+    [ tokNext "[a-z0-9_.]+" (Arbitrary "Name" :. Arbitrary "Namespace") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tok "\45\45\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tokNext "\102\117\110\99\116\105\111\110\124\112\114\111\99\101\100\117\114\101\124\101\110\116\114\121" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (GoTo subprogram')-    , tokNext "\40\115\117\98\116\121\112\101\124\116\121\112\101\41\40\92\115\43\41\40\91\97\45\122\48\45\57\95\93\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")]) (GoTo type_def')-    , tok "\116\97\115\107\124\112\114\111\116\101\99\116\101\100" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\40\115\117\98\116\121\112\101\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116")])-    , tokNext "\40\101\110\100\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100"), (Arbitrary "\84\101\120\116")]) (GoTo end')-    , tok "\40\112\114\97\103\109\97\41\40\92\115\43\41\40\91\97\45\122\65\45\90\48\45\57\95\93\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\66\121\116\101\124\67\104\97\114\97\99\116\101\114\124\70\108\111\97\116\124\73\110\116\101\103\101\114\124\76\111\110\103\95\70\108\111\97\116\124\76\111\110\103\95\73\110\116\101\103\101\114\124\76\111\110\103\95\76\111\110\103\95\70\108\111\97\116\124\76\111\110\103\95\76\111\110\103\95\73\110\116\101\103\101\114\124\78\97\116\117\114\97\108\124\80\111\115\105\116\105\118\101\124\83\104\111\114\116\95\70\108\111\97\116\124\83\104\111\114\116\95\73\110\116\101\103\101\114\124\83\104\111\114\116\95\83\104\111\114\116\95\70\108\111\97\116\124\83\104\111\114\116\95\83\104\111\114\116\95\73\110\116\101\103\101\114\124\83\116\114\105\110\103\124\87\105\100\101\95\83\116\114\105\110\103\124\68\117\114\97\116\105\111\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\97\110\100\40\92\115\43\116\104\101\110\41\63\124\105\110\124\109\111\100\124\110\111\116\124\111\114\40\92\115\43\101\108\115\101\41\124\114\101\109\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\103\101\110\101\114\105\99\124\112\114\105\118\97\116\101" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tokNext "\112\97\99\107\97\103\101" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (GoTo package')-    , tokNext "\97\114\114\97\121\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100") (GoTo array_def')-    , tokNext "\40\119\105\116\104\124\117\115\101\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo import')-    , tok "\40\91\97\45\122\48\45\57\95\93\43\41\40\92\115\42\41\40\58\41\40\92\115\42\41\40\99\111\110\115\116\97\110\116\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")])-    , tok "\60\60\91\97\45\122\48\45\57\95\93\43\62\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\40\91\97\45\122\48\45\57\95\93\43\41\40\92\115\42\41\40\58\41\40\92\115\42\41\40\100\101\99\108\97\114\101\124\98\101\103\105\110\124\108\111\111\112\124\102\111\114\124\119\104\105\108\101\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")])-    , tok "\92\98\40\97\98\111\114\116\124\97\98\115\124\97\98\115\116\114\97\99\116\124\97\99\99\101\112\116\124\97\99\99\101\115\115\124\97\108\105\97\115\101\100\124\97\108\108\124\97\114\114\97\121\124\97\116\124\98\101\103\105\110\124\98\111\100\121\124\99\97\115\101\124\99\111\110\115\116\97\110\116\124\100\101\99\108\97\114\101\124\100\101\108\97\121\124\100\101\108\116\97\124\100\105\103\105\116\115\124\100\111\124\101\108\115\101\124\101\108\115\105\102\124\101\110\100\124\101\110\116\114\121\124\101\120\99\101\112\116\105\111\110\124\101\120\105\116\124\105\110\116\101\114\102\97\99\101\124\102\111\114\124\103\111\116\111\124\105\102\124\105\115\124\108\105\109\105\116\101\100\124\108\111\111\112\124\110\101\119\124\110\117\108\108\124\111\102\124\111\114\124\111\116\104\101\114\115\124\111\117\116\124\111\118\101\114\114\105\100\105\110\103\124\112\114\97\103\109\97\124\112\114\111\116\101\99\116\101\100\124\114\97\105\115\101\124\114\97\110\103\101\124\114\101\99\111\114\100\124\114\101\110\97\109\101\115\124\114\101\113\117\101\117\101\124\114\101\116\117\114\110\124\114\101\118\101\114\115\101\124\115\101\108\101\99\116\124\115\101\112\97\114\97\116\101\124\115\117\98\116\121\112\101\124\115\121\110\99\104\114\111\110\105\122\101\100\124\116\97\115\107\124\116\97\103\103\101\100\124\116\101\114\109\105\110\97\116\101\124\116\104\101\110\124\116\121\112\101\124\117\110\116\105\108\124\119\104\101\110\124\119\104\105\108\101\124\120\111\114\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\34\91\94\34\93\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "--.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tokNext "function|procedure|entry" (Arbitrary "Keyword" :. Arbitrary "Declaration") (GoTo subprogram')+    , tokNext "(subtype|type)(\\s+)([a-z0-9_]+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type")]) (GoTo type_def')+    , tok "task|protected" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "(subtype)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text")])+    , tokNext "(end)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Reserved"), (Arbitrary "Text")]) (GoTo end')+    , tok "(pragma)(\\s+)([a-zA-Z0-9_]+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Reserved"), (Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tok "(true|false|null)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(Byte|Character|Float|Integer|Long_Float|Long_Integer|Long_Long_Float|Long_Long_Integer|Natural|Positive|Short_Float|Short_Integer|Short_Short_Float|Short_Short_Integer|String|Wide_String|Duration)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(and(\\s+then)?|in|mod|not|or(\\s+else)|rem)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "generic|private" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tokNext "package" (Arbitrary "Keyword" :. Arbitrary "Declaration") (GoTo package')+    , tokNext "array\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved") (GoTo array_def')+    , tokNext "(with|use)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo import')+    , tok "([a-z0-9_]+)(\\s*)(:)(\\s*)(constant)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Constant"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Reserved")])+    , tok "<<[a-z0-9_]+>>" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "([a-z0-9_]+)(\\s*)(:)(\\s*)(declare|begin|loop|for|while)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Reserved")])+    , tok "\\b(abort|abs|abstract|accept|access|aliased|all|array|at|begin|body|case|constant|declare|delay|delta|digits|do|else|elsif|end|entry|exception|exit|interface|for|goto|if|is|limited|loop|new|null|of|or|others|out|overriding|pragma|protected|raise|range|record|renames|requeue|return|reverse|select|separate|subtype|synchronized|task|tagged|terminate|then|type|until|when|while|xor)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "\"[^\"]*\"" (Arbitrary "Literal" :. Arbitrary "String")     , anyOf attribute'     , anyOf numbers'-    , tok "\39\91\94\39\93\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114\97\99\116\101\114")-    , tok "\40\91\97\45\122\48\45\57\95\93\43\41\40\92\115\42\124\91\40\44\93\41" (ByGroups [(Arbitrary "\78\97\109\101"), (Using lexer)])-    , tok "\40\60\62\124\61\62\124\58\61\124\91\92\40\92\41\92\124\58\59\44\46\39\93\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\42\60\62\43\61\47\38\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\110\43" (Arbitrary "\84\101\120\116")+    , tok "'[^']'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Character")+    , tok "([a-z0-9_]+)(\\s*|[(,])" (ByGroups [(Arbitrary "Name"), (Using lexer)])+    , tok "(<>|=>|:=|[\\(\\)\\|:;,.'])" (Arbitrary "Punctuation")+    , tok "[*<>+=/&-]" (Arbitrary "Operator")+    , tok "\\n+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Antlr.hs view
@@ -5,8 +5,8 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\78\84\76\82"-    , lAliases = ["\97\110\116\108\114"]+    { lName = "ANTLR"+    , lAliases = ["antlr"]     , lExtensions = []     , lMimetypes = []     , lStart = root'@@ -17,102 +17,102 @@ tokens' =     [ anyOf whitespace'     , anyOf comments'-    , tok "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\91\65\45\90\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\92\115\42\41\40\61\41\63\40\92\115\42\41\40\92\39\40\63\58\92\92\92\92\124\92\92\92\39\124\91\94\92\39\93\42\41\92\39\41\63\40\92\115\42\41\40\59\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "{" (Arbitrary "Punctuation")+    , tok "([A-Z][A-Za-z_0-9]*)(\\s*)(=)?(\\s*)(\\'(?:\\\\\\\\|\\\\\\'|[^\\']*)\\')?(\\s*)(;)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")])+    , tokNext "}" (Arbitrary "Punctuation") Pop     ]  exception' :: TokenMatcher exception' =-    [ tokNext "\92\110" (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101") Pop-    , tok "\92\115" (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101")+    [ tokNext "\\n" (Arbitrary "Text" :. Arbitrary "Whitespace") Pop+    , tok "\\s" (Arbitrary "Text" :. Arbitrary "Whitespace")     , anyOf comments'-    , tokNext "\92\91" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo nestedArgAction')-    , tokNext "\92\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo action')+    , tokNext "\\[" (Arbitrary "Punctuation") (GoTo nestedArgAction')+    , tokNext "\\{" (Arbitrary "Punctuation") (GoTo action')     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101")+    [ tok "\\s+" (Arbitrary "Text" :. Arbitrary "Whitespace")     ]  action' :: TokenMatcher action' =-    [ tok "\40\91\94\92\36\123\125\92\39\34\47\92\92\93\43\124\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34\124\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39\124\47\47\46\42\36\92\110\63\124\47\92\42\40\46\124\92\110\41\42\63\92\42\47\124\47\40\63\33\92\42\41\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\124\92\92\40\63\33\37\41\124\47\41\43" (Arbitrary "\79\116\104\101\114")-    , tok "\40\92\92\41\40\37\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\79\116\104\101\114")])-    , tok "\40\92\36\91\97\45\122\65\45\90\93\43\41\40\92\46\63\41\40\116\101\120\116\124\118\97\108\117\101\41\63" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\80\114\111\112\101\114\116\121")])-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tok "([^\\${}\\'\"/\\\\]+|\"(\\\\\\\\|\\\\\"|[^\"])*\"|'(\\\\\\\\|\\\\'|[^'])*'|//.*$\\n?|/\\*(.|\\n)*?\\*/|/(?!\\*)(\\\\\\\\|\\\\/|[^/])*/|\\\\(?!%)|/)+" (Arbitrary "Other")+    , tok "(\\\\)(%)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Other")])+    , tok "(\\$[a-zA-Z]+)(\\.?)(text|value)?" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Property")])+    , tokNext "{" (Arbitrary "Punctuation") Push+    , tokNext "}" (Arbitrary "Punctuation") Pop     ]  nestedArgAction' :: TokenMatcher nestedArgAction' =-    [ tok "\40\91\94\92\36\92\91\92\93\92\39\34\47\93\43\124\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34\124\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39\124\47\47\46\42\36\92\110\63\124\47\92\42\40\46\124\92\110\41\42\63\92\42\47\124\47\40\63\33\92\42\41\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\124\47\41\43" (Arbitrary "\79\116\104\101\114")-    , tokNext "\92\91" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\92\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\40\92\36\91\97\45\122\65\45\90\93\43\41\40\92\46\63\41\40\116\101\120\116\124\118\97\108\117\101\41\63" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\80\114\111\112\101\114\116\121")])-    , tok "\40\92\92\92\92\124\92\92\92\93\124\92\92\92\91\124\91\94\92\91\92\93\93\41\43" (Arbitrary "\79\116\104\101\114")+    [ tok "([^\\$\\[\\]\\'\"/]+|\"(\\\\\\\\|\\\\\"|[^\"])*\"|'(\\\\\\\\|\\\\'|[^'])*'|//.*$\\n?|/\\*(.|\\n)*?\\*/|/(?!\\*)(\\\\\\\\|\\\\/|[^/])*/|/)+" (Arbitrary "Other")+    , tokNext "\\[" (Arbitrary "Punctuation") Push+    , tokNext "\\]" (Arbitrary "Punctuation") Pop+    , tok "(\\$[a-zA-Z]+)(\\.?)(text|value)?" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Property")])+    , tok "(\\\\\\\\|\\\\\\]|\\\\\\[|[^\\[\\]])+" (Arbitrary "Other")     ]  rulePrelims' :: TokenMatcher rulePrelims' =     [ anyOf whitespace'     , anyOf comments'-    , tok "\114\101\116\117\114\110\115\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\92\91" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo nestedArgAction')-    , tokNext "\92\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo action')-    , tok "\40\116\104\114\111\119\115\41\40\92\115\43\41\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")])-    , tok "\40\63\58\40\44\41\40\92\115\42\41\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\41\43" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")])-    , tokNext "\111\112\116\105\111\110\115\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo options')-    , tokNext "\40\115\99\111\112\101\41\40\92\115\43\41\40\123\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo action')-    , tok "\40\115\99\111\112\101\41\40\92\115\43\41\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\92\115\42\41\40\59\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "\40\64\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\92\115\42\41\40\123\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo action')-    , tokNext "\58" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "returns\\b" (Arbitrary "Keyword")+    , tokNext "\\[" (Arbitrary "Punctuation") (GoTo nestedArgAction')+    , tokNext "\\{" (Arbitrary "Punctuation") (GoTo action')+    , tok "(throws)(\\s+)([A-Za-z][A-Za-z_0-9]*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Label")])+    , tok "(?:(,)(\\s*)([A-Za-z][A-Za-z_0-9]*))+" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Label")])+    , tokNext "options\\b" (Arbitrary "Keyword") (GoTo options')+    , tokNext "(scope)(\\s+)({)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")]) (GoTo action')+    , tok "(scope)(\\s+)([A-Za-z][A-Za-z_0-9]*)(\\s*)(;)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")])+    , tokNext "(@[A-Za-z][A-Za-z_0-9]*)(\\s*)({)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")]) (GoTo action')+    , tokNext ":" (Arbitrary "Punctuation") Pop     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'     , anyOf comments'-    , tok "\40\108\101\120\101\114\124\112\97\114\115\101\114\124\116\114\101\101\41\63\40\92\115\42\41\40\103\114\97\109\109\97\114\92\98\41\40\92\115\42\41\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\59\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "\111\112\116\105\111\110\115\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo options')-    , tokNext "\116\111\107\101\110\115\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo tokens')-    , tokNext "\40\115\99\111\112\101\41\40\92\115\42\41\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\92\115\42\41\40\123\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo action')-    , tokNext "\40\99\97\116\99\104\124\102\105\110\97\108\108\121\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo exception')-    , tokNext "\40\64\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\92\115\42\41\40\58\58\41\63\40\92\115\42\41\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\92\115\42\41\40\123\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo action')-    , tokNext "\40\40\63\58\112\114\111\116\101\99\116\101\100\124\112\114\105\118\97\116\101\124\112\117\98\108\105\99\124\102\114\97\103\109\101\110\116\41\92\98\41\63\40\92\115\42\41\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\33\41\63" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (DoAll [(GoTo ruleAlts'), (GoTo rulePrelims')])+    , tok "(lexer|parser|tree)?(\\s*)(grammar\\b)(\\s*)([A-Za-z][A-Za-z_0-9]*)(;)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Keyword"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Punctuation")])+    , tokNext "options\\b" (Arbitrary "Keyword") (GoTo options')+    , tokNext "tokens\\b" (Arbitrary "Keyword") (GoTo tokens')+    , tokNext "(scope)(\\s*)([A-Za-z][A-Za-z_0-9]*)(\\s*)({)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")]) (GoTo action')+    , tokNext "(catch|finally)\\b" (Arbitrary "Keyword") (GoTo exception')+    , tokNext "(@[A-Za-z][A-Za-z_0-9]*)(\\s*)(::)?(\\s*)([A-Za-z][A-Za-z_0-9]*)(\\s*)({)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")]) (GoTo action')+    , tokNext "((?:protected|private|public|fragment)\\b)?(\\s*)([A-Za-z][A-Za-z_0-9]*)(!)?" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Punctuation")]) (DoAll [(GoTo ruleAlts'), (GoTo rulePrelims')])     ]  ruleAlts' :: TokenMatcher ruleAlts' =     [ anyOf whitespace'     , anyOf comments'-    , tokNext "\111\112\116\105\111\110\115\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo options')-    , tok "\58" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\60\60\40\91\94\62\93\124\62\91\94\62\93\41\62\62" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\36\63\91\65\45\90\95\93\91\65\45\90\97\45\122\95\48\45\57\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\36\63\91\97\45\122\95\93\91\65\45\90\97\45\122\95\48\45\57\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\92\43\124\92\124\124\45\62\124\61\62\124\61\124\92\40\124\92\41\124\92\46\92\46\124\92\46\124\92\63\124\92\42\124\92\94\124\33\124\92\35\124\126\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\92\91" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo nestedArgAction')-    , tokNext "\92\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo action')-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tokNext "options\\b" (Arbitrary "Keyword") (GoTo options')+    , tok ":" (Arbitrary "Punctuation")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "<<([^>]|>[^>])>>" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\$?[A-Z_][A-Za-z_0-9]*" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\\$?[a-z_][A-Za-z_0-9]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(\\+|\\||->|=>|=|\\(|\\)|\\.\\.|\\.|\\?|\\*|\\^|!|\\#|\126)" (Arbitrary "Operator")+    , tok "," (Arbitrary "Punctuation")+    , tokNext "\\[" (Arbitrary "Punctuation") (GoTo nestedArgAction')+    , tokNext "\\{" (Arbitrary "Punctuation") (GoTo action')+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  comments' :: TokenMatcher comments' =-    [ tok "\47\47\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\47\92\42\40\46\124\92\110\41\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "//.*$" (Arbitrary "Comment")+    , tok "/\\*(.|\\n)*?\\*/" (Arbitrary "Comment")     ]  options' :: TokenMatcher options' =     [ anyOf whitespace'     , anyOf comments'-    , tok "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\41\40\92\115\42\41\40\61\41\40\92\115\42\41\40\91\65\45\90\97\45\122\93\91\65\45\90\97\45\122\95\48\45\57\93\42\124\92\39\40\63\58\92\92\92\92\124\92\92\92\39\124\91\94\92\39\93\42\41\92\39\124\91\48\45\57\93\43\124\92\42\41\40\92\115\42\41\40\59\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "{" (Arbitrary "Punctuation")+    , tok "([A-Za-z][A-Za-z_0-9]*)(\\s*)(=)(\\s*)([A-Za-z][A-Za-z_0-9]*|\\'(?:\\\\\\\\|\\\\\\'|[^\\']*)\\'|[0-9]+|\\*)(\\s*)(;)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Text"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")])+    , tokNext "}" (Arbitrary "Punctuation") Pop     ] 
src/Text/Highlighter/Lexers/ApacheConf.hs view
@@ -5,32 +5,32 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\112\97\99\104\101\67\111\110\102"-    , lAliases = ["\97\112\97\99\104\101\99\111\110\102", "\97\99\111\110\102", "\97\112\97\99\104\101"]-    , lExtensions = ["\46\104\116\97\99\99\101\115\115", "\97\112\97\99\104\101\46\99\111\110\102", "\97\112\97\99\104\101\50\46\99\111\110\102"]-    , lMimetypes = ["\116\101\120\116\47\120\45\97\112\97\99\104\101\99\111\110\102"]+    { lName = "ApacheConf"+    , lAliases = ["apacheconf", "aconf", "apache"]+    , lExtensions = [".htaccess", "apache.conf", "apache2.conf"]+    , lMimetypes = ["text/x-apacheconf"]     , lStart = root'     , lFlags = [caseless, multiline]     }  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\40\35\46\42\63\41\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\40\60\91\94\92\115\62\93\43\41\40\63\58\40\92\115\43\41\40\46\42\63\41\41\63\40\62\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")])-    , tokNext "\40\91\97\45\122\65\45\90\93\91\97\45\122\65\45\90\48\45\57\93\42\41\40\92\115\43\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116")]) (GoTo value')-    , tok "\92\46\43" (Arbitrary "\84\101\120\116")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "(#.*?)$" (Arbitrary "Comment")+    , tok "(<[^\\s>]+)(?:(\\s+)(.*?))?(>)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Tag"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Name" :. Arbitrary "Tag")])+    , tokNext "([a-zA-Z][a-zA-Z0-9]*)(\\s+)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Text")]) (GoTo value')+    , tok "\\.+" (Arbitrary "Text")     ]  value' :: TokenMatcher value' =-    [ tokNext "\36" (Arbitrary "\84\101\120\116") Pop-    , tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tok "\92\100\43\92\46\92\100\43\92\46\92\100\43\92\46\92\100\43\40\63\58\47\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\47\40\91\97\45\122\65\45\90\48\45\57\93\91\97\45\122\65\45\90\48\45\57\95\46\47\45\93\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tok "\40\111\110\124\111\102\102\124\110\111\110\101\124\97\110\121\124\97\108\108\124\100\111\117\98\108\101\124\101\109\97\105\108\124\100\110\115\124\109\105\110\124\109\105\110\105\109\97\108\124\111\115\124\112\114\111\100\117\99\116\111\110\108\121\124\102\117\108\108\124\101\109\101\114\103\124\97\108\101\114\116\124\99\114\105\116\124\101\114\114\111\114\124\119\97\114\110\124\110\111\116\105\99\101\124\105\110\102\111\124\100\101\98\117\103\124\114\101\103\105\115\116\114\121\124\115\99\114\105\112\116\124\105\110\101\116\100\124\115\116\97\110\100\97\108\111\110\101\124\117\115\101\114\124\103\114\111\117\112\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\34\40\91\94\34\92\92\93\42\40\63\58\92\92\46\91\94\34\92\92\93\42\41\42\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\91\94\92\115\34\93\43" (Arbitrary "\84\101\120\116")+    [ tokNext "$" (Arbitrary "Text") Pop+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "\\d+\\.\\d+\\.\\d+\\.\\d+(?:/\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "/([a-zA-Z0-9][a-zA-Z0-9_./-]+)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok "(on|off|none|any|all|double|email|dns|min|minimal|os|productonly|full|emerg|alert|crit|error|warn|notice|info|debug|registry|script|inetd|standalone|user|group)\\b" (Arbitrary "Keyword")+    , tok "\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "[^\\s\"]+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/AppleScript.hs view
@@ -5,9 +5,9 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\112\112\108\101\83\99\114\105\112\116"-    , lAliases = ["\97\112\112\108\101\115\99\114\105\112\116"]-    , lExtensions = ["\46\97\112\112\108\101\115\99\114\105\112\116"]+    { lName = "AppleScript"+    , lAliases = ["applescript"]+    , lExtensions = [".applescript"]     , lMimetypes = []     , lStart = root'     , lFlags = [multiline, dotall]@@ -15,41 +15,41 @@  comment' :: TokenMatcher comment' =-    [ tokNext "\92\40\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\92\42\92\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\94\42\40\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\91\42\40\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "\\(\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "\\*\\)" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[^*(]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "[*(]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\172\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\39\115\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\40\45\45\124\35\41\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\92\40\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo comment')-    , tok "\91\92\40\92\41\123\125\33\44\46\58\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\171\41\40\91\94\187\93\43\41\40\187\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116")])-    , tok "\92\98\40\40\63\58\99\111\110\115\105\100\101\114\105\110\103\124\105\103\110\111\114\105\110\103\41\92\115\42\41\40\97\112\112\108\105\99\97\116\105\111\110\32\114\101\115\112\111\110\115\101\115\124\99\97\115\101\124\100\105\97\99\114\105\116\105\99\97\108\115\124\104\121\112\104\101\110\115\124\110\117\109\101\114\105\99\32\115\116\114\105\110\103\115\124\112\117\110\99\116\117\97\116\105\111\110\124\119\104\105\116\101\32\115\112\97\99\101\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")])-    , tok "\40\45\124\92\42\124\92\43\124\38\124\8800\124\62\61\63\124\60\61\63\124\61\124\8805\124\8804\124\47\124\247\124\92\94\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\98\40\97\110\100\124\111\114\124\105\115\32\101\113\117\97\108\124\101\113\117\97\108\115\124\40\105\115\32\41\63\101\113\117\97\108\32\116\111\124\105\115\32\110\111\116\124\105\115\110\39\116\124\105\115\110\39\116\32\101\113\117\97\108\40\32\116\111\41\63\124\105\115\32\110\111\116\32\101\113\117\97\108\40\32\116\111\41\63\124\100\111\101\115\110\39\116\32\101\113\117\97\108\124\100\111\101\115\32\110\111\116\32\101\113\117\97\108\124\40\105\115\32\41\63\103\114\101\97\116\101\114\32\116\104\97\110\124\99\111\109\101\115\32\97\102\116\101\114\124\105\115\32\110\111\116\32\108\101\115\115\32\116\104\97\110\32\111\114\32\101\113\117\97\108\40\32\116\111\41\63\124\105\115\110\39\116\32\108\101\115\115\32\116\104\97\110\32\111\114\32\101\113\117\97\108\40\32\116\111\41\63\124\40\105\115\32\41\63\108\101\115\115\32\116\104\97\110\124\99\111\109\101\115\32\98\101\102\111\114\101\124\105\115\32\110\111\116\32\103\114\101\97\116\101\114\32\116\104\97\110\32\111\114\32\101\113\117\97\108\40\32\116\111\41\63\124\105\115\110\39\116\32\103\114\101\97\116\101\114\32\116\104\97\110\32\111\114\32\101\113\117\97\108\40\32\116\111\41\63\124\40\105\115\32\32\41\63\103\114\101\97\116\101\114\32\116\104\97\110\32\111\114\32\101\113\117\97\108\40\32\116\111\41\63\124\105\115\32\110\111\116\32\108\101\115\115\32\116\104\97\110\124\105\115\110\39\116\32\108\101\115\115\32\116\104\97\110\124\100\111\101\115\32\110\111\116\32\99\111\109\101\32\98\101\102\111\114\101\124\100\111\101\115\110\39\116\32\99\111\109\101\32\98\101\102\111\114\101\124\40\105\115\32\41\63\108\101\115\115\32\116\104\97\110\32\111\114\32\101\113\117\97\108\40\32\116\111\41\63\124\105\115\32\110\111\116\32\103\114\101\97\116\101\114\32\116\104\97\110\124\105\115\110\39\116\32\103\114\101\97\116\101\114\32\116\104\97\110\124\100\111\101\115\32\110\111\116\32\99\111\109\101\32\97\102\116\101\114\124\100\111\101\115\110\39\116\32\99\111\109\101\32\97\102\116\101\114\124\115\116\97\114\116\115\63\32\119\105\116\104\124\98\101\103\105\110\115\63\32\119\105\116\104\124\101\110\100\115\63\32\119\105\116\104\124\99\111\110\116\97\105\110\115\63\124\100\111\101\115\32\110\111\116\32\99\111\110\116\97\105\110\124\100\111\101\115\110\39\116\32\99\111\110\116\97\105\110\124\105\115\32\105\110\124\105\115\32\99\111\110\116\97\105\110\101\100\32\98\121\124\105\115\32\110\111\116\32\105\110\124\105\115\32\110\111\116\32\99\111\110\116\97\105\110\101\100\32\98\121\124\105\115\110\39\116\32\99\111\110\116\97\105\110\101\100\32\98\121\124\100\105\118\124\109\111\100\124\110\111\116\124\40\97\32\32\41\63\40\114\101\102\40\32\116\111\41\63\124\114\101\102\101\114\101\110\99\101\32\116\111\41\124\105\115\124\100\111\101\115\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\94\40\92\115\42\40\63\58\111\110\124\101\110\100\41\92\115\43\41\40\97\99\99\101\112\116\32\111\117\116\108\105\110\101\32\100\114\111\112\124\97\99\99\101\112\116\32\116\97\98\108\101\32\100\114\111\112\124\97\99\116\105\111\110\124\97\99\116\105\118\97\116\101\100\124\97\108\101\114\116\32\101\110\100\101\100\124\97\119\97\107\101\32\102\114\111\109\32\110\105\98\124\98\101\99\97\109\101\32\107\101\121\124\98\101\99\97\109\101\32\109\97\105\110\124\98\101\103\105\110\32\101\100\105\116\105\110\103\124\98\111\117\110\100\115\32\99\104\97\110\103\101\100\124\99\101\108\108\32\118\97\108\117\101\124\99\101\108\108\32\118\97\108\117\101\32\99\104\97\110\103\101\100\124\99\104\97\110\103\101\32\99\101\108\108\32\118\97\108\117\101\124\99\104\97\110\103\101\32\105\116\101\109\32\118\97\108\117\101\124\99\104\97\110\103\101\100\124\99\104\105\108\100\32\111\102\32\105\116\101\109\124\99\104\111\111\115\101\32\109\101\110\117\32\105\116\101\109\124\99\108\105\99\107\101\100\124\99\108\105\99\107\101\100\32\116\111\111\108\98\97\114\32\105\116\101\109\124\99\108\111\115\101\100\124\99\111\108\117\109\110\32\99\108\105\99\107\101\100\124\99\111\108\117\109\110\32\109\111\118\101\100\124\99\111\108\117\109\110\32\114\101\115\105\122\101\100\124\99\111\110\99\108\117\100\101\32\100\114\111\112\124\100\97\116\97\32\114\101\112\114\101\115\101\110\116\97\116\105\111\110\124\100\101\109\105\110\105\97\116\117\114\105\122\101\100\124\100\105\97\108\111\103\32\101\110\100\101\100\124\100\111\99\117\109\101\110\116\32\110\105\98\32\110\97\109\101\124\100\111\117\98\108\101\32\99\108\105\99\107\101\100\124\100\114\97\103\40\32\40\101\110\116\101\114\101\100\124\101\120\105\116\101\100\124\117\112\100\97\116\101\100\41\41\63\124\100\114\111\112\124\101\110\100\32\101\100\105\116\105\110\103\124\101\120\112\111\115\101\100\124\105\100\108\101\124\105\116\101\109\32\101\120\112\97\110\100\97\98\108\101\124\105\116\101\109\32\118\97\108\117\101\124\105\116\101\109\32\118\97\108\117\101\32\99\104\97\110\103\101\100\124\105\116\101\109\115\32\99\104\97\110\103\101\100\124\107\101\121\98\111\97\114\100\32\100\111\119\110\124\107\101\121\98\111\97\114\100\32\117\112\124\108\97\117\110\99\104\101\100\124\108\111\97\100\32\100\97\116\97\32\114\101\112\114\101\115\101\110\116\97\116\105\111\110\124\109\105\110\105\97\116\117\114\105\122\101\100\124\109\111\117\115\101\32\100\111\119\110\124\109\111\117\115\101\32\100\114\97\103\103\101\100\124\109\111\117\115\101\32\101\110\116\101\114\101\100\124\109\111\117\115\101\32\101\120\105\116\101\100\124\109\111\117\115\101\32\109\111\118\101\100\124\109\111\117\115\101\32\117\112\124\109\111\118\101\100\124\110\117\109\98\101\114\32\111\102\32\98\114\111\119\115\101\114\32\114\111\119\115\124\110\117\109\98\101\114\32\111\102\32\105\116\101\109\115\124\110\117\109\98\101\114\32\111\102\32\114\111\119\115\124\111\112\101\110\32\117\110\116\105\116\108\101\100\124\111\112\101\110\101\100\124\112\97\110\101\108\32\101\110\100\101\100\124\112\97\114\97\109\101\116\101\114\115\32\117\112\100\97\116\101\100\124\112\108\117\103\105\110\32\108\111\97\100\101\100\124\112\114\101\112\97\114\101\32\100\114\111\112\124\112\114\101\112\97\114\101\32\111\117\116\108\105\110\101\32\100\114\97\103\124\112\114\101\112\97\114\101\32\111\117\116\108\105\110\101\32\100\114\111\112\124\112\114\101\112\97\114\101\32\116\97\98\108\101\32\100\114\97\103\124\112\114\101\112\97\114\101\32\116\97\98\108\101\32\100\114\111\112\124\114\101\97\100\32\102\114\111\109\32\102\105\108\101\124\114\101\115\105\103\110\101\100\32\97\99\116\105\118\101\124\114\101\115\105\103\110\101\100\32\107\101\121\124\114\101\115\105\103\110\101\100\32\109\97\105\110\124\114\101\115\105\122\101\100\40\32\115\117\98\32\118\105\101\119\115\41\63\124\114\105\103\104\116\32\109\111\117\115\101\32\100\111\119\110\124\114\105\103\104\116\32\109\111\117\115\101\32\100\114\97\103\103\101\100\124\114\105\103\104\116\32\109\111\117\115\101\32\117\112\124\114\111\119\115\32\99\104\97\110\103\101\100\124\115\99\114\111\108\108\32\119\104\101\101\108\124\115\101\108\101\99\116\101\100\32\116\97\98\32\118\105\101\119\32\105\116\101\109\124\115\101\108\101\99\116\105\111\110\32\99\104\97\110\103\101\100\124\115\101\108\101\99\116\105\111\110\32\99\104\97\110\103\105\110\103\124\115\104\111\117\108\100\32\98\101\103\105\110\32\101\100\105\116\105\110\103\124\115\104\111\117\108\100\32\99\108\111\115\101\124\115\104\111\117\108\100\32\99\111\108\108\97\112\115\101\32\105\116\101\109\124\115\104\111\117\108\100\32\101\110\100\32\101\100\105\116\105\110\103\124\115\104\111\117\108\100\32\101\120\112\97\110\100\32\105\116\101\109\124\115\104\111\117\108\100\32\111\112\101\110\40\32\117\110\116\105\116\108\101\100\41\63\124\115\104\111\117\108\100\32\113\117\105\116\40\32\97\102\116\101\114\32\108\97\115\116\32\119\105\110\100\111\119\32\99\108\111\115\101\100\41\63\124\115\104\111\117\108\100\32\115\101\108\101\99\116\32\99\111\108\117\109\110\124\115\104\111\117\108\100\32\115\101\108\101\99\116\32\105\116\101\109\124\115\104\111\117\108\100\32\115\101\108\101\99\116\32\114\111\119\124\115\104\111\117\108\100\32\115\101\108\101\99\116\32\116\97\98\32\118\105\101\119\32\105\116\101\109\124\115\104\111\117\108\100\32\115\101\108\101\99\116\105\111\110\32\99\104\97\110\103\101\124\115\104\111\117\108\100\32\122\111\111\109\124\115\104\111\119\110\124\117\112\100\97\116\101\32\109\101\110\117\32\105\116\101\109\124\117\112\100\97\116\101\32\112\97\114\97\109\101\116\101\114\115\124\117\112\100\97\116\101\32\116\111\111\108\98\97\114\32\105\116\101\109\124\119\97\115\32\104\105\100\100\101\110\124\119\97\115\32\109\105\110\105\97\116\117\114\105\122\101\100\124\119\105\108\108\32\98\101\99\111\109\101\32\97\99\116\105\118\101\124\119\105\108\108\32\99\108\111\115\101\124\119\105\108\108\32\100\105\115\109\105\115\115\124\119\105\108\108\32\100\105\115\112\108\97\121\32\98\114\111\119\115\101\114\32\99\101\108\108\124\119\105\108\108\32\100\105\115\112\108\97\121\32\99\101\108\108\124\119\105\108\108\32\100\105\115\112\108\97\121\32\105\116\101\109\32\99\101\108\108\124\119\105\108\108\32\100\105\115\112\108\97\121\32\111\117\116\108\105\110\101\32\99\101\108\108\124\119\105\108\108\32\102\105\110\105\115\104\32\108\97\117\110\99\104\105\110\103\124\119\105\108\108\32\104\105\100\101\124\119\105\108\108\32\109\105\110\105\97\116\117\114\105\122\101\124\119\105\108\108\32\109\111\118\101\124\119\105\108\108\32\111\112\101\110\124\119\105\108\108\32\112\111\112\32\117\112\124\119\105\108\108\32\113\117\105\116\124\119\105\108\108\32\114\101\115\105\103\110\32\97\99\116\105\118\101\124\119\105\108\108\32\114\101\115\105\122\101\40\32\115\117\98\32\118\105\101\119\115\41\63\124\119\105\108\108\32\115\101\108\101\99\116\32\116\97\98\32\118\105\101\119\32\105\116\101\109\124\119\105\108\108\32\115\104\111\119\124\119\105\108\108\32\122\111\111\109\124\119\114\105\116\101\32\116\111\32\102\105\108\101\124\122\111\111\109\101\100\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\94\40\92\115\42\41\40\105\110\124\111\110\124\115\99\114\105\112\116\124\116\111\41\40\92\115\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")])-    , tok "\92\98\40\97\115\32\41\40\97\108\105\97\115\32\124\97\112\112\108\105\99\97\116\105\111\110\32\124\98\111\111\108\101\97\110\32\124\99\108\97\115\115\32\124\99\111\110\115\116\97\110\116\32\124\100\97\116\101\32\124\102\105\108\101\32\124\105\110\116\101\103\101\114\32\124\108\105\115\116\32\124\110\117\109\98\101\114\32\124\80\79\83\73\88\32\102\105\108\101\32\124\114\101\97\108\32\124\114\101\99\111\114\100\32\124\114\101\102\101\114\101\110\99\101\32\124\82\71\66\32\99\111\108\111\114\32\124\115\99\114\105\112\116\32\124\116\101\120\116\32\124\117\110\105\116\32\116\121\112\101\115\124\40\85\110\105\99\111\100\101\32\41\63\116\101\120\116\124\115\116\114\105\110\103\41\92\98" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")])-    , tok "\92\98\40\65\112\112\108\101\83\99\114\105\112\116\124\99\117\114\114\101\110\116\32\97\112\112\108\105\99\97\116\105\111\110\124\102\97\108\115\101\124\108\105\110\101\102\101\101\100\124\109\105\115\115\105\110\103\32\118\97\108\117\101\124\112\105\124\113\117\111\116\101\124\114\101\115\117\108\116\124\114\101\116\117\114\110\124\115\112\97\99\101\124\116\97\98\124\116\101\120\116\32\105\116\101\109\32\100\101\108\105\109\105\116\101\114\115\124\116\114\117\101\124\118\101\114\115\105\111\110\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\98\40\65\83\67\73\73\32\40\99\104\97\114\97\99\116\101\114\124\110\117\109\98\101\114\41\124\97\99\116\105\118\97\116\101\124\98\101\101\112\124\99\104\111\111\115\101\32\85\82\76\124\99\104\111\111\115\101\32\97\112\112\108\105\99\97\116\105\111\110\124\99\104\111\111\115\101\32\99\111\108\111\114\124\99\104\111\111\115\101\32\102\105\108\101\40\32\110\97\109\101\41\63\124\99\104\111\111\115\101\32\102\111\108\100\101\114\124\99\104\111\111\115\101\32\102\114\111\109\32\108\105\115\116\124\99\104\111\111\115\101\32\114\101\109\111\116\101\32\97\112\112\108\105\99\97\116\105\111\110\124\99\108\105\112\98\111\97\114\100\32\105\110\102\111\124\99\108\111\115\101\40\32\97\99\99\101\115\115\41\63\124\99\111\112\121\124\99\111\117\110\116\124\99\117\114\114\101\110\116\32\100\97\116\101\124\100\101\108\97\121\124\100\101\108\101\116\101\124\100\105\115\112\108\97\121\32\40\97\108\101\114\116\124\100\105\97\108\111\103\41\124\100\111\32\115\104\101\108\108\32\115\99\114\105\112\116\124\100\117\112\108\105\99\97\116\101\124\101\120\105\115\116\115\124\103\101\116\32\101\111\102\124\103\101\116\32\118\111\108\117\109\101\32\115\101\116\116\105\110\103\115\124\105\110\102\111\32\102\111\114\124\108\97\117\110\99\104\124\108\105\115\116\32\40\100\105\115\107\115\124\102\111\108\100\101\114\41\124\108\111\97\100\32\115\99\114\105\112\116\124\108\111\103\124\109\97\107\101\124\109\111\117\110\116\32\118\111\108\117\109\101\124\110\101\119\124\111\102\102\115\101\116\124\111\112\101\110\40\32\40\102\111\114\32\97\99\99\101\115\115\124\108\111\99\97\116\105\111\110\41\41\63\124\112\97\116\104\32\116\111\124\112\114\105\110\116\124\113\117\105\116\124\114\97\110\100\111\109\32\110\117\109\98\101\114\124\114\101\97\100\124\114\111\117\110\100\124\114\117\110\40\32\115\99\114\105\112\116\41\63\124\115\97\121\124\115\99\114\105\112\116\105\110\103\32\99\111\109\112\111\110\101\110\116\115\124\115\101\116\32\40\101\111\102\124\116\104\101\32\99\108\105\112\98\111\97\114\100\32\116\111\124\118\111\108\117\109\101\41\124\115\116\111\114\101\32\115\99\114\105\112\116\124\115\117\109\109\97\114\105\122\101\124\115\121\115\116\101\109\32\97\116\116\114\105\98\117\116\101\124\115\121\115\116\101\109\32\105\110\102\111\124\116\104\101\32\99\108\105\112\98\111\97\114\100\124\116\105\109\101\32\116\111\32\71\77\84\124\119\114\105\116\101\124\113\117\111\116\101\100\32\102\111\114\109\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\98\40\99\111\110\115\105\100\101\114\105\110\103\124\101\108\115\101\124\101\114\114\111\114\124\101\120\105\116\124\102\114\111\109\124\105\102\124\105\103\110\111\114\105\110\103\124\105\110\124\114\101\112\101\97\116\124\116\101\108\108\124\116\104\101\110\124\116\105\109\101\115\124\116\111\124\116\114\121\124\117\110\116\105\108\124\117\115\105\110\103\32\116\101\114\109\115\32\102\114\111\109\124\119\104\105\108\101\124\119\104\105\116\104\124\119\105\116\104\32\116\105\109\101\111\117\116\40\32\111\102\41\63\124\119\105\116\104\32\116\114\97\110\115\97\99\116\105\111\110\124\98\121\124\99\111\110\116\105\110\117\101\124\101\110\100\124\105\116\115\63\124\109\101\124\109\121\124\114\101\116\117\114\110\124\111\102\124\97\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\103\108\111\98\97\108\124\108\111\99\97\108\124\112\114\111\112\40\101\114\116\121\41\63\124\115\101\116\124\103\101\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\98\117\116\124\112\117\116\124\114\101\116\117\114\110\105\110\103\124\116\104\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\98\40\97\116\116\97\99\104\109\101\110\116\124\97\116\116\114\105\98\117\116\101\32\114\117\110\124\99\104\97\114\97\99\116\101\114\124\100\97\121\124\109\111\110\116\104\124\112\97\114\97\103\114\97\112\104\124\119\111\114\100\124\121\101\97\114\41\115\63\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\98\40\97\98\111\117\116\124\97\98\111\118\101\124\97\103\97\105\110\115\116\124\97\112\97\114\116\32\102\114\111\109\124\97\114\111\117\110\100\124\97\115\105\100\101\32\102\114\111\109\124\97\116\124\98\101\108\111\119\124\98\101\110\101\97\116\104\124\98\101\115\105\100\101\124\98\101\116\119\101\101\110\124\102\111\114\124\103\105\118\101\110\124\105\110\115\116\101\97\100\32\111\102\124\111\110\124\111\110\116\111\124\111\117\116\32\111\102\124\111\118\101\114\124\115\105\110\99\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\98\40\97\99\99\101\112\116\115\32\97\114\114\111\119\32\107\101\121\124\97\99\116\105\111\110\32\109\101\116\104\111\100\124\97\99\116\105\118\101\124\97\108\105\103\110\109\101\110\116\124\97\108\108\111\119\101\100\32\105\100\101\110\116\105\102\105\101\114\115\124\97\108\108\111\119\115\32\98\114\97\110\99\104\32\115\101\108\101\99\116\105\111\110\124\97\108\108\111\119\115\32\99\111\108\117\109\110\32\114\101\111\114\100\101\114\105\110\103\124\97\108\108\111\119\115\32\99\111\108\117\109\110\32\114\101\115\105\122\105\110\103\124\97\108\108\111\119\115\32\99\111\108\117\109\110\32\115\101\108\101\99\116\105\111\110\124\97\108\108\111\119\115\32\99\117\115\116\111\109\105\122\97\116\105\111\110\124\97\108\108\111\119\115\32\101\100\105\116\105\110\103\32\116\101\120\116\32\97\116\116\114\105\98\117\116\101\115\124\97\108\108\111\119\115\32\101\109\112\116\121\32\115\101\108\101\99\116\105\111\110\124\97\108\108\111\119\115\32\109\105\120\101\100\32\115\116\97\116\101\124\97\108\108\111\119\115\32\109\117\108\116\105\112\108\101\32\115\101\108\101\99\116\105\111\110\124\97\108\108\111\119\115\32\114\101\111\114\100\101\114\105\110\103\124\97\108\108\111\119\115\32\117\110\100\111\124\97\108\112\104\97\40\32\118\97\108\117\101\41\63\124\97\108\116\101\114\110\97\116\101\32\105\109\97\103\101\124\97\108\116\101\114\110\97\116\101\32\105\110\99\114\101\109\101\110\116\32\118\97\108\117\101\124\97\108\116\101\114\110\97\116\101\32\116\105\116\108\101\124\97\110\105\109\97\116\105\111\110\32\100\101\108\97\121\124\97\115\115\111\99\105\97\116\101\100\32\102\105\108\101\32\110\97\109\101\124\97\115\115\111\99\105\97\116\101\100\32\111\98\106\101\99\116\124\97\117\116\111\32\99\111\109\112\108\101\116\101\115\124\97\117\116\111\32\100\105\115\112\108\97\121\124\97\117\116\111\32\101\110\97\98\108\101\115\32\105\116\101\109\115\124\97\117\116\111\32\114\101\112\101\97\116\124\97\117\116\111\32\114\101\115\105\122\101\115\40\32\111\117\116\108\105\110\101\32\99\111\108\117\109\110\41\63\124\97\117\116\111\32\115\97\118\101\32\101\120\112\97\110\100\101\100\32\105\116\101\109\115\124\97\117\116\111\32\115\97\118\101\32\110\97\109\101\124\97\117\116\111\32\115\97\118\101\32\116\97\98\108\101\32\99\111\108\117\109\110\115\124\97\117\116\111\32\115\97\118\101\115\32\99\111\110\102\105\103\117\114\97\116\105\111\110\124\97\117\116\111\32\115\99\114\111\108\108\124\97\117\116\111\32\115\105\122\101\115\32\97\108\108\32\99\111\108\117\109\110\115\32\116\111\32\102\105\116\124\97\117\116\111\32\115\105\122\101\115\32\99\101\108\108\115\124\98\97\99\107\103\114\111\117\110\100\32\99\111\108\111\114\124\98\101\122\101\108\32\115\116\97\116\101\124\98\101\122\101\108\32\115\116\121\108\101\124\98\101\122\101\108\101\100\124\98\111\114\100\101\114\32\114\101\99\116\124\98\111\114\100\101\114\32\116\121\112\101\124\98\111\114\100\101\114\101\100\124\98\111\117\110\100\115\40\32\114\111\116\97\116\105\111\110\41\63\124\98\111\120\32\116\121\112\101\124\98\117\116\116\111\110\32\114\101\116\117\114\110\101\100\124\98\117\116\116\111\110\32\116\121\112\101\124\99\97\110\32\99\104\111\111\115\101\32\100\105\114\101\99\116\111\114\105\101\115\124\99\97\110\32\99\104\111\111\115\101\32\102\105\108\101\115\124\99\97\110\32\100\114\97\119\124\99\97\110\32\104\105\100\101\124\99\101\108\108\40\32\40\98\97\99\107\103\114\111\117\110\100\32\99\111\108\111\114\124\115\105\122\101\124\116\121\112\101\41\41\63\124\99\104\97\114\97\99\116\101\114\115\124\99\108\97\115\115\124\99\108\105\99\107\32\99\111\117\110\116\124\99\108\105\99\107\101\100\40\32\100\97\116\97\41\63\32\99\111\108\117\109\110\124\99\108\105\99\107\101\100\32\100\97\116\97\32\105\116\101\109\124\99\108\105\99\107\101\100\40\32\100\97\116\97\41\63\32\114\111\119\124\99\108\111\115\101\97\98\108\101\124\99\111\108\108\97\116\105\110\103\124\99\111\108\111\114\40\32\40\109\111\100\101\124\112\97\110\101\108\41\41\124\99\111\109\109\97\110\100\32\107\101\121\32\100\111\119\110\124\99\111\110\102\105\103\117\114\97\116\105\111\110\124\99\111\110\116\101\110\116\40\115\124\32\40\115\105\122\101\124\118\105\101\119\40\32\109\97\114\103\105\110\115\41\63\41\41\63\124\99\111\110\116\101\120\116\124\99\111\110\116\105\110\117\111\117\115\124\99\111\110\116\114\111\108\32\107\101\121\32\100\111\119\110\124\99\111\110\116\114\111\108\32\115\105\122\101\124\99\111\110\116\114\111\108\32\116\105\110\116\124\99\111\110\116\114\111\108\32\118\105\101\119\124\99\111\110\116\114\111\108\108\101\114\32\118\105\115\105\98\108\101\124\99\111\111\114\100\105\110\97\116\101\32\115\121\115\116\101\109\124\99\111\112\105\101\115\40\32\111\110\32\115\99\114\111\108\108\41\63\124\99\111\114\110\101\114\32\118\105\101\119\124\99\117\114\114\101\110\116\32\99\101\108\108\124\99\117\114\114\101\110\116\32\99\111\108\117\109\110\124\99\117\114\114\101\110\116\40\32\102\105\101\108\100\41\63\32\32\101\100\105\116\111\114\124\99\117\114\114\101\110\116\40\32\109\101\110\117\41\63\32\105\116\101\109\124\99\117\114\114\101\110\116\32\114\111\119\124\99\117\114\114\101\110\116\32\116\97\98\32\118\105\101\119\32\105\116\101\109\124\100\97\116\97\32\115\111\117\114\99\101\124\100\101\102\97\117\108\116\32\105\100\101\110\116\105\102\105\101\114\115\124\100\101\108\116\97\32\40\120\124\121\124\122\41\124\100\101\115\116\105\110\97\116\105\111\110\32\119\105\110\100\111\119\124\100\105\114\101\99\116\111\114\121\124\100\105\115\112\108\97\121\32\109\111\100\101\124\100\105\115\112\108\97\121\101\100\32\99\101\108\108\124\100\111\99\117\109\101\110\116\40\32\40\101\100\105\116\101\100\124\114\101\99\116\124\118\105\101\119\41\41\63\124\100\111\117\98\108\101\32\118\97\108\117\101\124\100\114\97\103\103\101\100\32\99\111\108\117\109\110\124\100\114\97\103\103\101\100\32\100\105\115\116\97\110\99\101\124\100\114\97\103\103\101\100\32\105\116\101\109\115\124\100\114\97\119\115\40\32\99\101\108\108\41\63\32\98\97\99\107\103\114\111\117\110\100\124\100\114\97\119\115\32\103\114\105\100\124\100\121\110\97\109\105\99\97\108\108\121\32\115\99\114\111\108\108\115\124\101\99\104\111\115\32\98\117\108\108\101\116\115\124\101\100\103\101\124\101\100\105\116\97\98\108\101\124\101\100\105\116\101\100\40\32\100\97\116\97\41\63\32\99\111\108\117\109\110\124\101\100\105\116\101\100\32\100\97\116\97\32\105\116\101\109\124\101\100\105\116\101\100\40\32\100\97\116\97\41\63\32\114\111\119\124\101\110\97\98\108\101\100\124\101\110\99\108\111\115\105\110\103\32\115\99\114\111\108\108\32\118\105\101\119\124\101\110\100\105\110\103\32\112\97\103\101\124\101\114\114\111\114\32\104\97\110\100\108\105\110\103\124\101\118\101\110\116\32\110\117\109\98\101\114\124\101\118\101\110\116\32\116\121\112\101\124\101\120\99\108\117\100\101\100\32\102\114\111\109\32\119\105\110\100\111\119\115\32\109\101\110\117\124\101\120\101\99\117\116\97\98\108\101\32\112\97\116\104\124\101\120\112\97\110\100\101\100\124\102\97\120\32\110\117\109\98\101\114\124\102\105\101\108\100\32\101\100\105\116\111\114\124\102\105\108\101\32\107\105\110\100\124\102\105\108\101\32\110\97\109\101\124\102\105\108\101\32\116\121\112\101\124\102\105\114\115\116\32\114\101\115\112\111\110\100\101\114\124\102\105\114\115\116\32\118\105\115\105\98\108\101\32\99\111\108\117\109\110\124\102\108\105\112\112\101\100\124\102\108\111\97\116\105\110\103\124\102\111\110\116\40\32\112\97\110\101\108\41\63\124\102\111\114\109\97\116\116\101\114\124\102\114\97\109\101\119\111\114\107\115\32\112\97\116\104\124\102\114\111\110\116\109\111\115\116\124\103\97\118\101\32\117\112\124\103\114\105\100\32\99\111\108\111\114\124\104\97\115\32\100\97\116\97\32\105\116\101\109\115\124\104\97\115\32\104\111\114\105\122\111\110\116\97\108\32\114\117\108\101\114\124\104\97\115\32\104\111\114\105\122\111\110\116\97\108\32\115\99\114\111\108\108\101\114\124\104\97\115\32\112\97\114\101\110\116\32\100\97\116\97\32\105\116\101\109\124\104\97\115\32\114\101\115\105\122\101\32\105\110\100\105\99\97\116\111\114\124\104\97\115\32\115\104\97\100\111\119\124\104\97\115\32\115\117\98\32\109\101\110\117\124\104\97\115\32\118\101\114\116\105\99\97\108\32\114\117\108\101\114\124\104\97\115\32\118\101\114\116\105\99\97\108\32\115\99\114\111\108\108\101\114\124\104\101\97\100\101\114\32\99\101\108\108\124\104\101\97\100\101\114\32\118\105\101\119\124\104\105\100\100\101\110\124\104\105\100\101\115\32\119\104\101\110\32\100\101\97\99\116\105\118\97\116\101\100\124\104\105\103\104\108\105\103\104\116\115\32\98\121\124\104\111\114\105\122\111\110\116\97\108\32\108\105\110\101\32\115\99\114\111\108\108\124\104\111\114\105\122\111\110\116\97\108\32\112\97\103\101\32\115\99\114\111\108\108\124\104\111\114\105\122\111\110\116\97\108\32\114\117\108\101\114\32\118\105\101\119\124\104\111\114\105\122\111\110\116\97\108\108\121\32\114\101\115\105\122\97\98\108\101\124\105\99\111\110\32\105\109\97\103\101\124\105\100\124\105\100\101\110\116\105\102\105\101\114\124\105\103\110\111\114\101\115\32\109\117\108\116\105\112\108\101\32\99\108\105\99\107\115\124\105\109\97\103\101\40\32\40\97\108\105\103\110\109\101\110\116\124\100\105\109\115\32\119\104\101\110\32\100\105\115\97\98\108\101\100\124\102\114\97\109\101\32\115\116\121\108\101\124\115\99\97\108\105\110\103\41\41\63\124\105\109\112\111\114\116\115\32\103\114\97\112\104\105\99\115\124\105\110\99\114\101\109\101\110\116\32\118\97\108\117\101\124\105\110\100\101\110\116\97\116\105\111\110\32\112\101\114\32\108\101\118\101\108\124\105\110\100\101\116\101\114\109\105\110\97\116\101\124\105\110\100\101\120\124\105\110\116\101\103\101\114\32\118\97\108\117\101\124\105\110\116\101\114\99\101\108\108\32\115\112\97\99\105\110\103\124\105\116\101\109\32\104\101\105\103\104\116\124\107\101\121\40\32\40\99\111\100\101\124\101\113\117\105\118\97\108\101\110\116\40\32\109\111\100\105\102\105\101\114\41\63\124\119\105\110\100\111\119\41\41\63\124\107\110\111\98\32\116\104\105\99\107\110\101\115\115\124\108\97\98\101\108\124\108\97\115\116\40\32\118\105\115\105\98\108\101\41\63\32\99\111\108\117\109\110\124\108\101\97\100\105\110\103\32\111\102\102\115\101\116\124\108\101\97\102\124\108\101\118\101\108\124\108\105\110\101\32\115\99\114\111\108\108\124\108\111\97\100\101\100\124\108\111\99\97\108\105\122\101\100\32\115\111\114\116\124\108\111\99\97\116\105\111\110\124\108\111\111\112\32\109\111\100\101\124\109\97\105\110\40\32\40\98\117\110\100\101\124\109\101\110\117\124\119\105\110\100\111\119\41\41\63\124\109\97\114\107\101\114\32\102\111\108\108\111\119\115\32\99\101\108\108\124\109\97\116\114\105\120\32\109\111\100\101\124\109\97\120\105\109\117\109\40\32\99\111\110\116\101\110\116\41\63\32\115\105\122\101\124\109\97\120\105\109\117\109\32\118\105\115\105\98\108\101\32\99\111\108\117\109\110\115\124\109\101\110\117\40\32\102\111\114\109\32\114\101\112\114\101\115\101\110\116\97\116\105\111\110\41\63\124\109\105\110\105\97\116\117\114\105\122\97\98\108\101\124\109\105\110\105\97\116\117\114\105\122\101\100\124\109\105\110\105\109\105\122\101\100\32\105\109\97\103\101\124\109\105\110\105\109\105\122\101\100\32\116\105\116\108\101\124\109\105\110\105\109\117\109\32\99\111\108\117\109\110\32\119\105\100\116\104\124\109\105\110\105\109\117\109\40\32\99\111\110\116\101\110\116\41\63\32\115\105\122\101\124\109\111\100\97\108\124\109\111\100\105\102\105\101\100\124\109\111\117\115\101\32\100\111\119\110\32\115\116\97\116\101\124\109\111\118\105\101\40\32\40\99\111\110\116\114\111\108\108\101\114\124\102\105\108\101\124\114\101\99\116\41\41\63\124\109\117\116\101\100\124\110\97\109\101\124\110\101\101\100\115\32\100\105\115\112\108\97\121\124\110\101\120\116\32\115\116\97\116\101\124\110\101\120\116\32\116\101\120\116\124\110\117\109\98\101\114\32\111\102\32\116\105\99\107\32\109\97\114\107\115\124\111\110\108\121\32\116\105\99\107\32\109\97\114\107\32\118\97\108\117\101\115\124\111\112\97\113\117\101\124\111\112\101\110\32\112\97\110\101\108\124\111\112\116\105\111\110\32\107\101\121\32\100\111\119\110\124\111\117\116\108\105\110\101\32\116\97\98\108\101\32\99\111\108\117\109\110\124\112\97\103\101\32\115\99\114\111\108\108\124\112\97\103\101\115\32\97\99\114\111\115\115\124\112\97\103\101\115\32\100\111\119\110\124\112\97\108\101\116\116\101\32\108\97\98\101\108\124\112\97\110\101\32\115\112\108\105\116\116\101\114\124\112\97\114\101\110\116\32\100\97\116\97\32\105\116\101\109\124\112\97\114\101\110\116\32\119\105\110\100\111\119\124\112\97\115\116\101\98\111\97\114\100\124\112\97\116\104\40\32\40\110\97\109\101\115\124\115\101\112\97\114\97\116\111\114\41\41\63\124\112\108\97\121\105\110\103\124\112\108\97\121\115\32\101\118\101\114\121\32\102\114\97\109\101\124\112\108\97\121\115\32\115\101\108\101\99\116\105\111\110\32\111\110\108\121\124\112\111\115\105\116\105\111\110\124\112\114\101\102\101\114\114\101\100\32\101\100\103\101\124\112\114\101\102\101\114\114\101\100\32\116\121\112\101\124\112\114\101\115\115\117\114\101\124\112\114\101\118\105\111\117\115\32\116\101\120\116\124\112\114\111\109\112\116\124\112\114\111\112\101\114\116\105\101\115\124\112\114\111\116\111\116\121\112\101\32\99\101\108\108\124\112\117\108\108\115\32\100\111\119\110\124\114\97\116\101\124\114\101\108\101\97\115\101\100\32\119\104\101\110\32\99\108\111\115\101\100\124\114\101\112\101\97\116\101\100\124\114\101\113\117\101\115\116\101\100\32\112\114\105\110\116\32\116\105\109\101\124\114\101\113\117\105\114\101\100\32\102\105\108\101\32\116\121\112\101\124\114\101\115\105\122\97\98\108\101\124\114\101\115\105\122\101\100\32\99\111\108\117\109\110\124\114\101\115\111\117\114\99\101\32\112\97\116\104\124\114\101\116\117\114\110\115\32\114\101\99\111\114\100\115\124\114\101\117\115\101\115\32\99\111\108\117\109\110\115\124\114\105\99\104\32\116\101\120\116\124\114\111\108\108\32\111\118\101\114\124\114\111\119\32\104\101\105\103\104\116\124\114\117\108\101\114\115\32\118\105\115\105\98\108\101\124\115\97\118\101\32\112\97\110\101\108\124\115\99\114\105\112\116\115\32\112\97\116\104\124\115\99\114\111\108\108\97\98\108\101\124\115\101\108\101\99\116\97\98\108\101\40\32\105\100\101\110\116\105\102\105\101\114\115\41\63\124\115\101\108\101\99\116\101\100\32\99\101\108\108\124\115\101\108\101\99\116\101\100\40\32\100\97\116\97\41\63\32\99\111\108\117\109\110\115\63\124\115\101\108\101\99\116\101\100\32\100\97\116\97\32\105\116\101\109\115\63\124\115\101\108\101\99\116\101\100\40\32\100\97\116\97\41\63\32\114\111\119\115\63\124\115\101\108\101\99\116\101\100\32\105\116\101\109\32\105\100\101\110\116\105\102\105\101\114\124\115\101\108\101\99\116\105\111\110\32\98\121\32\114\101\99\116\124\115\101\110\100\32\97\99\116\105\111\110\32\111\110\32\97\114\114\111\119\32\107\101\121\124\115\101\110\100\115\32\97\99\116\105\111\110\32\119\104\101\110\32\100\111\110\101\32\101\100\105\116\105\110\103\124\115\101\112\97\114\97\116\101\115\32\99\111\108\117\109\110\115\124\115\101\112\97\114\97\116\111\114\32\105\116\101\109\124\115\101\113\117\101\110\99\101\32\110\117\109\98\101\114\124\115\101\114\118\105\99\101\115\32\109\101\110\117\124\115\104\97\114\101\100\32\102\114\97\109\101\119\111\114\107\115\32\112\97\116\104\124\115\104\97\114\101\100\32\115\117\112\112\111\114\116\32\112\97\116\104\124\115\104\101\101\116\124\115\104\105\102\116\32\107\101\121\32\100\111\119\110\124\115\104\111\119\115\32\97\108\112\104\97\124\115\104\111\119\115\32\115\116\97\116\101\32\98\121\124\115\105\122\101\40\32\109\111\100\101\41\63\124\115\109\97\114\116\32\105\110\115\101\114\116\32\100\101\108\101\116\101\32\101\110\97\98\108\101\100\124\115\111\114\116\32\99\97\115\101\32\115\101\110\115\105\116\105\118\105\116\121\124\115\111\114\116\32\99\111\108\117\109\110\124\115\111\114\116\32\111\114\100\101\114\124\115\111\114\116\32\116\121\112\101\124\115\111\114\116\101\100\40\32\100\97\116\97\32\114\111\119\115\41\63\124\115\111\117\110\100\124\115\111\117\114\99\101\40\32\109\97\115\107\41\63\124\115\112\101\108\108\32\99\104\101\99\107\105\110\103\32\101\110\97\98\108\101\100\124\115\116\97\114\116\105\110\103\32\112\97\103\101\124\115\116\97\116\101\124\115\116\114\105\110\103\32\118\97\108\117\101\124\115\117\98\32\109\101\110\117\124\115\117\112\101\114\32\109\101\110\117\124\115\117\112\101\114\32\118\105\101\119\124\116\97\98\32\107\101\121\32\116\114\97\118\101\114\115\101\115\32\99\101\108\108\115\124\116\97\98\32\115\116\97\116\101\124\116\97\98\32\116\121\112\101\124\116\97\98\32\118\105\101\119\124\116\97\98\108\101\32\118\105\101\119\124\116\97\103\124\116\97\114\103\101\116\40\32\112\114\105\110\116\101\114\41\63\124\116\101\120\116\32\99\111\108\111\114\124\116\101\120\116\32\99\111\110\116\97\105\110\101\114\32\105\110\115\101\114\116\124\116\101\120\116\32\99\111\110\116\97\105\110\101\114\32\111\114\105\103\105\110\124\116\101\120\116\32\114\101\116\117\114\110\101\100\124\116\105\99\107\32\109\97\114\107\32\112\111\115\105\116\105\111\110\124\116\105\109\101\32\115\116\97\109\112\124\116\105\116\108\101\40\100\124\32\40\99\101\108\108\124\102\111\110\116\124\104\101\105\103\104\116\124\112\111\115\105\116\105\111\110\124\114\101\99\116\41\41\63\124\116\111\111\108\32\116\105\112\124\116\111\111\108\98\97\114\124\116\114\97\105\108\105\110\103\32\111\102\102\115\101\116\124\116\114\97\110\115\112\97\114\101\110\116\124\116\114\101\97\116\32\112\97\99\107\97\103\101\115\32\97\115\32\100\105\114\101\99\116\111\114\105\101\115\124\116\114\117\110\99\97\116\101\100\32\108\97\98\101\108\115\124\116\121\112\101\115\124\117\110\109\111\100\105\102\105\101\100\32\99\104\97\114\97\99\116\101\114\115\124\117\112\100\97\116\101\32\118\105\101\119\115\124\117\115\101\32\115\111\114\116\32\105\110\100\105\99\97\116\111\114\124\117\115\101\114\32\100\101\102\97\117\108\116\115\124\117\115\101\115\32\100\97\116\97\32\115\111\117\114\99\101\124\117\115\101\115\32\114\117\108\101\114\124\117\115\101\115\32\116\104\114\101\97\100\101\100\32\97\110\105\109\97\116\105\111\110\124\117\115\101\115\32\116\105\116\108\101\32\102\114\111\109\32\112\114\101\118\105\111\117\115\32\99\111\108\117\109\110\124\118\97\108\117\101\32\119\114\97\112\115\124\118\101\114\115\105\111\110\124\118\101\114\116\105\99\97\108\40\32\40\108\105\110\101\32\115\99\114\111\108\108\124\112\97\103\101\32\115\99\114\111\108\108\124\114\117\108\101\114\32\118\105\101\119\41\41\63\124\118\101\114\116\105\99\97\108\108\121\32\114\101\115\105\122\97\98\108\101\124\118\105\101\119\124\118\105\115\105\98\108\101\40\32\100\111\99\117\109\101\110\116\32\114\101\99\116\41\63\124\118\111\108\117\109\101\124\119\105\100\116\104\124\119\105\110\100\111\119\124\119\105\110\100\111\119\115\32\109\101\110\117\124\119\114\97\112\115\124\122\111\111\109\97\98\108\101\124\122\111\111\109\101\100\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")-    , tok "\92\98\40\97\99\116\105\111\110\32\99\101\108\108\124\97\108\101\114\116\32\114\101\112\108\121\124\97\112\112\108\105\99\97\116\105\111\110\124\98\111\120\124\98\114\111\119\115\101\114\40\32\99\101\108\108\41\63\124\98\117\110\100\108\101\124\98\117\116\116\111\110\40\32\99\101\108\108\41\63\124\99\101\108\108\124\99\108\105\112\32\118\105\101\119\124\99\111\108\111\114\32\119\101\108\108\124\99\111\108\111\114\45\112\97\110\101\108\124\99\111\109\98\111\32\98\111\120\40\32\105\116\101\109\41\63\124\99\111\110\116\114\111\108\124\100\97\116\97\40\32\40\99\101\108\108\124\99\111\108\117\109\110\124\105\116\101\109\124\114\111\119\124\115\111\117\114\99\101\41\41\63\124\100\101\102\97\117\108\116\32\101\110\116\114\121\124\100\105\97\108\111\103\32\114\101\112\108\121\124\100\111\99\117\109\101\110\116\124\100\114\97\103\32\105\110\102\111\124\100\114\97\119\101\114\124\101\118\101\110\116\124\102\111\110\116\40\45\112\97\110\101\108\41\63\124\102\111\114\109\97\116\116\101\114\124\105\109\97\103\101\40\32\40\99\101\108\108\124\118\105\101\119\41\41\63\124\109\97\116\114\105\120\124\109\101\110\117\40\32\105\116\101\109\41\63\124\105\116\101\109\124\109\111\118\105\101\40\32\118\105\101\119\41\63\124\111\112\101\110\45\112\97\110\101\108\124\111\117\116\108\105\110\101\32\118\105\101\119\124\112\97\110\101\108\124\112\97\115\116\101\98\111\97\114\100\124\112\108\117\103\105\110\124\112\111\112\117\112\32\98\117\116\116\111\110\124\112\114\111\103\114\101\115\115\32\105\110\100\105\99\97\116\111\114\124\114\101\115\112\111\110\100\101\114\124\115\97\118\101\45\112\97\110\101\108\124\115\99\114\111\108\108\32\118\105\101\119\124\115\101\99\117\114\101\32\116\101\120\116\32\102\105\101\108\100\40\32\99\101\108\108\41\63\124\115\108\105\100\101\114\124\115\111\117\110\100\124\115\112\108\105\116\32\118\105\101\119\124\115\116\101\112\112\101\114\124\116\97\98\32\118\105\101\119\40\32\105\116\101\109\41\63\124\116\97\98\108\101\40\32\40\99\111\108\117\109\110\124\104\101\97\100\101\114\32\99\101\108\108\124\104\101\97\100\101\114\32\118\105\101\119\124\118\105\101\119\41\41\124\116\101\120\116\40\32\40\102\105\101\108\100\40\32\99\101\108\108\41\63\124\118\105\101\119\41\41\63\124\116\111\111\108\98\97\114\40\32\105\116\101\109\41\63\124\117\115\101\114\45\100\101\102\97\117\108\116\115\124\118\105\101\119\124\119\105\110\100\111\119\41\115\63\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\98\40\97\110\105\109\97\116\101\124\97\112\112\101\110\100\124\99\97\108\108\32\109\101\116\104\111\100\124\99\101\110\116\101\114\124\99\108\111\115\101\32\100\114\97\119\101\114\124\99\108\111\115\101\32\112\97\110\101\108\124\100\105\115\112\108\97\121\124\100\105\115\112\108\97\121\32\97\108\101\114\116\124\100\105\115\112\108\97\121\32\100\105\97\108\111\103\124\100\105\115\112\108\97\121\32\112\97\110\101\108\124\103\111\124\104\105\100\101\124\104\105\103\104\108\105\103\104\116\124\105\110\99\114\101\109\101\110\116\124\105\116\101\109\32\102\111\114\124\108\111\97\100\32\105\109\97\103\101\124\108\111\97\100\32\109\111\118\105\101\124\108\111\97\100\32\110\105\98\124\108\111\97\100\32\112\97\110\101\108\124\108\111\97\100\32\115\111\117\110\100\124\108\111\99\97\108\105\122\101\100\32\115\116\114\105\110\103\124\108\111\99\107\32\102\111\99\117\115\124\108\111\103\124\111\112\101\110\32\100\114\97\119\101\114\124\112\97\116\104\32\102\111\114\124\112\97\117\115\101\124\112\101\114\102\111\114\109\32\97\99\116\105\111\110\124\112\108\97\121\124\114\101\103\105\115\116\101\114\124\114\101\115\117\109\101\124\115\99\114\111\108\108\124\115\101\108\101\99\116\40\32\97\108\108\41\63\124\115\104\111\119\124\115\105\122\101\32\116\111\32\102\105\116\124\115\116\97\114\116\124\115\116\101\112\32\98\97\99\107\124\115\116\101\112\32\102\111\114\119\97\114\100\124\115\116\111\112\124\115\121\110\99\104\114\111\110\105\122\101\124\117\110\108\111\99\107\32\102\111\99\117\115\124\117\112\100\97\116\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\98\40\40\105\110\32\41\63\98\97\99\107\32\111\102\124\40\105\110\32\41\63\102\114\111\110\116\32\111\102\124\91\48\45\57\93\43\40\115\116\124\110\100\124\114\100\124\116\104\41\124\102\105\114\115\116\124\115\101\99\111\110\100\124\116\104\105\114\100\124\102\111\117\114\116\104\124\102\105\102\116\104\124\115\105\120\116\104\124\115\101\118\101\110\116\104\124\101\105\103\104\116\104\124\110\105\110\116\104\124\116\101\110\116\104\124\97\102\116\101\114\124\98\97\99\107\124\98\101\102\111\114\101\124\98\101\104\105\110\100\124\101\118\101\114\121\124\102\114\111\110\116\124\105\110\100\101\120\124\108\97\115\116\124\109\105\100\100\108\101\124\115\111\109\101\124\116\104\97\116\124\116\104\114\111\117\103\104\124\116\104\114\117\124\119\104\101\114\101\124\119\104\111\115\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\92\98\40\91\97\45\122\65\45\90\93\92\119\42\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\45\43\93\63\40\92\100\43\92\46\92\100\42\124\92\100\42\92\46\92\100\43\41\40\69\91\45\43\93\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\45\43\93\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "\172\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "'s\\s+" (Arbitrary "Text")+    , tok "(--|#).*?$" (Arbitrary "Comment")+    , tokNext "\\(\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo comment')+    , tok "[\\(\\){}!,.:]" (Arbitrary "Punctuation")+    , tok "(\171)([^\187]+)(\187)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Text")])+    , tok "\\b((?:considering|ignoring)\\s*)(application responses|case|diacriticals|hyphens|numeric strings|punctuation|white space)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Builtin")])+    , tok "(-|\\*|\\+|&|\8800|>=?|<=?|=|\8805|\8804|/|\247|\\^)" (Arbitrary "Operator")+    , tok "\\b(and|or|is equal|equals|(is )?equal to|is not|isn't|isn't equal( to)?|is not equal( to)?|doesn't equal|does not equal|(is )?greater than|comes after|is not less than or equal( to)?|isn't less than or equal( to)?|(is )?less than|comes before|is not greater than or equal( to)?|isn't greater than or equal( to)?|(is  )?greater than or equal( to)?|is not less than|isn't less than|does not come before|doesn't come before|(is )?less than or equal( to)?|is not greater than|isn't greater than|does not come after|doesn't come after|starts? with|begins? with|ends? with|contains?|does not contain|doesn't contain|is in|is contained by|is not in|is not contained by|isn't contained by|div|mod|not|(a  )?(ref( to)?|reference to)|is|does)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "^(\\s*(?:on|end)\\s+)(accept outline drop|accept table drop|action|activated|alert ended|awake from nib|became key|became main|begin editing|bounds changed|cell value|cell value changed|change cell value|change item value|changed|child of item|choose menu item|clicked|clicked toolbar item|closed|column clicked|column moved|column resized|conclude drop|data representation|deminiaturized|dialog ended|document nib name|double clicked|drag( (entered|exited|updated))?|drop|end editing|exposed|idle|item expandable|item value|item value changed|items changed|keyboard down|keyboard up|launched|load data representation|miniaturized|mouse down|mouse dragged|mouse entered|mouse exited|mouse moved|mouse up|moved|number of browser rows|number of items|number of rows|open untitled|opened|panel ended|parameters updated|plugin loaded|prepare drop|prepare outline drag|prepare outline drop|prepare table drag|prepare table drop|read from file|resigned active|resigned key|resigned main|resized( sub views)?|right mouse down|right mouse dragged|right mouse up|rows changed|scroll wheel|selected tab view item|selection changed|selection changing|should begin editing|should close|should collapse item|should end editing|should expand item|should open( untitled)?|should quit( after last window closed)?|should select column|should select item|should select row|should select tab view item|should selection change|should zoom|shown|update menu item|update parameters|update toolbar item|was hidden|was miniaturized|will become active|will close|will dismiss|will display browser cell|will display cell|will display item cell|will display outline cell|will finish launching|will hide|will miniaturize|will move|will open|will pop up|will quit|will resign active|will resize( sub views)?|will select tab view item|will show|will zoom|write to file|zoomed)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "^(\\s*)(in|on|script|to)(\\s+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text")])+    , tok "\\b(as )(alias |application |boolean |class |constant |date |file |integer |list |number |POSIX file |real |record |reference |RGB color |script |text |unit types|(Unicode )?text|string)\\b" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok "\\b(AppleScript|current application|false|linefeed|missing value|pi|quote|result|return|space|tab|text item delimiters|true|version)\\b" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\\b(ASCII (character|number)|activate|beep|choose URL|choose application|choose color|choose file( name)?|choose folder|choose from list|choose remote application|clipboard info|close( access)?|copy|count|current date|delay|delete|display (alert|dialog)|do shell script|duplicate|exists|get eof|get volume settings|info for|launch|list (disks|folder)|load script|log|make|mount volume|new|offset|open( (for access|location))?|path to|print|quit|random number|read|round|run( script)?|say|scripting components|set (eof|the clipboard to|volume)|store script|summarize|system attribute|system info|the clipboard|time to GMT|write|quoted form)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\b(considering|else|error|exit|from|if|ignoring|in|repeat|tell|then|times|to|try|until|using terms from|while|whith|with timeout( of)?|with transaction|by|continue|end|its?|me|my|return|of|as)\\b" (Arbitrary "Keyword")+    , tok "\\b(global|local|prop(erty)?|set|get)\\b" (Arbitrary "Keyword")+    , tok "\\b(but|put|returning|the)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\b(attachment|attribute run|character|day|month|paragraph|word|year)s?\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\b(about|above|against|apart from|around|aside from|at|below|beneath|beside|between|for|given|instead of|on|onto|out of|over|since)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\b(accepts arrow key|action method|active|alignment|allowed identifiers|allows branch selection|allows column reordering|allows column resizing|allows column selection|allows customization|allows editing text attributes|allows empty selection|allows mixed state|allows multiple selection|allows reordering|allows undo|alpha( value)?|alternate image|alternate increment value|alternate title|animation delay|associated file name|associated object|auto completes|auto display|auto enables items|auto repeat|auto resizes( outline column)?|auto save expanded items|auto save name|auto save table columns|auto saves configuration|auto scroll|auto sizes all columns to fit|auto sizes cells|background color|bezel state|bezel style|bezeled|border rect|border type|bordered|bounds( rotation)?|box type|button returned|button type|can choose directories|can choose files|can draw|can hide|cell( (background color|size|type))?|characters|class|click count|clicked( data)? column|clicked data item|clicked( data)? row|closeable|collating|color( (mode|panel))|command key down|configuration|content(s| (size|view( margins)?))?|context|continuous|control key down|control size|control tint|control view|controller visible|coordinate system|copies( on scroll)?|corner view|current cell|current column|current( field)?  editor|current( menu)? item|current row|current tab view item|data source|default identifiers|delta (x|y|z)|destination window|directory|display mode|displayed cell|document( (edited|rect|view))?|double value|dragged column|dragged distance|dragged items|draws( cell)? background|draws grid|dynamically scrolls|echos bullets|edge|editable|edited( data)? column|edited data item|edited( data)? row|enabled|enclosing scroll view|ending page|error handling|event number|event type|excluded from windows menu|executable path|expanded|fax number|field editor|file kind|file name|file type|first responder|first visible column|flipped|floating|font( panel)?|formatter|frameworks path|frontmost|gave up|grid color|has data items|has horizontal ruler|has horizontal scroller|has parent data item|has resize indicator|has shadow|has sub menu|has vertical ruler|has vertical scroller|header cell|header view|hidden|hides when deactivated|highlights by|horizontal line scroll|horizontal page scroll|horizontal ruler view|horizontally resizable|icon image|id|identifier|ignores multiple clicks|image( (alignment|dims when disabled|frame style|scaling))?|imports graphics|increment value|indentation per level|indeterminate|index|integer value|intercell spacing|item height|key( (code|equivalent( modifier)?|window))?|knob thickness|label|last( visible)? column|leading offset|leaf|level|line scroll|loaded|localized sort|location|loop mode|main( (bunde|menu|window))?|marker follows cell|matrix mode|maximum( content)? size|maximum visible columns|menu( form representation)?|miniaturizable|miniaturized|minimized image|minimized title|minimum column width|minimum( content)? size|modal|modified|mouse down state|movie( (controller|file|rect))?|muted|name|needs display|next state|next text|number of tick marks|only tick mark values|opaque|open panel|option key down|outline table column|page scroll|pages across|pages down|palette label|pane splitter|parent data item|parent window|pasteboard|path( (names|separator))?|playing|plays every frame|plays selection only|position|preferred edge|preferred type|pressure|previous text|prompt|properties|prototype cell|pulls down|rate|released when closed|repeated|requested print time|required file type|resizable|resized column|resource path|returns records|reuses columns|rich text|roll over|row height|rulers visible|save panel|scripts path|scrollable|selectable( identifiers)?|selected cell|selected( data)? columns?|selected data items?|selected( data)? rows?|selected item identifier|selection by rect|send action on arrow key|sends action when done editing|separates columns|separator item|sequence number|services menu|shared frameworks path|shared support path|sheet|shift key down|shows alpha|shows state by|size( mode)?|smart insert delete enabled|sort case sensitivity|sort column|sort order|sort type|sorted( data rows)?|sound|source( mask)?|spell checking enabled|starting page|state|string value|sub menu|super menu|super view|tab key traverses cells|tab state|tab type|tab view|table view|tag|target( printer)?|text color|text container insert|text container origin|text returned|tick mark position|time stamp|title(d| (cell|font|height|position|rect))?|tool tip|toolbar|trailing offset|transparent|treat packages as directories|truncated labels|types|unmodified characters|update views|use sort indicator|user defaults|uses data source|uses ruler|uses threaded animation|uses title from previous column|value wraps|version|vertical( (line scroll|page scroll|ruler view))?|vertically resizable|view|visible( document rect)?|volume|width|window|windows menu|wraps|zoomable|zoomed)\\b" (Arbitrary "Name" :. Arbitrary "Attribute")+    , tok "\\b(action cell|alert reply|application|box|browser( cell)?|bundle|button( cell)?|cell|clip view|color well|color-panel|combo box( item)?|control|data( (cell|column|item|row|source))?|default entry|dialog reply|document|drag info|drawer|event|font(-panel)?|formatter|image( (cell|view))?|matrix|menu( item)?|item|movie( view)?|open-panel|outline view|panel|pasteboard|plugin|popup button|progress indicator|responder|save-panel|scroll view|secure text field( cell)?|slider|sound|split view|stepper|tab view( item)?|table( (column|header cell|header view|view))|text( (field( cell)?|view))?|toolbar( item)?|user-defaults|view|window)s?\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\b(animate|append|call method|center|close drawer|close panel|display|display alert|display dialog|display panel|go|hide|highlight|increment|item for|load image|load movie|load nib|load panel|load sound|localized string|lock focus|log|open drawer|path for|pause|perform action|play|register|resume|scroll|select( all)?|show|size to fit|start|step back|step forward|stop|synchronize|unlock focus|update)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\b((in )?back of|(in )?front of|[0-9]+(st|nd|rd|th)|first|second|third|fourth|fifth|sixth|seventh|eighth|ninth|tenth|after|back|before|behind|every|front|index|last|middle|some|that|through|thru|where|whose)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "\\b([a-zA-Z]\\w*)\\b" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[-+]?(\\d+\\.\\d*|\\d*\\.\\d+)(E[-+][0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[-+]?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ] 
src/Text/Highlighter/Lexers/Asymptote.hs view
@@ -5,10 +5,10 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\115\121\109\112\116\111\116\101"-    , lAliases = ["\97\115\121", "\97\115\121\109\112\116\111\116\101"]-    , lExtensions = ["\46\97\115\121"]-    , lMimetypes = ["\116\101\120\116\47\120\45\97\115\121\109\112\116\111\116\101"]+    { lName = "Asymptote"+    , lAliases = ["asy", "asymptote"]+    , lExtensions = [".asy"]+    , lMimetypes = ["text/x-asymptote"]     , lStart = root'     , lFlags = [multiline]     }@@ -17,63 +17,63 @@ function' =     [ anyOf whitespace'     , anyOf statements'-    , tok "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok ";" (Arbitrary "Punctuation")+    , tokNext "{" (Arbitrary "Punctuation") Push+    , tokNext "}" (Arbitrary "Punctuation") Pop     ]  statements' :: TokenMatcher statements' =-    [ tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\41\91\101\69\93\91\43\45\93\63\92\100\43\91\108\76\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\91\102\70\93\41\91\102\70\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\48\45\55\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\92\100\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\126\33\37\94\38\42\43\61\124\63\58\60\62\47\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\40\41\92\91\92\93\44\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\98\40\99\97\115\101\41\40\46\43\63\41\40\58\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Using lexer), (Arbitrary "\84\101\120\116")])-    , tok "\40\97\110\100\124\99\111\110\116\114\111\108\115\124\116\101\110\115\105\111\110\124\97\116\108\101\97\115\116\124\99\117\114\108\124\105\102\124\101\108\115\101\124\119\104\105\108\101\124\102\111\114\124\100\111\124\114\101\116\117\114\110\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\115\116\114\117\99\116\124\116\121\112\101\100\101\102\124\110\101\119\124\97\99\99\101\115\115\124\105\109\112\111\114\116\124\117\110\114\97\118\101\108\124\102\114\111\109\124\105\110\99\108\117\100\101\124\113\117\111\116\101\124\115\116\97\116\105\99\124\112\117\98\108\105\99\124\112\114\105\118\97\116\101\124\114\101\115\116\114\105\99\116\101\100\124\116\104\105\115\124\101\120\112\108\105\99\105\116\124\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\124\99\121\99\108\101\124\110\101\119\102\114\97\109\101\124\111\112\101\114\97\116\111\114\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\66\114\97\105\100\124\70\105\116\82\101\115\117\108\116\124\76\97\98\101\108\124\76\101\103\101\110\100\124\84\114\101\101\78\111\100\101\124\97\98\115\99\105\115\115\97\124\97\114\99\124\97\114\114\111\119\104\101\97\100\124\98\105\110\97\114\121\116\114\101\101\124\98\105\110\97\114\121\116\114\101\101\78\111\100\101\124\98\108\111\99\107\124\98\111\111\108\124\98\111\111\108\51\124\98\111\117\110\100\115\124\98\113\101\124\99\105\114\99\108\101\124\99\111\110\105\99\124\99\111\111\114\100\124\99\111\111\114\100\115\121\115\124\99\112\117\116\105\109\101\124\101\108\108\105\112\115\101\124\102\105\108\101\124\102\105\108\108\116\121\112\101\124\102\114\97\109\101\124\103\114\105\100\51\124\103\117\105\100\101\124\104\111\114\110\101\114\124\104\115\118\124\104\121\112\101\114\98\111\108\97\124\105\110\100\101\120\101\100\84\114\97\110\115\102\111\114\109\124\105\110\116\124\105\110\118\101\114\115\105\111\110\124\107\101\121\124\108\105\103\104\116\124\108\105\110\101\124\108\105\110\101\102\105\116\124\109\97\114\103\105\110\84\124\109\97\114\107\101\114\124\109\97\115\115\124\111\98\106\101\99\116\124\112\97\105\114\124\112\97\114\97\98\111\108\97\124\112\97\116\104\124\112\97\116\104\51\124\112\101\110\124\112\105\99\116\117\114\101\124\112\111\105\110\116\124\112\111\115\105\116\105\111\110\124\112\114\111\106\101\99\116\105\111\110\124\114\101\97\108\124\114\101\118\111\108\117\116\105\111\110\124\115\99\97\108\101\84\124\115\99\105\101\110\116\105\102\105\99\124\115\101\103\109\101\110\116\124\115\105\100\101\124\115\108\105\99\101\124\115\112\108\105\116\102\97\99\101\124\115\116\114\105\110\103\124\115\117\114\102\97\99\101\124\116\101\110\115\105\111\110\83\112\101\99\105\102\105\101\114\124\116\105\99\107\108\111\99\97\116\101\124\116\105\99\107\115\103\114\105\100\84\124\116\105\99\107\118\97\108\117\101\115\124\116\114\97\110\115\102\111\114\109\124\116\114\97\110\115\102\111\114\109\97\116\105\111\110\124\116\114\101\101\124\116\114\105\97\110\103\108\101\124\116\114\105\108\105\110\101\97\114\124\116\114\105\112\108\101\124\118\101\99\116\111\114\124\118\101\114\116\101\120\124\118\111\105\100\41\40\63\61\40\91\32\93\123\49\44\125\91\97\45\122\65\45\90\93\41\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\66\114\97\105\100\124\70\105\116\82\101\115\117\108\116\124\84\114\101\101\78\111\100\101\124\97\98\115\99\105\115\115\97\124\97\114\114\111\119\104\101\97\100\124\98\108\111\99\107\124\98\111\111\108\124\98\111\111\108\51\124\98\111\117\110\100\115\124\99\111\111\114\100\124\102\114\97\109\101\124\103\117\105\100\101\124\104\111\114\110\101\114\124\105\110\116\124\108\105\110\101\102\105\116\124\109\97\114\103\105\110\84\124\112\97\105\114\124\112\101\110\124\112\105\99\116\117\114\101\124\112\111\115\105\116\105\111\110\124\114\101\97\108\124\114\101\118\111\108\117\116\105\111\110\124\115\108\105\99\101\124\115\112\108\105\116\102\97\99\101\124\116\105\99\107\115\103\114\105\100\84\124\116\105\99\107\118\97\108\117\101\115\124\116\114\101\101\124\116\114\105\112\108\101\124\118\101\114\116\101\120\124\118\111\105\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\58\40\63\33\58\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")+    [ tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+[lL]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\d+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[\126!%^&*+=|?:<>/-]" (Arbitrary "Operator")+    , tok "[()\\[\\],.]" (Arbitrary "Punctuation")+    , tok "\\b(case)(.+?)(:)" (ByGroups [(Arbitrary "Keyword"), (Using lexer), (Arbitrary "Text")])+    , tok "(and|controls|tension|atleast|curl|if|else|while|for|do|return|break|continue|struct|typedef|new|access|import|unravel|from|include|quote|static|public|private|restricted|this|explicit|true|false|null|cycle|newframe|operator)\\b" (Arbitrary "Keyword")+    , tok "(Braid|FitResult|Label|Legend|TreeNode|abscissa|arc|arrowhead|binarytree|binarytreeNode|block|bool|bool3|bounds|bqe|circle|conic|coord|coordsys|cputime|ellipse|file|filltype|frame|grid3|guide|horner|hsv|hyperbola|indexedTransform|int|inversion|key|light|line|linefit|marginT|marker|mass|object|pair|parabola|path|path3|pen|picture|point|position|projection|real|revolution|scaleT|scientific|segment|side|slice|splitface|string|surface|tensionSpecifier|ticklocate|ticksgridT|tickvalues|transform|transformation|tree|triangle|trilinear|triple|vector|vertex|void)(?=([ ]{1,}[a-zA-Z]))" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(Braid|FitResult|TreeNode|abscissa|arrowhead|block|bool|bool3|bounds|coord|frame|guide|horner|int|linefit|marginT|pair|pen|picture|position|real|revolution|slice|splitface|ticksgridT|tickvalues|tree|triple|vertex|void)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*:(?!:)" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\92\110\124\40\46\124\92\110\41\42\63\91\94\92\92\93\92\110\41" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "//(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment")     ]  statement' :: TokenMatcher statement' =     [ anyOf whitespace'     , anyOf statements'-    , tok "\91\123\125\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "[{}]" (Arbitrary "Punctuation")+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tokNext "\40\40\63\58\91\97\45\122\65\45\90\48\45\57\95\42\92\115\93\41\43\63\40\63\58\92\115\124\91\42\93\41\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\92\40\91\94\59\93\42\63\92\41\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\43\41\40\123\41" (ByGroups [(Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Using lexer), (Using lexer), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo function')-    , tok "\40\40\63\58\91\97\45\122\65\45\90\48\45\57\95\42\92\115\93\41\43\63\40\63\58\92\115\124\91\42\93\41\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\92\40\91\94\59\93\42\63\92\41\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\43\41\40\59\41" (ByGroups [(Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Using lexer), (Using lexer), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "" (Arbitrary "\84\101\120\116") (GoTo statement')+    , tokNext "((?:[a-zA-Z0-9_*\\s])+?(?:\\s|[*]))([a-zA-Z_][a-zA-Z0-9_]*)(\\s*\\([^;]*?\\))((?:\\s|//.*?\\n|/[*].*?[*]/)+)({)" (ByGroups [(Using lexer), (Arbitrary "Name" :. Arbitrary "Function"), (Using lexer), (Using lexer), (Arbitrary "Punctuation")]) (GoTo function')+    , tok "((?:[a-zA-Z0-9_*\\s])+?(?:\\s|[*]))([a-zA-Z_][a-zA-Z0-9_]*)(\\s*\\([^;]*?\\))((?:\\s|//.*?\\n|/[*].*?[*]/)+)(;)" (ByGroups [(Using lexer), (Arbitrary "Name" :. Arbitrary "Function"), (Using lexer), (Using lexer), (Arbitrary "Punctuation")])+    , tokNext "" (Arbitrary "Text") (GoTo statement')     ]  string' :: TokenMatcher string' =-    [ tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\63\93\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\44\52\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\94\92\92\39\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\'?]|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[^\\\\'\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ] 
src/Text/Highlighter/Lexers/Atomo.hs view
@@ -2,6 +2,7 @@  import Data.List (intercalate) import Text.Printf+import Text.Regex.PCRE.Light  import Text.Highlighter.Types @@ -13,7 +14,7 @@     , lExtensions = [".atomo"]     , lMimetypes = ["text/x-atomo"]     , lStart = root-    , lFlags = []+    , lFlags = [multiline]     }  ascii :: [String]@@ -27,42 +28,54 @@ reserved = ["operator", "macro", "for-macro", "this"]  identifier :: String-identifier = "[a-zA-Z0-9_:!#%&\\*\\+\\.\\\\/<=>\\?@^\\|~\\-]"+identifier = "[a-zA-Z0-9_!#%&\\*\\+\\.\\\\/<=>\\?@^\\|~\\-]"  operator :: String operator = "[:!#%&\\*\\+\\.\\\\/<=>\\?@^\\|~\\-]"  root :: TokenMatcher root =-    -- Whitespace:-    [ tok "\\s+" Text-    , tok "--.*?$" (Comment :. Single)+    -- Comments+    [ tok "--.*?$" (Comment :. Single)     , tokNext "{-" (Comment :. Multiline) (GoTo comment) +    -- Boolean+    , tok "True|False" (Keyword :. Constant)++    -- Numbers+    , tok "[\\+\\-]?\\d+[eE][\\+\\-]?\\d+" (Number :. Float)+    , tok "[\\+\\-]?\\d+\\.\\d+([eE][\\+\\-]?\\d+)?" (Number :. Float)+    , tok "[\\+\\-]?0[oO][0-7]+" (Number :. Oct)+    , tok "[\\+\\-]?0[xX][\\da-fA-F]+" (Number :. Hex)+    , tok "[\\+\\-]?\\d+/[\\+\\-]?\\d+" Number+    , tok "[\\+\\-]?\\d+" (Number :. Integer)++    -- Internal representations (TODO: these should get less ambiguous syntax.)+    , tokNext "<[a-z]" (Generic :. Output) (GoTo internal)++    -- Macro-Quote+    , tokNext ("(?![\"$|`;~@])(" ++ identifier ++ "+)([\"$|`'~@])") (String :. Other) (CapturesTo macroQuote)+    , tokNext ("(?![\"$|`;~@])(" ++ identifier ++ "+)\\(") (String :. Other) (GoTo (macroQuoteDelim "\\)"))+    , tokNext ("(?![\"$|`;~@])(" ++ identifier ++ "+)\\{") (String :. Other) (GoTo (macroQuoteDelim "\\}"))+    , tokNext ("(?![\"$|`;~@])(" ++ identifier ++ "+)\\[") (String :. Other) (GoTo (macroQuoteDelim "\\]"))+     -- Identifiers     , tok (printf "\\b(%s)\\b(?!%s)" (intercalate "|" reserved) operator)         (Keyword :. Reserved)-    , tok ("[_a-z]" ++ identifier ++ "*:") (Name :. Function)-    , tok ("[_a-z]" ++ identifier ++ "*") Name-    , tok ("[A-Z]" ++ identifier ++ "*") (Keyword :. Type)+    , tok ("(?![@$~])(?!" ++ operator ++ "+(\\s|$))" ++ identifier ++ "+:") (Name :. Function)+    {-, tok ("[A-Z]" ++ identifier ++ "*") (Name :. Variable :. Global)-}+    , tok ("(?![@$~])(?!" ++ operator ++ "+(\\s|$))" ++ identifier ++ "+") Name      -- Operators     , tok ("(?![@$~])" ++ operator ++ "+") Operator -    -- Numbers-    , tok "\\d+[eE][\\+\\-]?\\d+" (Number :. Float)-    , tok "\\d+\\.\\d+([eE][\\+\\-]?\\d+)?" (Number :. Float)-    , tok "0[oO][0-7]+" (Number :. Oct)-    , tok "0[xX][\\da-fA-F]+" (Number :. Hex)-    , tok "\\d+" (Number :. Integer)+    -- Whitespace+    , tok "\\s+" Text      -- Characters & Strings     , tokNext "\\$" (String :. Char) (GoTo character)     , tokNext "\"" String (GoTo string) -    -- Boolean-    , tok "True|False" (Keyword :. Constant)-     -- Quoting     , tok ("'" ++ identifier ++ "+") (String :. Symbol)     , tok "'" (String :. Symbol)@@ -72,6 +85,7 @@     , tok "~" (String :. Interpol)      -- Particles+    , tok ("@(" ++ identifier ++ "+:)+") (Name :. Decorator)     , tok ("@" ++ identifier ++ "+") (Name :. Decorator)     , tok "@" (Name :. Decorator) @@ -79,6 +93,13 @@     , tok "[][(),;{}|]" Punctuation     ] +internal :: TokenMatcher+internal =+    [ tok "[^<>]+" (Generic :. Output)+    , tokNext "<" (Generic :. Output) Push+    , tokNext ">" (Generic :. Output) Pop+    ]+ comment :: TokenMatcher comment =     [ tok "[^\\-\\{\\}]+" (Comment :. Multiline)@@ -98,6 +119,20 @@     [ tok "[^\\\\\"]+" String     , tokNext "\\\\" (String :. Escape) (GoTo escape)     , tokNext "\"" String Pop+    ]++macroQuoteDelim :: String -> TokenMatcher+macroQuoteDelim c =+    [ tok ("[^\\\\" ++ c ++ "]+") (String :. Other)+    , tokNext "\\\\." (String :. Other) Continue+    , tokNext (c ++ "([[:alpha:]]*)") (String :. Other) Pop+    ]++macroQuote :: [String] -> TokenMatcher+macroQuote cs =+    [ tok ("[^\\\\" ++ (cs !! 2) ++ "]+") (String :. Other)+    , tokNext "\\\\." (String :. Other) Continue+    , tokNext ((cs !! 2) ++ "([[:alpha:]]*)") (String :. Other) Pop     ]  escape :: TokenMatcher
+ src/Text/Highlighter/Lexers/Autohotkey.hs view
@@ -0,0 +1,146 @@+module Text.Highlighter.Lexers.Autohotkey (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "autohotkey"+    , lAliases = ["ahk"]+    , lExtensions = [".ahk", ".ahkl"]+    , lMimetypes = ["text/x-autohotkey"]+    , lStart = root'+    , lFlags = [caseless, multiline, dotall]+    }++commands' :: TokenMatcher+commands' =+    [ tokNext "(autotrim|blockinput|break|click|clipwait|continue|control|controlclick|controlfocus|controlget|controlgetfocus|controlgetpos|controlgettext|controlmove|controlsend|controlsendraw|controlsettext|coordmode|critical|detecthiddentext|detecthiddenwindows|dllcall|drive|driveget|drivespacefree|else|envadd|envdiv|envget|envmult|envset|envsub|envupdate|exit|exitapp|fileappend|filecopy|filecopydir|filecreatedir|filecreateshortcut|filedelete|filegetattrib|filegetshortcut|filegetsize|filegettime|filegetversion|fileinstall|filemove|filemovedir|fileread|filereadline|filerecycle|filerecycleempty|fileremovedir|fileselectfile|fileselectfolder|filesetattrib|filesettime|formattime|gosub|goto|groupactivate|groupadd|groupclose|groupdeactivate|gui|guicontrol|guicontrolget|hotkey|ifexist|ifgreater|ifgreaterorequal|ifinstring|ifless|iflessorequal|ifmsgbox|ifnotequal|ifnotexist|ifnotinstring|ifwinactive|ifwinexist|ifwinnotactive|ifwinnotexist|imagesearch|inidelete|iniread|iniwrite|input|inputbox|keyhistory|keywait|listhotkeys|listlines|listvars|loop|menu|mouseclick|mouseclickdrag|mousegetpos|mousemove|msgbox|onmessage|onexit|outputdebug|pixelgetcolor|pixelsearch|postmessage|process|progress|random|regexmatch|regexreplace|registercallback|regdelete|regread|regwrite|reload|repeat|return|run|runas|runwait|send|sendevent|sendinput|sendmessage|sendmode|sendplay|sendraw|setbatchlines|setcapslockstate|setcontroldelay|setdefaultmousespeed|setenv|setformat|setkeydelay|setmousedelay|setnumlockstate|setscrolllockstate|setstorecapslockmode|settimer|settitlematchmode|setwindelay|setworkingdir|shutdown|sleep|sort|soundbeep|soundget|soundgetwavevolume|soundplay|soundset|soundsetwavevolume|splashimage|splashtextoff|splashtexton|splitpath|statusbargettext|statusbarwait|stringcasesense|stringgetpos|stringleft|stringlen|stringlower|stringmid|stringreplace|stringright|stringsplit|stringtrimleft|stringtrimright|stringupper|suspend|sysget|thread|tooltip|transform|traytip|urldownloadtofile|while|varsetcapacity|winactivate|winactivatebottom|winclose|winget|wingetactivestats|wingetactivetitle|wingetclass|wingetpos|wingettext|wingettitle|winhide|winkill|winmaximize|winmenuselectitem|winminimize|winminimizeall|winminimizeallundo|winmove|winrestore|winset|winsettitle|winshow|winwait|winwaitactive|winwaitclose|winwaitnotactivetrue|false|NULL)\\b" (Arbitrary "Keyword") (GoTo command')+    ]++literals' :: TokenMatcher+literals' =+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "A_\\w+" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "%[]\\w#@$?[]+?%" (Arbitrary "Name" :. Arbitrary "Variable")+    , tokNext "[-\126!%^&*+|?:<>/=]=?" (Arbitrary "Operator") (GoTo expressions')+    , tokNext "==" (Arbitrary "Operator") (GoTo expressions')+    , tok "[{()},.%#`;]" (Arbitrary "Punctuation")+    , tok "\\\\" (Arbitrary "Punctuation")+    , anyOf keywords'+    , tok "\\w+" (Arbitrary "Text")+    ]++string' :: TokenMatcher+string' =+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\"\"|`." (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\`\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    ]++parameters' :: TokenMatcher+parameters' =+    [ tokNext "\\)" (Arbitrary "Punctuation") Pop+    , tokNext "\\(" (Arbitrary "Punctuation") Push+    , anyOf numbers'+    , anyOf literals'+    , anyOf whitespace'+    ]++keynames' :: TokenMatcher+keynames' =+    [ tokNext "\\[[^\\]]+\\]" (Arbitrary "Keyword") (GoTo keynames')+    ]++continuation' :: TokenMatcher+continuation' =+    [ tokNext "\\n\\)" (Arbitrary "Punctuation") Pop+    , tok "\\s[^\\n\\)]+" (Arbitrary "Literal" :. Arbitrary "String")+    ]++labels' :: TokenMatcher+labels' =+    [ tok "(^\\s*)([^:\\s]+?:{1,2})" (ByGroups [(Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Label")])+    , tok "(^\\s*)(::[]\\w#@$?[]+?::)" (ByGroups [(Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Label")])+    ]++comments' :: TokenMatcher+comments' =+    [ tok "^;+.*?$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "(?<=\\s);+.*?$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "^/\\*.*?\\n\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "(?<!\\n)/\\*.*?\\n\\*/" (Arbitrary "Error")+    ]++command' :: TokenMatcher+command' =+    [ anyOf comments'+    , anyOf whitespace'+    , tokNext "^\\(" (Arbitrary "Literal" :. Arbitrary "String") (GoTo continuation')+    , tokNext "[^\\n]*?(?=;*|$)" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , anyOf numbers'+    , anyOf literals'+    ]++numbers' :: TokenMatcher+numbers' =+    [ tok "(\\d+\\.\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+[eE][+-]?[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+L" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer" :. Arbitrary "Long")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    ]++keywords' :: TokenMatcher+keywords' =+    [ tok "(static|global|local)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(if|else|and|or)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    ]++directives' :: TokenMatcher+directives' =+    [ tok "#\\w+?\\s" (Arbitrary "Keyword")+    ]++expressions' :: TokenMatcher+expressions' =+    [ anyOf comments'+    , anyOf whitespace'+    , anyOf numbers'+    , anyOf literals'+    , tokNext "([]\\w#@$?[]+)(\\s*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")]) (GoTo parameters')+    , tok "A_\\w+" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "%[]\\w#@$?[]+?%" (Arbitrary "Name" :. Arbitrary "Variable")+    , tokNext "{" (Arbitrary "Punctuation") (GoTo block')+    ]++root' :: TokenMatcher+root' =+    [ anyOf whitespace'+    , tokNext "^\\(" (Arbitrary "Literal" :. Arbitrary "String") (GoTo continuation')+    , anyOf comments'+    , tokNext "(^\\s*)(\\w+)(\\s*)(=)" (ByGroups [(Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Operator")]) (GoTo command')+    , tokNext "([\\w#@$?\\[\\]]+)(\\s*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation")]) (GoTo parameters')+    , anyOf directives'+    , anyOf labels'+    , anyOf commands'+    , anyOf expressions'+    , anyOf numbers'+    , anyOf literals'+    , anyOf keynames'+    , anyOf keywords'+    ]++block' :: TokenMatcher+block' =+    [ anyOf root'+    , tokNext "{" (Arbitrary "Punctuation") Push+    , tokNext "}" (Arbitrary "Punctuation") Pop+    ]++whitespace' :: TokenMatcher+whitespace' =+    [ tok "[ \\t]+" (Arbitrary "Text" :. Arbitrary "Whitespace")+    ]+
src/Text/Highlighter/Lexers/BBCode.hs view
@@ -5,26 +5,26 @@  lexer :: Lexer lexer = Lexer-    { lName = "\66\66\67\111\100\101"-    , lAliases = ["\98\98\99\111\100\101"]+    { lName = "BBCode"+    , lAliases = ["bbcode"]     , lExtensions = []-    , lMimetypes = ["\116\101\120\116\47\120\45\98\98\99\111\100\101"]+    , lMimetypes = ["text/x-bbcode"]     , lStart = root'     , lFlags = [multiline]     }  tag' :: TokenMatcher tag' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\40\92\119\43\41\40\61\41\40\34\63\91\94\92\115\34\92\93\93\43\34\63\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tok "\40\61\41\40\34\63\91\94\92\115\34\92\93\93\43\34\63\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tokNext "\92\93" (Arbitrary "\75\101\121\119\111\114\100") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tok "(\\w+)(=)(\"?[^\\s\"\\]]+\"?)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Attribute"), (Arbitrary "Operator"), (Arbitrary "Literal" :. Arbitrary "String")])+    , tok "(=)(\"?[^\\s\"\\]]+\"?)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Literal" :. Arbitrary "String")])+    , tokNext "\\]" (Arbitrary "Keyword") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\91\94\91\93\43" (Arbitrary "\84\101\120\116")-    , tokNext "\92\91\47\63\92\119\43" (Arbitrary "\75\101\121\119\111\114\100") (GoTo tag')-    , tok "\92\91" (Arbitrary "\84\101\120\116")+    [ tok "[^[]+" (Arbitrary "Text")+    , tokNext "\\[/?\\w+" (Arbitrary "Keyword") (GoTo tag')+    , tok "\\[" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Bash.hs view
@@ -5,75 +5,75 @@  lexer :: Lexer lexer = Lexer-    { lName = "\66\97\115\104"-    , lAliases = ["\98\97\115\104", "\115\104", "\107\115\104"]-    , lExtensions = ["\46\115\104", "\46\107\115\104", "\46\98\97\115\104", "\46\101\98\117\105\108\100", "\46\101\99\108\97\115\115"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\115\104", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\115\104\101\108\108\115\99\114\105\112\116"]+    { lName = "Bash"+    , lAliases = ["bash", "sh", "ksh"]+    , lExtensions = [".sh", ".ksh", ".bash", ".ebuild", ".eclass"]+    , lMimetypes = ["application/x-sh", "application/x-shellscript"]     , lStart = root'     , lFlags = [multiline]     }  curly' :: TokenMatcher curly' =-    [ tokNext "\125" (Arbitrary "\75\101\121\119\111\114\100") Pop-    , tok "\58\45" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\91\97\45\122\65\45\90\48\45\57\95\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\94\125\58\34\92\39\96\36\93\43" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\58" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tokNext "}" (Arbitrary "Keyword") Pop+    , tok ":-" (Arbitrary "Keyword")+    , tok "[a-zA-Z0-9_]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[^}:\"\\'`$]+" (Arbitrary "Punctuation")+    , tok ":" (Arbitrary "Punctuation")     , anyOf root'     ]  backticks' :: TokenMatcher backticks' =-    [ tokNext "\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107") Pop+    [ tokNext "`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick") Pop     , anyOf root'     ]  root' :: TokenMatcher root' =     [ anyOf basic'-    , tokNext "\92\36\92\40\92\40" (Arbitrary "\75\101\121\119\111\114\100") (GoTo math')-    , tokNext "\92\36\92\40" (Arbitrary "\75\101\121\119\111\114\100") (GoTo paren')-    , tokNext "\92\36\123\35\63" (Arbitrary "\75\101\121\119\111\114\100") (GoTo curly')-    , tokNext "\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107") (GoTo backticks')+    , tokNext "\\$\\(\\(" (Arbitrary "Keyword") (GoTo math')+    , tokNext "\\$\\(" (Arbitrary "Keyword") (GoTo paren')+    , tokNext "\\${#?" (Arbitrary "Keyword") (GoTo curly')+    , tokNext "`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick") (GoTo backticks')     , anyOf data'     ]  basic' :: TokenMatcher basic' =-    [ tok "\92\98\40\105\102\124\102\105\124\101\108\115\101\124\119\104\105\108\101\124\100\111\124\100\111\110\101\124\102\111\114\124\116\104\101\110\124\114\101\116\117\114\110\124\102\117\110\99\116\105\111\110\124\99\97\115\101\124\115\101\108\101\99\116\124\99\111\110\116\105\110\117\101\124\117\110\116\105\108\124\101\115\97\99\124\101\108\105\102\41\92\115\42\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\97\108\105\97\115\124\98\103\124\98\105\110\100\124\98\114\101\97\107\124\98\117\105\108\116\105\110\124\99\97\108\108\101\114\124\99\100\124\99\111\109\109\97\110\100\124\99\111\109\112\103\101\110\124\99\111\109\112\108\101\116\101\124\100\101\99\108\97\114\101\124\100\105\114\115\124\100\105\115\111\119\110\124\101\99\104\111\124\101\110\97\98\108\101\124\101\118\97\108\124\101\120\101\99\124\101\120\105\116\124\101\120\112\111\114\116\124\102\97\108\115\101\124\102\99\124\102\103\124\103\101\116\111\112\116\115\124\104\97\115\104\124\104\101\108\112\124\104\105\115\116\111\114\121\124\106\111\98\115\124\107\105\108\108\124\108\101\116\124\108\111\99\97\108\124\108\111\103\111\117\116\124\112\111\112\100\124\112\114\105\110\116\102\124\112\117\115\104\100\124\112\119\100\124\114\101\97\100\124\114\101\97\100\111\110\108\121\124\115\101\116\124\115\104\105\102\116\124\115\104\111\112\116\124\115\111\117\114\99\101\124\115\117\115\112\101\110\100\124\116\101\115\116\124\116\105\109\101\124\116\105\109\101\115\124\116\114\97\112\124\116\114\117\101\124\116\121\112\101\124\116\121\112\101\115\101\116\124\117\108\105\109\105\116\124\117\109\97\115\107\124\117\110\97\108\105\97\115\124\117\110\115\101\116\124\119\97\105\116\41\92\115\42\92\98\40\63\33\92\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\35\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\92\91\92\119\92\87\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\40\92\98\92\119\43\41\40\92\115\42\41\40\61\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\91\92\91\92\93\123\125\40\41\61\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\60\60\92\115\42\40\92\39\63\41\92\92\63\40\92\119\43\41\91\92\119\92\87\93\43\63\92\50" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\38\38\124\92\124\92\124" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "\\b(if|fi|else|while|do|done|for|then|return|function|case|select|continue|until|esac|elif)\\s*\\b" (Arbitrary "Keyword")+    , tok "\\b(alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|declare|dirs|disown|echo|enable|eval|exec|exit|export|false|fc|fg|getopts|hash|help|history|jobs|kill|let|local|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|time|times|trap|true|type|typeset|ulimit|umask|unalias|unset|wait)\\s*\\b(?!\\.)" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "#.*\\n" (Arbitrary "Comment")+    , tok "\\\\[\\w\\W]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "(\\b\\w+)(\\s*)(=)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tok "[\\[\\]{}()=]" (Arbitrary "Operator")+    , tok "<<-?\\s*(\\'?)\\\\?(\\w+)[\\w\\W]+?\\2" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "&&|\\|\\|" (Arbitrary "Operator")     ]  paren' :: TokenMatcher paren' =-    [ tokNext "\92\41" (Arbitrary "\75\101\121\119\111\114\100") Pop+    [ tokNext "\\)" (Arbitrary "Keyword") Pop     , anyOf root'     ]  data' :: TokenMatcher data' =-    [ tok "\40\63\115\41\92\36\63\34\40\92\92\92\92\124\92\92\91\48\45\55\93\43\124\92\92\46\124\91\94\34\92\92\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\40\63\115\41\92\36\63\39\40\92\92\92\92\124\92\92\91\48\45\55\93\43\124\92\92\46\124\91\94\39\92\92\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\59" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\91\94\61\92\115\92\110\92\91\92\93\123\125\40\41\36\34\92\39\96\92\92\60\93\43" (Arbitrary "\84\101\120\116")-    , tok "\92\100\43\40\63\61\32\124\92\90\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\36\35\63\40\92\119\43\124\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\60" (Arbitrary "\84\101\120\116")+    [ tok "(?s)\\$?\"(\\\\\\\\|\\\\[0-7]+|\\\\.|[^\"\\\\])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "(?s)\\$?'(\\\\\\\\|\\\\[0-7]+|\\\\.|[^'\\\\])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok ";" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "[^=\\s\\n\\[\\]{}()$\"\\'`\\\\<]+" (Arbitrary "Text")+    , tok "\\d+(?= |\\Z)" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\$#?(\\w+|.)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "<" (Arbitrary "Text")     ]  math' :: TokenMatcher math' =-    [ tokNext "\92\41\92\41" (Arbitrary "\75\101\121\119\111\114\100") Pop-    , tok "\91\45\43\42\47\37\94\124\38\93\124\92\42\92\42\124\92\124\92\124" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")+    [ tokNext "\\)\\)" (Arbitrary "Keyword") Pop+    , tok "[-+*/%^|&]|\\*\\*|\\|\\|" (Arbitrary "Operator")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number")     , anyOf root'     ] 
src/Text/Highlighter/Lexers/Batch.hs view
@@ -5,50 +5,50 @@  lexer :: Lexer lexer = Lexer-    { lName = "\66\97\116\99\104\102\105\108\101"-    , lAliases = ["\98\97\116"]-    , lExtensions = ["\46\98\97\116", "\46\99\109\100"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\100\111\115\45\98\97\116\99\104"]+    { lName = "Batchfile"+    , lAliases = ["bat"]+    , lExtensions = [".bat", ".cmd"]+    , lMimetypes = ["application/x-dos-batch"]     , lStart = root'     , lFlags = [caseless, multiline]     }  basic' :: TokenMatcher basic' =-    [ tok "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\96\46\42\63\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107")-    , tok "\45\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\61" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\47\92\83\43" (Arbitrary "\78\97\109\101")-    , tok "\58\92\119\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\92\119\58\92\119\43" (Arbitrary "\84\101\120\116")-    , tok "\40\91\60\62\124\93\41\40\92\115\42\41\40\92\119\43\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101")])+    [ tok "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'.*?'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "`.*?`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick")+    , tok "-?\\d+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "," (Arbitrary "Punctuation")+    , tok "=" (Arbitrary "Operator")+    , tok "/\\S+" (Arbitrary "Name")+    , tok ":\\w+" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "\\w:\\w+" (Arbitrary "Text")+    , tok "([<>|])(\\s*)(\\w+)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Name")])     ]  root' :: TokenMatcher root' =-    [ tok "\94\92\115\42\64" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\94\40\92\115\42\41\40\114\101\109\92\115\46\42\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116")])-    , tok "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\37\37\63\91\126\36\58\92\119\93\43\37\63" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\58\58\46\42" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\40\115\101\116\41\40\92\115\43\41\40\92\119\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")])-    , tok "\40\99\97\108\108\41\40\92\115\43\41\40\58\92\119\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")])-    , tok "\40\103\111\116\111\41\40\92\115\43\41\40\92\119\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")])-    , tok "\92\98\40\115\101\116\124\99\97\108\108\124\101\99\104\111\124\111\110\124\111\102\102\124\101\110\100\108\111\99\97\108\124\102\111\114\124\100\111\124\103\111\116\111\124\105\102\124\112\97\117\115\101\124\115\101\116\108\111\99\97\108\124\115\104\105\102\116\124\101\114\114\111\114\108\101\118\101\108\124\101\120\105\115\116\124\100\101\102\105\110\101\100\124\99\109\100\101\120\116\118\101\114\115\105\111\110\124\101\114\114\111\114\108\101\118\101\108\124\101\108\115\101\124\99\100\124\109\100\124\100\101\108\124\100\101\108\116\114\101\101\124\99\108\115\124\99\104\111\105\99\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\101\113\117\124\110\101\113\124\108\115\115\124\108\101\113\124\103\116\114\124\103\101\113\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "^\\s*@" (Arbitrary "Punctuation")+    , tok "^(\\s*)(rem\\s.*)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment")])+    , tok "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'.*?'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "%%?[\126$:\\w]+%?" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "::.*" (Arbitrary "Comment")+    , tok "(set)(\\s+)(\\w+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable")])+    , tok "(call)(\\s+)(:\\w+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label")])+    , tok "(goto)(\\s+)(\\w+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label")])+    , tok "\\b(set|call|echo|on|off|endlocal|for|do|goto|if|pause|setlocal|shift|errorlevel|exist|defined|cmdextversion|errorlevel|else|cd|md|del|deltree|cls|choice)\\b" (Arbitrary "Keyword")+    , tok "\\b(equ|neq|lss|leq|gtr|geq)\\b" (Arbitrary "Operator")     , anyOf basic'-    , tok "\46" (Arbitrary "\84\101\120\116")+    , tok "." (Arbitrary "Text")     ]  echo' :: TokenMatcher echo' =-    [ tok "\92\94\92\94\124\92\94\60\124\92\94\62\124\92\94\92\124" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tokNext "\92\110" (Arbitrary "\84\101\120\116") Pop+    [ tok "\\^\\^|\\^<|\\^>|\\^\\|" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tokNext "\\n" (Arbitrary "Text") Pop     , anyOf basic'-    , tok "\91\94\92\39\34\94\93\43" (Arbitrary "\84\101\120\116")+    , tok "[^\\'\"^]+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Befunge.hs view
@@ -5,27 +5,27 @@  lexer :: Lexer lexer = Lexer-    { lName = "\66\101\102\117\110\103\101"-    , lAliases = ["\98\101\102\117\110\103\101"]-    , lExtensions = ["\46\98\101\102\117\110\103\101"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\98\101\102\117\110\103\101"]+    { lName = "Befunge"+    , lAliases = ["befunge"]+    , lExtensions = [".befunge"]+    , lMimetypes = ["application/x-befunge"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\91\48\45\57\97\45\102\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\92\43\92\42\47\37\33\96\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\60\62\94\118\63\92\91\92\93\114\120\106\107\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\58\92\92\36\46\44\110\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\124\95\109\119\93" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\91\123\125\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")-    , tok "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\92\39\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\91\35\59\93" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\91\112\103\38\126\61\64\105\111\116\115\121\93" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\91\40\41\65\45\90\93" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "[0-9a-f]" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[\\+\\*/%!`-]" (Arbitrary "Operator")+    , tok "[<>^v?\\[\\]rxjk]" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[:\\\\$.,n]" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[|_mw]" (Arbitrary "Keyword")+    , tok "[{}]" (Arbitrary "Name" :. Arbitrary "Tag")+    , tok "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "\\'." (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "[#;]" (Arbitrary "Comment")+    , tok "[pg&\126=@iotsy]" (Arbitrary "Keyword")+    , tok "[()A-Z]" (Arbitrary "Comment")+    , tok "\\s+" (Arbitrary "Text")     ] 
+ src/Text/Highlighter/Lexers/BlitzMax.hs view
@@ -0,0 +1,51 @@+module Text.Highlighter.Lexers.BlitzMax (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "BlitzMax"+    , lAliases = ["blitzmax", "bmax"]+    , lExtensions = [".bmx"]+    , lMimetypes = ["text/x-bmx"]+    , lStart = root'+    , lFlags = [caseless, multiline]+    }++root' :: TokenMatcher+root' =+    [ tok "[ \\t]+" (Arbitrary "Text")+    , tok "\\.\\.\\n" (Arbitrary "Text")+    , tok "'.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "([ \\t]*)\\bRem\\n(\\n|.)*?\\s*\\bEnd([ \\t]*)Rem" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo string')+    , tok "[0-9]+\\.[0-9]*(?!\\.)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\.[0-9]*(?!\\.)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\$[0-9a-f]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\%[10]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "(?:(?:(:)?([ \\t]*)(:?\\b(Shl|Shr|Sar|Mod)\\b|([+\\-*/&|\126]))|Or|And|Not|[=<>^]))" (Arbitrary "Operator")+    , tok "[(),.:\\[\\]]" (Arbitrary "Punctuation")+    , tok "(?:#[\\w \\t]*)" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "(?:\\?[\\w \\t]*)" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "\\b(New)\\b([ \\t]?)([(]?)([a-z_][a-z0-9_]*)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Reserved"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok "\\b(Import|Framework|Module)([ \\t]+)([a-z_][a-z0-9_]*\\.[a-z_][a-z0-9_]*)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Reserved"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Namespace")])+    , tok "([a-z_][a-z0-9_]*)(?:(?:([ \\t]*)(@{1,2}|[!#$%])|([ \\t]*:[ \\t]*\\b(?:Shl|Shr|Sar|Mod)\\b)|([ \\t]*)([:])([ \\t]*)(?:\\b(Int|Byte|Short|Float|Double|Long)\\b|([a-z_][a-z0-9_]*)))(?:([ \\t]*)(Ptr))?)?((?:[ \\t]|\\.\\.\\n)*)([(])" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tok "([a-z_][a-z0-9_]*)(?:(?:([ \\t]*)(@{1,2}|[!#$%])|([ \\t]*:[ \\t]*\\b(?:Shl|Shr|Sar|Mod)\\b)|([ \\t]*)([:])([ \\t]*)(?:\\b(Int|Byte|Short|Float|Double|Long)\\b|([a-z_][a-z0-9_]*)))(?:([ \\t]*)(Ptr))?)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Type")])+    , tok "\\b(Type|Extends)([ \\t]+)([a-z_][a-z0-9_]*)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Reserved"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok "\\b(Ptr)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "\\b(Pi|True|False|Null|Self|Super)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "\\b(Local|Global|Const|Field)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "\\b(TNullMethodException|TNullFunctionException|TNullObjectException|TArrayBoundsException|TRuntimeException)\\b" (Arbitrary "Name" :. Arbitrary "Exception")+    , tok "\\b(Strict|SuperStrict|Module|ModuleInfo|End|Return|Continue|Exit|Public|Private|Var|VarPtr|Chr|Len|Asc|SizeOf|Sgn|Abs|Min|Max|New|Release|Delete|Incbin|IncbinPtr|IncbinLen|Framework|Include|Import|Extern|EndExtern|Function|EndFunction|Type|EndType|Extends|Method|EndMethod|Abstract|Final|If|Then|Else|ElseIf|EndIf|For|To|Next|Step|EachIn|While|Wend|EndWhile|Repeat|Until|Forever|Select|Case|Default|EndSelect|Try|Catch|EndTry|Throw|Assert|Goto|DefData|ReadData|RestoreData)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "([a-z_][a-z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Variable")+    ]++string' :: TokenMatcher+string' =+    [ tok "\"\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tokNext "\"C?" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") Pop+    , tok "[^\"]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    ]+
src/Text/Highlighter/Lexers/Boo.hs view
@@ -5,64 +5,64 @@  lexer :: Lexer lexer = Lexer-    { lName = "\66\111\111"-    , lAliases = ["\98\111\111"]-    , lExtensions = ["\46\98\111\111"]-    , lMimetypes = ["\116\101\120\116\47\120\45\98\111\111"]+    { lName = "Boo"+    , lAliases = ["boo"]+    , lExtensions = [".boo"]+    , lMimetypes = ["text/x-boo"]     , lStart = root'     , lFlags = [multiline]     }  comment' :: TokenMatcher comment' =-    [ tokNext "\47\91\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\91\42\93\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\94\47\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\91\42\47\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "/[*]" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "[*]/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[^/*]" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "[*/]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  classname' :: TokenMatcher classname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  namespace' :: TokenMatcher namespace' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\40\35\124\47\47\41\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\47\91\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo comment')-    , tok "\91\93\123\125\58\40\41\44\46\59\91\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\92" (Arbitrary "\84\101\120\116")-    , tok "\40\105\110\124\105\115\124\97\110\100\124\111\114\124\110\111\116\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\47\40\92\92\92\92\124\92\92\47\124\91\94\47\92\115\93\41\47" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\64\47\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\61\126\124\33\61\124\61\61\124\60\60\124\62\62\124\91\45\43\47\42\37\61\60\62\38\94\124\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\97\115\124\97\98\115\116\114\97\99\116\124\99\97\108\108\97\98\108\101\124\99\111\110\115\116\114\117\99\116\111\114\124\100\101\115\116\114\117\99\116\111\114\124\100\111\124\105\109\112\111\114\116\124\101\110\117\109\124\101\118\101\110\116\124\102\105\110\97\108\124\103\101\116\124\105\110\116\101\114\102\97\99\101\124\105\110\116\101\114\110\97\108\124\111\102\124\111\118\101\114\114\105\100\101\124\112\97\114\116\105\97\108\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\112\117\98\108\105\99\124\114\101\116\117\114\110\124\115\101\116\124\115\116\97\116\105\99\124\115\116\114\117\99\116\124\116\114\97\110\115\105\101\110\116\124\118\105\114\116\117\97\108\124\121\105\101\108\100\124\115\117\112\101\114\124\97\110\100\124\98\114\101\97\107\124\99\97\115\116\124\99\111\110\116\105\110\117\101\124\101\108\105\102\124\101\108\115\101\124\101\110\115\117\114\101\124\101\120\99\101\112\116\124\102\111\114\124\103\105\118\101\110\124\103\111\116\111\124\105\102\124\105\110\124\105\115\124\105\115\97\124\110\111\116\124\111\114\124\111\116\104\101\114\119\105\115\101\124\112\97\115\115\124\114\97\105\115\101\124\114\101\102\124\116\114\121\124\117\110\108\101\115\115\124\119\104\101\110\124\119\104\105\108\101\124\102\114\111\109\124\97\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\100\101\102\40\63\61\92\115\43\92\40\46\42\63\92\41\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\40\100\101\102\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo funcname')-    , tokNext "\40\99\108\97\115\115\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tokNext "\40\110\97\109\101\115\112\97\99\101\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo namespace')-    , tok "\40\63\60\33\92\46\41\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\124\115\101\108\102\124\95\95\101\118\97\108\95\95\124\95\95\115\119\105\116\99\104\95\95\124\97\114\114\97\121\124\97\115\115\101\114\116\124\99\104\101\99\107\101\100\124\101\110\117\109\101\114\97\116\101\124\102\105\108\116\101\114\124\103\101\116\116\101\114\124\108\101\110\124\108\111\99\107\124\109\97\112\124\109\97\116\114\105\120\124\109\97\120\124\109\105\110\124\110\111\114\109\97\108\65\114\114\97\121\73\110\100\101\120\105\110\103\124\112\114\105\110\116\124\112\114\111\112\101\114\116\121\124\114\97\110\103\101\124\114\97\119\65\114\114\97\121\73\110\100\101\120\105\110\103\124\114\101\113\117\105\114\101\100\124\116\121\112\101\111\102\124\117\110\99\104\101\99\107\101\100\124\117\115\105\110\103\124\121\105\101\108\100\65\108\108\124\122\105\112\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\34\34\34\40\92\92\124\92\34\124\46\42\63\41\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\34\40\92\92\124\92\34\124\91\94\34\93\42\63\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\124\92\39\124\91\94\39\93\42\63\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\100\42\92\46\92\100\43\41\40\91\102\70\93\91\43\45\93\63\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\93\91\48\45\57\92\46\93\42\40\109\124\109\115\124\100\124\104\124\115\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\120\91\97\45\102\65\45\70\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\92\100\43\76" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114" :. Arbitrary "\76\111\110\103")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "(#|//).*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "/[*]" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo comment')+    , tok "[]{}:(),.;[]" (Arbitrary "Punctuation")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "\\\\" (Arbitrary "Text")+    , tok "(in|is|and|or|not)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "/(\\\\\\\\|\\\\/|[^/\\s])/" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "@/(\\\\\\\\|\\\\/|[^/])*/" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "=\126|!=|==|<<|>>|[-+/*%=<>&^|]" (Arbitrary "Operator")+    , tok "(as|abstract|callable|constructor|destructor|do|import|enum|event|final|get|interface|internal|of|override|partial|private|protected|public|return|set|static|struct|transient|virtual|yield|super|and|break|cast|continue|elif|else|ensure|except|for|given|goto|if|in|is|isa|not|or|otherwise|pass|raise|ref|try|unless|when|while|from|as)\\b" (Arbitrary "Keyword")+    , tok "def(?=\\s+\\(.*?\\))" (Arbitrary "Keyword")+    , tokNext "(def)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo funcname')+    , tokNext "(class)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tokNext "(namespace)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo namespace')+    , tok "(?<!\\.)(true|false|null|self|__eval__|__switch__|array|assert|checked|enumerate|filter|getter|len|lock|map|matrix|max|min|normalArrayIndexing|print|property|range|rawArrayIndexing|required|typeof|unchecked|using|yieldAll|zip)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\"\"\"(\\\\|\\\"|.*?)\"\"\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "\"(\\\\|\\\"|[^\"]*?)\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\|\\'|[^']*?)'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "(\\d+\\.\\d*|\\d*\\.\\d+)([fF][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9][0-9\\.]*(m|ms|d|h|s)" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0x[a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+L" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer" :. Arbitrary "Long")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ]  funcname' :: TokenMatcher funcname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Function") Pop     ] 
src/Text/Highlighter/Lexers/Brainfuck.hs view
@@ -5,33 +5,33 @@  lexer :: Lexer lexer = Lexer-    { lName = "\66\114\97\105\110\102\117\99\107"-    , lAliases = ["\98\114\97\105\110\102\117\99\107", "\98\102"]-    , lExtensions = ["\46\98\102", "\46\98"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\98\114\97\105\110\102\117\99\107"]+    { lName = "Brainfuck"+    , lAliases = ["brainfuck", "bf"]+    , lExtensions = [".bf", ".b"]+    , lMimetypes = ["application/x-brainfuck"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tokNext "\92\91" (Arbitrary "\75\101\121\119\111\114\100") (GoTo loop')-    , tok "\92\93" (Arbitrary "\69\114\114\111\114")+    [ tokNext "\\[" (Arbitrary "Keyword") (GoTo loop')+    , tok "\\]" (Arbitrary "Error")     , anyOf common'     ]  common' :: TokenMatcher common' =-    [ tok "\91\46\44\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")-    , tok "\91\43\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\60\62\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\94\46\44\43\92\45\60\62\92\91\92\93\93\43" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "[.,]+" (Arbitrary "Name" :. Arbitrary "Tag")+    , tok "[+-]+" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[<>]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[^.,+\\-<>\\[\\]]+" (Arbitrary "Comment")     ]  loop' :: TokenMatcher loop' =-    [ tokNext "\92\91" (Arbitrary "\75\101\121\119\111\114\100") Push-    , tokNext "\92\93" (Arbitrary "\75\101\121\119\111\114\100") Pop+    [ tokNext "\\[" (Arbitrary "Keyword") Push+    , tokNext "\\]" (Arbitrary "Keyword") Pop     , anyOf common'     ] 
src/Text/Highlighter/Lexers/C.hs view
@@ -5,10 +5,10 @@  lexer :: Lexer lexer = Lexer-    { lName = "\67"-    , lAliases = ["\99"]-    , lExtensions = ["\46\99", "\46\104"]-    , lMimetypes = ["\116\101\120\116\47\120\45\99\104\100\114", "\116\101\120\116\47\120\45\99\115\114\99"]+    { lName = "C"+    , lAliases = ["c"]+    , lExtensions = [".c", ".h"]+    , lMimetypes = ["text/x-chdr", "text/x-csrc"]     , lStart = root'     , lFlags = [multiline]     }@@ -17,84 +17,86 @@ function' =     [ anyOf whitespace'     , anyOf statements'-    , tok "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok ";" (Arbitrary "Punctuation")+    , tokNext "{" (Arbitrary "Punctuation") Push+    , tokNext "}" (Arbitrary "Punctuation") Pop     ]  statements' :: TokenMatcher statements' =-    [ tokNext "\76\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\76\63\39\40\92\92\46\124\92\92\91\48\45\55\93\123\49\44\51\125\124\92\92\120\91\97\45\102\65\45\70\48\45\57\93\123\49\44\50\125\124\91\94\92\92\92\39\92\110\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\41\91\101\69\93\91\43\45\93\63\92\100\43\91\108\76\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\91\102\70\93\41\91\102\70\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\48\45\55\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\92\100\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\92\42\47" (Arbitrary "\69\114\114\111\114")-    , tok "\91\126\33\37\94\38\42\43\61\124\63\58\60\62\47\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\40\41\92\91\92\93\44\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\98\40\99\97\115\101\41\40\46\43\63\41\40\58\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Using lexer), (Arbitrary "\84\101\120\116")])-    , tok "\40\97\117\116\111\124\98\114\101\97\107\124\99\97\115\101\124\99\111\110\115\116\124\99\111\110\116\105\110\117\101\124\100\101\102\97\117\108\116\124\100\111\124\101\108\115\101\124\101\110\117\109\124\101\120\116\101\114\110\124\102\111\114\124\103\111\116\111\124\105\102\124\114\101\103\105\115\116\101\114\124\114\101\115\116\114\105\99\116\101\100\124\114\101\116\117\114\110\124\115\105\122\101\111\102\124\115\116\97\116\105\99\124\115\116\114\117\99\116\124\115\119\105\116\99\104\124\116\121\112\101\100\101\102\124\117\110\105\111\110\124\118\111\108\97\116\105\108\101\124\118\105\114\116\117\97\108\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\105\110\116\124\108\111\110\103\124\102\108\111\97\116\124\115\104\111\114\116\124\100\111\117\98\108\101\124\99\104\97\114\124\117\110\115\105\103\110\101\100\124\115\105\103\110\101\100\124\118\111\105\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\95\123\48\44\50\125\105\110\108\105\110\101\124\110\97\107\101\100\124\114\101\115\116\114\105\99\116\124\116\104\114\101\97\100\124\116\121\112\101\110\97\109\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\95\95\40\97\115\109\124\105\110\116\56\124\98\97\115\101\100\124\101\120\99\101\112\116\124\105\110\116\49\54\124\115\116\100\99\97\108\108\124\99\100\101\99\108\124\102\97\115\116\99\97\108\108\124\105\110\116\51\50\124\100\101\99\108\115\112\101\99\124\102\105\110\97\108\108\121\124\105\110\116\54\52\124\116\114\121\124\108\101\97\118\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\78\85\76\76\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")+    [ tokNext "L?\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "L?'(\\\\.|\\\\[0-7]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\'\\n])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\d+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\*/" (Arbitrary "Error")+    , tok "[\126!%^&*+=|?:<>/-]" (Arbitrary "Operator")+    , tok "[()\\[\\],.]" (Arbitrary "Punctuation")+    , tok "\\b(case)(.+?)(:)" (ByGroups [(Arbitrary "Keyword"), (Using lexer), (Arbitrary "Text")])+    , tok "(auto|break|case|const|continue|default|do|else|enum|extern|for|goto|if|register|restricted|return|sizeof|static|struct|switch|typedef|union|volatile|virtual|while)\\b" (Arbitrary "Keyword")+    , tok "(int|long|float|short|double|char|unsigned|signed|void)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(_{0,2}inline|naked|restrict|thread|typename)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "__(asm|int8|based|except|int16|stdcall|cdecl|fastcall|int32|declspec|finally|int64|try|leave)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(true|false|NULL)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tokNext "\94\92\115\42\35\105\102\92\115\43\48" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo if0')-    , tokNext "\94\92\115\42\35" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo macro')-    , tok "\94\40\92\115\42\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\58\40\63\33\58\41\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")])-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\92\110\124\40\46\124\92\110\41\42\63\91\94\92\92\93\92\110\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "^#if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tokNext "^#" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')+    , tokNext "^(?:\\s|//.*?\\n|/[*].*?[*]/)+#if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tokNext "^(?:\\s|//.*?\\n|/[*].*?[*]/)+#" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')+    , tok "^(\\s*)([a-zA-Z_][a-zA-Z0-9_]*:(?!:))" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label")])+    , tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "//(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  statement' :: TokenMatcher statement' =     [ anyOf whitespace'     , anyOf statements'-    , tok "\91\123\125\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "[{}]" (Arbitrary "Punctuation")+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  if0' :: TokenMatcher if0' =-    [ tokNext "\94\92\115\42\35\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Push-    , tokNext "\94\92\115\42\35\101\108\40\63\58\115\101\124\105\102\41\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tokNext "\94\92\115\42\35\101\110\100\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tokNext "^\\s*#if.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Push+    , tokNext "^\\s*#el(?:se|if).*\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tokNext "^\\s*#endif.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok ".*?\\n" (Arbitrary "Comment")     ]  macro' :: TokenMatcher macro' =-    [ tok "\91\94\47\92\110\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\47\91\42\93\40\46\124\92\110\41\42\63\91\42\93\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101") Pop-    , tok "\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\40\63\60\61\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop+    [ tok "[^/\\n]+" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "/[*](.|\\n)*?[*]/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single") Pop+    , tok "/" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(?<=\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tokNext "\40\40\63\58\91\97\45\122\65\45\90\48\45\57\95\42\92\115\93\41\43\63\40\63\58\92\115\124\91\42\93\41\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\92\40\91\94\59\93\42\63\92\41\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\43\41\40\123\41" (ByGroups [(Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Using lexer), (Using lexer), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo function')-    , tok "\40\40\63\58\91\97\45\122\65\45\90\48\45\57\95\42\92\115\93\41\43\63\40\63\58\92\115\124\91\42\93\41\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\92\40\91\94\59\93\42\63\92\41\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\43\41\40\59\41" (ByGroups [(Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Using lexer), (Using lexer), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "" (Arbitrary "\84\101\120\116") (GoTo statement')+    , tokNext "((?:[a-zA-Z0-9_*\\s])+?(?:\\s|[*]))([a-zA-Z_][a-zA-Z0-9_]*)(\\s*\\([^;]*?\\))((?:\\s|//.*?\\n|/[*].*?[*]/)+)({)" (ByGroups [(Using lexer), (Arbitrary "Name" :. Arbitrary "Function"), (Using lexer), (Using lexer), (Arbitrary "Punctuation")]) (GoTo function')+    , tok "((?:[a-zA-Z0-9_*\\s])+?(?:\\s|[*]))([a-zA-Z_][a-zA-Z0-9_]*)(\\s*\\([^;]*?\\))((?:\\s|//.*?\\n|/[*].*?[*]/)+)(;)" (ByGroups [(Using lexer), (Arbitrary "Name" :. Arbitrary "Function"), (Using lexer), (Using lexer), (Arbitrary "Punctuation")])+    , tokNext "" (Arbitrary "Text") (GoTo statement')     ]  string' :: TokenMatcher string' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\44\52\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\91\94\92\92\34\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ] 
src/Text/Highlighter/Lexers/CMake.hs view
@@ -5,41 +5,41 @@  lexer :: Lexer lexer = Lexer-    { lName = "\67\77\97\107\101"-    , lAliases = ["\99\109\97\107\101"]-    , lExtensions = ["\46\99\109\97\107\101"]-    , lMimetypes = ["\116\101\120\116\47\120\45\99\109\97\107\101"]+    { lName = "CMake"+    , lAliases = ["cmake"]+    , lExtensions = [".cmake", "CMakeLists.txt"]+    , lMimetypes = ["text/x-cmake"]     , lStart = root'     , lFlags = [multiline]     }  keywords' :: TokenMatcher keywords' =-    [ tok "\92\98\40\87\73\78\51\50\124\85\78\73\88\124\65\80\80\76\69\124\67\89\71\87\73\78\124\66\79\82\76\65\78\68\124\77\73\78\71\87\124\77\83\86\67\124\77\83\86\67\95\73\68\69\124\77\83\86\67\54\48\124\77\83\86\67\55\48\124\77\83\86\67\55\49\124\77\83\86\67\56\48\124\77\83\86\67\57\48\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "\\b(WIN32|UNIX|APPLE|CYGWIN|BORLAND|MINGW|MSVC|MSVC_IDE|MSVC60|MSVC70|MSVC71|MSVC80|MSVC90)\\b" (Arbitrary "Keyword")     ]  ws' :: TokenMatcher ws' =-    [ tok "\91\32\92\116\93\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\43\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "[ \\t]+" (Arbitrary "Text")+    , tok "#.+\\n" (Arbitrary "Comment")     ]  args' :: TokenMatcher args' =-    [ tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\40\92\36\123\41\40\46\43\63\41\40\125\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\40\63\115\41\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\92\92\92\83\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\94\92\41\36\34\35\32\92\116\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\110" (Arbitrary "\84\101\120\116")+    [ tokNext "\\(" (Arbitrary "Punctuation") Push+    , tokNext "\\)" (Arbitrary "Punctuation") Pop+    , tok "(\\${)(.+?)(})" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Operator")])+    , tok "(?s)\".*?\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "\\\\\\S+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[^\\)$\"# \\t\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\n" (Arbitrary "Text")     , anyOf keywords'     , anyOf ws'     ]  root' :: TokenMatcher root' =-    [ tokNext "\92\98\40\91\65\45\90\97\45\122\95\93\43\41\40\91\32\92\116\93\42\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo args')+    [ tokNext "\\b([A-Za-z_]+)([ \\t]*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Text"), (Arbitrary "Punctuation")]) (GoTo args')     , anyOf keywords'     , anyOf ws'     ]
src/Text/Highlighter/Lexers/Clojure.hs view
@@ -5,33 +5,33 @@  lexer :: Lexer lexer = Lexer-    { lName = "\67\108\111\106\117\114\101"-    , lAliases = ["\99\108\111\106\117\114\101", "\99\108\106"]-    , lExtensions = ["\46\99\108\106"]-    , lMimetypes = ["\116\101\120\116\47\120\45\99\108\111\106\117\114\101", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\99\108\111\106\117\114\101"]+    { lName = "Clojure"+    , lAliases = ["clojure", "clj"]+    , lExtensions = [".clj"]+    , lMimetypes = ["text/x-clojure", "application/x-clojure"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\59\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\45\63\92\100\43\92\46\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\45\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\39\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\45\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\92\92\40\91\40\41\47\39\92\34\46\39\95\33\195\130\194\167\36\37\38\32\63\59\61\35\43\45\93\123\49\125\124\91\97\45\122\65\45\90\48\45\57\93\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\40\35\116\124\35\102\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\39\124\35\124\96\124\44\64\124\44\124\92\46\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\102\110\32\124\100\101\102\32\124\100\101\102\110\32\124\100\101\102\109\97\99\114\111\32\124\100\101\102\109\101\116\104\111\100\32\124\100\101\102\109\117\108\116\105\32\124\100\101\102\110\92\45\32\124\100\101\102\115\116\114\117\99\116\32\124\105\102\32\124\99\111\110\100\32\124\108\101\116\32\124\102\111\114\32\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\63\60\61\39\92\40\41\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\63\60\61\35\92\40\41\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\63\60\61\92\40\41\40\92\46\32\124\92\46\92\46\32\124\92\42\32\124\92\43\32\124\92\45\32\124\92\45\92\62\32\124\92\46\92\46\32\124\92\47\32\124\92\60\32\124\92\60\92\61\32\124\92\61\32\124\92\61\92\61\32\124\92\62\32\124\92\62\92\61\32\124\97\99\99\101\115\115\111\114\32\124\97\103\101\110\116\32\124\97\103\101\110\116\92\45\101\114\114\111\114\115\32\124\97\103\101\116\32\124\97\108\101\110\103\116\104\32\124\97\108\108\92\45\110\115\32\124\97\108\116\101\114\32\124\97\110\100\32\124\97\112\112\101\110\100\92\45\99\104\105\108\100\32\124\97\112\112\108\121\32\124\97\114\114\97\121\92\45\109\97\112\32\124\97\115\101\116\32\124\97\115\101\116\92\45\98\111\111\108\101\97\110\32\124\97\115\101\116\92\45\98\121\116\101\32\124\97\115\101\116\92\45\99\104\97\114\32\124\97\115\101\116\92\45\100\111\117\98\108\101\32\124\97\115\101\116\92\45\102\108\111\97\116\32\124\97\115\101\116\92\45\105\110\116\32\124\97\115\101\116\92\45\108\111\110\103\32\124\97\115\101\116\92\45\115\104\111\114\116\32\124\97\115\115\101\114\116\32\124\97\115\115\111\99\32\124\97\119\97\105\116\32\124\97\119\97\105\116\92\45\102\111\114\32\124\98\101\97\110\32\124\98\105\110\100\105\110\103\32\124\98\105\116\92\45\97\110\100\32\124\98\105\116\92\45\110\111\116\32\124\98\105\116\92\45\111\114\32\124\98\105\116\92\45\115\104\105\102\116\92\45\108\101\102\116\32\124\98\105\116\92\45\115\104\105\102\116\92\45\114\105\103\104\116\32\124\98\105\116\92\45\120\111\114\32\124\98\111\111\108\101\97\110\32\124\98\114\97\110\99\104\92\63\32\124\98\117\116\108\97\115\116\32\124\98\121\116\101\32\124\99\97\115\116\32\124\99\104\97\114\32\124\99\104\105\108\100\114\101\110\32\124\99\108\97\115\115\32\124\99\108\101\97\114\92\45\97\103\101\110\116\92\45\101\114\114\111\114\115\32\124\99\111\109\109\101\110\116\32\124\99\111\109\109\117\116\101\32\124\99\111\109\112\32\124\99\111\109\112\97\114\97\116\111\114\32\124\99\111\109\112\108\101\109\101\110\116\32\124\99\111\110\99\97\116\32\124\99\111\110\106\32\124\99\111\110\115\32\124\99\111\110\115\116\97\110\116\108\121\32\124\99\111\110\115\116\114\117\99\116\92\45\112\114\111\120\121\32\124\99\111\110\116\97\105\110\115\92\63\32\124\99\111\117\110\116\32\124\99\114\101\97\116\101\92\45\110\115\32\124\99\114\101\97\116\101\92\45\115\116\114\117\99\116\32\124\99\121\99\108\101\32\124\100\101\99\32\124\100\101\114\101\102\32\124\100\105\102\102\101\114\101\110\99\101\32\124\100\105\115\106\32\124\100\105\115\115\111\99\32\124\100\105\115\116\105\110\99\116\32\124\100\111\97\108\108\32\124\100\111\99\32\124\100\111\114\117\110\32\124\100\111\115\101\113\32\124\100\111\115\121\110\99\32\124\100\111\116\105\109\101\115\32\124\100\111\116\111\32\124\100\111\117\98\108\101\32\124\100\111\119\110\32\124\100\114\111\112\32\124\100\114\111\112\92\45\119\104\105\108\101\32\124\101\100\105\116\32\124\101\110\100\92\63\32\124\101\110\115\117\114\101\32\124\101\118\97\108\32\124\101\118\101\114\121\92\63\32\124\102\97\108\115\101\92\63\32\124\102\102\105\114\115\116\32\124\102\105\108\101\92\45\115\101\113\32\124\102\105\108\116\101\114\32\124\102\105\110\100\32\124\102\105\110\100\92\45\100\111\99\32\124\102\105\110\100\92\45\110\115\32\124\102\105\110\100\92\45\118\97\114\32\124\102\105\114\115\116\32\124\102\108\111\97\116\32\124\102\108\117\115\104\32\124\102\110\115\101\113\32\124\102\114\101\115\116\32\124\103\101\110\115\121\109\32\124\103\101\116\32\124\103\101\116\92\45\112\114\111\120\121\92\45\99\108\97\115\115\32\124\104\97\115\104\92\45\109\97\112\32\124\104\97\115\104\92\45\115\101\116\32\124\105\100\101\110\116\105\99\97\108\92\63\32\124\105\100\101\110\116\105\116\121\32\124\105\102\92\45\108\101\116\32\124\105\109\112\111\114\116\32\124\105\110\92\45\110\115\32\124\105\110\99\32\124\105\110\100\101\120\32\124\105\110\115\101\114\116\92\45\99\104\105\108\100\32\124\105\110\115\101\114\116\92\45\108\101\102\116\32\124\105\110\115\101\114\116\92\45\114\105\103\104\116\32\124\105\110\115\112\101\99\116\92\45\116\97\98\108\101\32\124\105\110\115\112\101\99\116\92\45\116\114\101\101\32\124\105\110\115\116\97\110\99\101\92\63\32\124\105\110\116\32\124\105\110\116\101\114\108\101\97\118\101\32\124\105\110\116\101\114\115\101\99\116\105\111\110\32\124\105\110\116\111\32\124\105\110\116\111\92\45\97\114\114\97\121\32\124\105\116\101\114\97\116\101\32\124\106\111\105\110\32\124\107\101\121\32\124\107\101\121\115\32\124\107\101\121\119\111\114\100\32\124\107\101\121\119\111\114\100\92\63\32\124\108\97\115\116\32\124\108\97\122\121\92\45\99\97\116\32\124\108\97\122\121\92\45\99\111\110\115\32\124\108\101\102\116\32\124\108\101\102\116\115\32\124\108\105\110\101\92\45\115\101\113\32\124\108\105\115\116\32\124\108\105\115\116\92\42\32\124\108\111\97\100\32\124\108\111\97\100\92\45\102\105\108\101\32\124\108\111\99\107\105\110\103\32\124\108\111\110\103\32\124\108\111\111\112\32\124\109\97\99\114\111\101\120\112\97\110\100\32\124\109\97\99\114\111\101\120\112\97\110\100\92\45\49\32\124\109\97\107\101\92\45\97\114\114\97\121\32\124\109\97\107\101\92\45\110\111\100\101\32\124\109\97\112\32\124\109\97\112\92\45\105\110\118\101\114\116\32\124\109\97\112\92\63\32\124\109\97\112\99\97\116\32\124\109\97\120\32\124\109\97\120\92\45\107\101\121\32\124\109\101\109\102\110\32\124\109\101\114\103\101\32\124\109\101\114\103\101\92\45\119\105\116\104\32\124\109\101\116\97\32\124\109\105\110\32\124\109\105\110\92\45\107\101\121\32\124\110\97\109\101\32\124\110\97\109\101\115\112\97\99\101\32\124\110\101\103\92\63\32\124\110\101\119\32\124\110\101\119\108\105\110\101\32\124\110\101\120\116\32\124\110\105\108\92\63\32\124\110\111\100\101\32\124\110\111\116\32\124\110\111\116\92\45\97\110\121\92\63\32\124\110\111\116\92\45\101\118\101\114\121\92\63\32\124\110\111\116\92\61\32\124\110\115\92\45\105\109\112\111\114\116\115\32\124\110\115\92\45\105\110\116\101\114\110\115\32\124\110\115\92\45\109\97\112\32\124\110\115\92\45\110\97\109\101\32\124\110\115\92\45\112\117\98\108\105\99\115\32\124\110\115\92\45\114\101\102\101\114\115\32\124\110\115\92\45\114\101\115\111\108\118\101\32\124\110\115\92\45\117\110\109\97\112\32\124\110\116\104\32\124\110\116\104\114\101\115\116\32\124\111\114\32\124\112\97\114\115\101\32\124\112\97\114\116\105\97\108\32\124\112\97\116\104\32\124\112\101\101\107\32\124\112\111\112\32\124\112\111\115\92\63\32\124\112\114\32\124\112\114\92\45\115\116\114\32\124\112\114\105\110\116\32\124\112\114\105\110\116\92\45\115\116\114\32\124\112\114\105\110\116\108\110\32\124\112\114\105\110\116\108\110\92\45\115\116\114\32\124\112\114\110\32\124\112\114\110\92\45\115\116\114\32\124\112\114\111\106\101\99\116\32\124\112\114\111\120\121\32\124\112\114\111\120\121\92\45\109\97\112\112\105\110\103\115\32\124\113\117\111\116\32\124\114\97\110\100\32\124\114\97\110\100\92\45\105\110\116\32\124\114\97\110\103\101\32\124\114\101\92\45\102\105\110\100\32\124\114\101\92\45\103\114\111\117\112\115\32\124\114\101\92\45\109\97\116\99\104\101\114\32\124\114\101\92\45\109\97\116\99\104\101\115\32\124\114\101\92\45\112\97\116\116\101\114\110\32\124\114\101\92\45\115\101\113\32\124\114\101\97\100\32\124\114\101\97\100\92\45\108\105\110\101\32\124\114\101\100\117\99\101\32\124\114\101\102\32\124\114\101\102\92\45\115\101\116\32\124\114\101\102\101\114\32\124\114\101\109\32\124\114\101\109\111\118\101\32\124\114\101\109\111\118\101\92\45\109\101\116\104\111\100\32\124\114\101\109\111\118\101\92\45\110\115\32\124\114\101\110\97\109\101\32\124\114\101\110\97\109\101\92\45\107\101\121\115\32\124\114\101\112\101\97\116\32\124\114\101\112\108\97\99\101\32\124\114\101\112\108\105\99\97\116\101\32\124\114\101\115\111\108\118\101\32\124\114\101\115\116\32\124\114\101\115\117\108\116\115\101\116\92\45\115\101\113\32\124\114\101\118\101\114\115\101\32\124\114\102\105\114\115\116\32\124\114\105\103\104\116\32\124\114\105\103\104\116\115\32\124\114\111\111\116\32\124\114\114\101\115\116\32\124\114\115\101\113\32\124\115\101\99\111\110\100\32\124\115\101\108\101\99\116\32\124\115\101\108\101\99\116\92\45\107\101\121\115\32\124\115\101\110\100\32\124\115\101\110\100\92\45\111\102\102\32\124\115\101\113\32\124\115\101\113\92\45\122\105\112\32\124\115\101\113\92\63\32\124\115\101\116\32\124\115\104\111\114\116\32\124\115\108\117\114\112\32\124\115\111\109\101\32\124\115\111\114\116\32\124\115\111\114\116\92\45\98\121\32\124\115\111\114\116\101\100\92\45\109\97\112\32\124\115\111\114\116\101\100\92\45\109\97\112\92\45\98\121\32\124\115\111\114\116\101\100\92\45\115\101\116\32\124\115\112\101\99\105\97\108\92\45\115\121\109\98\111\108\92\63\32\124\115\112\108\105\116\92\45\97\116\32\124\115\112\108\105\116\92\45\119\105\116\104\32\124\115\116\114\32\124\115\116\114\105\110\103\92\63\32\124\115\116\114\117\99\116\32\124\115\116\114\117\99\116\92\45\109\97\112\32\124\115\117\98\115\32\124\115\117\98\118\101\99\32\124\115\121\109\98\111\108\32\124\115\121\109\98\111\108\92\63\32\124\115\121\110\99\32\124\116\97\107\101\32\124\116\97\107\101\92\45\110\116\104\32\124\116\97\107\101\92\45\119\104\105\108\101\32\124\116\101\115\116\32\124\116\105\109\101\32\124\116\111\92\45\97\114\114\97\121\32\124\116\111\92\45\97\114\114\97\121\92\45\50\100\32\124\116\114\101\101\92\45\115\101\113\32\124\116\114\117\101\92\63\32\124\117\110\105\111\110\32\124\117\112\32\124\117\112\100\97\116\101\92\45\112\114\111\120\121\32\124\118\97\108\32\124\118\97\108\115\32\124\118\97\114\92\45\103\101\116\32\124\118\97\114\92\45\115\101\116\32\124\118\97\114\92\63\32\124\118\101\99\116\111\114\32\124\118\101\99\116\111\114\92\45\122\105\112\32\124\118\101\99\116\111\114\92\63\32\124\119\104\101\110\32\124\119\104\101\110\92\45\102\105\114\115\116\32\124\119\104\101\110\92\45\108\101\116\32\124\119\104\101\110\92\45\110\111\116\32\124\119\105\116\104\92\45\108\111\99\97\108\92\45\118\97\114\115\32\124\119\105\116\104\92\45\109\101\116\97\32\124\119\105\116\104\92\45\111\112\101\110\32\124\119\105\116\104\92\45\111\117\116\92\45\115\116\114\32\124\120\109\108\92\45\115\101\113\32\124\120\109\108\92\45\122\105\112\32\124\122\101\114\111\92\63\32\124\122\105\112\109\97\112\32\124\122\105\112\112\101\114\32\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\63\60\61\92\40\41\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\92\91\124\92\93\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\92\123\124\92\125\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\92\40\124\92\41\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok ";.*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "\\s+" (Arbitrary "Text")+    , tok "-?\\d+\\.\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "-?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "'[a-zA-Z0-9!$%&*+,/:<=>?@^_\126-]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "\\\\([()/'\\\".'_!\195\130\194\167$%& ?;=#+-]{1}|[a-zA-Z0-9]+)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(#t|#f)" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "('|#|`|,@|,|\\.)" (Arbitrary "Operator")+    , tok "(fn |def |defn |defmacro |defmethod |defmulti |defn\\- |defstruct |if |cond |let |for )" (Arbitrary "Keyword")+    , tok "(?<='\\()[a-zA-Z0-9!$%&*+,/:<=>?@^_\126-]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(?<=#\\()[a-zA-Z0-9!$%&*+,/:<=>?@^_\126-]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(?<=\\()(\\. |\\.\\. |\\* |\\+ |\\- |\\-\\> |\\.\\. |\\/ |\\< |\\<\\= |\\= |\\=\\= |\\> |\\>\\= |accessor |agent |agent\\-errors |aget |alength |all\\-ns |alter |and |append\\-child |apply |array\\-map |aset |aset\\-boolean |aset\\-byte |aset\\-char |aset\\-double |aset\\-float |aset\\-int |aset\\-long |aset\\-short |assert |assoc |await |await\\-for |bean |binding |bit\\-and |bit\\-not |bit\\-or |bit\\-shift\\-left |bit\\-shift\\-right |bit\\-xor |boolean |branch\\? |butlast |byte |cast |char |children |class |clear\\-agent\\-errors |comment |commute |comp |comparator |complement |concat |conj |cons |constantly |construct\\-proxy |contains\\? |count |create\\-ns |create\\-struct |cycle |dec |deref |difference |disj |dissoc |distinct |doall |doc |dorun |doseq |dosync |dotimes |doto |double |down |drop |drop\\-while |edit |end\\? |ensure |eval |every\\? |false\\? |ffirst |file\\-seq |filter |find |find\\-doc |find\\-ns |find\\-var |first |float |flush |fnseq |frest |gensym |get |get\\-proxy\\-class |hash\\-map |hash\\-set |identical\\? |identity |if\\-let |import |in\\-ns |inc |index |insert\\-child |insert\\-left |insert\\-right |inspect\\-table |inspect\\-tree |instance\\? |int |interleave |intersection |into |into\\-array |iterate |join |key |keys |keyword |keyword\\? |last |lazy\\-cat |lazy\\-cons |left |lefts |line\\-seq |list |list\\* |load |load\\-file |locking |long |loop |macroexpand |macroexpand\\-1 |make\\-array |make\\-node |map |map\\-invert |map\\? |mapcat |max |max\\-key |memfn |merge |merge\\-with |meta |min |min\\-key |name |namespace |neg\\? |new |newline |next |nil\\? |node |not |not\\-any\\? |not\\-every\\? |not\\= |ns\\-imports |ns\\-interns |ns\\-map |ns\\-name |ns\\-publics |ns\\-refers |ns\\-resolve |ns\\-unmap |nth |nthrest |or |parse |partial |path |peek |pop |pos\\? |pr |pr\\-str |print |print\\-str |println |println\\-str |prn |prn\\-str |project |proxy |proxy\\-mappings |quot |rand |rand\\-int |range |re\\-find |re\\-groups |re\\-matcher |re\\-matches |re\\-pattern |re\\-seq |read |read\\-line |reduce |ref |ref\\-set |refer |rem |remove |remove\\-method |remove\\-ns |rename |rename\\-keys |repeat |replace |replicate |resolve |rest |resultset\\-seq |reverse |rfirst |right |rights |root |rrest |rseq |second |select |select\\-keys |send |send\\-off |seq |seq\\-zip |seq\\? |set |short |slurp |some |sort |sort\\-by |sorted\\-map |sorted\\-map\\-by |sorted\\-set |special\\-symbol\\? |split\\-at |split\\-with |str |string\\? |struct |struct\\-map |subs |subvec |symbol |symbol\\? |sync |take |take\\-nth |take\\-while |test |time |to\\-array |to\\-array\\-2d |tree\\-seq |true\\? |union |up |update\\-proxy |val |vals |var\\-get |var\\-set |var\\? |vector |vector\\-zip |vector\\? |when |when\\-first |when\\-let |when\\-not |with\\-local\\-vars |with\\-meta |with\\-open |with\\-out\\-str |xml\\-seq |xml\\-zip |zero\\? |zipmap |zipper )" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?<=\\()[a-zA-Z0-9!$%&*+,/:<=>?@^_\126-]+" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "[a-zA-Z0-9!$%&*+,/:<=>?@^_\126-]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(\\[|\\])" (Arbitrary "Punctuation")+    , tok "(\\{|\\})" (Arbitrary "Punctuation")+    , tok "(\\(|\\))" (Arbitrary "Punctuation")     ] 
src/Text/Highlighter/Lexers/CoffeeScript.hs view
@@ -5,49 +5,51 @@  lexer :: Lexer lexer = Lexer-    { lName = "\67\111\102\102\101\101\83\99\114\105\112\116"-    , lAliases = ["\99\111\102\102\101\101\45\115\99\114\105\112\116", "\99\111\102\102\101\101\115\99\114\105\112\116"]-    , lExtensions = ["\46\99\111\102\102\101\101"]-    , lMimetypes = ["\116\101\120\116\47\99\111\102\102\101\101\115\99\114\105\112\116"]+    { lName = "CoffeeScript"+    , lAliases = ["coffee-script", "coffeescript"]+    , lExtensions = [".coffee"]+    , lMimetypes = ["text/coffeescript"]     , lStart = root'     , lFlags = [dotall]     }  commentsandwhitespace' :: TokenMatcher commentsandwhitespace' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "#.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")     ]  root' :: TokenMatcher root' =-    [ tokNext "\94\40\63\61\92\115\124\47\124\60\33\45\45\41" (Arbitrary "\84\101\120\116") (GoTo slashstartsregex')+    [ tokNext "^(?=\\s|/|<!--)" (Arbitrary "Text") (GoTo slashstartsregex')     , anyOf commentsandwhitespace'-    , tokNext "\92\43\92\43\124\45\45\124\126\124\38\38\124\92\98\97\110\100\92\98\124\92\98\111\114\92\98\124\92\98\105\115\92\98\124\92\98\105\115\110\116\92\98\124\92\98\110\111\116\92\98\124\92\63\124\58\124\92\124\92\124\124\92\92\40\63\61\92\110\41\124\40\60\60\124\62\62\62\63\124\61\61\63\124\33\61\63\124\91\45\60\62\43\42\96\37\38\92\124\92\94\47\93\41\61\63" (Arbitrary "\79\112\101\114\97\116\111\114") (GoTo slashstartsregex')-    , tokNext "\91\123\40\92\91\59\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo slashstartsregex')-    , tok "\91\125\41\92\93\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\40\102\111\114\124\105\110\124\111\102\124\119\104\105\108\101\124\98\114\101\97\107\124\114\101\116\117\114\110\124\99\111\110\116\105\110\117\101\124\115\119\105\116\99\104\124\119\104\101\110\124\116\104\101\110\124\105\102\124\101\108\115\101\124\116\104\114\111\119\124\116\114\121\124\99\97\116\99\104\124\102\105\110\97\108\108\121\124\110\101\119\124\100\101\108\101\116\101\124\116\121\112\101\111\102\124\105\110\115\116\97\110\99\101\111\102\124\115\117\112\101\114\124\101\120\116\101\110\100\115\124\116\104\105\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo slashstartsregex')-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\121\101\115\124\110\111\124\111\110\124\111\102\102\124\110\117\108\108\124\78\97\78\124\73\110\102\105\110\105\116\121\124\117\110\100\101\102\105\110\101\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\65\114\114\97\121\124\66\111\111\108\101\97\110\124\68\97\116\101\124\69\114\114\111\114\124\70\117\110\99\116\105\111\110\124\77\97\116\104\124\110\101\116\115\99\97\112\101\124\78\117\109\98\101\114\124\79\98\106\101\99\116\124\80\97\99\107\97\103\101\115\124\82\101\103\69\120\112\124\83\116\114\105\110\103\124\115\117\110\124\100\101\99\111\100\101\85\82\73\124\100\101\99\111\100\101\85\82\73\67\111\109\112\111\110\101\110\116\124\101\110\99\111\100\101\85\82\73\124\101\110\99\111\100\101\85\82\73\67\111\109\112\111\110\101\110\116\124\69\114\114\111\114\124\101\118\97\108\124\105\115\70\105\110\105\116\101\124\105\115\78\97\78\124\112\97\114\115\101\70\108\111\97\116\124\112\97\114\115\101\73\110\116\124\100\111\99\117\109\101\110\116\124\116\104\105\115\124\119\105\110\100\111\119\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tokNext "\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\92\46\58\93\42\58\92\115" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") (GoTo slashstartsregex')-    , tok "\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\79\116\104\101\114")-    , tok "\91\48\45\57\93\91\48\45\57\93\42\92\46\91\48\45\57\93\43\40\91\101\69\93\91\48\45\57\93\43\41\63\91\102\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")+    , tokNext "\\+\\+|--|\126|&&|\\band\\b|\\bor\\b|\\bis\\b|\\bisnt\\b|\\bnot\\b|\\?|:|=|\\|\\||\\\\(?=\\n)|(<<|>>>?|==?|!=?|[-<>+*`%&\\|\\^/])=?" (Arbitrary "Operator") (GoTo slashstartsregex')+    , tok "\\([^()]*\\)\\s*->" (Arbitrary "Name" :. Arbitrary "Function")+    , tokNext "[{(\\[;,]" (Arbitrary "Punctuation") (GoTo slashstartsregex')+    , tok "[})\\].]" (Arbitrary "Punctuation")+    , tokNext "(for|in|of|while|break|return|continue|switch|when|then|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|super|extends|this|class|by)\\b" (Arbitrary "Keyword") (GoTo slashstartsregex')+    , tok "(true|false|yes|no|on|off|null|NaN|Infinity|undefined)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|eval|isFinite|isNaN|parseFloat|parseInt|document|window)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tokNext "[$a-zA-Z_][a-zA-Z0-9_\\.:]*\\s*[:=]\\s" (Arbitrary "Name" :. Arbitrary "Variable") (GoTo slashstartsregex')+    , tokNext "@[$a-zA-Z_][a-zA-Z0-9_\\.:]*\\s*[:=]\\s" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Instance") (GoTo slashstartsregex')+    , tokNext "@?[$a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Other") (GoTo slashstartsregex')+    , tok "[0-9][0-9]*\\.[0-9]+([eE][0-9]+)?[fd]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")     ]  slashstartsregex' :: TokenMatcher slashstartsregex' =     [ anyOf commentsandwhitespace'-    , tokNext "\47\40\92\92\46\124\91\94\91\47\92\92\92\110\93\124\92\91\40\92\92\46\124\91\94\92\93\92\92\92\110\93\41\42\93\41\43\47\40\91\103\105\109\93\43\92\98\124\92\66\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\40\63\61\47\41" (Arbitrary "\84\101\120\116") (DoAll [Pop, (GoTo badregex')])-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    , tokNext "/(\\\\.|[^[/\\\\\\n]|\\[(\\\\.|[^\\]\\\\\\n])*])+/([gim]+\\b|\\B)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "(?=/)" (Arbitrary "Text") (DoAll [Pop, (GoTo badregex')])+    , tokNext "" (Arbitrary "Text") Pop     ]  badregex' :: TokenMatcher badregex' =-    [ tokNext "\10" (Arbitrary "\84\101\120\116") Pop+    [ tokNext "\10" (Arbitrary "Text") Pop     ] 
src/Text/Highlighter/Lexers/Coldfusion.hs view
@@ -5,8 +5,8 @@  lexer :: Lexer lexer = Lexer-    { lName = "\99\102\115\116\97\116\101\109\101\110\116"-    , lAliases = ["\99\102\115"]+    { lName = "cfstatement"+    , lAliases = ["cfs"]     , lExtensions = []     , lMimetypes = []     , lStart = root'@@ -15,29 +15,29 @@  root' :: TokenMatcher root' =-    [ tok "\47\47\46\42" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\43\92\43\124\45\45" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\45\43\42\47\94\38\61\33\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\60\61\124\62\61\124\60\124\62" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\109\111\100\92\98" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\101\113\124\108\116\124\103\116\124\108\116\101\124\103\116\101\124\110\111\116\124\105\115\124\97\110\100\124\111\114\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\124\92\124\124\38\38" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") (GoTo string')-    , tok "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\40\105\102\124\101\108\115\101\124\108\101\110\124\118\97\114\124\99\97\115\101\124\100\101\102\97\117\108\116\124\98\114\101\97\107\124\115\119\105\116\99\104\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\91\65\45\90\97\45\122\95\36\93\91\65\45\90\97\45\122\48\45\57\95\46\93\42\41\92\115\42\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\91\65\45\90\97\45\122\95\36\93\91\65\45\90\97\45\122\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\40\41\92\91\92\93\123\125\59\58\44\46\92\92\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "//.*" (Arbitrary "Comment")+    , tok "\\+\\+|--" (Arbitrary "Operator")+    , tok "[-+*/^&=!]" (Arbitrary "Operator")+    , tok "<=|>=|<|>" (Arbitrary "Operator")+    , tok "mod\\b" (Arbitrary "Operator")+    , tok "(eq|lt|gt|lte|gte|not|is|and|or)\\b" (Arbitrary "Operator")+    , tok "\\|\\||&&" (Arbitrary "Operator")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo string')+    , tok "'.*?'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "(if|else|len|var|case|default|break|switch)\\b" (Arbitrary "Keyword")+    , tok "([A-Za-z_$][A-Za-z0-9_.]*)\\s*(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation")])+    , tok "[A-Za-z_$][A-Za-z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[()\\[\\]{};:,.\\\\]" (Arbitrary "Punctuation")+    , tok "\\s+" (Arbitrary "Text")     ]  string' :: TokenMatcher string' =-    [ tok "\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\35\46\43\63\35" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112")-    , tok "\91\94\34\35\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\35" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") Pop+    [ tok "\"\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "#.+?#" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interp")+    , tok "[^\"#]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "#" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") Pop     ] 
src/Text/Highlighter/Lexers/CommonLisp.hs view
@@ -5,72 +5,72 @@  lexer :: Lexer lexer = Lexer-    { lName = "\67\111\109\109\111\110\32\76\105\115\112"-    , lAliases = ["\99\111\109\109\111\110\45\108\105\115\112", "\99\108"]-    , lExtensions = ["\46\99\108", "\46\108\105\115\112", "\46\101\108"]-    , lMimetypes = ["\116\101\120\116\47\120\45\99\111\109\109\111\110\45\108\105\115\112"]+    { lName = "Common Lisp"+    , lAliases = ["common-lisp", "cl"]+    , lExtensions = [".cl", ".lisp", ".el"]+    , lMimetypes = ["text/x-common-lisp"]     , lStart = root'     , lFlags = [caseless, multiline]     }  multilineComment' :: TokenMatcher multilineComment' =-    [ tokNext "\35\92\124" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\92\124\35" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\94\124\35\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\91\124\35\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "#\\|" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "\\|#" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[^|#]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "[|#]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  body' :: TokenMatcher body' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\59\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\35\92\124" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo multilineComment')-    , tok "\35\92\100\42\89\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\112\101\99\105\97\108")-    , tok "\34\40\92\92\46\124\91\94\34\92\92\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\58\40\92\124\91\94\124\93\43\92\124\124\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\41\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\124\91\35\46\58\93\41\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\39\40\92\124\91\94\124\93\43\92\124\124\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\41\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\124\91\35\46\58\93\41\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\39" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\96" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\45\43\93\63\92\100\43\92\46\63\40\63\61\91\32\34\40\41\92\39\92\110\44\59\96\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\45\43\93\63\92\100\43\47\92\100\43\40\63\61\91\32\34\40\41\92\39\92\110\44\59\96\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\45\43\93\63\40\92\100\42\92\46\92\100\43\40\91\100\101\102\108\115\93\91\45\43\93\63\92\100\43\41\63\124\92\100\43\40\92\46\92\100\42\41\63\91\100\101\102\108\115\93\91\45\43\93\63\92\100\43\41\40\63\61\91\32\34\40\41\92\39\92\110\44\59\96\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\35\92\92\46\40\63\61\91\32\34\40\41\92\39\92\110\44\59\96\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\35\92\92\40\92\124\91\94\124\93\43\92\124\124\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\41\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\124\91\35\46\58\93\41\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tokNext "\35\92\40" (Arbitrary "\79\112\101\114\97\116\111\114") (GoTo body')-    , tok "\35\92\100\42\92\42\91\48\49\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\79\116\104\101\114")-    , tok "\35\58\40\92\124\91\94\124\93\43\92\124\124\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\41\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\124\91\35\46\58\93\41\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\35\91\46\44\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\35\92\39" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\35\91\98\66\93\91\43\45\93\63\91\48\49\93\43\40\47\91\48\49\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\35\91\111\79\93\91\43\45\93\63\91\48\45\55\93\43\40\47\91\48\45\55\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\35\91\120\88\93\91\43\45\93\63\91\48\45\57\97\45\102\65\45\70\93\43\40\47\91\48\45\57\97\45\102\65\45\70\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\35\92\100\43\91\114\82\93\91\43\45\93\63\91\48\45\57\97\45\122\65\45\90\93\43\40\47\91\48\45\57\97\45\122\65\45\90\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tokNext "\40\35\91\99\67\93\41\40\92\40\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo body')-    , tokNext "\40\35\92\100\43\91\97\65\93\41\40\92\40\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\79\116\104\101\114"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo body')-    , tokNext "\40\35\91\115\83\93\41\40\92\40\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\79\116\104\101\114"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo body')-    , tok "\35\91\112\80\93\63\34\40\92\92\46\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\79\116\104\101\114")-    , tok "\35\92\100\43\61" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\35\92\100\43\35" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tokNext "\35\43\110\105\108\40\63\61\91\32\34\40\41\92\39\92\110\44\59\96\93\41\92\115\42\92\40" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo commentedForm')-    , tok "\35\91\43\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\44\64\124\44\124\92\46\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\116\124\110\105\108\41\40\63\61\91\32\34\40\41\92\39\92\110\44\59\96\93\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\42\40\92\124\91\94\124\93\43\92\124\124\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\41\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\124\91\35\46\58\93\41\42\41\92\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\71\108\111\98\97\108")-    , tok "\40\92\124\91\94\124\93\43\92\124\124\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\41\40\63\58\92\92\46\124\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\45\47\60\61\62\63\64\92\91\92\93\94\95\123\125\126\93\124\91\35\46\58\93\41\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo body')-    , tokNext "\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tok ";.*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "#\\|" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo multilineComment')+    , tok "#\\d*Y.*$" (Arbitrary "Comment" :. Arbitrary "Special")+    , tok "\"(\\\\.|[^\"\\\\])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok ":(\\|[^|]+\\||(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126])(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126]|[#.:])*)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "'(\\|[^|]+\\||(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126])(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126]|[#.:])*)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "'" (Arbitrary "Operator")+    , tok "`" (Arbitrary "Operator")+    , tok "[-+]?\\d+\\.?(?=[ \"()\\'\\n,;`])" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[-+]?\\d+/\\d+(?=[ \"()\\'\\n,;`])" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[-+]?(\\d*\\.\\d+([defls][-+]?\\d+)?|\\d+(\\.\\d*)?[defls][-+]?\\d+)(?=[ \"()\\'\\n,;`])" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "#\\\\.(?=[ \"()\\'\\n,;`])" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "#\\\\(\\|[^|]+\\||(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126])(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126]|[#.:])*)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tokNext "#\\(" (Arbitrary "Operator") (GoTo body')+    , tok "#\\d*\\*[01]*" (Arbitrary "Literal" :. Arbitrary "Other")+    , tok "#:(\\|[^|]+\\||(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126])(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126]|[#.:])*)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "#[.,]" (Arbitrary "Operator")+    , tok "#\\'" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "#[bB][+-]?[01]+(/[01]+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "#[oO][+-]?[0-7]+(/[0-7]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "#[xX][+-]?[0-9a-fA-F]+(/[0-9a-fA-F]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "#\\d+[rR][+-]?[0-9a-zA-Z]+(/[0-9a-zA-Z]+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tokNext "(#[cC])(\\()" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number"), (Arbitrary "Punctuation")]) (GoTo body')+    , tokNext "(#\\d+[aA])(\\()" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Other"), (Arbitrary "Punctuation")]) (GoTo body')+    , tokNext "(#[sS])(\\()" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Other"), (Arbitrary "Punctuation")]) (GoTo body')+    , tok "#[pP]?\"(\\\\.|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "Other")+    , tok "#\\d+=" (Arbitrary "Operator")+    , tok "#\\d+#" (Arbitrary "Operator")+    , tokNext "#+nil(?=[ \"()\\'\\n,;`])\\s*\\(" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo commentedForm')+    , tok "#[+-]" (Arbitrary "Operator")+    , tok "(,@|,|\\.)" (Arbitrary "Operator")+    , tok "(t|nil)(?=[ \"()\\'\\n,;`])" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\\*(\\|[^|]+\\||(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126])(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126]|[#.:])*)\\*" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Global")+    , tok "(\\|[^|]+\\||(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126])(?:\\\\.|[a-zA-Z0-9!$%&*+-/<=>?@\\[\\]^_{}\126]|[#.:])*)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tokNext "\\(" (Arbitrary "Punctuation") (GoTo body')+    , tokNext "\\)" (Arbitrary "Punctuation") Pop     ]  root' :: TokenMatcher root' =-    [ tokNext "" (Arbitrary "\84\101\120\116") (GoTo body')+    [ tokNext "" (Arbitrary "Text") (GoTo body')     ]  commentedForm' :: TokenMatcher commentedForm' =-    [ tokNext "\92\40" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Push-    , tokNext "\92\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\91\94\40\41\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")+    [ tokNext "\\(" (Arbitrary "Comment" :. Arbitrary "Preproc") Push+    , tokNext "\\)" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok "[^()]+" (Arbitrary "Comment" :. Arbitrary "Preproc")     ] 
src/Text/Highlighter/Lexers/Cpp.hs view
@@ -5,74 +5,77 @@  lexer :: Lexer lexer = Lexer-    { lName = "\67\43\43"-    , lAliases = ["\99\112\112", "\99\43\43"]-    , lExtensions = ["\46\99\112\112", "\46\104\112\112", "\46\99\43\43", "\46\104\43\43", "\46\99\99", "\46\104\104", "\46\99\120\120", "\46\104\120\120"]-    , lMimetypes = ["\116\101\120\116\47\120\45\99\43\43\104\100\114", "\116\101\120\116\47\120\45\99\43\43\115\114\99"]+    { lName = "C++"+    , lAliases = ["cpp", "c++"]+    , lExtensions = [".cpp", ".hpp", ".c++", ".h++", ".cc", ".hh", ".cxx", ".hxx"]+    , lMimetypes = ["text/x-c++hdr", "text/x-c++src"]     , lStart = root'     , lFlags = [multiline]     }  classname' :: TokenMatcher classname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop-    , tokNext "\92\115\42\40\63\61\62\41" (Arbitrary "\84\101\120\116") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop+    , tokNext "\\s*(?=>)" (Arbitrary "Text") Pop     ]  macro' :: TokenMatcher macro' =-    [ tok "\91\94\47\92\110\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\47\91\42\93\40\46\124\92\110\41\42\63\91\42\93\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101") Pop-    , tok "\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\40\63\60\61\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop+    [ tok "[^/\\n]+" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "/[*](.|\\n)*?[*]/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single") Pop+    , tok "/" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(?<=\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop     ]  root' :: TokenMatcher root' =-    [ tokNext "\94\92\115\42\35\105\102\92\115\43\48" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo if0')-    , tokNext "\94\92\115\42\35" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo macro')-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\47\40\92\92\92\110\41\63\47\40\92\110\124\40\46\124\92\110\41\42\63\91\94\92\92\93\92\110\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\91\123\125\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\76\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\76\63\39\40\92\92\46\124\92\92\91\48\45\55\93\123\49\44\51\125\124\92\92\120\91\97\45\102\65\45\70\48\45\57\93\123\49\44\50\125\124\91\94\92\92\92\39\92\110\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\41\91\101\69\93\91\43\45\93\63\92\100\43\91\108\76\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\91\102\70\93\41\91\102\70\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\48\45\55\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\92\100\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\92\42\47" (Arbitrary "\69\114\114\111\114")-    , tok "\91\126\33\37\94\38\42\43\61\124\63\58\60\62\47\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\40\41\92\91\92\93\44\46\59\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\97\115\109\124\97\117\116\111\124\98\114\101\97\107\124\99\97\115\101\124\99\97\116\99\104\124\99\111\110\115\116\124\99\111\110\115\116\95\99\97\115\116\124\99\111\110\116\105\110\117\101\124\100\101\102\97\117\108\116\124\100\101\108\101\116\101\124\100\111\124\100\121\110\97\109\105\99\95\99\97\115\116\124\101\108\115\101\124\101\110\117\109\124\101\120\112\108\105\99\105\116\124\101\120\112\111\114\116\124\101\120\116\101\114\110\124\102\111\114\124\102\114\105\101\110\100\124\103\111\116\111\124\105\102\124\109\117\116\97\98\108\101\124\110\97\109\101\115\112\97\99\101\124\110\101\119\124\111\112\101\114\97\116\111\114\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\112\117\98\108\105\99\124\114\101\103\105\115\116\101\114\124\114\101\105\110\116\101\114\112\114\101\116\95\99\97\115\116\124\114\101\116\117\114\110\124\114\101\115\116\114\105\99\116\124\115\105\122\101\111\102\124\115\116\97\116\105\99\124\115\116\97\116\105\99\95\99\97\115\116\124\115\116\114\117\99\116\124\115\119\105\116\99\104\124\116\101\109\112\108\97\116\101\124\116\104\105\115\124\116\104\114\111\119\124\116\104\114\111\119\115\124\116\114\121\124\116\121\112\101\100\101\102\124\116\121\112\101\105\100\124\116\121\112\101\110\97\109\101\124\117\110\105\111\110\124\117\115\105\110\103\124\118\111\108\97\116\105\108\101\124\118\105\114\116\117\97\108\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\40\99\108\97\115\115\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tok "\40\98\111\111\108\124\105\110\116\124\108\111\110\103\124\102\108\111\97\116\124\115\104\111\114\116\124\100\111\117\98\108\101\124\99\104\97\114\124\117\110\115\105\103\110\101\100\124\115\105\103\110\101\100\124\118\111\105\100\124\119\99\104\97\114\95\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\95\123\48\44\50\125\105\110\108\105\110\101\124\110\97\107\101\100\124\116\104\114\101\97\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\95\95\40\97\115\109\124\105\110\116\56\124\98\97\115\101\100\124\101\120\99\101\112\116\124\105\110\116\49\54\124\115\116\100\99\97\108\108\124\99\100\101\99\108\124\102\97\115\116\99\97\108\108\124\105\110\116\51\50\124\100\101\99\108\115\112\101\99\124\102\105\110\97\108\108\121\124\105\110\116\54\52\124\116\114\121\124\108\101\97\118\101\124\119\99\104\97\114\95\116\124\119\54\52\124\118\105\114\116\117\97\108\95\105\110\104\101\114\105\116\97\110\99\101\124\117\117\105\100\111\102\124\117\110\97\108\105\103\110\101\100\124\115\117\112\101\114\124\115\105\110\103\108\101\95\105\110\104\101\114\105\116\97\110\99\101\124\114\97\105\115\101\124\110\111\111\112\124\109\117\108\116\105\112\108\101\95\105\110\104\101\114\105\116\97\110\99\101\124\109\49\50\56\105\124\109\49\50\56\100\124\109\49\50\56\124\109\54\52\124\105\110\116\101\114\102\97\99\101\124\105\100\101\110\116\105\102\105\101\114\124\102\111\114\99\101\105\110\108\105\110\101\124\101\118\101\110\116\124\97\115\115\117\109\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\78\85\76\76\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\58\40\63\33\58\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")+    [ tokNext "^#if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tokNext "^#" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')+    , tokNext "^(?:\\s|//.*?\\n|/[*].*?[*]/)+#if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tokNext "^(?:\\s|//.*?\\n|/[*].*?[*]/)+#" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')+    , tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "/(\\\\\\n)?/(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "[{}]" (Arbitrary "Punctuation")+    , tokNext "L?\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "L?'(\\\\.|\\\\[0-7]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\'\\n])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\d+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\*/" (Arbitrary "Error")+    , tok "[\126!%^&*+=|?:<>/-]" (Arbitrary "Operator")+    , tok "[()\\[\\],.;]" (Arbitrary "Punctuation")+    , tok "(asm|auto|break|case|catch|const|const_cast|continue|default|delete|do|dynamic_cast|else|enum|explicit|export|extern|for|friend|goto|if|mutable|namespace|new|operator|private|protected|public|register|reinterpret_cast|return|restrict|sizeof|static|static_cast|struct|switch|template|this|throw|throws|try|typedef|typeid|typename|union|using|volatile|virtual|while)\\b" (Arbitrary "Keyword")+    , tokNext "(class)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tok "(bool|int|long|float|short|double|char|unsigned|signed|void|wchar_t)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(_{0,2}inline|naked|thread)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "__(asm|int8|based|except|int16|stdcall|cdecl|fastcall|int32|declspec|finally|int64|try|leave|wchar_t|w64|virtual_inheritance|uuidof|unaligned|super|single_inheritance|raise|noop|multiple_inheritance|m128i|m128d|m128|m64|interface|identifier|forceinline|event|assume)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(__offload|__blockingoffload|__outer)\\b" (Arbitrary "Keyword" :. Arbitrary "Psuedo")+    , tok "(true|false)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "NULL\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*:(?!:)" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")     ]  string' :: TokenMatcher string' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\44\52\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\91\94\92\92\34\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ]  if0' :: TokenMatcher if0' =-    [ tokNext "\94\92\115\42\35\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Push-    , tokNext "\94\92\115\42\35\101\110\100\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tokNext "^\\s*#if.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Push+    , tokNext "^\\s*#endif.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok ".*?\\n" (Arbitrary "Comment")     ] 
src/Text/Highlighter/Lexers/Css.hs view
@@ -5,47 +5,47 @@  lexer :: Lexer lexer = Lexer-    { lName = "\67\83\83"-    , lAliases = ["\99\115\115"]-    , lExtensions = ["\46\99\115\115"]-    , lMimetypes = ["\116\101\120\116\47\99\115\115"]+    { lName = "CSS"+    , lAliases = ["css"]+    , lExtensions = [".css"]+    , lMimetypes = ["text/css"]     , lStart = root'     , lFlags = [multiline]     }  content' :: TokenMatcher content' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\117\114\108\92\40\46\42\63\92\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tok "\94\64\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\40\97\122\105\109\117\116\104\124\98\97\99\107\103\114\111\117\110\100\45\97\116\116\97\99\104\109\101\110\116\124\98\97\99\107\103\114\111\117\110\100\45\99\111\108\111\114\124\98\97\99\107\103\114\111\117\110\100\45\105\109\97\103\101\124\98\97\99\107\103\114\111\117\110\100\45\112\111\115\105\116\105\111\110\124\98\97\99\107\103\114\111\117\110\100\45\114\101\112\101\97\116\124\98\97\99\107\103\114\111\117\110\100\124\98\111\114\100\101\114\45\98\111\116\116\111\109\45\99\111\108\111\114\124\98\111\114\100\101\114\45\98\111\116\116\111\109\45\115\116\121\108\101\124\98\111\114\100\101\114\45\98\111\116\116\111\109\45\119\105\100\116\104\124\98\111\114\100\101\114\45\108\101\102\116\45\99\111\108\111\114\124\98\111\114\100\101\114\45\108\101\102\116\45\115\116\121\108\101\124\98\111\114\100\101\114\45\108\101\102\116\45\119\105\100\116\104\124\98\111\114\100\101\114\45\114\105\103\104\116\124\98\111\114\100\101\114\45\114\105\103\104\116\45\99\111\108\111\114\124\98\111\114\100\101\114\45\114\105\103\104\116\45\115\116\121\108\101\124\98\111\114\100\101\114\45\114\105\103\104\116\45\119\105\100\116\104\124\98\111\114\100\101\114\45\116\111\112\45\99\111\108\111\114\124\98\111\114\100\101\114\45\116\111\112\45\115\116\121\108\101\124\98\111\114\100\101\114\45\116\111\112\45\119\105\100\116\104\124\98\111\114\100\101\114\45\98\111\116\116\111\109\124\98\111\114\100\101\114\45\99\111\108\108\97\112\115\101\124\98\111\114\100\101\114\45\108\101\102\116\124\98\111\114\100\101\114\45\119\105\100\116\104\124\98\111\114\100\101\114\45\99\111\108\111\114\124\98\111\114\100\101\114\45\115\112\97\99\105\110\103\124\98\111\114\100\101\114\45\115\116\121\108\101\124\98\111\114\100\101\114\45\116\111\112\124\98\111\114\100\101\114\124\99\97\112\116\105\111\110\45\115\105\100\101\124\99\108\101\97\114\124\99\108\105\112\124\99\111\108\111\114\124\99\111\110\116\101\110\116\124\99\111\117\110\116\101\114\45\105\110\99\114\101\109\101\110\116\124\99\111\117\110\116\101\114\45\114\101\115\101\116\124\99\117\101\45\97\102\116\101\114\124\99\117\101\45\98\101\102\111\114\101\124\99\117\101\124\99\117\114\115\111\114\124\100\105\114\101\99\116\105\111\110\124\100\105\115\112\108\97\121\124\101\108\101\118\97\116\105\111\110\124\101\109\112\116\121\45\99\101\108\108\115\124\102\108\111\97\116\124\102\111\110\116\45\102\97\109\105\108\121\124\102\111\110\116\45\115\105\122\101\124\102\111\110\116\45\115\105\122\101\45\97\100\106\117\115\116\124\102\111\110\116\45\115\116\114\101\116\99\104\124\102\111\110\116\45\115\116\121\108\101\124\102\111\110\116\45\118\97\114\105\97\110\116\124\102\111\110\116\45\119\101\105\103\104\116\124\102\111\110\116\124\104\101\105\103\104\116\124\108\101\116\116\101\114\45\115\112\97\99\105\110\103\124\108\105\110\101\45\104\101\105\103\104\116\124\108\105\115\116\45\115\116\121\108\101\45\116\121\112\101\124\108\105\115\116\45\115\116\121\108\101\45\105\109\97\103\101\124\108\105\115\116\45\115\116\121\108\101\45\112\111\115\105\116\105\111\110\124\108\105\115\116\45\115\116\121\108\101\124\109\97\114\103\105\110\45\98\111\116\116\111\109\124\109\97\114\103\105\110\45\108\101\102\116\124\109\97\114\103\105\110\45\114\105\103\104\116\124\109\97\114\103\105\110\45\116\111\112\124\109\97\114\103\105\110\124\109\97\114\107\101\114\45\111\102\102\115\101\116\124\109\97\114\107\115\124\109\97\120\45\104\101\105\103\104\116\124\109\97\120\45\119\105\100\116\104\124\109\105\110\45\104\101\105\103\104\116\124\109\105\110\45\119\105\100\116\104\124\111\112\97\99\105\116\121\124\111\114\112\104\97\110\115\124\111\117\116\108\105\110\101\124\111\117\116\108\105\110\101\45\99\111\108\111\114\124\111\117\116\108\105\110\101\45\115\116\121\108\101\124\111\117\116\108\105\110\101\45\119\105\100\116\104\124\111\118\101\114\102\108\111\119\40\63\58\45\120\124\45\121\124\41\124\112\97\100\100\105\110\103\45\98\111\116\116\111\109\124\112\97\100\100\105\110\103\45\108\101\102\116\124\112\97\100\100\105\110\103\45\114\105\103\104\116\124\112\97\100\100\105\110\103\45\116\111\112\124\112\97\100\100\105\110\103\124\112\97\103\101\124\112\97\103\101\45\98\114\101\97\107\45\97\102\116\101\114\124\112\97\103\101\45\98\114\101\97\107\45\98\101\102\111\114\101\124\112\97\103\101\45\98\114\101\97\107\45\105\110\115\105\100\101\124\112\97\117\115\101\45\97\102\116\101\114\124\112\97\117\115\101\45\98\101\102\111\114\101\124\112\97\117\115\101\124\112\105\116\99\104\124\112\105\116\99\104\45\114\97\110\103\101\124\112\108\97\121\45\100\117\114\105\110\103\124\112\111\115\105\116\105\111\110\124\113\117\111\116\101\115\124\114\105\99\104\110\101\115\115\124\114\105\103\104\116\124\115\105\122\101\124\115\112\101\97\107\45\104\101\97\100\101\114\124\115\112\101\97\107\45\110\117\109\101\114\97\108\124\115\112\101\97\107\45\112\117\110\99\116\117\97\116\105\111\110\124\115\112\101\97\107\124\115\112\101\101\99\104\45\114\97\116\101\124\115\116\114\101\115\115\124\116\97\98\108\101\45\108\97\121\111\117\116\124\116\101\120\116\45\97\108\105\103\110\124\116\101\120\116\45\100\101\99\111\114\97\116\105\111\110\124\116\101\120\116\45\105\110\100\101\110\116\124\116\101\120\116\45\115\104\97\100\111\119\124\116\101\120\116\45\116\114\97\110\115\102\111\114\109\124\116\111\112\124\117\110\105\99\111\100\101\45\98\105\100\105\124\118\101\114\116\105\99\97\108\45\97\108\105\103\110\124\118\105\115\105\98\105\108\105\116\121\124\118\111\105\99\101\45\102\97\109\105\108\121\124\118\111\108\117\109\101\124\119\104\105\116\101\45\115\112\97\99\101\124\119\105\100\111\119\115\124\119\105\100\116\104\124\119\111\114\100\45\115\112\97\99\105\110\103\124\122\45\105\110\100\101\120\124\98\111\116\116\111\109\124\108\101\102\116\124\97\98\111\118\101\124\97\98\115\111\108\117\116\101\124\97\108\119\97\121\115\124\97\114\109\101\110\105\97\110\124\97\117\114\97\108\124\97\117\116\111\124\97\118\111\105\100\124\98\97\115\101\108\105\110\101\124\98\101\104\105\110\100\124\98\101\108\111\119\124\98\105\100\105\45\111\118\101\114\114\105\100\101\124\98\108\105\110\107\124\98\108\111\99\107\124\98\111\108\100\124\98\111\108\100\101\114\124\98\111\116\104\124\99\97\112\105\116\97\108\105\122\101\124\99\101\110\116\101\114\45\108\101\102\116\124\99\101\110\116\101\114\45\114\105\103\104\116\124\99\101\110\116\101\114\124\99\105\114\99\108\101\124\99\106\107\45\105\100\101\111\103\114\97\112\104\105\99\124\99\108\111\115\101\45\113\117\111\116\101\124\99\111\108\108\97\112\115\101\124\99\111\110\100\101\110\115\101\100\124\99\111\110\116\105\110\117\111\117\115\124\99\114\111\112\124\99\114\111\115\115\104\97\105\114\124\99\114\111\115\115\124\99\117\114\115\105\118\101\124\100\97\115\104\101\100\124\100\101\99\105\109\97\108\45\108\101\97\100\105\110\103\45\122\101\114\111\124\100\101\99\105\109\97\108\124\100\101\102\97\117\108\116\124\100\105\103\105\116\115\124\100\105\115\99\124\100\111\116\116\101\100\124\100\111\117\98\108\101\124\101\45\114\101\115\105\122\101\124\101\109\98\101\100\124\101\120\116\114\97\45\99\111\110\100\101\110\115\101\100\124\101\120\116\114\97\45\101\120\112\97\110\100\101\100\124\101\120\112\97\110\100\101\100\124\102\97\110\116\97\115\121\124\102\97\114\45\108\101\102\116\124\102\97\114\45\114\105\103\104\116\124\102\97\115\116\101\114\124\102\97\115\116\124\102\105\120\101\100\124\103\101\111\114\103\105\97\110\124\103\114\111\111\118\101\124\104\101\98\114\101\119\124\104\101\108\112\124\104\105\100\100\101\110\124\104\105\100\101\124\104\105\103\104\101\114\124\104\105\103\104\124\104\105\114\97\103\97\110\97\45\105\114\111\104\97\124\104\105\114\97\103\97\110\97\124\105\99\111\110\124\105\110\104\101\114\105\116\124\105\110\108\105\110\101\45\116\97\98\108\101\124\105\110\108\105\110\101\124\105\110\115\101\116\124\105\110\115\105\100\101\124\105\110\118\101\114\116\124\105\116\97\108\105\99\124\106\117\115\116\105\102\121\124\107\97\116\97\107\97\110\97\45\105\114\111\104\97\124\107\97\116\97\107\97\110\97\124\108\97\110\100\115\99\97\112\101\124\108\97\114\103\101\114\124\108\97\114\103\101\124\108\101\102\116\45\115\105\100\101\124\108\101\102\116\119\97\114\100\115\124\108\101\118\101\108\124\108\105\103\104\116\101\114\124\108\105\110\101\45\116\104\114\111\117\103\104\124\108\105\115\116\45\105\116\101\109\124\108\111\117\100\124\108\111\119\101\114\45\97\108\112\104\97\124\108\111\119\101\114\45\103\114\101\101\107\124\108\111\119\101\114\45\114\111\109\97\110\124\108\111\119\101\114\99\97\115\101\124\108\116\114\124\108\111\119\101\114\124\108\111\119\124\109\101\100\105\117\109\124\109\101\115\115\97\103\101\45\98\111\120\124\109\105\100\100\108\101\124\109\105\120\124\109\111\110\111\115\112\97\99\101\124\110\45\114\101\115\105\122\101\124\110\97\114\114\111\119\101\114\124\110\101\45\114\101\115\105\122\101\124\110\111\45\99\108\111\115\101\45\113\117\111\116\101\124\110\111\45\111\112\101\110\45\113\117\111\116\101\124\110\111\45\114\101\112\101\97\116\124\110\111\110\101\124\110\111\114\109\97\108\124\110\111\119\114\97\112\124\110\119\45\114\101\115\105\122\101\124\111\98\108\105\113\117\101\124\111\110\99\101\124\111\112\101\110\45\113\117\111\116\101\124\111\117\116\115\101\116\124\111\117\116\115\105\100\101\124\111\118\101\114\108\105\110\101\124\112\111\105\110\116\101\114\124\112\111\114\116\114\97\105\116\124\112\120\124\114\101\108\97\116\105\118\101\124\114\101\112\101\97\116\45\120\124\114\101\112\101\97\116\45\121\124\114\101\112\101\97\116\124\114\103\98\124\114\105\100\103\101\124\114\105\103\104\116\45\115\105\100\101\124\114\105\103\104\116\119\97\114\100\115\124\115\45\114\101\115\105\122\101\124\115\97\110\115\45\115\101\114\105\102\124\115\99\114\111\108\108\124\115\101\45\114\101\115\105\122\101\124\115\101\109\105\45\99\111\110\100\101\110\115\101\100\124\115\101\109\105\45\101\120\112\97\110\100\101\100\124\115\101\112\97\114\97\116\101\124\115\101\114\105\102\124\115\104\111\119\124\115\105\108\101\110\116\124\115\108\111\119\124\115\108\111\119\101\114\124\115\109\97\108\108\45\99\97\112\115\124\115\109\97\108\108\45\99\97\112\116\105\111\110\124\115\109\97\108\108\101\114\124\115\111\102\116\124\115\111\108\105\100\124\115\112\101\108\108\45\111\117\116\124\115\113\117\97\114\101\124\115\116\97\116\105\99\124\115\116\97\116\117\115\45\98\97\114\124\115\117\112\101\114\124\115\119\45\114\101\115\105\122\101\124\116\97\98\108\101\45\99\97\112\116\105\111\110\124\116\97\98\108\101\45\99\101\108\108\124\116\97\98\108\101\45\99\111\108\117\109\110\124\116\97\98\108\101\45\99\111\108\117\109\110\45\103\114\111\117\112\124\116\97\98\108\101\45\102\111\111\116\101\114\45\103\114\111\117\112\124\116\97\98\108\101\45\104\101\97\100\101\114\45\103\114\111\117\112\124\116\97\98\108\101\45\114\111\119\124\116\97\98\108\101\45\114\111\119\45\103\114\111\117\112\124\116\101\120\116\124\116\101\120\116\45\98\111\116\116\111\109\124\116\101\120\116\45\116\111\112\124\116\104\105\99\107\124\116\104\105\110\124\116\114\97\110\115\112\97\114\101\110\116\124\117\108\116\114\97\45\99\111\110\100\101\110\115\101\100\124\117\108\116\114\97\45\101\120\112\97\110\100\101\100\124\117\110\100\101\114\108\105\110\101\124\117\112\112\101\114\45\97\108\112\104\97\124\117\112\112\101\114\45\108\97\116\105\110\124\117\112\112\101\114\45\114\111\109\97\110\124\117\112\112\101\114\99\97\115\101\124\117\114\108\124\118\105\115\105\98\108\101\124\119\45\114\101\115\105\122\101\124\119\97\105\116\124\119\105\100\101\114\124\120\45\102\97\115\116\124\120\45\104\105\103\104\124\120\45\108\97\114\103\101\124\120\45\108\111\117\100\124\120\45\108\111\119\124\120\45\115\109\97\108\108\124\120\45\115\111\102\116\124\120\120\45\108\97\114\103\101\124\120\120\45\115\109\97\108\108\124\121\101\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\105\110\100\105\103\111\124\103\111\108\100\124\102\105\114\101\98\114\105\99\107\124\105\110\100\105\97\110\114\101\100\124\121\101\108\108\111\119\124\100\97\114\107\111\108\105\118\101\103\114\101\101\110\124\100\97\114\107\115\101\97\103\114\101\101\110\124\109\101\100\105\117\109\118\105\111\108\101\116\114\101\100\124\109\101\100\105\117\109\111\114\99\104\105\100\124\99\104\97\114\116\114\101\117\115\101\124\109\101\100\105\117\109\115\108\97\116\101\98\108\117\101\124\98\108\97\99\107\124\115\112\114\105\110\103\103\114\101\101\110\124\99\114\105\109\115\111\110\124\108\105\103\104\116\115\97\108\109\111\110\124\98\114\111\119\110\124\116\117\114\113\117\111\105\115\101\124\111\108\105\118\101\100\114\97\98\124\99\121\97\110\124\115\105\108\118\101\114\124\115\107\121\98\108\117\101\124\103\114\97\121\124\100\97\114\107\116\117\114\113\117\111\105\115\101\124\103\111\108\100\101\110\114\111\100\124\100\97\114\107\103\114\101\101\110\124\100\97\114\107\118\105\111\108\101\116\124\100\97\114\107\103\114\97\121\124\108\105\103\104\116\112\105\110\107\124\116\101\97\108\124\100\97\114\107\109\97\103\101\110\116\97\124\108\105\103\104\116\103\111\108\100\101\110\114\111\100\121\101\108\108\111\119\124\108\97\118\101\110\100\101\114\124\121\101\108\108\111\119\103\114\101\101\110\124\116\104\105\115\116\108\101\124\118\105\111\108\101\116\124\110\97\118\121\124\111\114\99\104\105\100\124\98\108\117\101\124\103\104\111\115\116\119\104\105\116\101\124\104\111\110\101\121\100\101\119\124\99\111\114\110\102\108\111\119\101\114\98\108\117\101\124\100\97\114\107\98\108\117\101\124\100\97\114\107\107\104\97\107\105\124\109\101\100\105\117\109\112\117\114\112\108\101\124\99\111\114\110\115\105\108\107\124\114\101\100\124\98\105\115\113\117\101\124\115\108\97\116\101\103\114\97\121\124\100\97\114\107\99\121\97\110\124\107\104\97\107\105\124\119\104\101\97\116\124\100\101\101\112\115\107\121\98\108\117\101\124\100\97\114\107\114\101\100\124\115\116\101\101\108\98\108\117\101\124\97\108\105\99\101\98\108\117\101\124\103\97\105\110\115\98\111\114\111\124\109\101\100\105\117\109\116\117\114\113\117\111\105\115\101\124\102\108\111\114\97\108\119\104\105\116\101\124\99\111\114\97\108\124\112\117\114\112\108\101\124\108\105\103\104\116\103\114\101\121\124\108\105\103\104\116\99\121\97\110\124\100\97\114\107\115\97\108\109\111\110\124\98\101\105\103\101\124\97\122\117\114\101\124\108\105\103\104\116\115\116\101\101\108\98\108\117\101\124\111\108\100\108\97\99\101\124\103\114\101\101\110\121\101\108\108\111\119\124\114\111\121\97\108\98\108\117\101\124\108\105\103\104\116\115\101\97\103\114\101\101\110\124\109\105\115\116\121\114\111\115\101\124\115\105\101\110\110\97\124\108\105\103\104\116\99\111\114\97\108\124\111\114\97\110\103\101\114\101\100\124\110\97\118\97\106\111\119\104\105\116\101\124\108\105\109\101\124\112\97\108\101\103\114\101\101\110\124\98\117\114\108\121\119\111\111\100\124\115\101\97\115\104\101\108\108\124\109\101\100\105\117\109\115\112\114\105\110\103\103\114\101\101\110\124\102\117\99\104\115\105\97\124\112\97\112\97\121\97\119\104\105\112\124\98\108\97\110\99\104\101\100\97\108\109\111\110\100\124\112\101\114\117\124\97\113\117\97\109\97\114\105\110\101\124\119\104\105\116\101\124\100\97\114\107\115\108\97\116\101\103\114\97\121\124\105\118\111\114\121\124\100\111\100\103\101\114\98\108\117\101\124\108\101\109\111\110\99\104\105\102\102\111\110\124\99\104\111\99\111\108\97\116\101\124\111\114\97\110\103\101\124\102\111\114\101\115\116\103\114\101\101\110\124\115\108\97\116\101\98\108\117\101\124\111\108\105\118\101\124\109\105\110\116\99\114\101\97\109\124\97\110\116\105\113\117\101\119\104\105\116\101\124\100\97\114\107\111\114\97\110\103\101\124\99\97\100\101\116\98\108\117\101\124\109\111\99\99\97\115\105\110\124\108\105\109\101\103\114\101\101\110\124\115\97\100\100\108\101\98\114\111\119\110\124\100\97\114\107\115\108\97\116\101\98\108\117\101\124\108\105\103\104\116\115\107\121\98\108\117\101\124\100\101\101\112\112\105\110\107\124\112\108\117\109\124\97\113\117\97\124\100\97\114\107\103\111\108\100\101\110\114\111\100\124\109\97\114\111\111\110\124\115\97\110\100\121\98\114\111\119\110\124\109\97\103\101\110\116\97\124\116\97\110\124\114\111\115\121\98\114\111\119\110\124\112\105\110\107\124\108\105\103\104\116\98\108\117\101\124\112\97\108\101\118\105\111\108\101\116\114\101\100\124\109\101\100\105\117\109\115\101\97\103\114\101\101\110\124\100\105\109\103\114\97\121\124\112\111\119\100\101\114\98\108\117\101\124\115\101\97\103\114\101\101\110\124\115\110\111\119\124\109\101\100\105\117\109\98\108\117\101\124\109\105\100\110\105\103\104\116\98\108\117\101\124\112\97\108\101\116\117\114\113\117\111\105\115\101\124\112\97\108\101\103\111\108\100\101\110\114\111\100\124\119\104\105\116\101\115\109\111\107\101\124\100\97\114\107\111\114\99\104\105\100\124\115\97\108\109\111\110\124\108\105\103\104\116\115\108\97\116\101\103\114\97\121\124\108\97\119\110\103\114\101\101\110\124\108\105\103\104\116\103\114\101\101\110\124\116\111\109\97\116\111\124\104\111\116\112\105\110\107\124\108\105\103\104\116\121\101\108\108\111\119\124\108\97\118\101\110\100\101\114\98\108\117\115\104\124\108\105\110\101\110\124\109\101\100\105\117\109\97\113\117\97\109\97\114\105\110\101\124\103\114\101\101\110\124\98\108\117\101\118\105\111\108\101\116\124\112\101\97\99\104\112\117\102\102\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\33\105\109\112\111\114\116\97\110\116" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\47\92\42\40\63\58\46\124\92\110\41\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\35\91\97\45\122\65\45\90\48\45\57\93\123\49\44\54\125" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\92\46\45\93\63\91\48\45\57\93\42\91\92\46\93\63\91\48\45\57\93\43\40\101\109\124\112\120\124\92\37\124\112\116\124\112\99\124\105\110\124\109\109\124\99\109\124\101\120\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\45\63\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\126\92\94\92\42\33\37\38\60\62\92\124\43\61\64\58\44\46\47\63\45\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\92\91\92\93\40\41\59\93\43" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\91\97\45\122\65\45\90\93\91\97\45\122\65\45\90\48\45\57\93\43" (Arbitrary "\78\97\109\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "}" (Arbitrary "Punctuation") Pop+    , tok "url\\(.*?\\)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok "^@.*?$" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-left-color|border-left-style|border-left-width|border-right|border-right-color|border-right-style|border-right-width|border-top-color|border-top-style|border-top-width|border-bottom|border-collapse|border-left|border-width|border-color|border-spacing|border-style|border-top|border|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|height|letter-spacing|line-height|list-style-type|list-style-image|list-style-position|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|marker-offset|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline|outline-color|outline-style|outline-width|overflow(?:-x|-y|)|padding-bottom|padding-left|padding-right|padding-top|padding|page|page-break-after|page-break-before|page-break-inside|pause-after|pause-before|pause|pitch|pitch-range|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index|bottom|left|above|absolute|always|armenian|aural|auto|avoid|baseline|behind|below|bidi-override|blink|block|bold|bolder|both|capitalize|center-left|center-right|center|circle|cjk-ideographic|close-quote|collapse|condensed|continuous|crop|crosshair|cross|cursive|dashed|decimal-leading-zero|decimal|default|digits|disc|dotted|double|e-resize|embed|extra-condensed|extra-expanded|expanded|fantasy|far-left|far-right|faster|fast|fixed|georgian|groove|hebrew|help|hidden|hide|higher|high|hiragana-iroha|hiragana|icon|inherit|inline-table|inline|inset|inside|invert|italic|justify|katakana-iroha|katakana|landscape|larger|large|left-side|leftwards|level|lighter|line-through|list-item|loud|lower-alpha|lower-greek|lower-roman|lowercase|ltr|lower|low|medium|message-box|middle|mix|monospace|n-resize|narrower|ne-resize|no-close-quote|no-open-quote|no-repeat|none|normal|nowrap|nw-resize|oblique|once|open-quote|outset|outside|overline|pointer|portrait|px|relative|repeat-x|repeat-y|repeat|rgb|ridge|right-side|rightwards|s-resize|sans-serif|scroll|se-resize|semi-condensed|semi-expanded|separate|serif|show|silent|slow|slower|small-caps|small-caption|smaller|soft|solid|spell-out|square|static|status-bar|super|sw-resize|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|text|text-bottom|text-top|thick|thin|transparent|ultra-condensed|ultra-expanded|underline|upper-alpha|upper-latin|upper-roman|uppercase|url|visible|w-resize|wait|wider|x-fast|x-high|x-large|x-loud|x-low|x-small|x-soft|xx-large|xx-small|yes)\\b" (Arbitrary "Keyword")+    , tok "(indigo|gold|firebrick|indianred|yellow|darkolivegreen|darkseagreen|mediumvioletred|mediumorchid|chartreuse|mediumslateblue|black|springgreen|crimson|lightsalmon|brown|turquoise|olivedrab|cyan|silver|skyblue|gray|darkturquoise|goldenrod|darkgreen|darkviolet|darkgray|lightpink|teal|darkmagenta|lightgoldenrodyellow|lavender|yellowgreen|thistle|violet|navy|orchid|blue|ghostwhite|honeydew|cornflowerblue|darkblue|darkkhaki|mediumpurple|cornsilk|red|bisque|slategray|darkcyan|khaki|wheat|deepskyblue|darkred|steelblue|aliceblue|gainsboro|mediumturquoise|floralwhite|coral|purple|lightgrey|lightcyan|darksalmon|beige|azure|lightsteelblue|oldlace|greenyellow|royalblue|lightseagreen|mistyrose|sienna|lightcoral|orangered|navajowhite|lime|palegreen|burlywood|seashell|mediumspringgreen|fuchsia|papayawhip|blanchedalmond|peru|aquamarine|white|darkslategray|ivory|dodgerblue|lemonchiffon|chocolate|orange|forestgreen|slateblue|olive|mintcream|antiquewhite|darkorange|cadetblue|moccasin|limegreen|saddlebrown|darkslateblue|lightskyblue|deeppink|plum|aqua|darkgoldenrod|maroon|sandybrown|magenta|tan|rosybrown|pink|lightblue|palevioletred|mediumseagreen|dimgray|powderblue|seagreen|snow|mediumblue|midnightblue|paleturquoise|palegoldenrod|whitesmoke|darkorchid|salmon|lightslategray|lawngreen|lightgreen|tomato|hotpink|lightyellow|lavenderblush|linen|mediumaquamarine|green|blueviolet|peachpuff)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\!important" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "/\\*(?:.|\\n)*?\\*/" (Arbitrary "Comment")+    , tok "\\#[a-zA-Z0-9]{1,6}" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[\\.-]?[0-9]*[\\.]?[0-9]+(em|px|\\%|pt|pc|in|mm|cm|ex|s)\\b" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "-?[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[\126\\^\\*!%&<>\\|+=@:,./?-]+" (Arbitrary "Operator")+    , tok "[\\[\\]();]+" (Arbitrary "Punctuation")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "[a-zA-Z][a-zA-Z0-9]+" (Arbitrary "Name")     ]  basics' :: TokenMatcher basics' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\47\92\42\40\63\58\46\124\92\110\41\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo content')-    , tok "\92\58\91\97\45\122\65\45\90\48\45\57\95\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\92\46\91\97\45\122\65\45\90\48\45\57\95\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tok "\92\35\91\97\45\122\65\45\90\48\45\57\95\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tokNext "\64\91\97\45\122\65\45\90\48\45\57\95\45\93\43" (Arbitrary "\75\101\121\119\111\114\100") (GoTo atrule')-    , tok "\91\97\45\122\65\45\90\48\45\57\95\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")-    , tok "\91\126\92\94\92\42\33\37\38\92\91\92\93\92\40\92\41\60\62\92\124\43\61\64\58\59\44\46\47\63\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "/\\*(?:.|\\n)*?\\*/" (Arbitrary "Comment")+    , tokNext "{" (Arbitrary "Punctuation") (GoTo content')+    , tok "\\:[a-zA-Z0-9_-]+" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "\\.[a-zA-Z0-9_-]+" (Arbitrary "Name" :. Arbitrary "Class")+    , tok "\\#[a-zA-Z0-9_-]+" (Arbitrary "Name" :. Arbitrary "Function")+    , tokNext "@[a-zA-Z0-9_-]+" (Arbitrary "Keyword") (GoTo atrule')+    , tok "[a-zA-Z0-9_-]+" (Arbitrary "Name" :. Arbitrary "Tag")+    , tok "[\126\\^\\*!%&\\[\\]\\(\\)<>\\|+=@:;,./?-]" (Arbitrary "Operator")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")     ]  root' :: TokenMatcher@@ -56,13 +56,13 @@ atcontent' :: TokenMatcher atcontent' =     [ anyOf basics'-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (PopNum 2)+    , tokNext "}" (Arbitrary "Punctuation") (PopNum 2)     ]  atrule' :: TokenMatcher atrule' =-    [ tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo atcontent')-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tokNext "{" (Arbitrary "Punctuation") (GoTo atcontent')+    , tokNext ";" (Arbitrary "Punctuation") Pop     , anyOf basics'     ] 
src/Text/Highlighter/Lexers/Cython.hs view
@@ -5,163 +5,163 @@  lexer :: Lexer lexer = Lexer-    { lName = "\67\121\116\104\111\110"-    , lAliases = ["\99\121\116\104\111\110", "\112\121\120"]-    , lExtensions = ["\46\112\121\120", "\46\112\120\100", "\46\112\120\105"]-    , lMimetypes = ["\116\101\120\116\47\120\45\99\121\116\104\111\110", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\99\121\116\104\111\110"]+    { lName = "Cython"+    , lAliases = ["cython", "pyx"]+    , lExtensions = [".pyx", ".pxd", ".pxi"]+    , lMimetypes = ["text/x-cython", "application/x-cython"]     , lStart = root'     , lFlags = [multiline]     }  tsqs' :: TokenMatcher tsqs' =-    [ tokNext "\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "'''" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  builtins' :: TokenMatcher builtins' =-    [ tok "\40\63\60\33\92\46\41\40\95\95\105\109\112\111\114\116\95\95\124\97\98\115\124\97\108\108\124\97\110\121\124\97\112\112\108\121\124\98\97\115\101\115\116\114\105\110\103\124\98\105\110\124\98\111\111\108\124\98\117\102\102\101\114\124\98\121\116\101\97\114\114\97\121\124\98\121\116\101\115\124\99\97\108\108\97\98\108\101\124\99\104\114\124\99\108\97\115\115\109\101\116\104\111\100\124\99\109\112\124\99\111\101\114\99\101\124\99\111\109\112\105\108\101\124\99\111\109\112\108\101\120\124\100\101\108\97\116\116\114\124\100\105\99\116\124\100\105\114\124\100\105\118\109\111\100\124\101\110\117\109\101\114\97\116\101\124\101\118\97\108\124\101\120\101\99\102\105\108\101\124\101\120\105\116\124\102\105\108\101\124\102\105\108\116\101\114\124\102\108\111\97\116\124\102\114\111\122\101\110\115\101\116\124\103\101\116\97\116\116\114\124\103\108\111\98\97\108\115\124\104\97\115\97\116\116\114\124\104\97\115\104\124\104\101\120\124\105\100\124\105\110\112\117\116\124\105\110\116\124\105\110\116\101\114\110\124\105\115\105\110\115\116\97\110\99\101\124\105\115\115\117\98\99\108\97\115\115\124\105\116\101\114\124\108\101\110\124\108\105\115\116\124\108\111\99\97\108\115\124\108\111\110\103\124\109\97\112\124\109\97\120\124\109\105\110\124\110\101\120\116\124\111\98\106\101\99\116\124\111\99\116\124\111\112\101\110\124\111\114\100\124\112\111\119\124\112\114\111\112\101\114\116\121\124\114\97\110\103\101\124\114\97\119\95\105\110\112\117\116\124\114\101\100\117\99\101\124\114\101\108\111\97\100\124\114\101\112\114\124\114\101\118\101\114\115\101\100\124\114\111\117\110\100\124\115\101\116\124\115\101\116\97\116\116\114\124\115\108\105\99\101\124\115\111\114\116\101\100\124\115\116\97\116\105\99\109\101\116\104\111\100\124\115\116\114\124\115\117\109\124\115\117\112\101\114\124\116\117\112\108\101\124\116\121\112\101\124\117\110\105\99\104\114\124\117\110\105\99\111\100\101\124\118\97\114\115\124\120\114\97\110\103\101\124\122\105\112\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\63\60\33\92\46\41\40\115\101\108\102\124\78\111\110\101\124\69\108\108\105\112\115\105\115\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\124\70\97\108\115\101\124\84\114\117\101\124\78\85\76\76\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\40\63\60\33\92\46\41\40\65\114\105\116\104\109\101\116\105\99\69\114\114\111\114\124\65\115\115\101\114\116\105\111\110\69\114\114\111\114\124\65\116\116\114\105\98\117\116\101\69\114\114\111\114\124\66\97\115\101\69\120\99\101\112\116\105\111\110\124\68\101\112\114\101\99\97\116\105\111\110\87\97\114\110\105\110\103\124\69\79\70\69\114\114\111\114\124\69\110\118\105\114\111\110\109\101\110\116\69\114\114\111\114\124\69\120\99\101\112\116\105\111\110\124\70\108\111\97\116\105\110\103\80\111\105\110\116\69\114\114\111\114\124\70\117\116\117\114\101\87\97\114\110\105\110\103\124\71\101\110\101\114\97\116\111\114\69\120\105\116\124\73\79\69\114\114\111\114\124\73\109\112\111\114\116\69\114\114\111\114\124\73\109\112\111\114\116\87\97\114\110\105\110\103\124\73\110\100\101\110\116\97\116\105\111\110\69\114\114\111\114\124\73\110\100\101\120\69\114\114\111\114\124\75\101\121\69\114\114\111\114\124\75\101\121\98\111\97\114\100\73\110\116\101\114\114\117\112\116\124\76\111\111\107\117\112\69\114\114\111\114\124\77\101\109\111\114\121\69\114\114\111\114\124\78\97\109\101\69\114\114\111\114\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\69\114\114\111\114\124\79\83\69\114\114\111\114\124\79\118\101\114\102\108\111\119\69\114\114\111\114\124\79\118\101\114\102\108\111\119\87\97\114\110\105\110\103\124\80\101\110\100\105\110\103\68\101\112\114\101\99\97\116\105\111\110\87\97\114\110\105\110\103\124\82\101\102\101\114\101\110\99\101\69\114\114\111\114\124\82\117\110\116\105\109\101\69\114\114\111\114\124\82\117\110\116\105\109\101\87\97\114\110\105\110\103\124\83\116\97\110\100\97\114\100\69\114\114\111\114\124\83\116\111\112\73\116\101\114\97\116\105\111\110\124\83\121\110\116\97\120\69\114\114\111\114\124\83\121\110\116\97\120\87\97\114\110\105\110\103\124\83\121\115\116\101\109\69\114\114\111\114\124\83\121\115\116\101\109\69\120\105\116\124\84\97\98\69\114\114\111\114\124\84\121\112\101\69\114\114\111\114\124\85\110\98\111\117\110\100\76\111\99\97\108\69\114\114\111\114\124\85\110\105\99\111\100\101\68\101\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\69\110\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\84\114\97\110\115\108\97\116\101\69\114\114\111\114\124\85\110\105\99\111\100\101\87\97\114\110\105\110\103\124\85\115\101\114\87\97\114\110\105\110\103\124\86\97\108\117\101\69\114\114\111\114\124\87\97\114\110\105\110\103\124\90\101\114\111\68\105\118\105\115\105\111\110\69\114\114\111\114\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\120\99\101\112\116\105\111\110")+    [ tok "(?<!\\.)(__import__|abs|all|any|apply|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|exit|file|filter|float|frozenset|getattr|globals|hasattr|hash|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?<!\\.)(self|None|Ellipsis|NotImplemented|False|True|NULL)\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tok "(?<!\\.)(ArithmeticError|AssertionError|AttributeError|BaseException|DeprecationWarning|EOFError|EnvironmentError|Exception|FloatingPointError|FutureWarning|GeneratorExit|IOError|ImportError|ImportWarning|IndentationError|IndexError|KeyError|KeyboardInterrupt|LookupError|MemoryError|NameError|NotImplemented|NotImplementedError|OSError|OverflowError|OverflowWarning|PendingDeprecationWarning|ReferenceError|RuntimeError|RuntimeWarning|StandardError|StopIteration|SyntaxError|SyntaxWarning|SystemError|SystemExit|TabError|TypeError|UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|UnicodeError|UnicodeTranslateError|UnicodeWarning|UserWarning|ValueError|Warning|ZeroDivisionError)\\b" (Arbitrary "Name" :. Arbitrary "Exception")     ]  name' :: TokenMatcher name' =-    [ tok "\64\91\97\45\122\65\45\90\48\45\57\95\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")+    [ tok "@[a-zA-Z0-9_]+" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")     ]  dqs' :: TokenMatcher dqs' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\34\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\\"|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  sqs' :: TokenMatcher sqs' =-    [ tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\39\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\'|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  tdqs' :: TokenMatcher tdqs' =-    [ tokNext "\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  backtick' :: TokenMatcher backtick' =-    [ tok "\96\46\42\63\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107")+    [ tok "`.*?`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick")     ]  funcname' :: TokenMatcher funcname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Function") Pop     ]  classname' :: TokenMatcher classname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  stringescape' :: TokenMatcher stringescape' =-    [ tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\92\110\124\78\123\46\42\63\125\124\117\91\97\45\102\65\45\70\48\45\57\93\123\52\125\124\85\91\97\45\102\65\45\70\48\45\57\93\123\56\125\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tok "\\\\([\\\\abfnrtv\"\\']|\\n|N{.*?}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     ]  numbers' :: TokenMatcher numbers' =-    [ tok "\40\92\100\43\92\46\63\92\100\42\124\92\100\42\92\46\92\100\43\41\40\91\101\69\93\91\43\45\93\63\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\120\88\93\91\97\45\102\65\45\70\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\92\100\43\76" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114" :. Arbitrary "\76\111\110\103")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "(\\d+\\.?\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+L" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer" :. Arbitrary "Long")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ]  import' :: TokenMatcher import' =-    [ tok "\40\92\115\43\41\40\97\115\41\40\92\115\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")])-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tok "\40\92\115\42\41\40\44\41\40\92\115\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116")])-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    [ tok "(\\s+)(as)(\\s+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text")])+    , tok "[a-zA-Z_][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tok "(\\s*)(,)(\\s*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text")])+    , tokNext "" (Arbitrary "Text") Pop     ]  keywords' :: TokenMatcher keywords' =-    [ tok "\40\97\115\115\101\114\116\124\98\114\101\97\107\124\98\121\124\99\111\110\116\105\110\117\101\124\99\116\121\112\101\100\101\102\124\100\101\108\124\101\108\105\102\124\101\108\115\101\124\101\120\99\101\112\116\92\63\63\124\101\120\101\99\124\102\105\110\97\108\108\121\124\102\111\114\124\103\105\108\124\103\108\111\98\97\108\124\105\102\124\105\110\99\108\117\100\101\124\108\97\109\98\100\97\124\110\111\103\105\108\124\112\97\115\115\124\112\114\105\110\116\124\114\97\105\115\101\124\114\101\116\117\114\110\124\116\114\121\124\119\104\105\108\101\124\121\105\101\108\100\124\97\115\124\119\105\116\104\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\68\69\70\124\73\70\124\69\76\73\70\124\69\76\83\69\41\92\98" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")+    [ tok "(assert|break|by|continue|ctypedef|del|elif|else|except\\??|exec|finally|for|gil|global|if|include|lambda|nogil|pass|print|raise|return|try|while|yield|as|with)\\b" (Arbitrary "Keyword")+    , tok "(DEF|IF|ELIF|ELSE)\\b" (Arbitrary "Comment" :. Arbitrary "Preproc")     ]  cdef' :: TokenMatcher cdef' =-    [ tok "\40\112\117\98\108\105\99\124\114\101\97\100\111\110\108\121\124\101\120\116\101\114\110\124\97\112\105\124\105\110\108\105\110\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\40\115\116\114\117\99\116\124\101\110\117\109\124\117\110\105\111\110\124\99\108\97\115\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\63\61\91\40\58\35\61\93\124\36\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116")]) Pop-    , tok "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\44\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "\102\114\111\109\92\98" (Arbitrary "\75\101\121\119\111\114\100") Pop-    , tok "\97\115\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\58" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tokNext "\40\63\61\91\34\92\39\93\41" (Arbitrary "\84\101\120\116") Pop-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\46" (Arbitrary "\84\101\120\116")+    [ tok "(public|readonly|extern|api|inline)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(struct|enum|union|class)\\b" (Arbitrary "Keyword")+    , tokNext "([a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(?=[(:#=]|$)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text")]) Pop+    , tok "([a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(,)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tokNext "from\\b" (Arbitrary "Keyword") Pop+    , tok "as\\b" (Arbitrary "Keyword")+    , tokNext ":" (Arbitrary "Punctuation") Pop+    , tokNext "(?=[\"\\'])" (Arbitrary "Text") Pop+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "." (Arbitrary "Text")     ]  nl' :: TokenMatcher nl' =-    [ tok "\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "\\n" (Arbitrary "Literal" :. Arbitrary "String")     ]  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\94\40\92\115\42\41\40\34\34\34\40\63\58\46\124\92\110\41\42\63\34\34\34\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")])-    , tok "\94\40\92\115\42\41\40\39\39\39\40\63\58\46\124\92\110\41\42\63\39\39\39\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")])-    , tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\91\93\123\125\58\40\41\44\59\91\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\92" (Arbitrary "\84\101\120\116")-    , tok "\40\105\110\124\105\115\124\97\110\100\124\111\114\124\110\111\116\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\40\60\41\40\91\97\45\122\65\45\90\48\45\57\46\63\93\43\41\40\62\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\33\61\124\61\61\124\60\60\124\62\62\124\91\45\126\43\47\42\37\61\60\62\38\94\124\46\63\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\102\114\111\109\41\40\92\100\43\41\40\60\61\41\40\92\115\43\41\40\60\41\40\92\100\43\41\40\58\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\78\97\109\101"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\78\97\109\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])+    [ tok "\\n" (Arbitrary "Text")+    , tok "^(\\s*)(\"\"\"(?:.|\\n)*?\"\"\")" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")])+    , tok "^(\\s*)('''(?:.|\\n)*?''')" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")])+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "#.*$" (Arbitrary "Comment")+    , tok "[]{}:(),;[]" (Arbitrary "Punctuation")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "\\\\" (Arbitrary "Text")+    , tok "(in|is|and|or|not)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "(<)([a-zA-Z0-9.?]+)(>)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Punctuation")])+    , tok "!=|==|<<|>>|[-\126+/*%=<>&^|.?]" (Arbitrary "Operator")+    , tok "(from)(\\d+)(<=)(\\s+)(<)(\\d+)(:)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer"), (Arbitrary "Operator"), (Arbitrary "Name"), (Arbitrary "Operator"), (Arbitrary "Name"), (Arbitrary "Punctuation")])     , anyOf keywords'-    , tokNext "\40\100\101\102\124\112\114\111\112\101\114\116\121\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo funcname')-    , tokNext "\40\99\112\63\100\101\102\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo cdef')-    , tokNext "\40\99\108\97\115\115\124\115\116\114\117\99\116\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tokNext "\40\102\114\111\109\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo fromimport')-    , tokNext "\40\99\63\105\109\112\111\114\116\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo import')+    , tokNext "(def|property)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo funcname')+    , tokNext "(cp?def)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo cdef')+    , tokNext "(class|struct)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tokNext "(from)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo fromimport')+    , tokNext "(c?import)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo import')     , anyOf builtins'     , anyOf backtick'-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tdqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tsqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo dqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo sqs')-    , tokNext "\91\117\85\93\63\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tdqs'])-    , tokNext "\91\117\85\93\63\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tsqs'])-    , tokNext "\91\117\85\93\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', dqs'])-    , tokNext "\91\117\85\93\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', sqs'])+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tdqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])'''" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tsqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo dqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo sqs')+    , tokNext "[uU]?\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tdqs'])+    , tokNext "[uU]?'''" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tsqs'])+    , tokNext "[uU]?\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', dqs'])+    , tokNext "[uU]?'" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', sqs'])     , anyOf name'     , anyOf numbers'     ]  strings' :: TokenMatcher strings' =-    [ tok "\37\40\92\40\91\97\45\122\65\45\90\48\45\57\93\43\92\41\41\63\91\45\35\48\32\43\93\42\40\91\48\45\57\93\43\124\91\42\93\41\63\40\92\46\40\91\48\45\57\93\43\124\91\42\93\41\41\63\91\104\108\76\93\63\91\100\105\111\117\120\88\101\69\102\70\103\71\99\114\115\37\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")-    , tok "\91\94\92\92\92\39\34\37\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\92\39\34\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\37" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "%(\\([a-zA-Z0-9]+\\))?[-#0 +]*([0-9]+|[*])?(\\.([0-9]+|[*]))?[hlL]?[diouxXeEfFgGcrs%]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")+    , tok "[^\\\\\\'\"%\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[\\'\"\\\\]" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "%" (Arbitrary "Literal" :. Arbitrary "String")     ]  fromimport' :: TokenMatcher fromimport' =-    [ tokNext "\40\92\115\43\41\40\99\63\105\109\112\111\114\116\41\92\98" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100")]) Pop-    , tok "\91\97\45\122\65\45\90\95\46\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    [ tokNext "(\\s+)(c?import)\\b" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword")]) Pop+    , tok "[a-zA-Z_.][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tokNext "" (Arbitrary "Text") Pop     ] 
src/Text/Highlighter/Lexers/D.hs view
@@ -5,125 +5,125 @@  lexer :: Lexer lexer = Lexer-    { lName = "\68"-    , lAliases = ["\100"]-    , lExtensions = ["\46\100", "\46\100\105"]-    , lMimetypes = ["\116\101\120\116\47\120\45\100\115\114\99"]+    { lName = "D"+    , lAliases = ["d"]+    , lExtensions = [".d", ".di"]+    , lMimetypes = ["text/x-dsrc"]     , lStart = root'     , lFlags = [multiline]     }  delimited_parenthesis' :: TokenMatcher delimited_parenthesis' =-    [ tok "\91\94\92\40\92\41\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo delimited_inside_parenthesis')-    , tokNext "\92\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^\\(\\)]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\(" (Arbitrary "Literal" :. Arbitrary "String") (GoTo delimited_inside_parenthesis')+    , tokNext "\\)\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  delimited_curly' :: TokenMatcher delimited_curly' =-    [ tok "\91\94\123\125\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\123" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo delimited_inside_curly')-    , tokNext "\125\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^{}]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "{" (Arbitrary "Literal" :. Arbitrary "String") (GoTo delimited_inside_curly')+    , tokNext "}\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  delimited_angle' :: TokenMatcher delimited_angle' =-    [ tok "\91\94\60\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\60" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo delimited_inside_angle')-    , tokNext "\62\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^<>]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "<" (Arbitrary "Literal" :. Arbitrary "String") (GoTo delimited_inside_angle')+    , tokNext ">\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  delimited_inside_parenthesis' :: TokenMatcher delimited_inside_parenthesis' =-    [ tok "\91\94\92\40\92\41\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Push-    , tokNext "\92\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^\\(\\)]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\(" (Arbitrary "Literal" :. Arbitrary "String") Push+    , tokNext "\\)" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  delimited_inside_curly' :: TokenMatcher delimited_inside_curly' =-    [ tok "\91\94\123\125\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\123" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Push-    , tokNext "\125" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^{}]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "{" (Arbitrary "Literal" :. Arbitrary "String") Push+    , tokNext "}" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  delimited_inside_bracket' :: TokenMatcher delimited_inside_bracket' =-    [ tok "\91\94\92\91\92\93\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Push-    , tokNext "\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^\\[\\]]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\[" (Arbitrary "Literal" :. Arbitrary "String") Push+    , tokNext "\\]" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  token_string_nest' :: TokenMatcher token_string_nest' =-    [ tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tokNext "{" (Arbitrary "Punctuation") Push+    , tokNext "}" (Arbitrary "Punctuation") Pop     , anyOf root'     ]  delimited_bracket' :: TokenMatcher delimited_bracket' =-    [ tok "\91\94\92\91\92\93\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo delimited_inside_bracket')-    , tokNext "\92\93\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^\\[\\]]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\[" (Arbitrary "Literal" :. Arbitrary "String") (GoTo delimited_inside_bracket')+    , tokNext "\\]\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  token_string' :: TokenMatcher token_string' =-    [ tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo token_string_nest')-    , tokNext "\125" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "{" (Arbitrary "Punctuation") (GoTo token_string_nest')+    , tokNext "}" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf root'     ]  delimited_inside_angle' :: TokenMatcher delimited_inside_angle' =-    [ tok "\91\94\60\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\60" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Push-    , tokNext "\62" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^<>]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "<" (Arbitrary "Literal" :. Arbitrary "String") Push+    , tokNext ">" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\46\42\63\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\92\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo nested_comment')-    , tok "\40\97\98\115\116\114\97\99\116\124\97\108\105\97\115\124\97\108\105\103\110\124\97\115\109\124\97\115\115\101\114\116\124\97\117\116\111\124\98\111\100\121\124\98\114\101\97\107\124\99\97\115\101\124\99\97\115\116\124\99\97\116\99\104\124\99\108\97\115\115\124\99\111\110\115\116\124\99\111\110\116\105\110\117\101\124\100\101\98\117\103\124\100\101\102\97\117\108\116\124\100\101\108\101\103\97\116\101\124\100\101\108\101\116\101\124\100\101\112\114\101\99\97\116\101\100\124\100\111\124\101\108\115\101\124\101\110\117\109\124\101\120\112\111\114\116\124\101\120\116\101\114\110\124\102\105\110\97\108\108\121\124\102\105\110\97\108\124\102\111\114\101\97\99\104\95\114\101\118\101\114\115\101\124\102\111\114\101\97\99\104\124\102\111\114\124\102\117\110\99\116\105\111\110\124\103\111\116\111\124\105\102\124\105\109\112\111\114\116\124\105\110\111\117\116\124\105\110\116\101\114\102\97\99\101\124\105\110\118\97\114\105\97\110\116\124\105\110\124\105\115\124\108\97\122\121\124\109\105\120\105\110\124\109\111\100\117\108\101\124\110\101\119\124\110\111\116\104\114\111\119\124\111\117\116\124\111\118\101\114\114\105\100\101\124\112\97\99\107\97\103\101\124\112\114\97\103\109\97\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\112\117\98\108\105\99\124\112\117\114\101\124\114\101\102\124\114\101\116\117\114\110\124\115\99\111\112\101\124\115\116\97\116\105\99\124\115\116\114\117\99\116\124\115\117\112\101\114\124\115\119\105\116\99\104\124\115\121\110\99\104\114\111\110\105\122\101\100\124\116\101\109\112\108\97\116\101\124\116\104\105\115\124\116\104\114\111\119\124\116\114\121\124\116\121\112\101\100\101\102\124\116\121\112\101\105\100\124\116\121\112\101\111\102\124\117\110\105\111\110\124\117\110\105\116\116\101\115\116\124\118\101\114\115\105\111\110\124\118\111\108\97\116\105\108\101\124\119\104\105\108\101\124\119\105\116\104\124\95\95\116\114\97\105\116\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\98\111\111\108\124\98\121\116\101\124\99\100\111\117\98\108\101\124\99\101\110\116\124\99\102\108\111\97\116\124\99\104\97\114\124\99\114\101\97\108\124\100\99\104\97\114\124\100\111\117\98\108\101\124\102\108\111\97\116\124\105\100\111\117\98\108\101\124\105\102\108\111\97\116\124\105\110\116\124\105\114\101\97\108\124\108\111\110\103\124\114\101\97\108\124\115\104\111\114\116\124\117\98\121\116\101\124\117\99\101\110\116\124\117\105\110\116\124\117\108\111\110\103\124\117\115\104\111\114\116\124\118\111\105\100\124\119\99\104\97\114\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\102\97\108\115\101\124\116\114\117\101\124\110\117\108\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\109\97\99\114\111\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\40\115\116\114\105\110\103\124\119\115\116\114\105\110\103\124\100\115\116\114\105\110\103\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\48\91\120\88\93\40\91\48\45\57\97\45\102\65\45\70\95\93\42\92\46\91\48\45\57\97\45\102\65\45\70\95\93\43\124\91\48\45\57\97\45\102\65\45\70\95\93\43\41\91\112\80\93\91\43\92\45\93\63\91\48\45\57\95\93\43\91\102\70\76\93\63\91\105\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\95\93\43\40\92\46\91\48\45\57\95\93\43\91\101\69\93\91\43\92\45\93\63\91\48\45\57\95\93\43\124\92\46\91\48\45\57\95\93\42\124\91\101\69\93\91\43\92\45\93\63\91\48\45\57\95\93\43\41\91\102\70\76\93\63\91\105\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\46\40\48\124\91\49\45\57\93\91\48\45\57\95\93\42\41\40\91\101\69\93\91\43\92\45\93\63\91\48\45\57\95\93\43\41\63\91\102\70\76\93\63\91\105\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\91\66\98\93\91\48\49\95\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\91\48\45\55\95\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\95\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\40\48\124\91\49\45\57\93\91\48\45\57\95\93\42\41\40\91\76\85\117\93\124\76\117\124\76\85\124\117\76\124\85\76\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\39\40\92\92\91\39\34\63\92\92\97\98\102\110\114\116\118\93\124\92\92\120\91\48\45\57\97\45\102\65\45\70\93\123\50\125\124\92\92\91\48\45\55\93\123\49\44\51\125\124\92\92\117\91\48\45\57\97\45\102\65\45\70\93\123\52\125\124\92\92\85\91\48\45\57\97\45\102\65\45\70\93\123\56\125\124\92\92\38\92\119\43\59\124\46\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\114\34\91\94\34\93\42\34\91\99\119\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\96\91\94\96\93\42\96\91\99\119\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34\91\99\119\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\40\91\39\92\34\63\92\92\97\98\102\110\114\116\118\93\124\120\91\48\45\57\97\45\102\65\45\70\93\123\50\125\124\91\48\45\55\93\123\49\44\51\125\124\117\91\48\45\57\97\45\102\65\45\70\93\123\52\125\124\85\91\48\45\57\97\45\102\65\45\70\93\123\56\125\124\38\92\119\43\59\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\120\34\91\48\45\57\97\45\102\65\45\70\95\92\115\93\42\34\91\99\119\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\113\34\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo delimited_bracket')-    , tokNext "\113\34\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo delimited_parenthesis')-    , tokNext "\113\34\60" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo delimited_angle')-    , tokNext "\113\34\123" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo delimited_curly')-    , tok "\113\34\40\91\97\45\122\65\45\90\95\93\92\119\42\41\92\110\46\42\63\92\110\92\49\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\113\34\40\46\41\46\42\63\92\49\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\113\123" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo token_string')-    , tok "\40\126\61\124\92\94\61\124\37\61\124\92\42\61\124\61\61\124\33\62\61\124\33\60\61\124\33\60\62\61\124\33\60\62\124\33\60\124\33\62\124\33\61\124\62\62\62\61\124\62\62\62\124\62\62\61\124\62\62\124\62\61\124\60\62\61\124\60\62\124\60\60\61\124\60\60\124\60\61\124\92\43\92\43\124\92\43\61\124\45\45\124\45\61\124\92\124\92\124\124\92\124\61\124\38\38\124\38\61\124\92\46\92\46\92\46\124\92\46\92\46\124\47\61\41\124\91\47\46\38\124\92\45\43\60\62\33\40\41\92\91\92\93\123\125\63\44\59\58\36\61\42\37\94\126\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\97\45\122\65\45\90\95\93\92\119\42" (Arbitrary "\78\97\109\101")+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "//(.*?)\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/\\+" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo nested_comment')+    , tok "(abstract|alias|align|asm|assert|auto|body|break|case|cast|catch|class|const|continue|debug|default|delegate|delete|deprecated|do|else|enum|export|extern|finally|final|foreach_reverse|foreach|for|function|goto|if|import|inout|interface|invariant|in|is|lazy|mixin|module|new|nothrow|out|override|package|pragma|private|protected|public|pure|ref|return|scope|static|struct|super|switch|synchronized|template|this|throw|try|typedef|typeid|typeof|union|unittest|version|volatile|while|with|__traits)\\b" (Arbitrary "Keyword")+    , tok "(bool|byte|cdouble|cent|cfloat|char|creal|dchar|double|float|idouble|ifloat|int|ireal|long|real|short|ubyte|ucent|uint|ulong|ushort|void|wchar)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(false|true|null)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "macro\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(string|wstring|dstring)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "0[xX]([0-9a-fA-F_]*\\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)[pP][+\\-]?[0-9_]+[fFL]?[i]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9_]+(\\.[0-9_]+[eE][+\\-]?[0-9_]+|\\.[0-9_]*|[eE][+\\-]?[0-9_]+)[fFL]?[i]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\.(0|[1-9][0-9_]*)([eE][+\\-]?[0-9_]+)?[fFL]?[i]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[Bb][01_]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0[0-7_]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][0-9a-fA-F_]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "(0|[1-9][0-9_]*)([LUu]|Lu|LU|uL|UL)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "'(\\\\['\"?\\\\abfnrtv]|\\\\x[0-9a-fA-F]{2}|\\\\[0-7]{1,3}|\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}|\\\\&\\w+;|.)'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "r\"[^\"]*\"[cwd]?" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "`[^`]*`[cwd]?" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"[cwd]?" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\(['\\\"?\\\\abfnrtv]|x[0-9a-fA-F]{2}|[0-7]{1,3}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8}|&\\w+;)" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "x\"[0-9a-fA-F_\\s]*\"[cwd]?" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "q\"\\[" (Arbitrary "Literal" :. Arbitrary "String") (GoTo delimited_bracket')+    , tokNext "q\"\\(" (Arbitrary "Literal" :. Arbitrary "String") (GoTo delimited_parenthesis')+    , tokNext "q\"<" (Arbitrary "Literal" :. Arbitrary "String") (GoTo delimited_angle')+    , tokNext "q\"{" (Arbitrary "Literal" :. Arbitrary "String") (GoTo delimited_curly')+    , tok "q\"([a-zA-Z_]\\w*)\\n.*?\\n\\1\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "q\"(.).*?\\1\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "q{" (Arbitrary "Literal" :. Arbitrary "String") (GoTo token_string')+    , tok "(\126=|\\^=|%=|\\*=|==|!>=|!<=|!<>=|!<>|!<|!>|!=|>>>=|>>>|>>=|>>|>=|<>=|<>|<<=|<<|<=|\\+\\+|\\+=|--|-=|\\|\\||\\|=|&&|&=|\\.\\.\\.|\\.\\.|/=)|[/.&|\\-+<>!()\\[\\]{}?,;:$=*%^\126]" (Arbitrary "Punctuation")+    , tok "[a-zA-Z_]\\w*" (Arbitrary "Name")     ]  nested_comment' :: TokenMatcher nested_comment' =-    [ tok "\91\94\43\47\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\92\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\92\43\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\43\47\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "[^+/]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/\\+" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "\\+/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[+/]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ] 
src/Text/Highlighter/Lexers/DarcsPatch.hs view
@@ -5,9 +5,9 @@  lexer :: Lexer lexer = Lexer-    { lName = "\68\97\114\99\115\32\80\97\116\99\104"-    , lAliases = ["\100\112\97\116\99\104"]-    , lExtensions = ["\46\100\112\97\116\99\104", "\46\100\97\114\99\115\112\97\116\99\104"]+    { lName = "Darcs Patch"+    , lAliases = ["dpatch"]+    , lExtensions = [".dpatch", ".darcspatch"]     , lMimetypes = []     , lStart = root'     , lFlags = [multiline]@@ -15,44 +15,44 @@  comment' :: TokenMatcher comment' =-    [ tok "\91\94\92\93\93\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\92\93" (Arbitrary "\79\112\101\114\97\116\111\114") Pop+    [ tok "[^\\]].*\\n" (Arbitrary "Comment")+    , tokNext "\\]" (Arbitrary "Operator") Pop     ]  insert' :: TokenMatcher insert' =     [ anyOf specialText'-    , tok "\92\91" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\73\110\115\101\114\116\101\100")-    , tok "\91\94\92\110\92\91\93\42" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\73\110\115\101\114\116\101\100")+    , tok "\\[" (Arbitrary "Generic" :. Arbitrary "Inserted")+    , tok "[^\\n\\[]*" (Arbitrary "Generic" :. Arbitrary "Inserted")     ]  delete' :: TokenMatcher delete' =     [ anyOf specialText'-    , tok "\92\91" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\68\101\108\101\116\101\100")-    , tok "\91\94\92\110\92\91\93\42" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\68\101\108\101\116\101\100")+    , tok "\\[" (Arbitrary "Generic" :. Arbitrary "Deleted")+    , tok "[^\\n\\[]*" (Arbitrary "Generic" :. Arbitrary "Deleted")     ]  root' :: TokenMatcher root' =-    [ tok "\60" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\62" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\123" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\125" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\92\91\41\40\40\63\58\84\65\71\32\41\63\41\40\46\42\41\40\92\110\41\40\46\42\41\40\92\42\92\42\41\40\92\100\43\41\40\92\115\63\41\40\92\93\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\78\97\109\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\68\97\116\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tokNext "\40\92\91\41\40\40\63\58\84\65\71\32\41\63\41\40\46\42\41\40\92\110\41\40\46\42\41\40\92\42\92\42\41\40\92\100\43\41\40\92\115\63\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\78\97\109\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\68\97\116\101"), (Arbitrary "\84\101\120\116")]) (GoTo comment')-    , tok "\78\101\119\32\112\97\116\99\104\101\115\58" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\72\101\97\100\105\110\103")-    , tok "\67\111\110\116\101\120\116\58" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\72\101\97\100\105\110\103")-    , tok "\80\97\116\99\104\32\98\117\110\100\108\101\32\104\97\115\104\58" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\72\101\97\100\105\110\103")-    , tok "\40\92\115\42\41\40\104\117\110\107\124\97\100\100\102\105\108\101\124\97\100\100\100\105\114\124\114\109\102\105\108\101\124\114\109\100\105\114\124\109\111\118\101\124\114\101\112\108\97\99\101\41\40\46\42\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")])-    , tokNext "\92\43" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\73\110\115\101\114\116\101\100") (GoTo insert')-    , tokNext "\45" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\68\101\108\101\116\101\100") (GoTo delete')-    , tok "\46\42\92\110" (Arbitrary "\84\101\120\116")+    [ tok "<" (Arbitrary "Operator")+    , tok ">" (Arbitrary "Operator")+    , tok "{" (Arbitrary "Operator")+    , tok "}" (Arbitrary "Operator")+    , tok "(\\[)((?:TAG )?)(.*)(\\n)(.*)(\\*\\*)(\\d+)(\\s?)(\\])" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Keyword"), (Arbitrary "Name"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Operator"), (Arbitrary "Literal" :. Arbitrary "Date"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tokNext "(\\[)((?:TAG )?)(.*)(\\n)(.*)(\\*\\*)(\\d+)(\\s?)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Keyword"), (Arbitrary "Name"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Operator"), (Arbitrary "Literal" :. Arbitrary "Date"), (Arbitrary "Text")]) (GoTo comment')+    , tok "New patches:" (Arbitrary "Generic" :. Arbitrary "Heading")+    , tok "Context:" (Arbitrary "Generic" :. Arbitrary "Heading")+    , tok "Patch bundle hash:" (Arbitrary "Generic" :. Arbitrary "Heading")+    , tok "(\\s*)(hunk|addfile|adddir|rmfile|rmdir|move|replace)(.*\\n)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text")])+    , tokNext "\\+" (Arbitrary "Generic" :. Arbitrary "Inserted") (GoTo insert')+    , tokNext "-" (Arbitrary "Generic" :. Arbitrary "Deleted") (GoTo delete')+    , tok ".*\\n" (Arbitrary "Text")     ]  specialText' :: TokenMatcher specialText' =-    [ tokNext "\92\110" (Arbitrary "\84\101\120\116") Pop-    , tok "\92\91\95\91\94\95\93\42\95\93" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tokNext "\\n" (Arbitrary "Text") Pop+    , tok "\\[_[^_]*_]" (Arbitrary "Operator")     ] 
src/Text/Highlighter/Lexers/DebianControl.hs view
@@ -5,9 +5,9 @@  lexer :: Lexer lexer = Lexer-    { lName = "\68\101\98\105\97\110\32\67\111\110\116\114\111\108\32\102\105\108\101"-    , lAliases = ["\99\111\110\116\114\111\108"]-    , lExtensions = ["\99\111\110\116\114\111\108"]+    { lName = "Debian Control file"+    , lAliases = ["control"]+    , lExtensions = ["control"]     , lMimetypes = []     , lStart = root'     , lFlags = [multiline]@@ -15,50 +15,50 @@  maintainer' :: TokenMatcher maintainer' =-    [ tok "\60\91\94\62\93\43\62" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\83\116\114\111\110\103")-    , tokNext "\60\91\94\62\93\43\62\36" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\83\116\114\111\110\103") Pop-    , tok "\44\92\110\63" (Arbitrary "\84\101\120\116")-    , tok "\46" (Arbitrary "\84\101\120\116")+    [ tok "<[^>]+>" (Arbitrary "Generic" :. Arbitrary "Strong")+    , tokNext "<[^>]+>$" (Arbitrary "Generic" :. Arbitrary "Strong") Pop+    , tok ",\\n?" (Arbitrary "Text")+    , tok "." (Arbitrary "Text")     ]  depends' :: TokenMatcher depends' =-    [ tok "\58\92\115\42" (Arbitrary "\84\101\120\116")-    , tok "\40\92\36\41\40\92\123\41\40\92\119\43\92\115\42\58\92\115\42\92\119\43\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")])-    , tokNext "\92\40" (Arbitrary "\84\101\120\116") (GoTo depend_vers')-    , tok "\44" (Arbitrary "\84\101\120\116")-    , tok "\92\124" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\92\115\93\43" (Arbitrary "\84\101\120\116")-    , tokNext "\91\125\92\41\93\92\115\42\36" (Arbitrary "\84\101\120\116") Pop-    , tok "\91\125\93" (Arbitrary "\84\101\120\116")-    , tokNext "\91\94\44\93\36" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop-    , tok "\40\91\92\43\92\46\97\45\122\65\45\90\48\45\57\45\93\91\92\115\92\110\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\92\91\46\42\63\92\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")+    [ tok ":\\s*" (Arbitrary "Text")+    , tok "(\\$)(\\{)(\\w+\\s*:\\s*\\w+)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Entity")])+    , tokNext "\\(" (Arbitrary "Text") (GoTo depend_vers')+    , tok "," (Arbitrary "Text")+    , tok "\\|" (Arbitrary "Operator")+    , tok "[\\s]+" (Arbitrary "Text")+    , tokNext "[}\\)]\\s*$" (Arbitrary "Text") Pop+    , tok "[}]" (Arbitrary "Text")+    , tokNext "[^,]$" (Arbitrary "Name" :. Arbitrary "Function") Pop+    , tok "([\\+\\.a-zA-Z0-9-][\\s\\n]*)" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "\\[.*?\\]" (Arbitrary "Name" :. Arbitrary "Entity")     ]  root' :: TokenMatcher root' =-    [ tokNext "\94\40\68\101\115\99\114\105\112\116\105\111\110\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo description')-    , tokNext "\94\40\77\97\105\110\116\97\105\110\101\114\41\40\58\92\115\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo maintainer')-    , tokNext "\94\40\40\66\117\105\108\100\45\41\63\68\101\112\101\110\100\115\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo depends')-    , tok "\94\40\40\63\58\80\121\116\104\111\110\45\41\63\86\101\114\115\105\111\110\41\40\58\92\115\42\41\40\91\94\92\115\93\43\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")])-    , tok "\94\40\40\63\58\73\110\115\116\97\108\108\101\100\45\41\63\83\105\122\101\41\40\58\92\115\42\41\40\91\94\92\115\93\43\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")])-    , tok "\94\40\77\68\53\83\117\109\124\83\72\65\49\124\83\72\65\50\53\54\41\40\58\92\115\42\41\40\91\94\92\115\93\43\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")])-    , tok "\94\40\91\97\45\122\65\45\90\92\45\48\45\57\92\46\93\42\63\41\40\58\92\115\42\41\40\46\42\63\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])+    [ tokNext "^(Description)" (Arbitrary "Keyword") (GoTo description')+    , tokNext "^(Maintainer)(:\\s*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo maintainer')+    , tokNext "^((Build-)?Depends)" (Arbitrary "Keyword") (GoTo depends')+    , tok "^((?:Python-)?Version)(:\\s*)([^\\s]+)$" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number")])+    , tok "^((?:Installed-)?Size)(:\\s*)([^\\s]+)$" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number")])+    , tok "^(MD5Sum|SHA1|SHA256)(:\\s*)([^\\s]+)$" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number")])+    , tok "^([a-zA-Z\\-0-9\\.]*?)(:\\s*)(.*?)$" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Literal" :. Arbitrary "String")])     ]  description' :: TokenMatcher description' =-    [ tok "\40\46\42\41\40\72\111\109\101\112\97\103\101\41\40\58\32\41\40\91\94\92\115\93\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\78\97\109\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")])-    , tok "\58\46\42\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\83\116\114\111\110\103")-    , tok "\32\46\42\92\110" (Arbitrary "\84\101\120\116")-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    [ tok "(.*)(Homepage)(: )([^\\s]+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Name"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok ":.*\\n" (Arbitrary "Generic" :. Arbitrary "Strong")+    , tok " .*\\n" (Arbitrary "Text")+    , tokNext "" (Arbitrary "Text") Pop     ]  depend_vers' :: TokenMatcher depend_vers' =-    [ tokNext "\92\41\44" (Arbitrary "\84\101\120\116") Pop-    , tokNext "\92\41\91\94\44\93" (Arbitrary "\84\101\120\116") (PopNum 2)-    , tok "\40\91\62\60\61\93\43\41\40\92\115\42\41\40\91\94\92\41\93\43\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")])+    [ tokNext "\\)," (Arbitrary "Text") Pop+    , tokNext "\\)[^,]" (Arbitrary "Text") (PopNum 2)+    , tok "([><=]+)(\\s*)([^\\)]+)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number")])     ] 
src/Text/Highlighter/Lexers/Diff.hs view
@@ -5,23 +5,23 @@  lexer :: Lexer lexer = Lexer-    { lName = "\68\105\102\102"-    , lAliases = ["\100\105\102\102", "\117\100\105\102\102"]-    , lExtensions = ["\46\100\105\102\102", "\46\112\97\116\99\104"]-    , lMimetypes = ["\116\101\120\116\47\120\45\100\105\102\102", "\116\101\120\116\47\120\45\112\97\116\99\104"]+    { lName = "Diff"+    , lAliases = ["diff", "udiff"]+    , lExtensions = [".diff", ".patch"]+    , lMimetypes = ["text/x-diff", "text/x-patch"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\32\46\42\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\43\46\42\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\73\110\115\101\114\116\101\100")-    , tok "\45\46\42\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\68\101\108\101\116\101\100")-    , tok "\33\46\42\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\83\116\114\111\110\103")-    , tok "\64\46\42\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\83\117\98\104\101\97\100\105\110\103")-    , tok "\40\91\73\105\93\110\100\101\120\124\100\105\102\102\41\46\42\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\72\101\97\100\105\110\103")-    , tok "\61\46\42\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\72\101\97\100\105\110\103")-    , tok "\46\42\92\110" (Arbitrary "\84\101\120\116")+    [ tok " .*\\n" (Arbitrary "Text")+    , tok "\\+.*\\n" (Arbitrary "Generic" :. Arbitrary "Inserted")+    , tok "-.*\\n" (Arbitrary "Generic" :. Arbitrary "Deleted")+    , tok "!.*\\n" (Arbitrary "Generic" :. Arbitrary "Strong")+    , tok "@.*\\n" (Arbitrary "Generic" :. Arbitrary "Subheading")+    , tok "([Ii]ndex|diff).*\\n" (Arbitrary "Generic" :. Arbitrary "Heading")+    , tok "=.*\\n" (Arbitrary "Generic" :. Arbitrary "Heading")+    , tok ".*\\n" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Django.hs view
@@ -5,53 +5,53 @@  lexer :: Lexer lexer = Lexer-    { lName = "\68\106\97\110\103\111\47\74\105\110\106\97"-    , lAliases = ["\100\106\97\110\103\111", "\106\105\110\106\97"]+    { lName = "Django/Jinja"+    , lAliases = ["django", "jinja"]     , lExtensions = []-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\100\106\97\110\103\111\45\116\101\109\112\108\97\116\105\110\103", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\106\105\110\106\97"]+    , lMimetypes = ["application/x-django-templating", "application/x-jinja"]     , lStart = root'     , lFlags = [multiline, dotall]     }  var' :: TokenMatcher var' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\40\45\63\41\40\92\125\92\125\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")]) Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "(-?)(\\}\\})" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc")]) Pop     , anyOf varnames'     ]  varnames' :: TokenMatcher varnames' =-    [ tok "\40\92\124\41\40\92\115\42\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\40\105\115\41\40\92\115\43\41\40\110\111\116\41\63\40\92\115\43\41\63\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\40\95\124\116\114\117\101\124\102\97\108\115\101\124\110\111\110\101\124\84\114\117\101\124\70\97\108\115\101\124\78\111\110\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\40\105\110\124\97\115\124\114\101\118\101\114\115\101\100\124\114\101\99\117\114\115\105\118\101\124\110\111\116\124\97\110\100\124\111\114\124\105\115\124\105\102\124\101\108\115\101\124\105\109\112\111\114\116\124\119\105\116\104\40\63\58\40\63\58\111\117\116\41\63\92\115\42\99\111\110\116\101\120\116\41\63\124\115\99\111\112\101\100\124\105\103\110\111\114\101\92\115\43\109\105\115\115\105\110\103\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\108\111\111\112\124\98\108\111\99\107\124\115\117\112\101\114\124\102\111\114\108\111\111\112\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\97\45\122\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\92\46\91\97\45\122\65\45\90\48\45\57\95\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\58\63\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\58\63\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\40\91\123\125\40\41\92\91\92\93\43\92\45\42\47\44\58\126\93\124\91\62\60\61\93\61\63\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\48\45\57\93\40\92\46\91\48\45\57\93\42\41\63\40\101\69\91\43\45\93\91\48\45\57\93\41\63\91\102\108\70\76\100\68\93\63\124\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")+    [ tok "(\\|)(\\s*)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(is)(\\s+)(not)?(\\s+)?([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(_|true|false|none|True|False|None)\\b" (Arbitrary "Keyword" :. Arbitrary "Pseudo")+    , tok "(in|as|reversed|recursive|not|and|or|is|if|else|import|with(?:(?:out)?\\s*context)?|scoped|ignore\\s+missing)\\b" (Arbitrary "Keyword")+    , tok "(loop|block|super|forloop)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[a-zA-Z][a-zA-Z0-9_-]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "\\.[a-zA-Z0-9_]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok ":?\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok ":?'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "([{}()\\[\\]+\\-*/,:\126]|[><=]=?)" (Arbitrary "Operator")+    , tok "[0-9](\\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number")     ]  root' :: TokenMatcher root' =-    [ tok "\91\94\123\93\43" (Arbitrary "\79\116\104\101\114")-    , tokNext "\92\123\92\123" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo var')-    , tok "\92\123\91\42\35\93\46\42\63\91\42\35\93\92\125" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\40\92\123\37\41\40\45\63\92\115\42\41\40\99\111\109\109\101\110\116\41\40\92\115\42\45\63\41\40\37\92\125\41\40\46\42\63\41\40\92\123\37\41\40\45\63\92\115\42\41\40\101\110\100\99\111\109\109\101\110\116\41\40\92\115\42\45\63\41\40\37\92\125\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\67\111\109\109\101\110\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tok "\40\92\123\37\41\40\45\63\92\115\42\41\40\114\97\119\41\40\92\115\42\45\63\41\40\37\92\125\41\40\46\42\63\41\40\92\123\37\41\40\45\63\92\115\42\41\40\101\110\100\114\97\119\41\40\92\115\42\45\63\41\40\37\92\125\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tokNext "\40\92\123\37\41\40\45\63\92\115\42\41\40\102\105\108\116\101\114\41\40\92\115\43\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")]) (GoTo block')-    , tokNext "\40\92\123\37\41\40\45\63\92\115\42\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100")]) (GoTo block')-    , tok "\92\123" (Arbitrary "\79\116\104\101\114")+    [ tok "[^{]+" (Arbitrary "Other")+    , tokNext "\\{\\{" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo var')+    , tok "\\{[*#].*?[*#]\\}" (Arbitrary "Comment")+    , tok "(\\{%)(-?\\s*)(comment)(\\s*-?)(%\\})(.*?)(\\{%)(-?\\s*)(endcomment)(\\s*-?)(%\\})" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Comment"), (Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tok "(\\{%)(-?\\s*)(raw)(\\s*-?)(%\\})(.*?)(\\{%)(-?\\s*)(endraw)(\\s*-?)(%\\})" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tokNext "(\\{%)(-?\\s*)(filter)(\\s+)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")]) (GoTo block')+    , tokNext "(\\{%)(-?\\s*)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Keyword")]) (GoTo block')+    , tok "\\{" (Arbitrary "Other")     ]  block' :: TokenMatcher block' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\40\45\63\41\40\37\92\125\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")]) Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "(-?)(%\\})" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc")]) Pop     , anyOf varnames'-    , tok "\46" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    , tok "." (Arbitrary "Punctuation")     ] 
+ src/Text/Highlighter/Lexers/Duel.hs view
@@ -0,0 +1,30 @@+module Text.Highlighter.Lexers.Duel (lexer) where+import qualified Text.Highlighter.Lexers.Javascript as Javascript+import qualified Text.Highlighter.Lexers.Html as Html+import qualified Text.Highlighter.Lexers.Javascript as Javascript+import qualified Text.Highlighter.Lexers.Html as Html+import qualified Text.Highlighter.Lexers.Html as Html+import qualified Text.Highlighter.Lexers.Html as Html+import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "Duel"+    , lAliases = ["duel", "Duel Engine", "Duel View", "JBST", "jbst", "JsonML+BST"]+    , lExtensions = [".duel", ".jbst"]+    , lMimetypes = ["text/x-duel", "text/x-jbst"]+    , lStart = root'+    , lFlags = [dotall]+    }++root' :: TokenMatcher+root' =+    [ tok "(<%[@=#!:]?)(.*?)(%>)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Tag"), (Using Javascript.lexer), (Arbitrary "Name" :. Arbitrary "Tag")])+    , tok "(<%\\$)(.*?)(:)(.*?)(%>)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Tag"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Name" :. Arbitrary "Tag")])+    , tok "(<%--)(.*?)(--%>)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Tag"), (Arbitrary "Comment" :. Arbitrary "Multiline"), (Arbitrary "Name" :. Arbitrary "Tag")])+    , tok "(<script.*?>)(.*?)(</script>)" (ByGroups [(Using Html.lexer), (Using Javascript.lexer), (Using Html.lexer)])+    , tok "(.+?)(?=<)" (Using Html.lexer)+    , tok ".+" (Using Html.lexer)+    ]+
src/Text/Highlighter/Lexers/Dylan.hs view
@@ -5,31 +5,40 @@  lexer :: Lexer lexer = Lexer-    { lName = "\68\121\108\97\110"-    , lAliases = ["\100\121\108\97\110"]-    , lExtensions = ["\46\100\121\108\97\110"]-    , lMimetypes = ["\116\101\120\116\47\120\45\100\121\108\97\110"]+    { lName = "Dylan"+    , lAliases = ["dylan"]+    , lExtensions = [".dylan", ".dyl"]+    , lMimetypes = ["text/x-dylan"]     , lStart = root'     , lFlags = [dotall]     }  root' :: TokenMatcher root' =-    [ tok "\92\98\40\115\117\98\99\108\97\115\115\124\97\98\115\116\114\97\99\116\124\98\108\111\99\107\124\99\40\111\110\40\99\114\101\116\101\124\115\116\97\110\116\41\124\108\97\115\115\41\124\100\111\109\97\105\110\124\101\120\40\99\40\101\112\116\105\111\110\124\108\117\100\101\41\124\112\111\114\116\41\124\102\40\117\110\99\116\105\111\110\40\124\97\108\41\41\124\103\101\110\101\114\105\99\124\104\97\110\100\108\101\114\124\105\40\110\40\104\101\114\105\116\101\100\124\108\105\110\101\124\115\116\97\110\99\101\124\116\101\114\102\97\99\101\41\124\109\112\111\114\116\41\124\108\105\98\114\97\114\121\124\109\40\97\99\114\111\124\101\116\104\111\100\41\124\111\112\101\110\124\112\114\105\109\97\114\121\124\115\101\97\108\101\100\124\115\105\40\100\101\119\97\121\115\124\110\103\108\101\116\111\110\41\124\115\108\111\116\124\118\40\97\114\105\97\98\108\101\124\105\114\116\117\97\108\41\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\60\92\119\43\62" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\35\63\34\40\63\58\92\92\46\124\91\94\34\93\41\43\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\91\92\119\92\87\93\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\92\39\46\42\63\92\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\61\62\124\92\98\40\97\40\98\111\118\101\124\102\116\101\114\119\97\114\100\115\41\124\98\40\101\40\103\105\110\124\108\111\119\41\124\121\41\124\99\40\97\115\101\124\108\101\97\110\117\112\124\114\101\97\116\101\41\124\100\101\102\105\110\101\124\101\108\115\101\40\124\105\102\41\124\101\110\100\124\102\40\105\110\97\108\108\121\124\111\114\124\114\111\109\41\124\105\91\102\110\93\124\108\40\101\116\124\111\99\97\108\41\124\111\116\104\101\114\119\105\115\101\124\114\101\110\97\109\101\124\115\40\101\108\101\99\116\124\105\103\110\97\108\41\124\116\40\104\101\110\124\111\41\124\117\40\110\40\108\101\115\115\124\116\105\108\41\124\115\101\41\124\119\104\40\101\110\124\105\108\101\41\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\91\32\92\116\93\41\40\91\33\92\36\37\38\92\42\92\47\58\60\61\62\92\63\126\95\94\97\45\122\65\45\90\48\45\57\46\43\92\45\93\42\58\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")])-    , tok "\40\91\32\92\116\93\42\41\40\92\83\43\91\94\58\93\41\40\91\32\92\116\93\42\41\40\92\40\41\40\91\32\92\116\93\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116")])-    , tok "\45\63\91\48\45\57\46\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\40\41\44\59\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\36\91\97\45\122\65\45\90\48\45\57\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\91\33\36\37\38\42\47\58\60\62\61\63\126\94\46\43\92\91\92\93\123\125\45\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\35\91\97\45\122\65\45\90\48\45\57\45\93\43" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\91\97\45\122\65\45\90\48\45\57\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    [ tok "\\b(subclass|abstract|block|c(on(crete|stant)|lass)|domain|ex(c(eption|lude)|port)|f(unction(|al))|generic|handler|i(n(herited|line|stance|terface)|mport)|library|m(acro|ethod)|open|primary|sealed|si(deways|ngleton)|slot|v(ariable|irtual))\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "<\\w+>" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*[\\w\\W]*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "'(\\\\.|\\\\[0-7]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\'\\n])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "=>|\\b(a(bove|fterwards)|b(e(gin|low)|y)|c(ase|leanup|reate)|define|else(|if)|end|f(inally|or|rom)|i[fn]|l(et|ocal)|otherwise|rename|s(elect|ignal)|t(hen|o)|u(n(less|til)|se)|wh(en|ile))\\b" (Arbitrary "Keyword")+    , tok "([ \\t])([!\\$%&\\*\\/:<=>\\?\126_^a-zA-Z0-9.+\\-]*:)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable")])+    , tok "([ \\t]*)(\\S+[^:])([ \\t]*)(\\()([ \\t]*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Text")])+    , tok "-?[0-9.]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[(),;]" (Arbitrary "Punctuation")+    , tok "\\$[a-zA-Z0-9-]+" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "[!$%&*/:<>=?\126^.+\\[\\]{}-]+" (Arbitrary "Operator")+    , tok "\\s+" (Arbitrary "Text")+    , tok "#[a-zA-Z0-9-]+" (Arbitrary "Keyword")+    , tok "[a-zA-Z0-9-]+" (Arbitrary "Name" :. Arbitrary "Variable")+    ]++string' :: TokenMatcher+string' =+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ] 
src/Text/Highlighter/Lexers/Erlang.hs view
@@ -5,52 +5,52 @@  lexer :: Lexer lexer = Lexer-    { lName = "\69\114\108\97\110\103"-    , lAliases = ["\101\114\108\97\110\103"]-    , lExtensions = ["\46\101\114\108", "\46\104\114\108"]-    , lMimetypes = ["\116\101\120\116\47\120\45\101\114\108\97\110\103"]+    { lName = "Erlang"+    , lAliases = ["erlang"]+    , lExtensions = [".erl", ".hrl"]+    , lMimetypes = ["text/x-erlang"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\37\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\40\97\102\116\101\114\124\98\101\103\105\110\124\99\97\115\101\124\99\97\116\99\104\124\99\111\110\100\124\101\110\100\124\102\117\110\124\105\102\124\108\101\116\124\111\102\124\113\117\101\114\121\124\114\101\99\101\105\118\101\124\116\114\121\124\119\104\101\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\97\98\115\124\97\112\112\101\110\100\95\101\108\101\109\101\110\116\124\97\112\112\108\121\124\97\116\111\109\95\116\111\95\108\105\115\116\124\98\105\110\97\114\121\95\116\111\95\108\105\115\116\124\98\105\116\115\116\114\105\110\103\95\116\111\95\108\105\115\116\124\98\105\110\97\114\121\95\116\111\95\116\101\114\109\124\98\105\116\95\115\105\122\101\124\98\117\109\112\95\114\101\100\117\99\116\105\111\110\115\124\98\121\116\101\95\115\105\122\101\124\99\97\110\99\101\108\95\116\105\109\101\114\124\99\104\101\99\107\95\112\114\111\99\101\115\115\95\99\111\100\101\124\100\101\108\101\116\101\95\109\111\100\117\108\101\124\100\101\109\111\110\105\116\111\114\124\100\105\115\99\111\110\110\101\99\116\95\110\111\100\101\124\100\105\115\112\108\97\121\124\101\108\101\109\101\110\116\124\101\114\97\115\101\124\101\120\105\116\124\102\108\111\97\116\124\102\108\111\97\116\95\116\111\95\108\105\115\116\124\102\117\110\95\105\110\102\111\124\102\117\110\95\116\111\95\108\105\115\116\124\102\117\110\99\116\105\111\110\95\101\120\112\111\114\116\101\100\124\103\97\114\98\97\103\101\95\99\111\108\108\101\99\116\124\103\101\116\124\103\101\116\95\107\101\121\115\124\103\114\111\117\112\95\108\101\97\100\101\114\124\104\97\115\104\124\104\100\124\105\110\116\101\103\101\114\95\116\111\95\108\105\115\116\124\105\111\108\105\115\116\95\116\111\95\98\105\110\97\114\121\124\105\111\108\105\115\116\95\115\105\122\101\124\105\115\95\97\116\111\109\124\105\115\95\98\105\110\97\114\121\124\105\115\95\98\105\116\115\116\114\105\110\103\124\105\115\95\98\111\111\108\101\97\110\124\105\115\95\98\117\105\108\116\105\110\124\105\115\95\102\108\111\97\116\124\105\115\95\102\117\110\99\116\105\111\110\124\105\115\95\105\110\116\101\103\101\114\124\105\115\95\108\105\115\116\124\105\115\95\110\117\109\98\101\114\124\105\115\95\112\105\100\124\105\115\95\112\111\114\116\124\105\115\95\112\114\111\99\101\115\115\95\97\108\105\118\101\124\105\115\95\114\101\99\111\114\100\124\105\115\95\114\101\102\101\114\101\110\99\101\124\105\115\95\116\117\112\108\101\124\108\101\110\103\116\104\124\108\105\110\107\124\108\105\115\116\95\116\111\95\97\116\111\109\124\108\105\115\116\95\116\111\95\98\105\110\97\114\121\124\108\105\115\116\95\116\111\95\98\105\116\115\116\114\105\110\103\124\108\105\115\116\95\116\111\95\101\120\105\115\116\105\110\103\95\97\116\111\109\124\108\105\115\116\95\116\111\95\102\108\111\97\116\124\108\105\115\116\95\116\111\95\105\110\116\101\103\101\114\124\108\105\115\116\95\116\111\95\112\105\100\124\108\105\115\116\95\116\111\95\116\117\112\108\101\124\108\111\97\100\95\109\111\100\117\108\101\124\108\111\99\97\108\116\105\109\101\95\116\111\95\117\110\105\118\101\114\115\97\108\116\105\109\101\124\109\97\107\101\95\116\117\112\108\101\124\109\100\53\124\109\100\53\95\102\105\110\97\108\124\109\100\53\95\117\112\100\97\116\101\124\109\101\109\111\114\121\124\109\111\100\117\108\101\95\108\111\97\100\101\100\124\109\111\110\105\116\111\114\124\109\111\110\105\116\111\114\95\110\111\100\101\124\110\111\100\101\124\110\111\100\101\115\124\111\112\101\110\95\112\111\114\116\124\112\104\97\115\104\124\112\104\97\115\104\50\124\112\105\100\95\116\111\95\108\105\115\116\124\112\111\114\116\95\99\108\111\115\101\124\112\111\114\116\95\99\111\109\109\97\110\100\124\112\111\114\116\95\99\111\110\110\101\99\116\124\112\111\114\116\95\99\111\110\116\114\111\108\124\112\111\114\116\95\99\97\108\108\124\112\111\114\116\95\105\110\102\111\124\112\111\114\116\95\116\111\95\108\105\115\116\124\112\114\111\99\101\115\115\95\100\105\115\112\108\97\121\124\112\114\111\99\101\115\115\95\102\108\97\103\124\112\114\111\99\101\115\115\95\105\110\102\111\124\112\117\114\103\101\95\109\111\100\117\108\101\124\112\117\116\124\114\101\97\100\95\116\105\109\101\114\124\114\101\102\95\116\111\95\108\105\115\116\124\114\101\103\105\115\116\101\114\124\114\101\115\117\109\101\95\112\114\111\99\101\115\115\124\114\111\117\110\100\124\115\101\110\100\124\115\101\110\100\95\97\102\116\101\114\124\115\101\110\100\95\110\111\115\117\115\112\101\110\100\124\115\101\116\95\99\111\111\107\105\101\124\115\101\116\101\108\101\109\101\110\116\124\115\105\122\101\124\115\112\97\119\110\124\115\112\97\119\110\95\108\105\110\107\124\115\112\97\119\110\95\109\111\110\105\116\111\114\124\115\112\97\119\110\95\111\112\116\124\115\112\108\105\116\95\98\105\110\97\114\121\124\115\116\97\114\116\95\116\105\109\101\114\124\115\116\97\116\105\115\116\105\99\115\124\115\117\115\112\101\110\100\95\112\114\111\99\101\115\115\124\115\121\115\116\101\109\95\102\108\97\103\124\115\121\115\116\101\109\95\105\110\102\111\124\115\121\115\116\101\109\95\109\111\110\105\116\111\114\124\115\121\115\116\101\109\95\112\114\111\102\105\108\101\124\116\101\114\109\95\116\111\95\98\105\110\97\114\121\124\116\108\124\116\114\97\99\101\124\116\114\97\99\101\95\100\101\108\105\118\101\114\101\100\124\116\114\97\99\101\95\105\110\102\111\124\116\114\97\99\101\95\112\97\116\116\101\114\110\124\116\114\117\110\99\124\116\117\112\108\101\95\115\105\122\101\124\116\117\112\108\101\95\116\111\95\108\105\115\116\124\117\110\105\118\101\114\115\97\108\116\105\109\101\95\116\111\95\108\111\99\97\108\116\105\109\101\124\117\110\108\105\110\107\124\117\110\114\101\103\105\115\116\101\114\124\119\104\101\114\101\105\115\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\97\110\100\124\97\110\100\97\108\115\111\124\98\97\110\100\124\98\110\111\116\124\98\111\114\124\98\115\108\124\98\115\114\124\98\120\111\114\124\100\105\118\124\110\111\116\124\111\114\124\111\114\101\108\115\101\124\114\101\109\124\120\111\114\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tokNext "\94\45" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo directive')-    , tok "\40\92\43\124\45\124\92\42\124\47\124\60\124\62\124\61\124\61\61\124\47\61\124\61\58\61\124\61\47\61\124\61\60\124\62\61\124\92\43\92\43\124\45\45\124\60\45\124\33\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\60\60" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\62\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\40\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41\41\40\58\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\94\40\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\91\43\45\93\63\40\63\58\91\50\45\57\93\124\91\49\50\93\91\48\45\57\93\124\51\91\48\45\54\93\41\35\91\48\45\57\97\45\122\65\45\90\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\43\45\93\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\43\45\93\63\92\100\43\46\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\93\91\58\95\64\92\34\46\123\125\40\41\124\59\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\63\58\91\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41" (Arbitrary "\78\97\109\101")-    , tok "\92\63\40\63\58\40\63\58\91\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\124\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\36\40\63\58\40\63\58\92\92\40\63\58\91\98\100\101\102\110\114\115\116\118\92\39\34\92\92\47\93\124\91\48\45\55\93\91\48\45\55\93\63\91\48\45\55\93\63\124\92\94\91\97\45\122\65\45\90\93\41\41\124\92\92\91\32\37\93\124\91\94\92\92\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\35\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41\40\58\63\92\46\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41\41\63" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "%.*\\n" (Arbitrary "Comment")+    , tok "(after|begin|case|catch|cond|end|fun|if|let|of|query|receive|try|when)\\b" (Arbitrary "Keyword")+    , tok "(abs|append_element|apply|atom_to_list|binary_to_list|bitstring_to_list|binary_to_term|bit_size|bump_reductions|byte_size|cancel_timer|check_process_code|delete_module|demonitor|disconnect_node|display|element|erase|exit|float|float_to_list|fun_info|fun_to_list|function_exported|garbage_collect|get|get_keys|group_leader|hash|hd|integer_to_list|iolist_to_binary|iolist_size|is_atom|is_binary|is_bitstring|is_boolean|is_builtin|is_float|is_function|is_integer|is_list|is_number|is_pid|is_port|is_process_alive|is_record|is_reference|is_tuple|length|link|list_to_atom|list_to_binary|list_to_bitstring|list_to_existing_atom|list_to_float|list_to_integer|list_to_pid|list_to_tuple|load_module|localtime_to_universaltime|make_tuple|md5|md5_final|md5_update|memory|module_loaded|monitor|monitor_node|node|nodes|open_port|phash|phash2|pid_to_list|port_close|port_command|port_connect|port_control|port_call|port_info|port_to_list|process_display|process_flag|process_info|purge_module|put|read_timer|ref_to_list|register|resume_process|round|send|send_after|send_nosuspend|set_cookie|setelement|size|spawn|spawn_link|spawn_monitor|spawn_opt|split_binary|start_timer|statistics|suspend_process|system_flag|system_info|system_monitor|system_profile|term_to_binary|tl|trace|trace_delivered|trace_info|trace_pattern|trunc|tuple_size|tuple_to_list|universaltime_to_localtime|unlink|unregister|whereis)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(and|andalso|band|bnot|bor|bsl|bsr|bxor|div|not|or|orelse|rem|xor)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tokNext "^-" (Arbitrary "Punctuation") (GoTo directive')+    , tok "(\\+|-|\\*|/|<|>|=|==|/=|=:=|=/=|=<|>=|\\+\\+|--|<-|!)" (Arbitrary "Operator")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "<<" (Arbitrary "Name" :. Arbitrary "Label")+    , tok ">>" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "((?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]'))(:)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Punctuation")])+    , tok "^((?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]'))(\\s*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tok "[+-]?(?:[2-9]|[12][0-9]|3[0-6])#[0-9a-zA-Z]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[+-]?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[+-]?\\d+.\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[]\\[:_@\\\".{}()|;,]" (Arbitrary "Punctuation")+    , tok "(?:[A-Z_][a-zA-Z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]')" (Arbitrary "Name")+    , tok "\\?(?:(?:[A-Z_][a-zA-Z0-9_]*)|(?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]'))" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\\$(?:(?:\\\\(?:[bdefnrstv\\'\"\\\\/]|[0-7][0-7]?[0-7]?|\\^[a-zA-Z]))|\\\\[ %]|[^\\\\])" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "#(?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]')(:?\\.(?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]'))?" (Arbitrary "Name" :. Arbitrary "Label")     ]  string' :: TokenMatcher string' =-    [ tok "\40\63\58\92\92\40\63\58\91\98\100\101\102\110\114\115\116\118\92\39\34\92\92\47\93\124\91\48\45\55\93\91\48\45\55\93\63\91\48\45\55\93\63\124\92\94\91\97\45\122\65\45\90\93\41\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\126\91\48\45\57\46\42\93\42\91\126\35\43\98\66\99\100\101\102\103\105\110\112\80\115\119\87\120\88\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")-    , tok "\91\94\34\92\92\126\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\126" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "(?:\\\\(?:[bdefnrstv\\'\"\\\\/]|[0-7][0-7]?[0-7]?|\\^[a-zA-Z]))" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\126[0-9.*]*[\126#+bBcdefginpPswWxX]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")+    , tok "[^\"\\\\\126]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\126" (Arbitrary "Literal" :. Arbitrary "String")     ]  directive' :: TokenMatcher directive' =-    [ tokNext "\40\100\101\102\105\110\101\41\40\92\115\42\41\40\92\40\41\40\40\63\58\40\63\58\91\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\124\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41\41\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")]) Pop-    , tokNext "\40\114\101\99\111\114\100\41\40\92\115\42\41\40\92\40\41\40\40\63\58\40\63\58\91\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\124\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41\41\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")]) Pop-    , tokNext "\40\63\58\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\124\39\91\94\92\110\39\93\42\91\94\92\92\93\39\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121") Pop+    [ tokNext "(define)(\\s*)(\\()((?:(?:[A-Z_][a-zA-Z0-9_]*)|(?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]')))" (ByGroups [(Arbitrary "Name" :. Arbitrary "Entity"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Constant")]) Pop+    , tokNext "(record)(\\s*)(\\()((?:(?:[A-Z_][a-zA-Z0-9_]*)|(?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]')))" (ByGroups [(Arbitrary "Name" :. Arbitrary "Entity"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Label")]) Pop+    , tokNext "(?:[a-z][a-zA-Z0-9_]*|'[^\\n']*[^\\\\]')" (Arbitrary "Name" :. Arbitrary "Entity") Pop     ] 
+ src/Text/Highlighter/Lexers/Factor.hs view
@@ -0,0 +1,100 @@+module Text.Highlighter.Lexers.Factor (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "Factor"+    , lAliases = ["factor"]+    , lExtensions = [".factor"]+    , lMimetypes = ["text/x-factor"]+    , lStart = root'+    , lFlags = [multiline, utf8]+    }++stackeffect' :: TokenMatcher+stackeffect' =+    [ tokNext "\\s*\\(" (Arbitrary "Name" :. Arbitrary "Function") (GoTo stackeffect')+    , tokNext "\\)" (Arbitrary "Name" :. Arbitrary "Function") Pop+    , tok "\\-\\-" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\S+" (Arbitrary "Name" :. Arbitrary "Variable")+    ]++import' :: TokenMatcher+import' =+    [ tokNext ";" (Arbitrary "Keyword") Pop+    , tok "\\S+" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tok "\\s+" (Arbitrary "Text")+    ]++slots' :: TokenMatcher+slots' =+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext ";\\s" (Arbitrary "Keyword") Pop+    , tok "\\S+" (Arbitrary "Name" :. Arbitrary "Variable")+    ]++root' :: TokenMatcher+root' =+    [ tok "(\\s*)(:|::|MACRO:|MEMO:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(\\s*)(M:)(\\s+)(\\S+)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(\\s*)(GENERIC:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(\\s*)(HOOK:|GENERIC#)(\\s+)(\\S+)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tokNext "(\\()(\\s+)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text")]) (GoTo stackeffect')+    , tok "\\;\\s" (Arbitrary "Keyword")+    , tokNext "(USING:)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo import')+    , tok "(USE:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Namespace")])+    , tok "(UNUSE:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Namespace")])+    , tok "(QUALIFIED:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Namespace")])+    , tok "(QUALIFIED-WITH:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Namespace")])+    , tok "(FROM:|EXCLUDE:)(\\s+)(\\S+)(\\s+)(=>)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Text")])+    , tok "(IN:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Namespace")])+    , tok "(?:ALIAS|DEFER|FORGET|POSTPONE):" (Arbitrary "Keyword" :. Arbitrary "Namespace")+    , tokNext "(TUPLE:)(\\s+)(\\S+)(\\s+<\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")]) (GoTo slots')+    , tokNext "(TUPLE:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")]) (GoTo slots')+    , tok "(UNION:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok "(INTERSECTION:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok "(PREDICATE:)(\\s+)(\\S+)(\\s+<\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok "(C:)(\\s+)(\\S+)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok "INSTANCE:" (Arbitrary "Keyword")+    , tok "SLOT:" (Arbitrary "Keyword")+    , tok "MIXIN:" (Arbitrary "Keyword")+    , tok "(?:SINGLETON|SINGLETONS):" (Arbitrary "Keyword")+    , tok "CONSTANT:" (Arbitrary "Keyword")+    , tok "(?:SYMBOL|SYMBOLS):" (Arbitrary "Keyword")+    , tok "ERROR:" (Arbitrary "Keyword")+    , tok "SYNTAX:" (Arbitrary "Keyword")+    , tok "(HELP:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(MAIN:)(\\s+)(\\S+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "(?:ALIEN|TYPEDEF|FUNCTION|STRUCT):" (Arbitrary "Keyword")+    , tok "(?:<PRIVATE|PRIVATE>)" (Arbitrary "Keyword" :. Arbitrary "Namespace")+    , tok "\"\"\"\\s+(?:.|\\n)*?\\s+\"\"\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\"(?:\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "CHAR:\\s+(\\\\[\\\\abfnrstv]*|\\S)\\s" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "\\!\\s+.*$" (Arbitrary "Comment")+    , tok "#\\!\\s+.*$" (Arbitrary "Comment")+    , tok "(t|f)\\s" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "-?\\d+\\.\\d+\\s" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "-?\\d+\\s" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "HEX:\\s+[a-fA-F\\d]+\\s" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "BIN:\\s+[01]+\\s" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "OCT:\\s+[0-7]+\\s" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "[-+/*=<>^]\\s" (Arbitrary "Operator")+    , tok "(?:deprecated|final|foldable|flushable|inline|recursive)\\s" (Arbitrary "Keyword")+    , tok "(?:or|2bi|2tri|while|wrapper|nip|4dip|wrapper\\\\?|bi\\\\*|callstack>array|both\\\\?|hashcode|die|dupd|callstack|callstack\\\\?|3dup|tri@|pick|curry|build|\\\\?execute|3bi|prepose|>boolean|\\\\?if|clone|eq\\\\?|tri\\\\*|\\\\?|=|swapd|2over|2keep|3keep|clear|2dup|when|not|tuple\\\\?|dup|2bi\\\\*|2tri\\\\*|call|tri-curry|object|bi@|do|unless\\\\*|if\\\\*|loop|bi-curry\\\\*|drop|when\\\\*|assert=|retainstack|assert\\\\?|-rot|execute|2bi@|2tri@|boa|with|either\\\\?|3drop|bi|curry\\\\?|datastack|until|3dip|over|3curry|tri-curry\\\\*|tri-curry@|swap|and|2nip|throw|bi-curry|\\\\(clone\\\\)|hashcode\\\\*|compose|2dip|if|3tri|unless|compose\\\\?|tuple|keep|2curry|equal\\\\?|assert|tri|2drop|most|<wrapper>|boolean\\\\?|identity-hashcode|identity-tuple\\\\?|null|new|dip|bi-curry@|rot|xor|identity-tuple|boolean)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:\\\\?at|assoc\\\\?|assoc-clone-like|assoc=|delete-at\\\\*|assoc-partition|extract-keys|new-assoc|value\\\\?|assoc-size|map>assoc|push-at|assoc-like|key\\\\?|assoc-intersect|assoc-refine|update|assoc-union|assoc-combine|at\\\\*|assoc-empty\\\\?|at\\\\+|set-at|assoc-all\\\\?|assoc-subset\\\\?|assoc-hashcode|change-at|assoc-each|assoc-diff|zip|values|value-at|rename-at|inc-at|enum\\\\?|at|cache|assoc>map|<enum>|assoc|assoc-map|enum|value-at\\\\*|assoc-map-as|>alist|assoc-filter-as|clear-assoc|assoc-stack|maybe-set-at|substitute|assoc-filter|2cache|delete-at|assoc-find|keys|assoc-any\\\\?|unzip)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:case|execute-effect|no-cond|no-case\\\\?|3cleave>quot|2cleave|cond>quot|wrong-values\\\\?|no-cond\\\\?|cleave>quot|no-case|case>quot|3cleave|wrong-values|to-fixed-point|alist>quot|case-find|cond|cleave|call-effect|2cleave>quot|recursive-hashcode|linear-case-quot|spread|spread>quot)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:number=|if-zero|next-power-of-2|each-integer|\\\\?1\\\\+|fp-special\\\\?|imaginary-part|unless-zero|float>bits|number\\\\?|fp-infinity\\\\?|bignum\\\\?|fp-snan\\\\?|denominator|fp-bitwise=|\\\\*|\\\\+|power-of-2\\\\?|-|u>=|/|>=|bitand|log2-expects-positive|<|log2|>|integer\\\\?|number|bits>double|2/|zero\\\\?|(find-integer)|bits>float|float\\\\?|shift|ratio\\\\?|even\\\\?|ratio|fp-sign|bitnot|>fixnum|complex\\\\?|/i|/f|byte-array>bignum|when-zero|sgn|>bignum|next-float|u<|u>|mod|recip|rational|find-last-integer|>float|(all-integers\\\\?)|2^|times|integer|fixnum\\\\?|neg|fixnum|sq|bignum|(each-integer)|bit\\\\?|fp-qnan\\\\?|find-integer|complex|<fp-nan>|real|double>bits|bitor|rem|fp-nan-payload|all-integers\\\\?|real-part|log2-expects-positive\\\\?|prev-float|align|unordered\\\\?|float|fp-nan\\\\?|abs|bitxor|u<=|odd\\\\?|<=|/mod|rational\\\\?|>integer|real\\\\?|numerator)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:member-eq\\\\?|append|assert-sequence=|find-last-from|trim-head-slice|clone-like|3sequence|assert-sequence\\\\?|map-as|last-index-from|reversed|index-from|cut\\\\*|pad-tail|remove-eq!|concat-as|but-last|snip|trim-tail|nths|nth|2selector|sequence|slice\\\\?|<slice>|partition|remove-nth|tail-slice|empty\\\\?|tail\\\\*|if-empty|find-from|virtual-sequence\\\\?|member\\\\?|set-length|drop-prefix|unclip|unclip-last-slice|iota|map-sum|bounds-error\\\\?|sequence-hashcode-step|selector-for|accumulate-as|map|start|midpoint@|\\\\(accumulate\\\\)|rest-slice|prepend|fourth|sift|accumulate!|new-sequence|follow|map!|like|first4|1sequence|reverse|slice|unless-empty|padding|virtual@|repetition\\\\?|set-last|index|4sequence|max-length|set-second|immutable-sequence|first2|first3|replicate-as|reduce-index|unclip-slice|supremum|suffix!|insert-nth|trim-tail-slice|tail|3append|short|count|suffix|concat|flip|filter|sum|immutable\\\\?|reverse!|2sequence|map-integers|delete-all|start\\\\*|indices|snip-slice|check-slice|sequence\\\\?|head|map-find|filter!|append-as|reduce|sequence=|halves|collapse-slice|interleave|2map|filter-as|binary-reduce|slice-error\\\\?|product|bounds-check\\\\?|bounds-check|harvest|immutable|virtual-exemplar|find|produce|remove|pad-head|last|replicate|set-fourth|remove-eq|shorten|reversed\\\\?|map-find-last|3map-as|2unclip-slice|shorter\\\\?|3map|find-last|head-slice|pop\\\\*|2map-as|tail-slice\\\\*|but-last-slice|2map-reduce|iota\\\\?|collector-for|accumulate|each|selector|append!|new-resizable|cut-slice|each-index|head-slice\\\\*|2reverse-each|sequence-hashcode|pop|set-nth|\\\\?nth|<flat-slice>|second|join|when-empty|collector|immutable-sequence\\\\?|<reversed>|all\\\\?|3append-as|virtual-sequence|subseq\\\\?|remove-nth!|push-either|new-like|length|last-index|push-if|2all\\\\?|lengthen|assert-sequence|copy|map-reduce|move|third|first|3each|tail\\\\?|set-first|prefix|bounds-error|any\\\\?|<repetition>|trim-slice|exchange|surround|2reduce|cut|change-nth|min-length|set-third|produce-as|push-all|head\\\\?|delete-slice|rest|sum-lengths|2each|head\\\\*|infimum|remove!|glue|slice-error|subseq|trim|replace-slice|push|repetition|map-index|trim-head|unclip-last|mismatch)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:global|\\\\+@|change|set-namestack|change-global|init-namespaces|on|off|set-global|namespace|set|with-scope|bind|with-variable|inc|dec|counter|initialize|namestack|get|get-global|make-assoc)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:<array>|2array|3array|pair|>array|1array|4array|pair\\\\?|array|resize-array|array\\\\?)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:\\\\+character\\\\+|bad-seek-type\\\\?|readln|each-morsel|stream-seek|read|print|with-output-stream|contents|write1|stream-write1|stream-copy|stream-element-type|with-input-stream|stream-print|stream-read|stream-contents|stream-tell|tell-output|bl|seek-output|bad-seek-type|nl|stream-nl|write|flush|stream-lines|\\\\+byte\\\\+|stream-flush|read1|seek-absolute\\\\?|stream-read1|lines|stream-readln|stream-read-until|each-line|seek-end|with-output-stream\\\\*|seek-absolute|with-streams|seek-input|seek-relative\\\\?|input-stream|stream-write|read-partial|seek-end\\\\?|seek-relative|error-stream|read-until|with-input-stream\\\\*|with-streams\\\\*|tell-input|each-block|output-stream|stream-read-partial|each-stream-block|each-stream-line)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:resize-string|>string|<string>|1string|string|string\\\\?)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:vector\\\\?|<vector>|\\\\?push|vector|>vector|1vector)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?:with-return|restarts|return-continuation|with-datastack|recover|rethrow-restarts|<restart>|ifcc|set-catchstack|>continuation<|cleanup|ignore-errors|restart\\\\?|compute-restarts|attempt-all-error|error-thread|continue|<continuation>|attempt-all-error\\\\?|condition\\\\?|<condition>|throw-restarts|error|catchstack|continue-with|thread-error-hook|continuation|rethrow|callcc1|error-continuation|callcc0|attempt-all|condition|continuation\\\\?|restart|return)\\s" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\S+" (Arbitrary "Text")+    ]+
src/Text/Highlighter/Lexers/Felix.hs view
@@ -5,177 +5,177 @@  lexer :: Lexer lexer = Lexer-    { lName = "\70\101\108\105\120"-    , lAliases = ["\102\101\108\105\120", "\102\108\120"]-    , lExtensions = ["\46\102\108\120", "\46\102\108\120\104"]-    , lMimetypes = ["\116\101\120\116\47\120\45\102\101\108\105\120"]+    { lName = "Felix"+    , lAliases = ["felix", "flx"]+    , lExtensions = [".flx", ".flxh"]+    , lMimetypes = ["text/x-felix"]     , lStart = root'     , lFlags = [multiline]     }  comment' :: TokenMatcher comment' =-    [ tok "\47\47\40\46\42\63\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\47\91\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo comment2')+    [ tok "//(.*?)\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "/[*]" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo comment2')     ]  modulename2' :: TokenMatcher modulename2' =     [ anyOf whitespace'-    , tokNext "\40\91\97\45\122\65\45\90\95\93\92\119\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") (PopNum 2)+    , tokNext "([a-zA-Z_]\\w*)" (Arbitrary "Name" :. Arbitrary "Namespace") (PopNum 2)     ]  modulename' :: TokenMatcher modulename' =     [ anyOf whitespace'-    , tokNext "\92\91" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (DoAll [(GoTo modulename2'), (GoTo tvarlist')])-    , tokNext "" (Arbitrary "\69\114\114\111\114") (GoTo modulename2')+    , tokNext "\\[" (Arbitrary "Punctuation") (DoAll [(GoTo modulename2'), (GoTo tvarlist')])+    , tokNext "" (Arbitrary "Error") (GoTo modulename2')     ]  if0' :: TokenMatcher if0' =-    [ tokNext "\94\92\115\42\35\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116") Push-    , tokNext "\94\92\115\42\35\101\110\100\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116") Pop-    , tok "\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tokNext "^\\s*#if.*?(?<!\\\\)\\n" (Arbitrary "Comment") Push+    , tokNext "^\\s*#endif.*?(?<!\\\\)\\n" (Arbitrary "Comment") Pop+    , tok ".*?\\n" (Arbitrary "Comment")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")     , anyOf comment'-    , tokNext "\35\92\115\42\105\102\92\115\43\48" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo if0')-    , tokNext "\35" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo macro')+    , tokNext "#\\s*if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tokNext "#" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')     ]  dqs' :: TokenMatcher dqs' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\34\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\\"|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  sqs' :: TokenMatcher sqs' =-    [ tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\39\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\'|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  macro' :: TokenMatcher macro' =     [ anyOf comment'-    , tokNext "\40\105\109\112\111\114\116\124\105\110\99\108\117\100\101\41\40\92\115\43\41\40\60\91\94\62\93\42\63\62\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")]) Pop-    , tokNext "\40\105\109\112\111\114\116\124\105\110\99\108\117\100\101\41\40\92\115\43\41\40\34\91\94\34\93\42\63\34\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")]) Pop-    , tokNext "\40\105\109\112\111\114\116\124\105\110\99\108\117\100\101\41\40\92\115\43\41\40\39\91\94\39\93\42\63\39\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")]) Pop-    , tok "\91\94\47\92\110\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\40\63\60\61\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop+    , tokNext "(import|include)(\\s+)(<[^>]*?>)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")]) Pop+    , tokNext "(import|include)(\\s+)(\"[^\"]*?\")" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")]) Pop+    , tokNext "(import|include)(\\s+)('[^']*?')" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")]) Pop+    , tok "[^/\\n]+" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "/" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(?<=\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop     ]  operators' :: TokenMatcher operators' =-    [ tok "\40\97\110\100\124\110\111\116\124\105\110\124\105\115\124\105\115\105\110\124\111\114\124\120\111\114\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\33\61\124\61\61\124\60\60\124\62\62\124\92\124\92\124\124\38\38\124\91\45\126\43\47\42\37\61\60\62\38\94\124\46\36\93" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "(and|not|in|is|isin|or|xor)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "!=|==|<<|>>|\\|\\||&&|[-\126+/*%=<>&^|.$]" (Arbitrary "Operator")     ]  tsqs' :: TokenMatcher tsqs' =-    [ tokNext "\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "'''" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  comment2' :: TokenMatcher comment2' =-    [ tok "\91\94\92\47\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\91\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\91\42\93\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\92\47\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "[^\\/*]" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/[*]" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "[*]/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[\\/*]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  classname' :: TokenMatcher classname' =     [ anyOf whitespace'-    , tokNext "\91\97\45\122\65\45\90\95\93\92\119\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop-    , tokNext "\40\63\61\92\123\41" (Arbitrary "\84\101\120\116") Pop+    , tokNext "[a-zA-Z_]\\w*" (Arbitrary "Name" :. Arbitrary "Class") Pop+    , tokNext "(?=\\{)" (Arbitrary "Text") Pop     ]  stringescape' :: TokenMatcher stringescape' =-    [ tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\92\110\124\78\123\46\42\63\125\124\117\91\97\45\102\65\45\70\48\45\57\93\123\52\125\124\85\91\97\45\102\65\45\70\48\45\57\93\123\56\125\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tok "\\\\([\\\\abfnrtv\"\\']|\\n|N{.*?}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     ]  tdqs' :: TokenMatcher tdqs' =-    [ tokNext "\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  nl' :: TokenMatcher nl' =-    [ tok "\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "\\n" (Arbitrary "Literal" :. Arbitrary "String")     ]  funcname' :: TokenMatcher funcname' =     [ anyOf whitespace'-    , tokNext "\91\97\45\122\65\45\90\95\93\92\119\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop-    , tokNext "\40\63\61\92\40\41" (Arbitrary "\84\101\120\116") Pop+    , tokNext "[a-zA-Z_]\\w*" (Arbitrary "Name" :. Arbitrary "Function") Pop+    , tokNext "(?=\\()" (Arbitrary "Text") Pop     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tokNext "\40\97\120\105\111\109\124\99\116\111\114\124\102\117\110\124\103\101\110\124\112\114\111\99\124\114\101\100\117\99\101\124\117\110\105\111\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo funcname')-    , tokNext "\40\99\108\97\115\115\124\99\99\108\97\115\115\124\99\115\116\114\117\99\116\124\111\98\106\124\115\116\114\117\99\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo classname')-    , tokNext "\40\105\110\115\116\97\110\99\101\124\109\111\100\117\108\101\124\116\121\112\101\99\108\97\115\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo modulename')-    , tok "\40\95\124\95\100\101\114\101\102\124\97\108\108\124\97\115\124\97\115\115\101\114\116\124\97\116\116\101\109\112\116\124\99\97\108\108\124\99\97\108\108\98\97\99\107\124\99\97\115\101\124\99\97\115\101\110\111\124\99\99\108\97\115\115\124\99\111\100\101\124\99\111\109\112\111\117\110\100\124\99\116\121\112\101\115\124\100\111\124\100\111\110\101\124\100\111\119\110\116\111\124\101\108\105\102\124\101\108\115\101\124\101\110\100\97\116\116\101\109\112\116\124\101\110\100\99\97\115\101\124\101\110\100\105\102\124\101\110\100\109\97\116\99\104\124\101\110\117\109\124\101\120\99\101\112\116\124\101\120\99\101\112\116\105\111\110\115\124\101\120\112\101\99\116\124\102\105\110\97\108\108\121\124\102\111\114\124\102\111\114\97\108\108\124\102\111\114\103\101\116\124\102\111\114\107\124\102\117\110\99\116\111\114\124\103\111\116\111\124\105\100\101\110\116\124\105\102\124\105\110\99\111\109\112\108\101\116\101\124\105\110\104\101\114\105\116\124\105\110\115\116\97\110\99\101\124\105\110\116\101\114\102\97\99\101\124\106\117\109\112\124\108\97\109\98\100\97\124\108\111\111\112\124\109\97\116\99\104\124\109\111\100\117\108\101\124\110\97\109\101\115\112\97\99\101\124\110\101\119\124\110\111\101\120\112\97\110\100\124\110\111\110\116\101\114\109\124\111\98\106\124\111\102\124\111\112\101\110\124\112\97\114\115\101\124\114\97\105\115\101\124\114\101\103\101\120\112\124\114\101\103\108\101\120\124\114\101\103\109\97\116\99\104\124\114\101\110\97\109\101\124\114\101\116\117\114\110\124\116\104\101\124\116\104\101\110\124\116\111\124\116\121\112\101\124\116\121\112\101\99\97\115\101\124\116\121\112\101\100\101\102\124\116\121\112\101\109\97\116\99\104\124\116\121\112\101\111\102\124\117\112\116\111\124\119\104\101\110\124\119\104\105\108\115\116\124\119\105\116\104\124\121\105\101\108\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\95\103\99\95\112\111\105\110\116\101\114\124\95\103\99\95\116\121\112\101\124\98\111\100\121\124\99\111\109\109\101\110\116\124\99\111\110\115\116\124\101\120\112\111\114\116\124\104\101\97\100\101\114\124\105\110\108\105\110\101\124\108\118\97\108\124\109\97\99\114\111\124\110\111\105\110\108\105\110\101\124\110\111\114\101\116\117\114\110\124\112\97\99\107\97\103\101\124\112\114\105\118\97\116\101\124\112\111\100\124\112\114\111\112\101\114\116\121\124\112\117\98\108\105\99\124\112\117\98\108\105\115\104\124\114\101\113\117\105\114\101\115\124\116\111\100\111\124\118\105\114\116\117\97\108\124\117\115\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\40\100\101\102\124\108\101\116\124\114\101\102\124\118\97\108\124\118\97\114\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\40\117\110\105\116\124\118\111\105\100\124\97\110\121\124\98\111\111\108\124\98\121\116\101\124\111\102\102\115\101\116\124\97\100\100\114\101\115\115\124\99\97\100\100\114\101\115\115\124\99\118\97\100\100\114\101\115\115\124\118\97\100\100\114\101\115\115\124\116\105\110\121\124\115\104\111\114\116\124\105\110\116\124\108\111\110\103\124\118\108\111\110\103\124\117\116\105\110\121\124\117\115\104\111\114\116\124\118\115\104\111\114\116\124\117\105\110\116\124\117\108\111\110\103\124\117\118\108\111\110\103\124\105\110\116\56\124\105\110\116\49\54\124\105\110\116\51\50\124\105\110\116\54\52\124\117\105\110\116\56\124\117\105\110\116\49\54\124\117\105\110\116\51\50\124\117\105\110\116\54\52\124\102\108\111\97\116\124\100\111\117\98\108\101\124\108\100\111\117\98\108\101\124\99\111\109\112\108\101\120\124\100\99\111\109\112\108\101\120\124\108\99\111\109\112\108\101\120\124\105\109\97\103\105\110\97\114\121\124\100\105\109\97\103\105\110\97\114\121\124\108\105\109\97\103\105\110\97\114\121\124\99\104\97\114\124\119\99\104\97\114\124\117\99\104\97\114\124\99\104\97\114\112\124\99\104\97\114\99\112\124\117\99\104\97\114\112\124\117\99\104\97\114\99\112\124\115\116\114\105\110\103\124\119\115\116\114\105\110\103\124\117\115\116\114\105\110\103\124\99\111\110\116\124\97\114\114\97\121\124\118\97\114\114\97\121\124\108\105\115\116\124\108\118\97\108\117\101\124\111\112\116\124\115\108\105\99\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\102\97\108\115\101\124\116\114\117\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")+    , tokNext "(axiom|ctor|fun|gen|proc|reduce|union)\\b" (Arbitrary "Keyword") (GoTo funcname')+    , tokNext "(class|cclass|cstruct|obj|struct)\\b" (Arbitrary "Keyword") (GoTo classname')+    , tokNext "(instance|module|typeclass)\\b" (Arbitrary "Keyword") (GoTo modulename')+    , tok "(_|_deref|all|as|assert|attempt|call|callback|case|caseno|cclass|code|compound|ctypes|do|done|downto|elif|else|endattempt|endcase|endif|endmatch|enum|except|exceptions|expect|finally|for|forall|forget|fork|functor|goto|ident|if|incomplete|inherit|instance|interface|jump|lambda|loop|match|module|namespace|new|noexpand|nonterm|obj|of|open|parse|raise|regexp|reglex|regmatch|rename|return|the|then|to|type|typecase|typedef|typematch|typeof|upto|when|whilst|with|yield)\\b" (Arbitrary "Keyword")+    , tok "(_gc_pointer|_gc_type|body|comment|const|export|header|inline|lval|macro|noinline|noreturn|package|private|pod|property|public|publish|requires|todo|virtual|use)\\b" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "(def|let|ref|val|var)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "(unit|void|any|bool|byte|offset|address|caddress|cvaddress|vaddress|tiny|short|int|long|vlong|utiny|ushort|vshort|uint|ulong|uvlong|int8|int16|int32|int64|uint8|uint16|uint32|uint64|float|double|ldouble|complex|dcomplex|lcomplex|imaginary|dimaginary|limaginary|char|wchar|uchar|charp|charcp|ucharp|ucharcp|string|wstring|ustring|cont|array|varray|list|lvalue|opt|slice)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(false|true)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")     , anyOf operators'-    , tok "\48\91\120\88\93\40\91\48\45\57\97\45\102\65\45\70\95\93\42\92\46\91\48\45\57\97\45\102\65\45\70\95\93\43\124\91\48\45\57\97\45\102\65\45\70\95\93\43\41\91\112\80\93\91\43\92\45\93\63\91\48\45\57\95\93\43\91\108\76\102\70\100\68\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\95\93\43\40\92\46\91\48\45\57\95\93\43\91\101\69\93\91\43\92\45\93\63\91\48\45\57\95\93\43\124\92\46\91\48\45\57\95\93\42\124\91\101\69\93\91\43\92\45\93\63\91\48\45\57\95\93\43\41\91\108\76\102\70\100\68\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\46\40\48\124\91\49\45\57\93\91\48\45\57\95\93\42\41\40\91\101\69\93\91\43\92\45\93\63\91\48\45\57\95\93\43\41\63\91\108\76\102\70\100\68\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\91\66\98\93\91\48\49\95\93\43\40\91\116\84\115\83\105\73\108\76\118\86\93\124\108\108\124\76\76\124\40\91\105\73\117\85\93\41\40\56\124\49\54\124\51\50\124\54\52\41\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\91\48\45\55\95\93\43\40\91\116\84\115\83\105\73\108\76\118\86\93\124\108\108\124\76\76\124\40\91\105\73\117\85\93\41\40\56\124\49\54\124\51\50\124\54\52\41\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\95\93\43\40\91\116\84\115\83\105\73\108\76\118\86\93\124\108\108\124\76\76\124\40\91\105\73\117\85\93\41\40\56\124\49\54\124\51\50\124\54\52\41\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\40\48\124\91\49\45\57\93\91\48\45\57\95\93\42\41\40\91\116\84\115\83\105\73\108\76\118\86\93\124\108\108\124\76\76\124\40\91\105\73\117\85\93\41\40\56\124\49\54\124\51\50\124\54\52\41\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tokNext "\40\91\114\82\93\91\99\67\93\63\124\91\99\67\93\91\114\82\93\41\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tdqs')-    , tokNext "\40\91\114\82\93\91\99\67\93\63\124\91\99\67\93\91\114\82\93\41\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tsqs')-    , tokNext "\40\91\114\82\93\91\99\67\93\63\124\91\99\67\93\91\114\82\93\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo dqs')-    , tokNext "\40\91\114\82\93\91\99\67\93\63\124\91\99\67\93\91\114\82\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo sqs')-    , tokNext "\91\99\67\102\70\113\81\119\87\117\85\93\63\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tdqs'])-    , tokNext "\91\99\67\102\70\113\81\119\87\117\85\93\63\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tsqs'])-    , tokNext "\91\99\67\102\70\113\81\119\87\117\85\93\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', dqs'])-    , tokNext "\91\99\67\102\70\113\81\119\87\117\85\93\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', sqs'])-    , tok "\91\92\91\92\93\123\125\58\40\41\44\59\63\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\97\45\122\65\45\90\95\93\92\119\42\58\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\40\95\115\118\99\124\119\104\105\108\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\114\111\111\116\124\115\101\108\102\124\116\104\105\115\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\91\97\45\122\65\45\90\95\93\92\119\42" (Arbitrary "\78\97\109\101")+    , tok "0[xX]([0-9a-fA-F_]*\\.[0-9a-fA-F_]+|[0-9a-fA-F_]+)[pP][+\\-]?[0-9_]+[lLfFdD]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9_]+(\\.[0-9_]+[eE][+\\-]?[0-9_]+|\\.[0-9_]*|[eE][+\\-]?[0-9_]+)[lLfFdD]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\.(0|[1-9][0-9_]*)([eE][+\\-]?[0-9_]+)?[lLfFdD]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[Bb][01_]+([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0[0-7_]+([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][0-9a-fA-F_]+([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "(0|[1-9][0-9_]*)([tTsSiIlLvV]|ll|LL|([iIuU])(8|16|32|64))?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tokNext "([rR][cC]?|[cC][rR])\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tdqs')+    , tokNext "([rR][cC]?|[cC][rR])'''" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tsqs')+    , tokNext "([rR][cC]?|[cC][rR])\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo dqs')+    , tokNext "([rR][cC]?|[cC][rR])'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo sqs')+    , tokNext "[cCfFqQwWuU]?\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tdqs'])+    , tokNext "[cCfFqQwWuU]?'''" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tsqs'])+    , tokNext "[cCfFqQwWuU]?\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', dqs'])+    , tokNext "[cCfFqQwWuU]?'" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', sqs'])+    , tok "[\\[\\]{}:(),;?]" (Arbitrary "Punctuation")+    , tok "[a-zA-Z_]\\w*:>" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "(_svc|while)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(root|self|this)\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tok "[a-zA-Z_]\\w*" (Arbitrary "Name")     ]  strings' :: TokenMatcher strings' =-    [ tok "\37\40\92\40\91\97\45\122\65\45\90\48\45\57\93\43\92\41\41\63\91\45\35\48\32\43\93\42\40\91\48\45\57\93\43\124\91\42\93\41\63\40\92\46\40\91\48\45\57\93\43\124\91\42\93\41\41\63\91\104\108\76\93\63\91\100\105\111\117\120\88\101\69\102\70\103\71\99\114\115\37\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")-    , tok "\91\94\92\92\92\39\34\37\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\92\39\34\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\37" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "%(\\([a-zA-Z0-9]+\\))?[-#0 +]*([0-9]+|[*])?(\\.([0-9]+|[*]))?[hlL]?[diouxXeEfFgGcrs%]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")+    , tok "[^\\\\\\'\"%\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[\\'\"\\\\]" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "%" (Arbitrary "Literal" :. Arbitrary "String")     ]  tvarlist' :: TokenMatcher tvarlist' =     [ anyOf whitespace'     , anyOf operators'-    , tokNext "\92\91" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\92\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\119\105\116\104\124\119\104\101\114\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\91\97\45\122\65\45\90\95\93\92\119\42" (Arbitrary "\78\97\109\101")+    , tokNext "\\[" (Arbitrary "Punctuation") Push+    , tokNext "\\]" (Arbitrary "Punctuation") Pop+    , tok "," (Arbitrary "Punctuation")+    , tok "(with|where)\\b" (Arbitrary "Keyword")+    , tok "[a-zA-Z_]\\w*" (Arbitrary "Name")     ] 
src/Text/Highlighter/Lexers/Fortran.hs view
@@ -5,46 +5,46 @@  lexer :: Lexer lexer = Lexer-    { lName = "\70\111\114\116\114\97\110"-    , lAliases = ["\102\111\114\116\114\97\110"]-    , lExtensions = ["\46\102", "\46\102\57\48"]-    , lMimetypes = ["\116\101\120\116\47\120\45\102\111\114\116\114\97\110"]+    { lName = "Fortran"+    , lAliases = ["fortran"]+    , lExtensions = [".f", ".f90"]+    , lMimetypes = ["text/x-fortran"]     , lStart = root'     , lFlags = [caseless]     }  core' :: TokenMatcher core' =-    [ tok "\92\98\40\65\67\67\69\80\84\124\65\76\76\79\67\65\84\65\66\76\69\124\65\76\76\79\67\65\84\69\124\65\82\82\65\89\124\65\83\83\73\71\78\124\66\65\67\75\83\80\65\67\69\124\66\76\79\67\75\32\68\65\84\65\124\66\89\84\69\124\67\65\76\76\124\67\65\83\69\124\67\76\79\83\69\124\67\79\77\77\79\78\124\67\79\78\84\65\73\78\83\124\67\79\78\84\73\78\85\69\124\67\89\67\76\69\124\68\65\84\65\124\68\69\65\76\76\79\67\65\84\69\124\68\69\67\79\68\69\124\68\73\77\69\78\83\73\79\78\124\68\79\124\69\78\67\79\68\69\124\69\78\68\32\70\73\76\69\124\69\78\68\73\70\124\69\78\68\124\69\78\84\82\89\124\69\81\85\73\86\65\76\69\78\67\69\124\69\88\73\84\124\69\88\84\69\82\78\65\76\124\69\88\84\82\73\78\83\73\67\124\70\79\82\65\76\76\124\70\79\82\77\65\84\124\70\85\78\67\84\73\79\78\124\71\79\84\79\124\73\70\124\73\77\80\76\73\67\73\84\124\73\78\67\76\85\68\69\124\73\78\81\85\73\82\69\124\73\78\84\69\78\84\124\73\78\84\69\82\70\65\67\69\124\73\78\84\82\73\78\83\73\67\124\77\79\68\85\76\69\124\78\65\77\69\76\73\83\84\124\78\85\76\76\73\70\89\124\78\79\78\69\124\79\80\69\78\124\79\80\84\73\79\78\65\76\124\79\80\84\73\79\78\83\124\80\65\82\65\77\69\84\69\82\124\80\65\85\83\69\124\80\79\73\78\84\69\82\124\80\82\73\78\84\124\80\82\73\86\65\84\69\124\80\82\79\71\82\65\77\124\80\85\66\76\73\67\124\80\85\82\69\124\82\69\65\68\124\82\69\67\85\82\83\73\86\69\124\82\69\84\85\82\78\124\82\69\87\73\78\68\124\83\65\86\69\124\83\69\76\69\67\84\124\83\69\81\85\69\78\67\69\124\83\84\79\80\124\83\85\66\82\79\85\84\73\78\69\124\84\65\82\71\69\84\124\84\89\80\69\124\85\83\69\124\86\79\76\65\84\73\76\69\124\87\72\69\82\69\124\87\82\73\84\69\124\87\72\73\76\69\124\84\72\69\78\124\69\76\83\69\124\69\78\68\73\70\41\92\115\42\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\67\72\65\82\65\67\84\69\82\124\67\79\77\80\76\69\88\124\68\79\85\66\76\69\32\80\82\69\67\73\83\73\79\78\124\68\79\85\66\76\69\32\67\79\77\80\76\69\88\124\73\78\84\69\71\69\82\124\76\79\71\73\67\65\76\124\82\69\65\76\41\92\115\42\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\92\42\92\42\124\92\42\124\92\43\124\45\124\92\47\124\60\124\62\124\60\61\124\62\61\124\61\61\124\92\47\61\124\61\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\58\58\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\91\40\41\44\58\38\37\59\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\98\40\65\98\111\114\116\124\65\98\115\124\65\99\99\101\115\115\124\65\67\104\97\114\124\65\67\111\115\124\65\100\106\117\115\116\76\124\65\100\106\117\115\116\82\124\65\73\109\97\103\124\65\73\110\116\124\65\108\97\114\109\124\65\108\108\124\65\108\108\111\99\97\116\101\100\124\65\76\111\103\124\65\77\97\120\124\65\77\105\110\124\65\77\111\100\124\65\110\100\124\65\78\73\110\116\124\65\110\121\124\65\83\105\110\124\65\115\115\111\99\105\97\116\101\100\124\65\84\97\110\124\66\101\115\74\124\66\101\115\74\78\124\66\101\115\89\124\66\101\115\89\78\124\66\105\116\95\83\105\122\101\124\66\84\101\115\116\124\67\65\98\115\124\67\67\111\115\124\67\101\105\108\105\110\103\124\67\69\120\112\124\67\104\97\114\124\67\104\68\105\114\124\67\104\77\111\100\124\67\76\111\103\124\67\109\112\108\120\124\67\111\109\112\108\101\120\124\67\111\110\106\103\124\67\111\115\124\67\111\115\72\124\67\111\117\110\116\124\67\80\85\95\84\105\109\101\124\67\83\104\105\102\116\124\67\83\105\110\124\67\83\113\82\116\124\67\84\105\109\101\124\68\65\98\115\124\68\65\67\111\115\124\68\65\83\105\110\124\68\65\84\97\110\124\68\97\116\101\95\97\110\100\95\84\105\109\101\124\68\98\101\115\74\124\68\98\101\115\74\124\68\98\101\115\74\78\124\68\98\101\115\89\124\68\98\101\115\89\124\68\98\101\115\89\78\124\68\98\108\101\124\68\67\111\115\124\68\67\111\115\72\124\68\68\105\77\124\68\69\114\70\124\68\69\114\70\67\124\68\69\120\112\124\68\105\103\105\116\115\124\68\105\77\124\68\73\110\116\124\68\76\111\103\124\68\76\111\103\124\68\77\97\120\124\68\77\105\110\124\68\77\111\100\124\68\78\73\110\116\124\68\111\116\95\80\114\111\100\117\99\116\124\68\80\114\111\100\124\68\83\105\103\110\124\68\83\105\110\72\124\68\83\105\110\124\68\83\113\82\116\124\68\84\97\110\72\124\68\84\97\110\124\68\84\105\109\101\124\69\79\83\104\105\102\116\124\69\112\115\105\108\111\110\124\69\114\70\124\69\114\70\67\124\69\84\105\109\101\124\69\120\105\116\124\69\120\112\124\69\120\112\111\110\101\110\116\124\70\68\97\116\101\124\70\71\101\116\124\70\71\101\116\67\124\70\108\111\97\116\124\70\108\111\111\114\124\70\108\117\115\104\124\70\78\117\109\124\70\80\117\116\67\124\70\80\117\116\124\70\114\97\99\116\105\111\110\124\70\83\101\101\107\124\70\83\116\97\116\124\70\84\101\108\108\124\71\69\114\114\111\114\124\71\101\116\65\114\103\124\71\101\116\67\87\68\124\71\101\116\69\110\118\124\71\101\116\71\73\100\124\71\101\116\76\111\103\124\71\101\116\80\73\100\124\71\101\116\85\73\100\124\71\77\84\105\109\101\124\72\111\115\116\78\109\124\72\117\103\101\124\73\65\98\115\124\73\65\67\104\97\114\124\73\65\110\100\124\73\65\114\103\67\124\73\66\67\108\114\124\73\66\105\116\115\124\73\66\83\101\116\124\73\67\104\97\114\124\73\68\97\116\101\124\73\68\105\77\124\73\68\73\110\116\124\73\68\78\73\110\116\124\73\69\79\114\124\73\69\114\114\78\111\124\73\70\105\120\124\73\109\97\103\124\73\109\97\103\80\97\114\116\124\73\110\100\101\120\124\73\110\116\124\73\79\114\124\73\82\97\110\100\124\73\115\97\84\116\121\124\73\83\104\102\116\124\73\83\104\102\116\67\124\73\83\105\103\110\124\73\84\105\109\101\124\75\105\108\108\124\75\105\110\100\124\76\66\111\117\110\100\124\76\101\110\124\76\101\110\95\84\114\105\109\124\76\71\101\124\76\71\116\124\76\105\110\107\124\76\76\101\124\76\76\116\124\76\110\66\108\110\107\124\76\111\99\124\76\111\103\124\76\111\103\124\76\111\103\105\99\97\108\124\76\111\110\103\124\76\83\104\105\102\116\124\76\83\116\97\116\124\76\84\105\109\101\124\77\97\116\77\117\108\124\77\97\120\124\77\97\120\69\120\112\111\110\101\110\116\124\77\97\120\76\111\99\124\77\97\120\86\97\108\124\77\67\108\111\99\107\124\77\101\114\103\101\124\77\105\110\124\77\105\110\69\120\112\111\110\101\110\116\124\77\105\110\76\111\99\124\77\105\110\86\97\108\124\77\111\100\124\77\111\100\117\108\111\124\77\118\66\105\116\115\124\78\101\97\114\101\115\116\124\78\73\110\116\124\78\111\116\124\79\114\124\80\97\99\107\124\80\69\114\114\111\114\124\80\114\101\99\105\115\105\111\110\124\80\114\101\115\101\110\116\124\80\114\111\100\117\99\116\124\82\97\100\105\120\124\82\97\110\100\124\82\97\110\100\111\109\95\78\117\109\98\101\114\124\82\97\110\100\111\109\95\83\101\101\100\124\82\97\110\103\101\124\82\101\97\108\124\82\101\97\108\80\97\114\116\124\82\101\110\97\109\101\124\82\101\112\101\97\116\124\82\101\115\104\97\112\101\124\82\82\83\112\97\99\105\110\103\124\82\83\104\105\102\116\124\83\99\97\108\101\124\83\99\97\110\124\83\101\99\111\110\100\124\83\101\108\101\99\116\101\100\95\73\110\116\95\75\105\110\100\124\83\101\108\101\99\116\101\100\95\82\101\97\108\95\75\105\110\100\124\83\101\116\95\69\120\112\111\110\101\110\116\124\83\104\97\112\101\124\83\104\111\114\116\124\83\105\103\110\124\83\105\103\110\97\108\124\83\105\110\72\124\83\105\110\124\83\108\101\101\112\124\83\110\103\108\124\83\112\97\99\105\110\103\124\83\112\114\101\97\100\124\83\113\82\116\124\83\82\97\110\100\124\83\116\97\116\124\83\117\109\124\83\121\109\76\110\107\124\83\121\115\116\101\109\124\83\121\115\116\101\109\95\67\108\111\99\107\124\84\97\110\124\84\97\110\72\124\84\105\109\101\124\84\105\110\121\124\84\114\97\110\115\102\101\114\124\84\114\97\110\115\112\111\115\101\124\84\114\105\109\124\84\116\121\78\97\109\124\85\66\111\117\110\100\124\85\77\97\115\107\124\85\110\108\105\110\107\124\85\110\112\97\99\107\124\86\101\114\105\102\121\124\88\79\114\124\90\65\98\115\124\90\67\111\115\124\90\69\120\112\124\90\76\111\103\124\90\83\105\110\124\90\83\113\82\116\41\92\115\42\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\46\40\116\114\117\101\124\102\97\108\115\101\41\92\46" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\46\40\101\113\124\110\101\124\108\116\124\108\101\124\103\116\124\103\101\124\110\111\116\124\97\110\100\124\111\114\124\101\113\118\124\110\101\113\118\41\92\46" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")+    [ tok "\\b(ACCEPT|ALLOCATABLE|ALLOCATE|ARRAY|ASSIGN|BACKSPACE|BLOCK DATA|BYTE|CALL|CASE|CLOSE|COMMON|CONTAINS|CONTINUE|CYCLE|DATA|DEALLOCATE|DECODE|DIMENSION|DO|ENCODE|END FILE|ENDIF|END|ENTRY|EQUIVALENCE|EXIT|EXTERNAL|EXTRINSIC|FORALL|FORMAT|FUNCTION|GOTO|IF|IMPLICIT|INCLUDE|INQUIRE|INTENT|INTERFACE|INTRINSIC|MODULE|NAMELIST|NULLIFY|NONE|OPEN|OPTIONAL|OPTIONS|PARAMETER|PAUSE|POINTER|PRINT|PRIVATE|PROGRAM|PUBLIC|PURE|READ|RECURSIVE|RETURN|REWIND|SAVE|SELECT|SEQUENCE|STOP|SUBROUTINE|TARGET|TYPE|USE|VOLATILE|WHERE|WRITE|WHILE|THEN|ELSE|ENDIF)\\s*\\b" (Arbitrary "Keyword")+    , tok "\\b(CHARACTER|COMPLEX|DOUBLE PRECISION|DOUBLE COMPLEX|INTEGER|LOGICAL|REAL)\\s*\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(\\*\\*|\\*|\\+|-|\\/|<|>|<=|>=|==|\\/=|=)" (Arbitrary "Operator")+    , tok "(::)" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "[(),:&%;]" (Arbitrary "Punctuation")+    , tok "\\b(Abort|Abs|Access|AChar|ACos|AdjustL|AdjustR|AImag|AInt|Alarm|All|Allocated|ALog|AMax|AMin|AMod|And|ANInt|Any|ASin|Associated|ATan|BesJ|BesJN|BesY|BesYN|Bit_Size|BTest|CAbs|CCos|Ceiling|CExp|Char|ChDir|ChMod|CLog|Cmplx|Complex|Conjg|Cos|CosH|Count|CPU_Time|CShift|CSin|CSqRt|CTime|DAbs|DACos|DASin|DATan|Date_and_Time|DbesJ|DbesJ|DbesJN|DbesY|DbesY|DbesYN|Dble|DCos|DCosH|DDiM|DErF|DErFC|DExp|Digits|DiM|DInt|DLog|DLog|DMax|DMin|DMod|DNInt|Dot_Product|DProd|DSign|DSinH|DSin|DSqRt|DTanH|DTan|DTime|EOShift|Epsilon|ErF|ErFC|ETime|Exit|Exp|Exponent|FDate|FGet|FGetC|Float|Floor|Flush|FNum|FPutC|FPut|Fraction|FSeek|FStat|FTell|GError|GetArg|GetCWD|GetEnv|GetGId|GetLog|GetPId|GetUId|GMTime|HostNm|Huge|IAbs|IAChar|IAnd|IArgC|IBClr|IBits|IBSet|IChar|IDate|IDiM|IDInt|IDNInt|IEOr|IErrNo|IFix|Imag|ImagPart|Index|Int|IOr|IRand|IsaTty|IShft|IShftC|ISign|ITime|Kill|Kind|LBound|Len|Len_Trim|LGe|LGt|Link|LLe|LLt|LnBlnk|Loc|Log|Log|Logical|Long|LShift|LStat|LTime|MatMul|Max|MaxExponent|MaxLoc|MaxVal|MClock|Merge|Min|MinExponent|MinLoc|MinVal|Mod|Modulo|MvBits|Nearest|NInt|Not|Or|Pack|PError|Precision|Present|Product|Radix|Rand|Random_Number|Random_Seed|Range|Real|RealPart|Rename|Repeat|Reshape|RRSpacing|RShift|Scale|Scan|Second|Selected_Int_Kind|Selected_Real_Kind|Set_Exponent|Shape|Short|Sign|Signal|SinH|Sin|Sleep|Sngl|Spacing|Spread|SqRt|SRand|Stat|Sum|SymLnk|System|System_Clock|Tan|TanH|Time|Tiny|Transfer|Transpose|Trim|TtyNam|UBound|UMask|Unlink|Unpack|Verify|XOr|ZAbs|ZCos|ZExp|ZLog|ZSin|ZSqRt)\\s*\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\.(true|false)\\." (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\.(eq|ne|lt|le|gt|ge|not|and|or|eqv|neqv)\\." (Arbitrary "Operator" :. Arbitrary "Word")     ]  root' :: TokenMatcher root' =-    [ tok "\33\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "!.*\\n" (Arbitrary "Comment")     , anyOf strings'     , anyOf core'-    , tok "\91\97\45\122\93\91\97\45\122\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    , tok "[a-z][a-z0-9_]*" (Arbitrary "Name" :. Arbitrary "Variable")     , anyOf nums'-    , tok "\91\92\115\93\43" (Arbitrary "\84\101\120\116")+    , tok "[\\s]+" (Arbitrary "Text")     ]  strings' :: TokenMatcher strings' =-    [ tok "\40\63\115\41\34\40\92\92\92\92\124\92\92\91\48\45\55\93\43\124\92\92\46\124\91\94\34\92\92\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\40\63\115\41\39\40\92\92\92\92\124\92\92\91\48\45\55\93\43\124\92\92\46\124\91\94\39\92\92\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")+    [ tok "(?s)\"(\\\\\\\\|\\\\[0-7]+|\\\\.|[^\"\\\\])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "(?s)'(\\\\\\\\|\\\\[0-7]+|\\\\.|[^'\\\\])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")     ]  nums' :: TokenMatcher nums' =-    [ tok "\92\100\43\40\63\33\91\46\69\101\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\43\45\93\63\92\100\42\92\46\92\100\43\40\91\101\69\93\91\45\43\93\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\43\45\93\63\92\100\43\92\46\92\100\42\40\91\101\69\93\91\45\43\93\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")+    [ tok "\\d+(?![.Ee])" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[+-]?\\d*\\.\\d+([eE][-+]?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")     ] 
src/Text/Highlighter/Lexers/GLShader.hs view
@@ -5,32 +5,32 @@  lexer :: Lexer lexer = Lexer-    { lName = "\71\76\83\76"-    , lAliases = ["\103\108\115\108"]-    , lExtensions = ["\46\118\101\114\116", "\46\102\114\97\103", "\46\103\101\111"]-    , lMimetypes = ["\116\101\120\116\47\120\45\103\108\115\108\115\114\99"]+    { lName = "GLSL"+    , lAliases = ["glsl"]+    , lExtensions = [".vert", ".frag", ".geo"]+    , lMimetypes = ["text/x-glslsrc"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\94\35\46\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\47\47\46\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\91\92\119\92\87\93\42\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\92\43\124\45\124\126\124\33\61\63\124\92\42\124\47\124\37\124\60\60\124\62\62\124\60\61\63\124\62\61\63\124\61\61\63\124\38\38\63\124\92\94\124\92\124\92\124\63" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\63\58\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\98\100\101\102\105\110\101\100\92\98" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\59\123\125\40\41\44\92\91\92\93\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\43\45\93\63\92\100\42\92\46\92\100\43\40\91\101\69\93\91\45\43\93\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\43\45\93\63\92\100\43\92\46\92\100\42\40\91\101\69\93\91\45\43\93\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\48\45\55\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116\97\108")-    , tok "\91\49\45\57\93\91\48\45\57\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\92\98\40\97\116\116\114\105\98\117\116\101\124\99\111\110\115\116\124\117\110\105\102\111\114\109\124\118\97\114\121\105\110\103\124\99\101\110\116\114\111\105\100\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\100\111\124\102\111\114\124\119\104\105\108\101\124\105\102\124\101\108\115\101\124\105\110\124\111\117\116\124\105\110\111\117\116\124\102\108\111\97\116\124\105\110\116\124\118\111\105\100\124\98\111\111\108\124\116\114\117\101\124\102\97\108\115\101\124\105\110\118\97\114\105\97\110\116\124\100\105\115\99\97\114\100\124\114\101\116\117\114\110\124\109\97\116\91\50\51\52\93\124\109\97\116\91\50\51\52\93\120\91\50\51\52\93\124\118\101\99\91\50\51\52\93\124\91\105\98\93\118\101\99\91\50\51\52\93\124\115\97\109\112\108\101\114\91\49\50\51\93\68\124\115\97\109\112\108\101\114\67\117\98\101\124\115\97\109\112\108\101\114\91\49\50\93\68\83\104\97\100\111\119\124\115\116\114\117\99\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\97\115\109\124\99\108\97\115\115\124\117\110\105\111\110\124\101\110\117\109\124\116\121\112\101\100\101\102\124\116\101\109\112\108\97\116\101\124\116\104\105\115\124\112\97\99\107\101\100\124\103\111\116\111\124\115\119\105\116\99\104\124\100\101\102\97\117\108\116\124\105\110\108\105\110\101\124\110\111\105\110\108\105\110\101\124\118\111\108\97\116\105\108\101\124\112\117\98\108\105\99\124\115\116\97\116\105\99\124\101\120\116\101\114\110\124\101\120\116\101\114\110\97\108\124\105\110\116\101\114\102\97\99\101\124\108\111\110\103\124\115\104\111\114\116\124\100\111\117\98\108\101\124\104\97\108\102\124\102\105\120\101\100\124\117\110\115\105\103\110\101\100\124\108\111\119\112\124\109\101\100\105\117\109\112\124\104\105\103\104\112\124\112\114\101\99\105\115\105\111\110\124\105\110\112\117\116\124\111\117\116\112\117\116\124\104\118\101\99\91\50\51\52\93\124\91\100\102\93\118\101\99\91\50\51\52\93\124\115\97\109\112\108\101\114\91\50\51\93\68\82\101\99\116\124\115\97\109\112\108\101\114\50\68\82\101\99\116\83\104\97\100\111\119\124\115\105\122\101\111\102\124\99\97\115\116\124\110\97\109\101\115\112\97\99\101\124\117\115\105\110\103\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\95\48\45\57\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\92\46" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "^#.*" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "//.*" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "\\+|-|\126|!=?|\\*|/|%|<<|>>|<=?|>=?|==?|&&?|\\^|\\|\\|?" (Arbitrary "Operator")+    , tok "[?:]" (Arbitrary "Operator")+    , tok "\\bdefined\\b" (Arbitrary "Operator")+    , tok "[;{}(),\\[\\]]" (Arbitrary "Punctuation")+    , tok "[+-]?\\d*\\.\\d+([eE][-+]?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[+-]?\\d+\\.\\d*([eE][-+]?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[xX][0-9a-fA-F]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "[1-9][0-9]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\b(attribute|const|uniform|varying|centroid|break|continue|do|for|while|if|else|in|out|inout|float|int|void|bool|true|false|invariant|discard|return|mat[234]|mat[234]x[234]|vec[234]|[ib]vec[234]|sampler[123]D|samplerCube|sampler[12]DShadow|struct)\\b" (Arbitrary "Keyword")+    , tok "\\b(asm|class|union|enum|typedef|template|this|packed|goto|switch|default|inline|noinline|volatile|public|static|extern|external|interface|long|short|double|half|fixed|unsigned|lowp|mediump|highp|precision|input|output|hvec[234]|[df]vec[234]|sampler[23]DRect|sampler2DRectShadow|sizeof|cast|namespace|using)\\b" (Arbitrary "Keyword")+    , tok "[a-zA-Z_][a-zA-Z_0-9]*" (Arbitrary "Name")+    , tok "\\." (Arbitrary "Punctuation")+    , tok "\\s+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Gas.hs view
@@ -5,58 +5,58 @@  lexer :: Lexer lexer = Lexer-    { lName = "\71\65\83"-    , lAliases = ["\103\97\115"]-    , lExtensions = ["\46\115", "\46\83"]-    , lMimetypes = ["\116\101\120\116\47\120\45\103\97\115"]+    { lName = "GAS"+    , lAliases = ["gas"]+    , lExtensions = [".s", ".S"]+    , lMimetypes = ["text/x-gas"]     , lStart = root'     , lFlags = [multiline]     }  directiveArgs' :: TokenMatcher directiveArgs' =-    [ tok "\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\34\40\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\64\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")-    , tok "\40\63\58\48\91\120\88\93\91\97\45\122\65\45\90\48\45\57\93\43\124\92\100\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tokNext "\91\92\114\92\110\93\43" (Arbitrary "\84\101\120\116") Pop-    , tokNext "\35\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116") Pop+    [ tok "(?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+)" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\"(\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "@(?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+)" (Arbitrary "Name" :. Arbitrary "Attribute")+    , tok "(?:0[xX][a-zA-Z0-9]+|\\d+)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tokNext "[\\r\\n]+" (Arbitrary "Text") Pop+    , tokNext "#.*?$" (Arbitrary "Comment") Pop     , anyOf punctuation'     , anyOf whitespace'     ]  punctuation' :: TokenMatcher punctuation' =-    [ tok "\91\45\42\44\46\40\41\58\93\43" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok "[-*,.():]+" (Arbitrary "Punctuation")     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tok "\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tokNext "\92\46\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101") (GoTo directiveArgs')-    , tok "\108\111\99\107\124\114\101\112\40\110\63\122\41\63\124\100\97\116\97\92\100\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")-    , tokNext "\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") (GoTo instructionArgs')-    , tok "\91\92\114\92\110\93\43" (Arbitrary "\84\101\120\116")+    , tok "(?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+):" (Arbitrary "Name" :. Arbitrary "Label")+    , tokNext "\\.(?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+)" (Arbitrary "Name" :. Arbitrary "Attribute") (GoTo directiveArgs')+    , tok "lock|rep(n?z)?|data\\d+" (Arbitrary "Name" :. Arbitrary "Attribute")+    , tokNext "(?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+)" (Arbitrary "Name" :. Arbitrary "Function") (GoTo instructionArgs')+    , tok "[\\r\\n]+" (Arbitrary "Text")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "#.*?\\n" (Arbitrary "Comment")     ]  instructionArgs' :: TokenMatcher instructionArgs' =-    [ tok "\40\91\97\45\122\48\45\57\93\43\41\40\32\41\40\60\41\40\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41\41\40\62\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\91\97\45\122\48\45\57\93\43\41\40\32\41\40\60\41\40\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41\41\40\91\45\43\93\41\40\40\63\58\48\91\120\88\93\91\97\45\122\65\45\90\48\45\57\93\43\124\92\100\43\41\41\40\62\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\63\58\48\91\120\88\93\91\97\45\122\65\45\90\48\45\57\93\43\124\92\100\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\37\40\63\58\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\42\124\92\46\91\97\45\122\65\45\90\36\46\95\48\45\57\64\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\36\40\63\58\48\91\120\88\93\91\97\45\122\65\45\90\48\45\57\93\43\124\92\100\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tokNext "\91\92\114\92\110\93\43" (Arbitrary "\84\101\120\116") Pop-    , tokNext "\35\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116") Pop+    [ tok "([a-z0-9]+)( )(<)((?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+))(>)" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Constant"), (Arbitrary "Punctuation")])+    , tok "([a-z0-9]+)( )(<)((?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+))([-+])((?:0[xX][a-zA-Z0-9]+|\\d+))(>)" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Constant"), (Arbitrary "Punctuation"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer"), (Arbitrary "Punctuation")])+    , tok "(?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+)" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "(?:0[xX][a-zA-Z0-9]+|\\d+)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "%(?:[a-zA-Z$_][a-zA-Z$._0-9@]*|\\.[a-zA-Z$._0-9@]+)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "$(?:0[xX][a-zA-Z0-9]+|\\d+)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tokNext "[\\r\\n]+" (Arbitrary "Text") Pop+    , tokNext "#.*?$" (Arbitrary "Comment") Pop     , anyOf punctuation'     , anyOf whitespace'     ]
src/Text/Highlighter/Lexers/GenshiText.hs view
@@ -7,35 +7,35 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\121\116\104\111\110"-    , lAliases = ["\103\101\110\115\104\105\116\101\120\116"]+    { lName = "Genshi Text"+    , lAliases = ["genshitext"]     , lExtensions = []-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\103\101\110\115\104\105\45\116\101\120\116", "\116\101\120\116\47\120\45\103\101\110\115\104\105"]+    , lMimetypes = ["application/x-genshi-text", "text/x-genshi"]     , lStart = root'     , lFlags = [multiline]     }  variable' :: TokenMatcher variable' =-    [ tok "\40\63\60\33\92\36\41\40\92\36\92\123\41\40\46\43\63\41\40\92\125\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Using Python.lexer), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tok "\40\63\60\33\92\36\41\40\92\36\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\92\46\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    [ tok "(?<!\\$)(\\$\\{)(.+?)(\\})" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Using Python.lexer), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tok "(?<!\\$)(\\$)([a-zA-Z_][a-zA-Z0-9_\\.]*)" (Arbitrary "Name" :. Arbitrary "Variable")     ]  root' :: TokenMatcher root' =-    [ tok "\91\94\35\92\36\92\115\93\43" (Arbitrary "\79\116\104\101\114")-    , tok "\94\40\92\115\42\41\40\35\35\46\42\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116")])-    , tokNext "\94\40\92\115\42\41\40\35\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")]) (GoTo directive')+    [ tok "[^#\\$\\s]+" (Arbitrary "Other")+    , tok "^(\\s*)(##.*)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment")])+    , tokNext "^(\\s*)(#)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc")]) (GoTo directive')     , anyOf variable'-    , tok "\91\35\92\36\92\115\93" (Arbitrary "\79\116\104\101\114")+    , tok "[#\\$\\s]" (Arbitrary "Other")     ]  directive' :: TokenMatcher directive' =-    [ tokNext "\92\110" (Arbitrary "\84\101\120\116") Pop-    , tokNext "\40\63\58\100\101\102\124\102\111\114\124\105\102\41\92\115\43\46\42" (Using Python.lexer) Pop-    , tokNext "\40\99\104\111\111\115\101\124\119\104\101\110\124\119\105\116\104\41\40\91\94\92\83\92\110\93\43\41\40\46\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Using Python.lexer)]) Pop-    , tokNext "\40\99\104\111\111\115\101\124\111\116\104\101\114\119\105\115\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") Pop-    , tokNext "\40\101\110\100\92\119\42\41\40\91\94\92\83\92\110\93\42\41\40\46\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116")]) Pop+    [ tokNext "\\n" (Arbitrary "Text") Pop+    , tokNext "(?:def|for|if)\\s+.*" (Using Python.lexer) Pop+    , tokNext "(choose|when|with)([^\\S\\n]+)(.*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Using Python.lexer)]) Pop+    , tokNext "(choose|otherwise)\\b" (Arbitrary "Keyword") Pop+    , tokNext "(end\\w*)([^\\S\\n]*)(.*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Comment")]) Pop     ] 
src/Text/Highlighter/Lexers/Gettext.hs view
@@ -5,22 +5,22 @@  lexer :: Lexer lexer = Lexer-    { lName = "\71\101\116\116\101\120\116\32\67\97\116\97\108\111\103"-    , lAliases = ["\112\111\116", "\112\111"]-    , lExtensions = ["\46\112\111\116", "\46\112\111"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\103\101\116\116\101\120\116", "\116\101\120\116\47\120\45\103\101\116\116\101\120\116", "\116\101\120\116\47\103\101\116\116\101\120\116"]+    { lName = "Gettext Catalog"+    , lAliases = ["pot", "po"]+    , lExtensions = [".pot", ".po"]+    , lMimetypes = ["application/x-gettext", "text/x-gettext", "text/gettext"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\94\35\44\92\115\46\42\63\36" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\94\35\58\92\115\46\42\63\36" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\94\40\35\124\35\92\46\92\115\124\35\92\124\92\115\124\35\126\92\115\124\35\92\115\41\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\94\40\34\41\40\91\92\119\45\93\42\58\41\40\46\42\34\41\36" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\78\97\109\101" :. Arbitrary "\80\114\111\112\101\114\116\121"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tok "\94\34\46\42\34\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\94\40\109\115\103\105\100\124\109\115\103\105\100\95\112\108\117\114\97\108\124\109\115\103\115\116\114\41\40\92\115\43\41\40\34\46\42\34\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tok "\94\40\109\115\103\115\116\114\92\91\41\40\92\100\41\40\92\93\41\40\92\115\43\41\40\34\46\42\34\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])+    [ tok "^#,\\s.*?$" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "^#:\\s.*?$" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "^(#|#\\.\\s|#\\|\\s|#\126\\s|#\\s).*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "^(\")([A-Za-z-]+:)(.*\")$" (ByGroups [(Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Name" :. Arbitrary "Property"), (Arbitrary "Literal" :. Arbitrary "String")])+    , tok "^\".*\"$" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "^(msgid|msgid_plural|msgstr)(\\s+)(\".*\")$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")])+    , tok "^(msgstr\\[)(\\d)(\\])(\\s+)(\".*\")$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer"), (Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")])     ] 
src/Text/Highlighter/Lexers/Gherkin.hs view
@@ -5,95 +5,130 @@  lexer :: Lexer lexer = Lexer-    { lName = "\71\104\101\114\107\105\110"-    , lAliases = ["\67\117\99\117\109\98\101\114", "\99\117\99\117\109\98\101\114", "\71\104\101\114\107\105\110", "\103\104\101\114\107\105\110"]-    , lExtensions = ["\46\102\101\97\116\117\114\101"]-    , lMimetypes = ["\116\101\120\116\47\120\45\103\104\101\114\107\105\110"]+    { lName = "Gherkin"+    , lAliases = ["Cucumber", "cucumber", "Gherkin", "gherkin"]+    , lExtensions = [".feature"]+    , lMimetypes = ["text/x-gherkin"]     , lStart = root'     , lFlags = [multiline]     }  double_string' :: TokenMatcher double_string' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"" (Arbitrary "Name" :. Arbitrary "Function") Pop     , anyOf string'     ] +examples_table_header' :: TokenMatcher+examples_table_header' =+    [ tokNext "\\s+\\|\\s*$" (Arbitrary "Keyword") (PopNum 2)+    , anyOf comments'+    , tok "\\s*\\|" (Arbitrary "Keyword")+    , tok "[^\\|]" (Arbitrary "Name" :. Arbitrary "Variable")+    ]++table_vars' :: TokenMatcher+table_vars' =+    [ tok "(<[^>]+>)" (Arbitrary "Name" :. Arbitrary "Variable")+    ]+ string' :: TokenMatcher string' =     [ anyOf table_vars'-    , tok "\40\92\115\124\46\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    , tok "(\\s|.)" (Arbitrary "Literal" :. Arbitrary "String")     ]  py_string' :: TokenMatcher py_string' =-    [ tokNext "\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"\"\"" (Arbitrary "Keyword") Pop     , anyOf string'     ] -multiline_descriptions' :: TokenMatcher-multiline_descriptions' =-    [ tokNext "\94\40\92\115\42\41\40\54616\51648\47564\124\51312\44148\124\47564\51068\124\44536\47532\44256\124\44536\47084\47732\124\37027\40636\124\37027\20040\124\32780\19988\124\30070\124\24403\124\21069\25552\124\20551\35373\124\20551\22914\124\20294\26159\124\20294\12375\124\20006\19988\124\12418\12375\124\12394\12425\12400\124\12383\12384\12375\124\12375\12363\12375\124\12363\12388\124\1608\32\124\1605\1578\1609\32\124\1604\1603\1606\32\124\1593\1606\1583\1605\1575\32\124\1579\1605\32\124\1576\1601\1585\1590\32\124\1575\1584\1575\1611\32\124\1499\1488\1513\1512\32\124\1493\1490\1501\32\124\1489\1492\1497\1504\1514\1503\32\124\1488\1494\1497\32\124\1488\1494\32\124\1488\1489\1500\32\124\1059\1085\1076\1072\32\124\1058\1086\32\124\1054\1085\1076\1072\32\124\1053\1086\32\124\1051\1077\1082\1080\1085\32\124\1050\1086\1075\1072\1090\1086\32\124\1050\1072\1076\1072\32\124\1050\1072\1076\32\124\1050\32\1090\1086\1084\1091\32\1078\1077\32\124\1048\32\124\1047\1072\1076\1072\1090\1086\32\124\1047\1072\1076\1072\1090\1080\32\124\1047\1072\1076\1072\1090\1077\32\124\1045\1089\1083\1080\32\124\1044\1086\1087\1091\1089\1090\1080\1084\32\124\1044\1072\1076\1077\1085\1086\32\124\1042\1072\32\124\1041\1080\1088\1086\1082\32\124\1040\1084\1084\1086\32\124\1040\1083\1080\32\124\1040\1075\1072\1088\32\124\1040\32\124\536\105\32\124\201\115\32\124\97\110\114\104\101\103\101\100\105\103\32\97\32\124\90\97\116\97\116\105\32\124\90\97\107\322\97\100\97\106\261\99\32\124\90\97\100\97\116\111\32\124\90\97\100\97\116\101\32\124\90\97\100\97\110\111\32\124\90\97\100\97\110\105\32\124\90\97\100\97\110\32\124\89\110\97\32\124\89\97\32\107\110\111\119\32\104\111\119\32\124\89\97\32\103\111\116\116\97\32\124\89\32\124\87\116\101\100\121\32\124\87\104\101\110\32\121\92\39\97\108\108\32\124\87\104\101\110\32\124\87\101\110\110\32\124\87\69\78\32\124\86\224\32\124\86\101\32\124\85\110\100\32\124\85\110\32\124\84\104\236\32\124\84\104\101\110\32\121\92\39\97\108\108\32\124\84\104\101\110\32\124\84\97\112\105\32\124\84\97\107\32\124\84\97\100\97\32\124\84\97\100\32\124\83\229\32\124\83\116\101\108\32\124\83\111\105\116\32\124\83\105\105\115\32\124\83\105\32\124\81\117\97\110\100\111\32\124\81\117\97\110\100\32\124\81\117\97\110\32\124\80\114\121\100\32\124\80\111\107\117\100\32\124\80\111\107\105\97\318\32\124\80\101\114\242\32\124\80\101\114\111\32\124\80\97\107\32\124\79\114\97\122\32\124\79\110\100\97\32\124\79\110\100\32\124\79\108\101\116\101\116\97\97\110\32\124\79\103\32\124\79\99\104\32\124\79\32\122\97\109\97\110\32\124\78\229\114\32\124\78\228\114\32\124\78\105\105\110\32\124\78\104\432\110\103\32\124\78\32\124\77\117\116\116\97\32\124\77\101\110\32\124\77\97\115\32\124\77\97\107\97\32\124\77\97\106\100\32\124\77\97\105\115\32\124\77\97\97\114\32\124\77\97\32\124\76\111\114\115\113\117\101\32\124\76\111\114\115\113\117\92\39\124\75\117\110\32\124\75\117\105\100\32\124\75\117\105\32\124\75\104\105\32\124\75\101\271\32\124\75\101\116\105\107\97\32\124\75\100\121\382\32\124\75\97\105\32\124\75\97\100\97\32\124\75\97\100\32\124\74\101\380\101\108\105\32\124\74\97\32\124\73\114\32\124\73\32\67\65\78\32\72\65\90\32\124\73\32\124\72\97\32\124\71\105\118\101\116\32\124\71\105\118\101\110\32\121\92\39\97\108\108\32\124\71\105\118\101\110\32\124\71\105\116\116\32\124\71\101\103\101\118\101\110\32\124\71\101\103\101\98\101\110\32\115\101\105\32\124\70\97\107\97\116\32\124\69\287\101\114\32\107\105\32\124\69\116\97\110\116\32\100\111\110\110\233\32\124\69\116\32\124\69\110\116\227\111\32\124\69\110\116\111\110\99\101\115\32\124\69\110\116\97\111\32\124\69\110\32\124\69\101\108\100\97\100\101\115\32\124\69\32\124\68\117\111\116\97\32\124\68\111\110\97\116\32\124\68\111\110\97\100\97\32\124\68\105\121\101\108\105\109\32\107\105\32\124\68\101\110\103\97\110\32\124\68\101\32\124\68\97\116\111\32\124\68\97\114\32\124\68\97\110\110\32\124\68\97\110\32\124\68\97\100\111\32\124\68\97\99\259\32\124\68\97\99\97\32\124\68\69\78\32\124\67\226\110\100\32\124\67\117\97\110\100\111\32\124\67\104\111\32\124\67\101\112\116\32\124\67\97\110\100\32\124\66\117\116\32\121\92\39\97\108\108\32\124\66\117\116\32\124\66\105\7871\116\32\124\66\101\116\32\124\66\85\84\32\124\65\116\117\110\99\105\32\124\65\110\100\32\121\92\39\97\108\108\32\124\65\110\100\32\124\65\109\97\32\124\65\108\115\32\124\65\108\111\114\115\32\124\65\108\108\111\114\97\32\124\65\108\105\32\124\65\108\101\115\104\111\114\101\115\32\124\65\108\101\32\124\65\107\107\111\114\32\124\65\98\101\114\32\124\65\78\32\124\65\32\116\97\107\233\32\124\65\32\124\92\42\32\41" (Arbitrary "\75\101\121\119\111\114\100") Pop+root' :: TokenMatcher+root' =+    [ tok "\\n" (Arbitrary "Name" :. Arbitrary "Function")     , anyOf comments'-    , tok "\40\92\115\124\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")+    , tokNext "\"\"\"" (Arbitrary "Keyword") (GoTo py_string')+    , tokNext "\\s+\\|" (Arbitrary "Keyword") (GoTo table_content')+    , tokNext "\"" (Arbitrary "Name" :. Arbitrary "Function") (GoTo double_string')+    , anyOf table_vars'+    , anyOf numbers'+    , tok "(\\s*)(@[^@\\r\\n\\t ]+)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Name" :. Arbitrary "Tag")])+    , tokNext "^(\\s*)(\54616\51648\47564|\51312\44148|\47676\51200|\47564\51068|\47564\50557|\45800|\44536\47532\44256|\44536\47084\47732|\37027\40636|\37027\20040|\32780\19988|\30070|\24403|\21069\25552|\20551\35373|\20551\22914|\20294\26159|\20294\12375|\20006\19988|\12418\12375|\12394\12425\12400|\12383\12384\12375|\12375\12363\12375|\12363\12388|\1608 |\1605\1578\1609 |\1604\1603\1606 |\1593\1606\1583\1605\1575 |\1579\1605 |\1576\1601\1585\1590 |\1575\1584\1575\1611 |\1499\1488\1513\1512 |\1493\1490\1501 |\1489\1492\1497\1504\1514\1503 |\1488\1494\1497 |\1488\1494 |\1488\1489\1500 |\1071\1082\1097\1086 |\1059\1085\1076\1072 |\1058\1086 |\1055\1088\1080\1087\1091\1089\1090\1080\1084\1086, \1097\1086 |\1055\1088\1080\1087\1091\1089\1090\1080\1084\1086 |\1054\1085\1076\1072 |\1053\1086 |\1053\1077\1093\1072\1081 |\1051\1077\1082\1080\1085 |\1050\1086\1075\1072\1090\1086 |\1050\1072\1076\1072 |\1050\1072\1076 |\1050 \1090\1086\1084\1091 \1078\1077 |\1048 |\1047\1072\1076\1072\1090\1086 |\1047\1072\1076\1072\1090\1080 |\1047\1072\1076\1072\1090\1077 |\1045\1089\1083\1080 |\1044\1086\1087\1091\1089\1090\1080\1084 |\1044\1072\1076\1077\1085\1086 |\1042\1072 |\1041\1080\1088\1086\1082 |\1040\1084\1084\1086 |\1040\1083\1080 |\1040\1083\1077 |\1040\1075\1072\1088 |\1040 |\1030 |\536i |\201s |Zatati |Zak\322adaj\261c |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\\'all |When |Wenn |WEN |V\224 |Ve |Und |Un |Th\236 |Then y\\'all |Then |Tapi |Tak |Tada |Tad |S\229 |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokia\318 |Per\242 |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |N\229r |N\228r |Niin |Nh\432ng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\\'|Kun |Kuid |Kui |Khi |Ke\271 |Ketika |Kdy\382 |Kaj |Kai |Kada |Kad |Je\380eli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y\\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |E\287er ki |Etant donn\233 |Et |Ent\227o |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donita\309o |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dac\259 |Daca |DEN |C\226nd |Cuando |Cho |Cept |Cand |Cal |But y\\'all |But |Buh |Bi\7871t |Bet |BUT |At\232s |Atunci |Atesa |Anrhegedig a |Angenommen |And y\\'all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A tak\233 |A |\\* )" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Keyword")]) (GoTo step_content_root')+    , tokNext "^(\44592\45733|\27231\33021|\21151\33021|\12501\12451\12540\12481\12515|\1582\1575\1589\1610\1577|\1514\1499\1493\1504\1492|\1060\1091\1085\1082\1094\1110\1086\1085\1072\1083|\1060\1091\1085\1082\1094\1080\1086\1085\1072\1083\1085\1086\1089\1090|\1060\1091\1085\1082\1094\1080\1086\1085\1072\1083|\1060\1080\1095\1072|\1054\1089\1086\1073\1080\1085\1072|\1052\1086\1075\1091\1115\1085\1086\1089\1090|\214zellik|W\322a\347ciwo\347\263|T\237nh n\259ng|Trajto|Savyb\279|Po\382iadavka|Po\382adavek|Osobina|Ominaisuus|Omadus|OH HAI|Mogu\263nost|Mogucnost|Jellemz\337|F\299\269a|Funzionalit\224|Funktionalit\228t|Funkcionalnost|Funkcionalit\257te|Func\539ionalitate|Functionaliteit|Functionalitate|Funcionalitat|Funcionalidade|Fonctionnalit\233|Fitur|Feature|Egenskap|Egenskab|Crikey|Caracter\237stica|Arwedd)(:)(.*)$" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Function")]) (GoTo narrative')+    , tokNext "^(\\s*)(\49884\45208\47532\50724 \44060\50836|\49884\45208\47532\50724|\48176\44221|\32972\26223|\22580\26223\22823\32177|\22580\26223|\22330\26223\22823\32434|\22330\26223|\21127\26412\22823\32177|\21127\26412|\12486\12531\12503\12524|\12471\12490\12522\12458\12486\12531\12503\12524\12540\12488|\12471\12490\12522\12458\12486\12531\12503\12524|\12471\12490\12522\12458\12450\12454\12488\12521\12452\12531|\12471\12490\12522\12458|\1587\1610\1606\1575\1585\1610\1608 \1605\1582\1591\1591|\1587\1610\1606\1575\1585\1610\1608|\1575\1604\1582\1604\1601\1610\1577|\1514\1512\1495\1497\1513|\1514\1489\1504\1497\1514 \1514\1512\1495\1497\1513|\1512\1511\1506|\1058\1072\1088\1080\1093|\1057\1094\1077\1085\1072\1088\1110\1081|\1057\1094\1077\1085\1072\1088\1080\1086|\1057\1094\1077\1085\1072\1088\1080\1081 \1089\1090\1088\1091\1082\1090\1091\1088\1072\1089\1080|\1057\1094\1077\1085\1072\1088\1080\1081|\1057\1090\1088\1091\1082\1090\1091\1088\1072 \1089\1094\1077\1085\1072\1088\1110\1102|\1057\1090\1088\1091\1082\1090\1091\1088\1072 \1089\1094\1077\1085\1072\1088\1080\1112\1072|\1057\1090\1088\1091\1082\1090\1091\1088\1072 \1089\1094\1077\1085\1072\1088\1080\1103|\1057\1082\1080\1094\1072|\1056\1072\1084\1082\1072 \1085\1072 \1089\1094\1077\1085\1072\1088\1080\1081|\1055\1088\1080\1084\1077\1088|\1055\1088\1077\1076\1099\1089\1090\1086\1088\1080\1103|\1055\1088\1077\1076\1080\1089\1090\1086\1088\1080\1103|\1055\1086\1079\1072\1076\1080\1085\1072|\1055\1077\1088\1077\1076\1091\1084\1086\1074\1072|\1054\1089\1085\1086\1074\1072|\1050\1086\1085\1094\1077\1087\1090|\1050\1086\1085\1090\1077\1082\1089\1090|Za\322o\380enia|Wharrimean is|T\236nh hu\7889ng|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situ\257cija|Senaryo tasla\287\305|Senaryo|Sc\233n\225\345|Sc\233nario|Schema dello scenario|Scen\257rijs p\275c parauga|Scen\257rijs|Scen\225r|Scenaro|Scenariusz|Scenariul de \351ablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus \353ablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozad\237|Pozadina|Pozadie|Plan du sc\233nario|Plan du Sc\233nario|Osnova sc\233n\225\345e|Osnova|N\225\269rt Sc\233n\225\345e|N\225\269rt Scen\225ru|Mate|MISHUN SRSLY|MISHUN|K\7883ch b\7843n|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung t\236nh hu\7889ng|Khung k\7883ch b\7843n|H\225tt\233r|Grundlage|Ge\231mi\351|Forgat\243k\246nyv v\225zlat|Forgat\243k\246nyv|Fono|Esquema do Cen\225rio|Esquema do Cenario|Esquema del escenario|Esquema de l\\'escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condi\355ii|Conditii|Cen\225rio|Cenario|Cefndir|B\7889i c\7843nh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Keyword"), (Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Function")]) (GoTo feature_elements')+    , tokNext "^(\\s*)(\50696|\20363\23376|\20363|\12469\12531\12503\12523|\1575\1605\1579\1604\1577|\1491\1493\1490\1502\1488\1493\1514|\1057\1094\1077\1085\1072\1088\1080\1112\1080|\1055\1088\1080\1084\1077\1088\1080|\1055\1088\1080\1082\1083\1072\1076\1080|\1052\1080\1089\1086\1083\1083\1072\1088|\1047\1085\1072\1095\1077\1085\1080\1103|\214rnekler|Voorbeelden|Variantai|Tapaukset|Scenarios|Scenariji|Scenarijai|P\345\237klady|P\233ld\225k|Pr\237klady|Przyk\322ady|Primjeri|Primeri|Piem\275ri|Pavyzd\382iai|Paraugs|Juhtumid|Exemplos|Exemples|Exemplele|Exempel|Examples|Esempi|Enghreifftiau|Ekzemploj|Eksempler|Ejemplos|EXAMPLZ|D\7919 li\7879u|Contoh|Cobber|Beispiele)(:)(.*)$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Keyword"), (Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Function")]) (GoTo examples_table')+    , tok "(\\s|.)" (Arbitrary "Name" :. Arbitrary "Function")     ] -table_vars' :: TokenMatcher-table_vars' =-    [ tok "\40\60\91\94\62\93\42\62\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")])+examples_table' :: TokenMatcher+examples_table' =+    [ tokNext "\\s+\\|" (Arbitrary "Keyword") (GoTo examples_table_header')+    , anyOf comments'+    , tok "(\\s|.)" (Arbitrary "Name" :. Arbitrary "Function")     ]  comments' :: TokenMatcher comments' =-    [ tok "\35\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "#.*$" (Arbitrary "Comment")     ]  scenario_sections_on_stack' :: TokenMatcher scenario_sections_on_stack' =-    [ tokNext "\94\40\92\115\42\41\40\49884\45208\47532\50724\32\44060\50836\124\49884\45208\47532\50724\124\48176\44221\124\32972\26223\124\22580\26223\22823\32177\124\22580\26223\124\22330\26223\22823\32434\124\22330\26223\124\21127\26412\22823\32177\124\21127\26412\124\12486\12531\12503\12524\124\12471\12490\12522\12458\12486\12531\12503\12524\12540\12488\124\12471\12490\12522\12458\12486\12531\12503\12524\124\12471\12490\12522\12458\12450\12454\12488\12521\12452\12531\124\12471\12490\12522\12458\124\1587\1610\1606\1575\1585\1610\1608\32\1605\1582\1591\1591\124\1587\1610\1606\1575\1585\1610\1608\124\1575\1604\1582\1604\1601\1610\1577\124\1514\1512\1495\1497\1513\124\1514\1489\1504\1497\1514\32\1514\1512\1495\1497\1513\124\1512\1511\1506\124\1058\1072\1088\1080\1093\124\1057\1094\1077\1085\1072\1088\1080\1086\124\1057\1094\1077\1085\1072\1088\1080\1081\32\1089\1090\1088\1091\1082\1090\1091\1088\1072\1089\1080\124\1057\1094\1077\1085\1072\1088\1080\1081\124\1057\1090\1088\1091\1082\1090\1091\1088\1072\32\1089\1094\1077\1085\1072\1088\1080\1112\1072\124\1057\1090\1088\1091\1082\1090\1091\1088\1072\32\1089\1094\1077\1085\1072\1088\1080\1103\124\1057\1082\1080\1094\1072\124\1056\1072\1084\1082\1072\32\1085\1072\32\1089\1094\1077\1085\1072\1088\1080\1081\124\1055\1088\1080\1084\1077\1088\124\1055\1088\1077\1076\1099\1089\1090\1086\1088\1080\1103\124\1055\1088\1077\1076\1080\1089\1090\1086\1088\1080\1103\124\1055\1086\1079\1072\1076\1080\1085\1072\124\1054\1089\1085\1086\1074\1072\124\1050\1086\1085\1094\1077\1087\1090\124\1050\1086\1085\1090\1077\1082\1089\1090\124\90\97\322\111\380\101\110\105\97\124\84\236\110\104\32\104\117\7889\110\103\124\84\97\117\115\116\97\124\84\97\117\115\116\124\84\97\112\97\117\115\97\105\104\105\111\124\84\97\112\97\117\115\124\83\122\101\110\97\114\105\111\103\114\117\110\100\114\105\115\115\124\83\122\101\110\97\114\105\111\124\83\122\97\98\108\111\110\32\115\99\101\110\97\114\105\117\115\122\97\124\83\116\115\101\110\97\97\114\105\117\109\124\83\116\114\117\107\116\117\114\97\32\115\99\101\110\97\114\105\106\97\124\83\107\105\99\97\124\83\107\101\110\97\114\105\111\32\107\111\110\115\101\112\124\83\107\101\110\97\114\105\111\124\83\105\116\117\257\99\105\106\97\124\83\101\110\97\114\121\111\32\116\97\115\108\97\287\305\124\83\101\110\97\114\121\111\124\83\99\233\110\225\345\124\83\99\233\110\97\114\105\111\124\83\99\104\101\109\97\32\100\101\108\108\111\32\115\99\101\110\97\114\105\111\124\83\99\101\110\257\114\105\106\115\32\112\275\99\32\112\97\114\97\117\103\97\124\83\99\101\110\257\114\105\106\115\124\83\99\101\110\225\114\124\83\99\101\110\97\114\105\117\115\122\124\83\99\101\110\97\114\105\117\108\32\100\101\32\351\97\98\108\111\110\124\83\99\101\110\97\114\105\117\108\32\100\101\32\115\97\98\108\111\110\124\83\99\101\110\97\114\105\117\124\83\99\101\110\97\114\105\111\32\79\117\116\108\105\110\101\124\83\99\101\110\97\114\105\111\32\65\109\108\105\110\101\108\108\111\108\124\83\99\101\110\97\114\105\111\124\83\99\101\110\97\114\105\106\117\115\124\83\99\101\110\97\114\105\106\97\117\115\32\353\97\98\108\111\110\97\115\124\83\99\101\110\97\114\105\106\124\83\99\101\110\97\114\105\101\124\82\101\114\101\102\111\110\115\124\82\97\97\109\115\116\115\101\110\97\97\114\105\117\109\124\80\114\105\109\101\114\124\80\111\122\97\100\237\124\80\111\122\97\100\105\110\97\124\80\111\122\97\100\105\101\124\80\108\97\110\32\100\117\32\115\99\233\110\97\114\105\111\124\80\108\97\110\32\100\117\32\83\99\233\110\97\114\105\111\124\79\115\110\111\118\97\32\115\99\233\110\225\345\101\124\79\115\110\111\118\97\124\78\225\269\114\116\32\83\99\233\110\225\345\101\124\78\225\269\114\116\32\83\99\101\110\225\114\117\124\77\97\116\101\124\77\73\83\72\85\78\32\83\82\83\76\89\124\77\73\83\72\85\78\124\75\7883\99\104\32\98\7843\110\124\75\111\110\116\101\120\116\124\75\111\110\116\101\107\115\116\115\124\75\111\110\116\101\107\115\116\97\115\124\75\111\110\116\101\107\115\116\124\75\111\110\99\101\112\116\124\75\104\117\110\103\32\116\236\110\104\32\104\117\7889\110\103\124\75\104\117\110\103\32\107\7883\99\104\32\98\7843\110\124\72\225\116\116\233\114\124\71\114\117\110\100\108\97\103\101\124\71\101\231\109\105\351\124\70\111\114\103\97\116\243\107\246\110\121\118\32\118\225\122\108\97\116\124\70\111\114\103\97\116\243\107\246\110\121\118\124\69\115\113\117\101\109\97\32\100\111\32\67\101\110\225\114\105\111\124\69\115\113\117\101\109\97\32\100\111\32\67\101\110\97\114\105\111\124\69\115\113\117\101\109\97\32\100\101\108\32\101\115\99\101\110\97\114\105\111\124\69\115\113\117\101\109\97\32\100\101\32\108\92\39\101\115\99\101\110\97\114\105\124\69\115\99\101\110\97\114\105\111\124\69\115\99\101\110\97\114\105\124\68\97\115\97\114\124\67\111\110\116\101\120\116\111\124\67\111\110\116\101\120\116\101\124\67\111\110\116\101\115\116\111\124\67\111\110\100\105\355\105\105\124\67\111\110\100\105\116\105\105\124\67\101\110\225\114\105\111\124\67\101\110\97\114\105\111\124\67\101\102\110\100\105\114\124\66\7889\105\32\99\7843\110\104\124\66\108\111\107\101\115\124\66\97\107\103\114\117\110\110\124\66\97\107\103\114\117\110\100\124\66\97\103\103\114\117\110\100\124\66\97\99\107\103\114\111\117\110\100\124\66\52\124\65\110\116\101\99\101\100\101\110\116\115\124\65\110\116\101\99\101\100\101\110\116\101\115\124\65\108\108\32\121\92\39\97\108\108\124\65\99\104\116\101\114\103\114\111\110\100\124\65\98\115\116\114\97\107\116\32\83\99\101\110\97\114\105\111\124\65\98\115\116\114\97\99\116\32\83\99\101\110\97\114\105\111\41\40\58\41\40\46\42\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")]) (GoTo multiline_descriptions_on_stack')+    [ tokNext "^(\\s*)(\49884\45208\47532\50724 \44060\50836|\49884\45208\47532\50724|\48176\44221|\32972\26223|\22580\26223\22823\32177|\22580\26223|\22330\26223\22823\32434|\22330\26223|\21127\26412\22823\32177|\21127\26412|\12486\12531\12503\12524|\12471\12490\12522\12458\12486\12531\12503\12524\12540\12488|\12471\12490\12522\12458\12486\12531\12503\12524|\12471\12490\12522\12458\12450\12454\12488\12521\12452\12531|\12471\12490\12522\12458|\1587\1610\1606\1575\1585\1610\1608 \1605\1582\1591\1591|\1587\1610\1606\1575\1585\1610\1608|\1575\1604\1582\1604\1601\1610\1577|\1514\1512\1495\1497\1513|\1514\1489\1504\1497\1514 \1514\1512\1495\1497\1513|\1512\1511\1506|\1058\1072\1088\1080\1093|\1057\1094\1077\1085\1072\1088\1110\1081|\1057\1094\1077\1085\1072\1088\1080\1086|\1057\1094\1077\1085\1072\1088\1080\1081 \1089\1090\1088\1091\1082\1090\1091\1088\1072\1089\1080|\1057\1094\1077\1085\1072\1088\1080\1081|\1057\1090\1088\1091\1082\1090\1091\1088\1072 \1089\1094\1077\1085\1072\1088\1110\1102|\1057\1090\1088\1091\1082\1090\1091\1088\1072 \1089\1094\1077\1085\1072\1088\1080\1112\1072|\1057\1090\1088\1091\1082\1090\1091\1088\1072 \1089\1094\1077\1085\1072\1088\1080\1103|\1057\1082\1080\1094\1072|\1056\1072\1084\1082\1072 \1085\1072 \1089\1094\1077\1085\1072\1088\1080\1081|\1055\1088\1080\1084\1077\1088|\1055\1088\1077\1076\1099\1089\1090\1086\1088\1080\1103|\1055\1088\1077\1076\1080\1089\1090\1086\1088\1080\1103|\1055\1086\1079\1072\1076\1080\1085\1072|\1055\1077\1088\1077\1076\1091\1084\1086\1074\1072|\1054\1089\1085\1086\1074\1072|\1050\1086\1085\1094\1077\1087\1090|\1050\1086\1085\1090\1077\1082\1089\1090|Za\322o\380enia|Wharrimean is|T\236nh hu\7889ng|The thing of it is|Tausta|Taust|Tapausaihio|Tapaus|Szenariogrundriss|Szenario|Szablon scenariusza|Stsenaarium|Struktura scenarija|Skica|Skenario konsep|Skenario|Situ\257cija|Senaryo tasla\287\305|Senaryo|Sc\233n\225\345|Sc\233nario|Schema dello scenario|Scen\257rijs p\275c parauga|Scen\257rijs|Scen\225r|Scenaro|Scenariusz|Scenariul de \351ablon|Scenariul de sablon|Scenariu|Scenario Outline|Scenario Amlinellol|Scenario|Scenarijus|Scenarijaus \353ablonas|Scenarij|Scenarie|Rerefons|Raamstsenaarium|Primer|Pozad\237|Pozadina|Pozadie|Plan du sc\233nario|Plan du Sc\233nario|Osnova sc\233n\225\345e|Osnova|N\225\269rt Sc\233n\225\345e|N\225\269rt Scen\225ru|Mate|MISHUN SRSLY|MISHUN|K\7883ch b\7843n|Konturo de la scenaro|Kontext|Konteksts|Kontekstas|Kontekst|Koncept|Khung t\236nh hu\7889ng|Khung k\7883ch b\7843n|H\225tt\233r|Grundlage|Ge\231mi\351|Forgat\243k\246nyv v\225zlat|Forgat\243k\246nyv|Fono|Esquema do Cen\225rio|Esquema do Cenario|Esquema del escenario|Esquema de l\\'escenari|Escenario|Escenari|Dis is what went down|Dasar|Contexto|Contexte|Contesto|Condi\355ii|Conditii|Cen\225rio|Cenario|Cefndir|B\7889i c\7843nh|Blokes|Bakgrunn|Bakgrund|Baggrund|Background|B4|Antecedents|Antecedentes|All y\\'all|Achtergrond|Abstrakt Scenario|Abstract Scenario)(:)(.*)$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Keyword"), (Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Function")]) (GoTo feature_elements_on_stack')     ] -scenario_table_header' :: TokenMatcher-scenario_table_header' =-    [ tokNext "\92\115\43\92\124\92\115\42\36" (Arbitrary "\84\101\120\116") (PopNum 2)-    , tokNext "\40\92\115\43\92\124\92\115\42\41\40\35\46\42\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116")]) (PopNum 2)+step_content_root' :: TokenMatcher+step_content_root' =+    [ tokNext "$" (Arbitrary "Keyword") Pop+    , anyOf step_content'+    ]++numbers' :: TokenMatcher+numbers' =+    [ tok "(\\d+\\.?\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "String")+    ]++feature_elements' :: TokenMatcher+feature_elements' =+    [ tokNext "^(\\s*)(\54616\51648\47564|\51312\44148|\47676\51200|\47564\51068|\47564\50557|\45800|\44536\47532\44256|\44536\47084\47732|\37027\40636|\37027\20040|\32780\19988|\30070|\24403|\21069\25552|\20551\35373|\20551\22914|\20294\26159|\20294\12375|\20006\19988|\12418\12375|\12394\12425\12400|\12383\12384\12375|\12375\12363\12375|\12363\12388|\1608 |\1605\1578\1609 |\1604\1603\1606 |\1593\1606\1583\1605\1575 |\1579\1605 |\1576\1601\1585\1590 |\1575\1584\1575\1611 |\1499\1488\1513\1512 |\1493\1490\1501 |\1489\1492\1497\1504\1514\1503 |\1488\1494\1497 |\1488\1494 |\1488\1489\1500 |\1071\1082\1097\1086 |\1059\1085\1076\1072 |\1058\1086 |\1055\1088\1080\1087\1091\1089\1090\1080\1084\1086, \1097\1086 |\1055\1088\1080\1087\1091\1089\1090\1080\1084\1086 |\1054\1085\1076\1072 |\1053\1086 |\1053\1077\1093\1072\1081 |\1051\1077\1082\1080\1085 |\1050\1086\1075\1072\1090\1086 |\1050\1072\1076\1072 |\1050\1072\1076 |\1050 \1090\1086\1084\1091 \1078\1077 |\1048 |\1047\1072\1076\1072\1090\1086 |\1047\1072\1076\1072\1090\1080 |\1047\1072\1076\1072\1090\1077 |\1045\1089\1083\1080 |\1044\1086\1087\1091\1089\1090\1080\1084 |\1044\1072\1076\1077\1085\1086 |\1042\1072 |\1041\1080\1088\1086\1082 |\1040\1084\1084\1086 |\1040\1083\1080 |\1040\1083\1077 |\1040\1075\1072\1088 |\1040 |\1030 |\536i |\201s |Zatati |Zak\322adaj\261c |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\\'all |When |Wenn |WEN |V\224 |Ve |Und |Un |Th\236 |Then y\\'all |Then |Tapi |Tak |Tada |Tad |S\229 |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokia\318 |Per\242 |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |N\229r |N\228r |Niin |Nh\432ng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\\'|Kun |Kuid |Kui |Khi |Ke\271 |Ketika |Kdy\382 |Kaj |Kai |Kada |Kad |Je\380eli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y\\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |E\287er ki |Etant donn\233 |Et |Ent\227o |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donita\309o |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dac\259 |Daca |DEN |C\226nd |Cuando |Cho |Cept |Cand |Cal |But y\\'all |But |Buh |Bi\7871t |Bet |BUT |At\232s |Atunci |Atesa |Anrhegedig a |Angenommen |And y\\'all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A tak\233 |A |\\* )" (Arbitrary "Keyword") (GoTo step_content_stack')     , anyOf comments'-    , tok "\92\115\43\92\124" (Arbitrary "\84\101\120\116")-    , tok "\91\94\92\124\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    , tok "(\\s|.)" (Arbitrary "Name" :. Arbitrary "Function")     ]  narrative' :: TokenMatcher narrative' =     [ anyOf scenario_sections_on_stack'-    , tok "\40\92\115\124\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    , tok "(\\s|.)" (Arbitrary "Name" :. Arbitrary "Function")     ] -root' :: TokenMatcher-root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")+feature_elements_on_stack' :: TokenMatcher+feature_elements_on_stack' =+    [ tokNext "^(\\s*)(\54616\51648\47564|\51312\44148|\47676\51200|\47564\51068|\47564\50557|\45800|\44536\47532\44256|\44536\47084\47732|\37027\40636|\37027\20040|\32780\19988|\30070|\24403|\21069\25552|\20551\35373|\20551\22914|\20294\26159|\20294\12375|\20006\19988|\12418\12375|\12394\12425\12400|\12383\12384\12375|\12375\12363\12375|\12363\12388|\1608 |\1605\1578\1609 |\1604\1603\1606 |\1593\1606\1583\1605\1575 |\1579\1605 |\1576\1601\1585\1590 |\1575\1584\1575\1611 |\1499\1488\1513\1512 |\1493\1490\1501 |\1489\1492\1497\1504\1514\1503 |\1488\1494\1497 |\1488\1494 |\1488\1489\1500 |\1071\1082\1097\1086 |\1059\1085\1076\1072 |\1058\1086 |\1055\1088\1080\1087\1091\1089\1090\1080\1084\1086, \1097\1086 |\1055\1088\1080\1087\1091\1089\1090\1080\1084\1086 |\1054\1085\1076\1072 |\1053\1086 |\1053\1077\1093\1072\1081 |\1051\1077\1082\1080\1085 |\1050\1086\1075\1072\1090\1086 |\1050\1072\1076\1072 |\1050\1072\1076 |\1050 \1090\1086\1084\1091 \1078\1077 |\1048 |\1047\1072\1076\1072\1090\1086 |\1047\1072\1076\1072\1090\1080 |\1047\1072\1076\1072\1090\1077 |\1045\1089\1083\1080 |\1044\1086\1087\1091\1089\1090\1080\1084 |\1044\1072\1076\1077\1085\1086 |\1042\1072 |\1041\1080\1088\1086\1082 |\1040\1084\1084\1086 |\1040\1083\1080 |\1040\1083\1077 |\1040\1075\1072\1088 |\1040 |\1030 |\536i |\201s |Zatati |Zak\322adaj\261c |Zadato |Zadate |Zadano |Zadani |Zadan |Youse know when youse got |Youse know like when |Yna |Ya know how |Ya gotta |Y |Wun |Wtedy |When y\\'all |When |Wenn |WEN |V\224 |Ve |Und |Un |Th\236 |Then y\\'all |Then |Tapi |Tak |Tada |Tad |S\229 |Stel |Soit |Siis |Si |Sed |Se |Quando |Quand |Quan |Pryd |Pokud |Pokia\318 |Per\242 |Pero |Pak |Oraz |Onda |Ond |Oletetaan |Og |Och |O zaman |N\229r |N\228r |Niin |Nh\432ng |N |Mutta |Men |Mas |Maka |Majd |Mais |Maar |Ma |Lorsque |Lorsqu\\'|Kun |Kuid |Kui |Khi |Ke\271 |Ketika |Kdy\382 |Kaj |Kai |Kada |Kad |Je\380eli |Ja |Ir |I CAN HAZ |I |Ha |Givun |Givet |Given y\\'all |Given |Gitt |Gegeven |Gegeben sei |Fakat |E\287er ki |Etant donn\233 |Et |Ent\227o |Entonces |Entao |En |Eeldades |E |Duota |Dun |Donita\309o |Donat |Donada |Do |Diyelim ki |Dengan |Den youse gotta |De |Dato |Dar |Dann |Dan |Dado |Dac\259 |Daca |DEN |C\226nd |Cuando |Cho |Cept |Cand |Cal |But y\\'all |But |Buh |Bi\7871t |Bet |BUT |At\232s |Atunci |Atesa |Anrhegedig a |Angenommen |And y\\'all |And |An |Ama |Als |Alors |Allora |Ali |Aleshores |Ale |Akkor |Aber |AN |A tak\233 |A |\\* )" (Arbitrary "Keyword") (PopNum 2)     , anyOf comments'-    , tokNext "\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo py_string')-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo double_string')-    , anyOf table_vars'-    , tok "\64\91\94\64\92\115\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tok "\94\40\92\115\42\41\40\54616\51648\47564\124\51312\44148\124\47564\51068\124\44536\47532\44256\124\44536\47084\47732\124\37027\40636\124\37027\20040\124\32780\19988\124\30070\124\24403\124\21069\25552\124\20551\35373\124\20551\22914\124\20294\26159\124\20294\12375\124\20006\19988\124\12418\12375\124\12394\12425\12400\124\12383\12384\12375\124\12375\12363\12375\124\12363\12388\124\1608\32\124\1605\1578\1609\32\124\1604\1603\1606\32\124\1593\1606\1583\1605\1575\32\124\1579\1605\32\124\1576\1601\1585\1590\32\124\1575\1584\1575\1611\32\124\1499\1488\1513\1512\32\124\1493\1490\1501\32\124\1489\1492\1497\1504\1514\1503\32\124\1488\1494\1497\32\124\1488\1494\32\124\1488\1489\1500\32\124\1059\1085\1076\1072\32\124\1058\1086\32\124\1054\1085\1076\1072\32\124\1053\1086\32\124\1051\1077\1082\1080\1085\32\124\1050\1086\1075\1072\1090\1086\32\124\1050\1072\1076\1072\32\124\1050\1072\1076\32\124\1050\32\1090\1086\1084\1091\32\1078\1077\32\124\1048\32\124\1047\1072\1076\1072\1090\1086\32\124\1047\1072\1076\1072\1090\1080\32\124\1047\1072\1076\1072\1090\1077\32\124\1045\1089\1083\1080\32\124\1044\1086\1087\1091\1089\1090\1080\1084\32\124\1044\1072\1076\1077\1085\1086\32\124\1042\1072\32\124\1041\1080\1088\1086\1082\32\124\1040\1084\1084\1086\32\124\1040\1083\1080\32\124\1040\1075\1072\1088\32\124\1040\32\124\536\105\32\124\201\115\32\124\97\110\114\104\101\103\101\100\105\103\32\97\32\124\90\97\116\97\116\105\32\124\90\97\107\322\97\100\97\106\261\99\32\124\90\97\100\97\116\111\32\124\90\97\100\97\116\101\32\124\90\97\100\97\110\111\32\124\90\97\100\97\110\105\32\124\90\97\100\97\110\32\124\89\110\97\32\124\89\97\32\107\110\111\119\32\104\111\119\32\124\89\97\32\103\111\116\116\97\32\124\89\32\124\87\116\101\100\121\32\124\87\104\101\110\32\121\92\39\97\108\108\32\124\87\104\101\110\32\124\87\101\110\110\32\124\87\69\78\32\124\86\224\32\124\86\101\32\124\85\110\100\32\124\85\110\32\124\84\104\236\32\124\84\104\101\110\32\121\92\39\97\108\108\32\124\84\104\101\110\32\124\84\97\112\105\32\124\84\97\107\32\124\84\97\100\97\32\124\84\97\100\32\124\83\229\32\124\83\116\101\108\32\124\83\111\105\116\32\124\83\105\105\115\32\124\83\105\32\124\81\117\97\110\100\111\32\124\81\117\97\110\100\32\124\81\117\97\110\32\124\80\114\121\100\32\124\80\111\107\117\100\32\124\80\111\107\105\97\318\32\124\80\101\114\242\32\124\80\101\114\111\32\124\80\97\107\32\124\79\114\97\122\32\124\79\110\100\97\32\124\79\110\100\32\124\79\108\101\116\101\116\97\97\110\32\124\79\103\32\124\79\99\104\32\124\79\32\122\97\109\97\110\32\124\78\229\114\32\124\78\228\114\32\124\78\105\105\110\32\124\78\104\432\110\103\32\124\78\32\124\77\117\116\116\97\32\124\77\101\110\32\124\77\97\115\32\124\77\97\107\97\32\124\77\97\106\100\32\124\77\97\105\115\32\124\77\97\97\114\32\124\77\97\32\124\76\111\114\115\113\117\101\32\124\76\111\114\115\113\117\92\39\124\75\117\110\32\124\75\117\105\100\32\124\75\117\105\32\124\75\104\105\32\124\75\101\271\32\124\75\101\116\105\107\97\32\124\75\100\121\382\32\124\75\97\105\32\124\75\97\100\97\32\124\75\97\100\32\124\74\101\380\101\108\105\32\124\74\97\32\124\73\114\32\124\73\32\67\65\78\32\72\65\90\32\124\73\32\124\72\97\32\124\71\105\118\101\116\32\124\71\105\118\101\110\32\121\92\39\97\108\108\32\124\71\105\118\101\110\32\124\71\105\116\116\32\124\71\101\103\101\118\101\110\32\124\71\101\103\101\98\101\110\32\115\101\105\32\124\70\97\107\97\116\32\124\69\287\101\114\32\107\105\32\124\69\116\97\110\116\32\100\111\110\110\233\32\124\69\116\32\124\69\110\116\227\111\32\124\69\110\116\111\110\99\101\115\32\124\69\110\116\97\111\32\124\69\110\32\124\69\101\108\100\97\100\101\115\32\124\69\32\124\68\117\111\116\97\32\124\68\111\110\97\116\32\124\68\111\110\97\100\97\32\124\68\105\121\101\108\105\109\32\107\105\32\124\68\101\110\103\97\110\32\124\68\101\32\124\68\97\116\111\32\124\68\97\114\32\124\68\97\110\110\32\124\68\97\110\32\124\68\97\100\111\32\124\68\97\99\259\32\124\68\97\99\97\32\124\68\69\78\32\124\67\226\110\100\32\124\67\117\97\110\100\111\32\124\67\104\111\32\124\67\101\112\116\32\124\67\97\110\100\32\124\66\117\116\32\121\92\39\97\108\108\32\124\66\117\116\32\124\66\105\7871\116\32\124\66\101\116\32\124\66\85\84\32\124\65\116\117\110\99\105\32\124\65\110\100\32\121\92\39\97\108\108\32\124\65\110\100\32\124\65\109\97\32\124\65\108\115\32\124\65\108\111\114\115\32\124\65\108\108\111\114\97\32\124\65\108\105\32\124\65\108\101\115\104\111\114\101\115\32\124\65\108\101\32\124\65\107\107\111\114\32\124\65\98\101\114\32\124\65\78\32\124\65\32\116\97\107\233\32\124\65\32\124\92\42\32\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100")])-    , tokNext "\94\40\44592\45733\124\27231\33021\124\21151\33021\124\12501\12451\12540\12481\12515\124\1582\1575\1589\1610\1577\124\1514\1499\1493\1504\1492\124\1060\1091\1085\1082\1094\1080\1086\1085\1072\1083\1085\1086\1089\1090\124\1060\1091\1085\1082\1094\1080\1086\1085\1072\1083\124\1054\1089\1086\1073\1080\1085\1072\124\1052\1086\1075\1091\1115\1085\1086\1089\1090\124\214\122\101\108\108\105\107\124\87\322\97\347\99\105\119\111\347\263\124\84\237\110\104\32\110\259\110\103\124\83\97\118\121\98\279\124\80\111\382\105\97\100\97\118\107\97\124\80\111\382\97\100\97\118\101\107\124\79\115\111\98\105\110\97\124\79\109\105\110\97\105\115\117\117\115\124\79\109\97\100\117\115\124\79\72\32\72\65\73\124\77\111\103\117\263\110\111\115\116\124\77\111\103\117\99\110\111\115\116\124\74\101\108\108\101\109\122\337\124\70\299\269\97\124\70\117\110\122\105\111\110\97\108\105\116\224\124\70\117\110\107\116\105\111\110\97\108\105\116\228\116\124\70\117\110\107\99\105\111\110\97\108\110\111\115\116\124\70\117\110\107\99\105\111\110\97\108\105\116\257\116\101\124\70\117\110\99\539\105\111\110\97\108\105\116\97\116\101\124\70\117\110\99\116\105\111\110\97\108\105\116\101\105\116\124\70\117\110\99\116\105\111\110\97\108\105\116\97\116\101\124\70\117\110\99\105\111\110\97\108\105\100\97\100\101\124\70\111\110\99\116\105\111\110\110\97\108\105\116\233\124\70\105\116\117\114\124\70\101\97\116\117\114\101\124\69\103\101\110\115\107\97\112\124\69\103\101\110\115\107\97\98\124\67\114\105\107\101\121\124\67\97\114\97\99\116\101\114\237\115\116\105\99\97\124\65\114\119\101\100\100\41\40\58\41\40\46\42\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")]) (GoTo narrative')-    , tokNext "\94\40\92\115\42\41\40\49884\45208\47532\50724\32\44060\50836\124\49884\45208\47532\50724\124\48176\44221\124\32972\26223\124\22580\26223\22823\32177\124\22580\26223\124\22330\26223\22823\32434\124\22330\26223\124\21127\26412\22823\32177\124\21127\26412\124\12486\12531\12503\12524\124\12471\12490\12522\12458\12486\12531\12503\12524\12540\12488\124\12471\12490\12522\12458\12486\12531\12503\12524\124\12471\12490\12522\12458\12450\12454\12488\12521\12452\12531\124\12471\12490\12522\12458\124\1587\1610\1606\1575\1585\1610\1608\32\1605\1582\1591\1591\124\1587\1610\1606\1575\1585\1610\1608\124\1575\1604\1582\1604\1601\1610\1577\124\1514\1512\1495\1497\1513\124\1514\1489\1504\1497\1514\32\1514\1512\1495\1497\1513\124\1512\1511\1506\124\1058\1072\1088\1080\1093\124\1057\1094\1077\1085\1072\1088\1080\1086\124\1057\1094\1077\1085\1072\1088\1080\1081\32\1089\1090\1088\1091\1082\1090\1091\1088\1072\1089\1080\124\1057\1094\1077\1085\1072\1088\1080\1081\124\1057\1090\1088\1091\1082\1090\1091\1088\1072\32\1089\1094\1077\1085\1072\1088\1080\1112\1072\124\1057\1090\1088\1091\1082\1090\1091\1088\1072\32\1089\1094\1077\1085\1072\1088\1080\1103\124\1057\1082\1080\1094\1072\124\1056\1072\1084\1082\1072\32\1085\1072\32\1089\1094\1077\1085\1072\1088\1080\1081\124\1055\1088\1080\1084\1077\1088\124\1055\1088\1077\1076\1099\1089\1090\1086\1088\1080\1103\124\1055\1088\1077\1076\1080\1089\1090\1086\1088\1080\1103\124\1055\1086\1079\1072\1076\1080\1085\1072\124\1054\1089\1085\1086\1074\1072\124\1050\1086\1085\1094\1077\1087\1090\124\1050\1086\1085\1090\1077\1082\1089\1090\124\90\97\322\111\380\101\110\105\97\124\84\236\110\104\32\104\117\7889\110\103\124\84\97\117\115\116\97\124\84\97\117\115\116\124\84\97\112\97\117\115\97\105\104\105\111\124\84\97\112\97\117\115\124\83\122\101\110\97\114\105\111\103\114\117\110\100\114\105\115\115\124\83\122\101\110\97\114\105\111\124\83\122\97\98\108\111\110\32\115\99\101\110\97\114\105\117\115\122\97\124\83\116\115\101\110\97\97\114\105\117\109\124\83\116\114\117\107\116\117\114\97\32\115\99\101\110\97\114\105\106\97\124\83\107\105\99\97\124\83\107\101\110\97\114\105\111\32\107\111\110\115\101\112\124\83\107\101\110\97\114\105\111\124\83\105\116\117\257\99\105\106\97\124\83\101\110\97\114\121\111\32\116\97\115\108\97\287\305\124\83\101\110\97\114\121\111\124\83\99\233\110\225\345\124\83\99\233\110\97\114\105\111\124\83\99\104\101\109\97\32\100\101\108\108\111\32\115\99\101\110\97\114\105\111\124\83\99\101\110\257\114\105\106\115\32\112\275\99\32\112\97\114\97\117\103\97\124\83\99\101\110\257\114\105\106\115\124\83\99\101\110\225\114\124\83\99\101\110\97\114\105\117\115\122\124\83\99\101\110\97\114\105\117\108\32\100\101\32\351\97\98\108\111\110\124\83\99\101\110\97\114\105\117\108\32\100\101\32\115\97\98\108\111\110\124\83\99\101\110\97\114\105\117\124\83\99\101\110\97\114\105\111\32\79\117\116\108\105\110\101\124\83\99\101\110\97\114\105\111\32\65\109\108\105\110\101\108\108\111\108\124\83\99\101\110\97\114\105\111\124\83\99\101\110\97\114\105\106\117\115\124\83\99\101\110\97\114\105\106\97\117\115\32\353\97\98\108\111\110\97\115\124\83\99\101\110\97\114\105\106\124\83\99\101\110\97\114\105\101\124\82\101\114\101\102\111\110\115\124\82\97\97\109\115\116\115\101\110\97\97\114\105\117\109\124\80\114\105\109\101\114\124\80\111\122\97\100\237\124\80\111\122\97\100\105\110\97\124\80\111\122\97\100\105\101\124\80\108\97\110\32\100\117\32\115\99\233\110\97\114\105\111\124\80\108\97\110\32\100\117\32\83\99\233\110\97\114\105\111\124\79\115\110\111\118\97\32\115\99\233\110\225\345\101\124\79\115\110\111\118\97\124\78\225\269\114\116\32\83\99\233\110\225\345\101\124\78\225\269\114\116\32\83\99\101\110\225\114\117\124\77\97\116\101\124\77\73\83\72\85\78\32\83\82\83\76\89\124\77\73\83\72\85\78\124\75\7883\99\104\32\98\7843\110\124\75\111\110\116\101\120\116\124\75\111\110\116\101\107\115\116\115\124\75\111\110\116\101\107\115\116\97\115\124\75\111\110\116\101\107\115\116\124\75\111\110\99\101\112\116\124\75\104\117\110\103\32\116\236\110\104\32\104\117\7889\110\103\124\75\104\117\110\103\32\107\7883\99\104\32\98\7843\110\124\72\225\116\116\233\114\124\71\114\117\110\100\108\97\103\101\124\71\101\231\109\105\351\124\70\111\114\103\97\116\243\107\246\110\121\118\32\118\225\122\108\97\116\124\70\111\114\103\97\116\243\107\246\110\121\118\124\69\115\113\117\101\109\97\32\100\111\32\67\101\110\225\114\105\111\124\69\115\113\117\101\109\97\32\100\111\32\67\101\110\97\114\105\111\124\69\115\113\117\101\109\97\32\100\101\108\32\101\115\99\101\110\97\114\105\111\124\69\115\113\117\101\109\97\32\100\101\32\108\92\39\101\115\99\101\110\97\114\105\124\69\115\99\101\110\97\114\105\111\124\69\115\99\101\110\97\114\105\124\68\97\115\97\114\124\67\111\110\116\101\120\116\111\124\67\111\110\116\101\120\116\101\124\67\111\110\116\101\115\116\111\124\67\111\110\100\105\355\105\105\124\67\111\110\100\105\116\105\105\124\67\101\110\225\114\105\111\124\67\101\110\97\114\105\111\124\67\101\102\110\100\105\114\124\66\7889\105\32\99\7843\110\104\124\66\108\111\107\101\115\124\66\97\107\103\114\117\110\110\124\66\97\107\103\114\117\110\100\124\66\97\103\103\114\117\110\100\124\66\97\99\107\103\114\111\117\110\100\124\66\52\124\65\110\116\101\99\101\100\101\110\116\115\124\65\110\116\101\99\101\100\101\110\116\101\115\124\65\108\108\32\121\92\39\97\108\108\124\65\99\104\116\101\114\103\114\111\110\100\124\65\98\115\116\114\97\107\116\32\83\99\101\110\97\114\105\111\124\65\98\115\116\114\97\99\116\32\83\99\101\110\97\114\105\111\41\40\58\41\40\46\42\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")]) (GoTo multiline_descriptions')-    , tokNext "\94\40\92\115\42\41\40\50696\124\20363\23376\124\20363\124\12469\12531\12503\12523\124\1575\1605\1579\1604\1577\124\1491\1493\1490\1502\1488\1493\1514\124\1057\1094\1077\1085\1072\1088\1080\1112\1080\124\1055\1088\1080\1084\1077\1088\1080\124\1052\1080\1089\1086\1083\1083\1072\1088\124\1047\1085\1072\1095\1077\1085\1080\1103\124\214\114\110\101\107\108\101\114\124\86\111\111\114\98\101\101\108\100\101\110\124\86\97\114\105\97\110\116\97\105\124\84\97\112\97\117\107\115\101\116\124\83\99\101\110\97\114\105\111\115\124\83\99\101\110\97\114\105\106\105\124\83\99\101\110\97\114\105\106\97\105\124\80\345\237\107\108\97\100\121\124\80\233\108\100\225\107\124\80\114\237\107\108\97\100\121\124\80\114\122\121\107\322\97\100\121\124\80\114\105\109\106\101\114\105\124\80\114\105\109\101\114\105\124\80\105\101\109\275\114\105\124\80\97\118\121\122\100\382\105\97\105\124\80\97\114\97\117\103\115\124\74\117\104\116\117\109\105\100\124\69\120\101\109\112\108\111\115\124\69\120\101\109\112\108\101\115\124\69\120\101\109\112\108\101\108\101\124\69\120\101\109\112\101\108\124\69\120\97\109\112\108\101\115\124\69\115\101\109\112\105\124\69\110\103\104\114\101\105\102\102\116\105\97\117\124\69\107\115\101\109\112\108\101\114\124\69\106\101\109\112\108\111\115\124\69\88\65\77\80\76\90\124\68\7919\32\108\105\7879\117\124\67\111\110\116\111\104\124\67\111\98\98\101\114\124\66\101\105\115\112\105\101\108\101\41\40\58\41\40\46\42\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")]) (GoTo scenario_table_description')-    , tok "\40\92\115\124\46\41" (Arbitrary "\84\101\120\116")+    , tok "(\\s|.)" (Arbitrary "Name" :. Arbitrary "Function")     ] -multiline_descriptions_on_stack' :: TokenMatcher-multiline_descriptions_on_stack' =-    [ tokNext "\94\40\92\115\42\41\40\54616\51648\47564\124\51312\44148\124\47564\51068\124\44536\47532\44256\124\44536\47084\47732\124\37027\40636\124\37027\20040\124\32780\19988\124\30070\124\24403\124\21069\25552\124\20551\35373\124\20551\22914\124\20294\26159\124\20294\12375\124\20006\19988\124\12418\12375\124\12394\12425\12400\124\12383\12384\12375\124\12375\12363\12375\124\12363\12388\124\1608\32\124\1605\1578\1609\32\124\1604\1603\1606\32\124\1593\1606\1583\1605\1575\32\124\1579\1605\32\124\1576\1601\1585\1590\32\124\1575\1584\1575\1611\32\124\1499\1488\1513\1512\32\124\1493\1490\1501\32\124\1489\1492\1497\1504\1514\1503\32\124\1488\1494\1497\32\124\1488\1494\32\124\1488\1489\1500\32\124\1059\1085\1076\1072\32\124\1058\1086\32\124\1054\1085\1076\1072\32\124\1053\1086\32\124\1051\1077\1082\1080\1085\32\124\1050\1086\1075\1072\1090\1086\32\124\1050\1072\1076\1072\32\124\1050\1072\1076\32\124\1050\32\1090\1086\1084\1091\32\1078\1077\32\124\1048\32\124\1047\1072\1076\1072\1090\1086\32\124\1047\1072\1076\1072\1090\1080\32\124\1047\1072\1076\1072\1090\1077\32\124\1045\1089\1083\1080\32\124\1044\1086\1087\1091\1089\1090\1080\1084\32\124\1044\1072\1076\1077\1085\1086\32\124\1042\1072\32\124\1041\1080\1088\1086\1082\32\124\1040\1084\1084\1086\32\124\1040\1083\1080\32\124\1040\1075\1072\1088\32\124\1040\32\124\536\105\32\124\201\115\32\124\97\110\114\104\101\103\101\100\105\103\32\97\32\124\90\97\116\97\116\105\32\124\90\97\107\322\97\100\97\106\261\99\32\124\90\97\100\97\116\111\32\124\90\97\100\97\116\101\32\124\90\97\100\97\110\111\32\124\90\97\100\97\110\105\32\124\90\97\100\97\110\32\124\89\110\97\32\124\89\97\32\107\110\111\119\32\104\111\119\32\124\89\97\32\103\111\116\116\97\32\124\89\32\124\87\116\101\100\121\32\124\87\104\101\110\32\121\92\39\97\108\108\32\124\87\104\101\110\32\124\87\101\110\110\32\124\87\69\78\32\124\86\224\32\124\86\101\32\124\85\110\100\32\124\85\110\32\124\84\104\236\32\124\84\104\101\110\32\121\92\39\97\108\108\32\124\84\104\101\110\32\124\84\97\112\105\32\124\84\97\107\32\124\84\97\100\97\32\124\84\97\100\32\124\83\229\32\124\83\116\101\108\32\124\83\111\105\116\32\124\83\105\105\115\32\124\83\105\32\124\81\117\97\110\100\111\32\124\81\117\97\110\100\32\124\81\117\97\110\32\124\80\114\121\100\32\124\80\111\107\117\100\32\124\80\111\107\105\97\318\32\124\80\101\114\242\32\124\80\101\114\111\32\124\80\97\107\32\124\79\114\97\122\32\124\79\110\100\97\32\124\79\110\100\32\124\79\108\101\116\101\116\97\97\110\32\124\79\103\32\124\79\99\104\32\124\79\32\122\97\109\97\110\32\124\78\229\114\32\124\78\228\114\32\124\78\105\105\110\32\124\78\104\432\110\103\32\124\78\32\124\77\117\116\116\97\32\124\77\101\110\32\124\77\97\115\32\124\77\97\107\97\32\124\77\97\106\100\32\124\77\97\105\115\32\124\77\97\97\114\32\124\77\97\32\124\76\111\114\115\113\117\101\32\124\76\111\114\115\113\117\92\39\124\75\117\110\32\124\75\117\105\100\32\124\75\117\105\32\124\75\104\105\32\124\75\101\271\32\124\75\101\116\105\107\97\32\124\75\100\121\382\32\124\75\97\105\32\124\75\97\100\97\32\124\75\97\100\32\124\74\101\380\101\108\105\32\124\74\97\32\124\73\114\32\124\73\32\67\65\78\32\72\65\90\32\124\73\32\124\72\97\32\124\71\105\118\101\116\32\124\71\105\118\101\110\32\121\92\39\97\108\108\32\124\71\105\118\101\110\32\124\71\105\116\116\32\124\71\101\103\101\118\101\110\32\124\71\101\103\101\98\101\110\32\115\101\105\32\124\70\97\107\97\116\32\124\69\287\101\114\32\107\105\32\124\69\116\97\110\116\32\100\111\110\110\233\32\124\69\116\32\124\69\110\116\227\111\32\124\69\110\116\111\110\99\101\115\32\124\69\110\116\97\111\32\124\69\110\32\124\69\101\108\100\97\100\101\115\32\124\69\32\124\68\117\111\116\97\32\124\68\111\110\97\116\32\124\68\111\110\97\100\97\32\124\68\105\121\101\108\105\109\32\107\105\32\124\68\101\110\103\97\110\32\124\68\101\32\124\68\97\116\111\32\124\68\97\114\32\124\68\97\110\110\32\124\68\97\110\32\124\68\97\100\111\32\124\68\97\99\259\32\124\68\97\99\97\32\124\68\69\78\32\124\67\226\110\100\32\124\67\117\97\110\100\111\32\124\67\104\111\32\124\67\101\112\116\32\124\67\97\110\100\32\124\66\117\116\32\121\92\39\97\108\108\32\124\66\117\116\32\124\66\105\7871\116\32\124\66\101\116\32\124\66\85\84\32\124\65\116\117\110\99\105\32\124\65\110\100\32\121\92\39\97\108\108\32\124\65\110\100\32\124\65\109\97\32\124\65\108\115\32\124\65\108\111\114\115\32\124\65\108\108\111\114\97\32\124\65\108\105\32\124\65\108\101\115\104\111\114\101\115\32\124\65\108\101\32\124\65\107\107\111\114\32\124\65\98\101\114\32\124\65\78\32\124\65\32\116\97\107\233\32\124\65\32\124\92\42\32\41" (Arbitrary "\75\101\121\119\111\114\100") (PopNum 2)+table_content' :: TokenMatcher+table_content' =+    [ tokNext "\\s+\\|\\s*$" (Arbitrary "Keyword") Pop     , anyOf comments'-    , tok "\40\92\115\124\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")+    , tok "\\s*\\|" (Arbitrary "Keyword")+    , anyOf string'     ] -scenario_table_description' :: TokenMatcher-scenario_table_description' =-    [ tokNext "\92\115\43\92\124" (Arbitrary "\84\101\120\116") (GoTo scenario_table_header')+step_content' :: TokenMatcher+step_content' =+    [ tokNext "\"" (Arbitrary "Name" :. Arbitrary "Function") (GoTo double_string')+    , anyOf table_vars'+    , anyOf numbers'     , anyOf comments'-    , tok "\40\92\115\124\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")+    , tok "(\\s|.)" (Arbitrary "Name" :. Arbitrary "Function")+    ]++step_content_stack' :: TokenMatcher+step_content_stack' =+    [ tokNext "$" (Arbitrary "Keyword") (PopNum 2)+    , anyOf step_content'     ] 
src/Text/Highlighter/Lexers/Gnuplot.hs view
@@ -5,140 +5,140 @@  lexer :: Lexer lexer = Lexer-    { lName = "\71\110\117\112\108\111\116"-    , lAliases = ["\103\110\117\112\108\111\116"]-    , lExtensions = ["\46\112\108\111\116", "\46\112\108\116"]-    , lMimetypes = ["\116\101\120\116\47\120\45\103\110\117\112\108\111\116"]+    { lName = "Gnuplot"+    , lAliases = ["gnuplot"]+    , lExtensions = [".plot", ".plt"]+    , lMimetypes = ["text/x-gnuplot"]     , lStart = root'     , lFlags = [multiline]     }  comment' :: TokenMatcher comment' =-    [ tok "\91\94\92\92\92\110\93" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\92\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\92" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "" (Arbitrary "\67\111\109\109\101\110\116") Pop+    [ tok "[^\\\\\\n]" (Arbitrary "Comment")+    , tok "\\\\\\n" (Arbitrary "Comment")+    , tok "\\\\" (Arbitrary "Comment")+    , tokNext "" (Arbitrary "Comment") Pop     ]  plot' :: TokenMatcher plot' =-    [ tok "\97\120\101\115\92\98\124\97\120\101\92\98\124\97\120\92\98\124\97\120\105\115\92\98\124\97\120\105\92\98\124\98\105\110\97\114\121\92\98\124\98\105\110\97\114\92\98\124\98\105\110\97\92\98\124\98\105\110\92\98\124\101\118\101\114\121\92\98\124\101\118\101\114\92\98\124\101\118\101\92\98\124\101\118\92\98\124\105\110\100\101\120\92\98\124\105\110\100\101\92\98\124\105\110\100\92\98\124\105\110\92\98\124\105\92\98\124\109\97\116\114\105\120\92\98\124\109\97\116\114\105\92\98\124\109\97\116\114\92\98\124\109\97\116\92\98\124\115\109\111\111\116\104\92\98\124\115\109\111\111\116\92\98\124\115\109\111\111\92\98\124\115\109\111\92\98\124\115\109\92\98\124\115\92\98\124\116\104\114\117\92\98\124\116\105\116\108\101\92\98\124\116\105\116\108\92\98\124\116\105\116\92\98\124\116\105\92\98\124\116\92\98\124\110\111\116\105\116\108\101\92\98\124\110\111\116\105\116\108\92\98\124\110\111\116\105\116\92\98\124\110\111\116\105\92\98\124\110\111\116\92\98\124\117\115\105\110\103\92\98\124\117\115\105\110\92\98\124\117\115\105\92\98\124\117\115\92\98\124\117\92\98\124\119\105\116\104\92\98\124\119\105\116\92\98\124\119\105\92\98\124\119\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tok "axes\\b|axe\\b|ax\\b|axis\\b|axi\\b|binary\\b|binar\\b|bina\\b|bin\\b|every\\b|ever\\b|eve\\b|ev\\b|index\\b|inde\\b|ind\\b|in\\b|i\\b|matrix\\b|matri\\b|matr\\b|mat\\b|smooth\\b|smoot\\b|smoo\\b|smo\\b|sm\\b|s\\b|thru\\b|title\\b|titl\\b|tit\\b|ti\\b|t\\b|notitle\\b|notitl\\b|notit\\b|noti\\b|not\\b|using\\b|usin\\b|usi\\b|us\\b|u\\b|with\\b|wit\\b|wi\\b|w\\b" (Arbitrary "Name" :. Arbitrary "Builtin")     , anyOf genericargs'     ]  pause' :: TokenMatcher pause' =-    [ tok "\40\109\111\117\115\101\124\97\110\121\124\98\117\116\116\111\110\49\124\98\117\116\116\111\110\50\124\98\117\116\116\111\110\51\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\107\101\121\112\114\101\115\115\92\98\124\107\101\121\112\114\101\115\92\98\124\107\101\121\112\114\101\92\98\124\107\101\121\112\114\92\98\124\107\101\121\112\92\98\124\107\101\121\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tok "(mouse|any|button1|button2|button3)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "keypress\\b|keypres\\b|keypre\\b|keypr\\b|keyp\\b|key\\b" (Arbitrary "Name" :. Arbitrary "Builtin")     , anyOf genericargs'     ]  dqstring' :: TokenMatcher dqstring' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\44\52\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\91\94\92\92\34\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\n" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  if' :: TokenMatcher if' =-    [ tokNext "\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tokNext "\\)" (Arbitrary "Punctuation") Pop     , anyOf genericargs'     ]  quit' :: TokenMatcher quit' =-    [ tok "\103\110\117\112\108\111\116\92\98" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "gnuplot\\b" (Arbitrary "Keyword")     , anyOf noargs'     ]  sqstring' :: TokenMatcher sqstring' =-    [ tok "\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\91\94\92\92\39\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "''" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "[^\\\\'\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\n" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  whitespace' :: TokenMatcher whitespace' =-    [ tokNext "\35" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')-    , tok "\91\32\92\116\92\118\92\102\93\43" (Arbitrary "\84\101\120\116")+    [ tokNext "#" (Arbitrary "Comment") (GoTo comment')+    , tok "[ \\t\\v\\f]+" (Arbitrary "Text")     ]  fit' :: TokenMatcher fit' =-    [ tok "\118\105\97\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tok "via\\b" (Arbitrary "Name" :. Arbitrary "Builtin")     , anyOf plot'     ]  bind' :: TokenMatcher bind' =-    [ tokNext "\33" (Arbitrary "\75\101\121\119\111\114\100") Pop-    , tok "\97\108\108\119\105\110\100\111\119\115\92\98\124\97\108\108\119\105\110\100\111\119\92\98\124\97\108\108\119\105\110\100\111\92\98\124\97\108\108\119\105\110\100\92\98\124\97\108\108\119\105\110\92\98\124\97\108\108\119\105\92\98\124\97\108\108\119\92\98\124\97\108\108\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tokNext "!" (Arbitrary "Keyword") Pop+    , tok "allwindows\\b|allwindow\\b|allwindo\\b|allwind\\b|allwin\\b|allwi\\b|allw\\b|all\\b" (Arbitrary "Name" :. Arbitrary "Builtin")     , anyOf genericargs'     ]  optionarg' :: TokenMatcher optionarg' =     [ anyOf whitespace'-    , tokNext "\97\108\108\92\98\124\97\108\92\98\124\97\92\98\124\97\110\103\108\101\115\92\98\124\97\110\103\108\101\92\98\124\97\110\103\108\92\98\124\97\110\103\92\98\124\97\110\92\98\124\97\114\114\111\119\92\98\124\97\114\114\111\92\98\124\97\114\114\92\98\124\97\114\92\98\124\97\117\116\111\115\99\97\108\101\92\98\124\97\117\116\111\115\99\97\108\92\98\124\97\117\116\111\115\99\97\92\98\124\97\117\116\111\115\99\92\98\124\97\117\116\111\115\92\98\124\97\117\116\111\92\98\124\97\117\116\92\98\124\97\117\92\98\124\98\97\114\115\92\98\124\98\97\114\92\98\124\98\97\92\98\124\98\92\98\124\98\111\114\100\101\114\92\98\124\98\111\114\100\101\92\98\124\98\111\114\100\92\98\124\98\111\114\92\98\124\98\111\120\119\105\100\116\104\92\98\124\98\111\120\119\105\100\116\92\98\124\98\111\120\119\105\100\92\98\124\98\111\120\119\105\92\98\124\98\111\120\119\92\98\124\98\111\120\92\98\124\99\108\97\98\101\108\92\98\124\99\108\97\98\101\92\98\124\99\108\97\98\92\98\124\99\108\97\92\98\124\99\108\92\98\124\99\108\105\112\92\98\124\99\108\105\92\98\124\99\108\92\98\124\99\92\98\124\99\110\116\114\112\97\114\97\109\92\98\124\99\110\116\114\112\97\114\97\92\98\124\99\110\116\114\112\97\114\92\98\124\99\110\116\114\112\97\92\98\124\99\110\116\114\112\92\98\124\99\110\116\114\92\98\124\99\110\116\92\98\124\99\110\92\98\124\99\111\110\116\111\117\114\92\98\124\99\111\110\116\111\117\92\98\124\99\111\110\116\111\92\98\124\99\111\110\116\92\98\124\99\111\110\92\98\124\99\111\92\98\124\100\97\116\97\92\98\124\100\97\116\92\98\124\100\97\92\98\124\100\97\116\97\102\105\108\101\92\98\124\100\97\116\97\102\105\108\92\98\124\100\97\116\97\102\105\92\98\124\100\97\116\97\102\92\98\124\100\97\116\97\92\98\124\100\103\114\105\100\51\100\92\98\124\100\103\114\105\100\51\92\98\124\100\103\114\105\100\92\98\124\100\103\114\105\92\98\124\100\103\114\92\98\124\100\103\92\98\124\100\117\109\109\121\92\98\124\100\117\109\109\92\98\124\100\117\109\92\98\124\100\117\92\98\124\101\110\99\111\100\105\110\103\92\98\124\101\110\99\111\100\105\110\92\98\124\101\110\99\111\100\105\92\98\124\101\110\99\111\100\92\98\124\101\110\99\111\92\98\124\101\110\99\92\98\124\100\101\99\105\109\97\108\115\105\103\110\92\98\124\100\101\99\105\109\97\108\115\105\103\92\98\124\100\101\99\105\109\97\108\115\105\92\98\124\100\101\99\105\109\97\108\115\92\98\124\100\101\99\105\109\97\108\92\98\124\100\101\99\105\109\97\92\98\124\100\101\99\105\109\92\98\124\100\101\99\105\92\98\124\100\101\99\92\98\124\102\105\116\92\98\124\102\111\110\116\112\97\116\104\92\98\124\102\111\110\116\112\97\116\92\98\124\102\111\110\116\112\97\92\98\124\102\111\110\116\112\92\98\124\102\111\110\116\92\98\124\102\111\114\109\97\116\92\98\124\102\111\114\109\97\92\98\124\102\111\114\109\92\98\124\102\111\114\92\98\124\102\111\92\98\124\102\117\110\99\116\105\111\110\92\98\124\102\117\110\99\116\105\111\92\98\124\102\117\110\99\116\105\92\98\124\102\117\110\99\116\92\98\124\102\117\110\99\92\98\124\102\117\110\92\98\124\102\117\92\98\124\102\117\110\99\116\105\111\110\115\92\98\124\102\117\110\99\116\105\111\110\92\98\124\102\117\110\99\116\105\111\92\98\124\102\117\110\99\116\105\92\98\124\102\117\110\99\116\92\98\124\102\117\110\99\92\98\124\102\117\110\92\98\124\102\117\92\98\124\103\114\105\100\92\98\124\103\114\105\92\98\124\103\114\92\98\124\103\92\98\124\104\105\100\100\101\110\51\100\92\98\124\104\105\100\100\101\110\51\92\98\124\104\105\100\100\101\110\92\98\124\104\105\100\100\101\92\98\124\104\105\100\100\92\98\124\104\105\100\92\98\124\104\105\115\116\111\114\121\115\105\122\101\92\98\124\104\105\115\116\111\114\121\115\105\122\92\98\124\104\105\115\116\111\114\121\115\105\92\98\124\104\105\115\116\111\114\121\115\92\98\124\104\105\115\116\111\114\121\92\98\124\104\105\115\116\111\114\92\98\124\104\105\115\116\111\92\98\124\104\105\115\116\92\98\124\104\105\115\92\98\124\105\115\111\115\97\109\112\108\101\115\92\98\124\105\115\111\115\97\109\112\108\101\92\98\124\105\115\111\115\97\109\112\108\92\98\124\105\115\111\115\97\109\112\92\98\124\105\115\111\115\97\109\92\98\124\105\115\111\115\97\92\98\124\105\115\111\115\92\98\124\105\115\111\92\98\124\105\115\92\98\124\107\101\121\92\98\124\107\101\92\98\124\107\92\98\124\107\101\121\116\105\116\108\101\92\98\124\107\101\121\116\105\116\108\92\98\124\107\101\121\116\105\116\92\98\124\107\101\121\116\105\92\98\124\107\101\121\116\92\98\124\108\97\98\101\108\92\98\124\108\97\98\101\92\98\124\108\97\98\92\98\124\108\97\92\98\124\108\105\110\101\115\116\121\108\101\92\98\124\108\105\110\101\115\116\121\108\92\98\124\108\105\110\101\115\116\121\92\98\124\108\105\110\101\115\116\92\98\124\108\105\110\101\115\92\98\124\108\105\110\101\92\98\124\108\105\110\92\98\124\108\105\92\98\124\108\115\92\98\124\108\111\97\100\112\97\116\104\92\98\124\108\111\97\100\112\97\116\92\98\124\108\111\97\100\112\97\92\98\124\108\111\97\100\112\92\98\124\108\111\97\100\92\98\124\108\111\97\92\98\124\108\111\99\97\108\101\92\98\124\108\111\99\97\108\92\98\124\108\111\99\97\92\98\124\108\111\99\92\98\124\108\111\103\115\99\97\108\101\92\98\124\108\111\103\115\99\97\108\92\98\124\108\111\103\115\99\97\92\98\124\108\111\103\115\99\92\98\124\108\111\103\115\92\98\124\108\111\103\92\98\124\109\97\99\114\111\115\92\98\124\109\97\99\114\111\92\98\124\109\97\99\114\92\98\124\109\97\99\92\98\124\109\97\112\112\105\110\103\92\98\124\109\97\112\112\105\110\92\98\124\109\97\112\112\105\92\98\124\109\97\112\112\92\98\124\109\97\112\92\98\124\109\97\112\112\105\110\103\51\100\92\98\124\109\97\112\112\105\110\103\51\92\98\124\109\97\112\112\105\110\103\92\98\124\109\97\112\112\105\110\92\98\124\109\97\112\112\105\92\98\124\109\97\112\112\92\98\124\109\97\112\92\98\124\109\97\114\103\105\110\92\98\124\109\97\114\103\105\92\98\124\109\97\114\103\92\98\124\109\97\114\92\98\124\108\109\97\114\103\105\110\92\98\124\108\109\97\114\103\105\92\98\124\108\109\97\114\103\92\98\124\108\109\97\114\92\98\124\114\109\97\114\103\105\110\92\98\124\114\109\97\114\103\105\92\98\124\114\109\97\114\103\92\98\124\114\109\97\114\92\98\124\116\109\97\114\103\105\110\92\98\124\116\109\97\114\103\105\92\98\124\116\109\97\114\103\92\98\124\116\109\97\114\92\98\124\98\109\97\114\103\105\110\92\98\124\98\109\97\114\103\105\92\98\124\98\109\97\114\103\92\98\124\98\109\97\114\92\98\124\109\111\117\115\101\92\98\124\109\111\117\115\92\98\124\109\111\117\92\98\124\109\111\92\98\124\109\117\108\116\105\112\108\111\116\92\98\124\109\117\108\116\105\112\108\111\92\98\124\109\117\108\116\105\112\108\92\98\124\109\117\108\116\105\112\92\98\124\109\117\108\116\105\92\98\124\109\120\116\105\99\115\92\98\124\109\120\116\105\99\92\98\124\109\120\116\105\92\98\124\109\120\116\92\98\124\110\111\109\120\116\105\99\115\92\98\124\110\111\109\120\116\105\99\92\98\124\110\111\109\120\116\105\92\98\124\110\111\109\120\116\92\98\124\109\120\50\116\105\99\115\92\98\124\109\120\50\116\105\99\92\98\124\109\120\50\116\105\92\98\124\109\120\50\116\92\98\124\110\111\109\120\50\116\105\99\115\92\98\124\110\111\109\120\50\116\105\99\92\98\124\110\111\109\120\50\116\105\92\98\124\110\111\109\120\50\116\92\98\124\109\121\116\105\99\115\92\98\124\109\121\116\105\99\92\98\124\109\121\116\105\92\98\124\109\121\116\92\98\124\110\111\109\121\116\105\99\115\92\98\124\110\111\109\121\116\105\99\92\98\124\110\111\109\121\116\105\92\98\124\110\111\109\121\116\92\98\124\109\121\50\116\105\99\115\92\98\124\109\121\50\116\105\99\92\98\124\109\121\50\116\105\92\98\124\109\121\50\116\92\98\124\110\111\109\121\50\116\105\99\115\92\98\124\110\111\109\121\50\116\105\99\92\98\124\110\111\109\121\50\116\105\92\98\124\110\111\109\121\50\116\92\98\124\109\122\116\105\99\115\92\98\124\109\122\116\105\99\92\98\124\109\122\116\105\92\98\124\109\122\116\92\98\124\110\111\109\122\116\105\99\115\92\98\124\110\111\109\122\116\105\99\92\98\124\110\111\109\122\116\105\92\98\124\110\111\109\122\116\92\98\124\109\99\98\116\105\99\115\92\98\124\109\99\98\116\105\99\92\98\124\109\99\98\116\105\92\98\124\109\99\98\116\92\98\124\110\111\109\99\98\116\105\99\115\92\98\124\110\111\109\99\98\116\105\99\92\98\124\110\111\109\99\98\116\105\92\98\124\110\111\109\99\98\116\92\98\124\111\102\102\115\101\116\115\92\98\124\111\102\102\115\101\116\92\98\124\111\102\102\115\101\92\98\124\111\102\102\115\92\98\124\111\102\102\92\98\124\111\102\92\98\124\111\114\105\103\105\110\92\98\124\111\114\105\103\105\92\98\124\111\114\105\103\92\98\124\111\114\105\92\98\124\111\114\92\98\124\111\117\116\112\117\116\92\98\124\111\117\116\112\117\92\98\124\111\117\116\112\92\98\124\111\117\116\92\98\124\111\117\92\98\124\111\92\98\124\112\97\114\97\109\101\116\114\105\99\92\98\124\112\97\114\97\109\101\116\114\105\92\98\124\112\97\114\97\109\101\116\114\92\98\124\112\97\114\97\109\101\116\92\98\124\112\97\114\97\109\101\92\98\124\112\97\114\97\109\92\98\124\112\97\114\97\92\98\124\112\97\114\92\98\124\112\97\92\98\124\112\109\51\100\92\98\124\112\109\51\92\98\124\112\109\92\98\124\112\97\108\101\116\116\101\92\98\124\112\97\108\101\116\116\92\98\124\112\97\108\101\116\92\98\124\112\97\108\101\92\98\124\112\97\108\92\98\124\99\111\108\111\114\98\111\120\92\98\124\99\111\108\111\114\98\111\92\98\124\99\111\108\111\114\98\92\98\124\112\108\111\116\92\98\124\112\108\111\92\98\124\112\108\92\98\124\112\92\98\124\112\111\105\110\116\115\105\122\101\92\98\124\112\111\105\110\116\115\105\122\92\98\124\112\111\105\110\116\115\105\92\98\124\112\111\105\110\116\115\92\98\124\112\111\105\110\116\92\98\124\112\111\105\110\92\98\124\112\111\105\92\98\124\112\111\108\97\114\92\98\124\112\111\108\97\92\98\124\112\111\108\92\98\124\112\114\105\110\116\92\98\124\112\114\105\110\92\98\124\112\114\105\92\98\124\112\114\92\98\124\111\98\106\101\99\116\92\98\124\111\98\106\101\99\92\98\124\111\98\106\101\92\98\124\111\98\106\92\98\124\115\97\109\112\108\101\115\92\98\124\115\97\109\112\108\101\92\98\124\115\97\109\112\108\92\98\124\115\97\109\112\92\98\124\115\97\109\92\98\124\115\97\92\98\124\115\105\122\101\92\98\124\115\105\122\92\98\124\115\105\92\98\124\115\116\121\108\101\92\98\124\115\116\121\108\92\98\124\115\116\121\92\98\124\115\116\92\98\124\115\117\114\102\97\99\101\92\98\124\115\117\114\102\97\99\92\98\124\115\117\114\102\97\92\98\124\115\117\114\102\92\98\124\115\117\114\92\98\124\115\117\92\98\124\116\97\98\108\101\92\98\124\116\101\114\109\105\110\97\108\92\98\124\116\101\114\109\105\110\97\92\98\124\116\101\114\109\105\110\92\98\124\116\101\114\109\105\92\98\124\116\101\114\109\92\98\124\116\101\114\92\98\124\116\101\92\98\124\116\92\98\124\116\101\114\109\111\112\116\105\111\110\115\92\98\124\116\101\114\109\111\112\116\105\111\110\92\98\124\116\101\114\109\111\112\116\105\111\92\98\124\116\101\114\109\111\112\116\105\92\98\124\116\101\114\109\111\112\116\92\98\124\116\101\114\109\111\112\92\98\124\116\101\114\109\111\92\98\124\116\105\99\115\92\98\124\116\105\99\92\98\124\116\105\92\98\124\116\105\99\115\99\97\108\101\92\98\124\116\105\99\115\99\97\108\92\98\124\116\105\99\115\99\97\92\98\124\116\105\99\115\99\92\98\124\116\105\99\115\108\101\118\101\108\92\98\124\116\105\99\115\108\101\118\101\92\98\124\116\105\99\115\108\101\118\92\98\124\116\105\99\115\108\101\92\98\124\116\105\99\115\108\92\98\124\116\105\109\101\102\109\116\92\98\124\116\105\109\101\102\109\92\98\124\116\105\109\101\102\92\98\124\116\105\109\101\115\116\97\109\112\92\98\124\116\105\109\101\115\116\97\109\92\98\124\116\105\109\101\115\116\97\92\98\124\116\105\109\101\115\116\92\98\124\116\105\109\101\115\92\98\124\116\105\109\101\92\98\124\116\105\109\92\98\124\116\105\116\108\101\92\98\124\116\105\116\108\92\98\124\116\105\116\92\98\124\118\97\114\105\97\98\108\101\115\92\98\124\118\97\114\105\97\98\108\101\92\98\124\118\97\114\105\97\98\108\92\98\124\118\97\114\105\97\98\92\98\124\118\97\114\105\97\92\98\124\118\97\114\105\92\98\124\118\97\114\92\98\124\118\97\92\98\124\118\92\98\124\118\101\114\115\105\111\110\92\98\124\118\101\114\115\105\111\92\98\124\118\101\114\115\105\92\98\124\118\101\114\115\92\98\124\118\101\114\92\98\124\118\101\92\98\124\118\105\101\119\92\98\124\118\105\101\92\98\124\118\105\92\98\124\120\121\112\108\97\110\101\92\98\124\120\121\112\108\97\110\92\98\124\120\121\112\108\97\92\98\124\120\121\112\108\92\98\124\120\121\112\92\98\124\120\100\97\116\97\92\98\124\120\100\97\116\92\98\124\120\100\97\92\98\124\120\50\100\97\116\97\92\98\124\120\50\100\97\116\92\98\124\120\50\100\97\92\98\124\121\100\97\116\97\92\98\124\121\100\97\116\92\98\124\121\100\97\92\98\124\121\50\100\97\116\97\92\98\124\121\50\100\97\116\92\98\124\121\50\100\97\92\98\124\122\100\97\116\97\92\98\124\122\100\97\116\92\98\124\122\100\97\92\98\124\99\98\100\97\116\97\92\98\124\99\98\100\97\116\92\98\124\99\98\100\97\92\98\124\120\108\97\98\101\108\92\98\124\120\108\97\98\101\92\98\124\120\108\97\98\92\98\124\120\108\97\92\98\124\120\108\92\98\124\120\50\108\97\98\101\108\92\98\124\120\50\108\97\98\101\92\98\124\120\50\108\97\98\92\98\124\120\50\108\97\92\98\124\120\50\108\92\98\124\121\108\97\98\101\108\92\98\124\121\108\97\98\101\92\98\124\121\108\97\98\92\98\124\121\108\97\92\98\124\121\108\92\98\124\121\50\108\97\98\101\108\92\98\124\121\50\108\97\98\101\92\98\124\121\50\108\97\98\92\98\124\121\50\108\97\92\98\124\121\50\108\92\98\124\122\108\97\98\101\108\92\98\124\122\108\97\98\101\92\98\124\122\108\97\98\92\98\124\122\108\97\92\98\124\122\108\92\98\124\99\98\108\97\98\101\108\92\98\124\99\98\108\97\98\101\92\98\124\99\98\108\97\98\92\98\124\99\98\108\97\92\98\124\99\98\108\92\98\124\120\116\105\99\115\92\98\124\120\116\105\99\92\98\124\120\116\105\92\98\124\110\111\120\116\105\99\115\92\98\124\110\111\120\116\105\99\92\98\124\110\111\120\116\105\92\98\124\120\50\116\105\99\115\92\98\124\120\50\116\105\99\92\98\124\120\50\116\105\92\98\124\110\111\120\50\116\105\99\115\92\98\124\110\111\120\50\116\105\99\92\98\124\110\111\120\50\116\105\92\98\124\121\116\105\99\115\92\98\124\121\116\105\99\92\98\124\121\116\105\92\98\124\110\111\121\116\105\99\115\92\98\124\110\111\121\116\105\99\92\98\124\110\111\121\116\105\92\98\124\121\50\116\105\99\115\92\98\124\121\50\116\105\99\92\98\124\121\50\116\105\92\98\124\110\111\121\50\116\105\99\115\92\98\124\110\111\121\50\116\105\99\92\98\124\110\111\121\50\116\105\92\98\124\122\116\105\99\115\92\98\124\122\116\105\99\92\98\124\122\116\105\92\98\124\110\111\122\116\105\99\115\92\98\124\110\111\122\116\105\99\92\98\124\110\111\122\116\105\92\98\124\99\98\116\105\99\115\92\98\124\99\98\116\105\99\92\98\124\99\98\116\105\92\98\124\110\111\99\98\116\105\99\115\92\98\124\110\111\99\98\116\105\99\92\98\124\110\111\99\98\116\105\92\98\124\120\100\116\105\99\115\92\98\124\120\100\116\105\99\92\98\124\120\100\116\105\92\98\124\110\111\120\100\116\105\99\115\92\98\124\110\111\120\100\116\105\99\92\98\124\110\111\120\100\116\105\92\98\124\120\50\100\116\105\99\115\92\98\124\120\50\100\116\105\99\92\98\124\120\50\100\116\105\92\98\124\110\111\120\50\100\116\105\99\115\92\98\124\110\111\120\50\100\116\105\99\92\98\124\110\111\120\50\100\116\105\92\98\124\121\100\116\105\99\115\92\98\124\121\100\116\105\99\92\98\124\121\100\116\105\92\98\124\110\111\121\100\116\105\99\115\92\98\124\110\111\121\100\116\105\99\92\98\124\110\111\121\100\116\105\92\98\124\121\50\100\116\105\99\115\92\98\124\121\50\100\116\105\99\92\98\124\121\50\100\116\105\92\98\124\110\111\121\50\100\116\105\99\115\92\98\124\110\111\121\50\100\116\105\99\92\98\124\110\111\121\50\100\116\105\92\98\124\122\100\116\105\99\115\92\98\124\122\100\116\105\99\92\98\124\122\100\116\105\92\98\124\110\111\122\100\116\105\99\115\92\98\124\110\111\122\100\116\105\99\92\98\124\110\111\122\100\116\105\92\98\124\99\98\100\116\105\99\115\92\98\124\99\98\100\116\105\99\92\98\124\99\98\100\116\105\92\98\124\110\111\99\98\100\116\105\99\115\92\98\124\110\111\99\98\100\116\105\99\92\98\124\110\111\99\98\100\116\105\92\98\124\120\109\116\105\99\115\92\98\124\120\109\116\105\99\92\98\124\120\109\116\105\92\98\124\110\111\120\109\116\105\99\115\92\98\124\110\111\120\109\116\105\99\92\98\124\110\111\120\109\116\105\92\98\124\120\50\109\116\105\99\115\92\98\124\120\50\109\116\105\99\92\98\124\120\50\109\116\105\92\98\124\110\111\120\50\109\116\105\99\115\92\98\124\110\111\120\50\109\116\105\99\92\98\124\110\111\120\50\109\116\105\92\98\124\121\109\116\105\99\115\92\98\124\121\109\116\105\99\92\98\124\121\109\116\105\92\98\124\110\111\121\109\116\105\99\115\92\98\124\110\111\121\109\116\105\99\92\98\124\110\111\121\109\116\105\92\98\124\121\50\109\116\105\99\115\92\98\124\121\50\109\116\105\99\92\98\124\121\50\109\116\105\92\98\124\110\111\121\50\109\116\105\99\115\92\98\124\110\111\121\50\109\116\105\99\92\98\124\110\111\121\50\109\116\105\92\98\124\122\109\116\105\99\115\92\98\124\122\109\116\105\99\92\98\124\122\109\116\105\92\98\124\110\111\122\109\116\105\99\115\92\98\124\110\111\122\109\116\105\99\92\98\124\110\111\122\109\116\105\92\98\124\99\98\109\116\105\99\115\92\98\124\99\98\109\116\105\99\92\98\124\99\98\109\116\105\92\98\124\110\111\99\98\109\116\105\99\115\92\98\124\110\111\99\98\109\116\105\99\92\98\124\110\111\99\98\109\116\105\92\98\124\120\114\97\110\103\101\92\98\124\120\114\97\110\103\92\98\124\120\114\97\110\92\98\124\120\114\97\92\98\124\120\114\92\98\124\120\50\114\97\110\103\101\92\98\124\120\50\114\97\110\103\92\98\124\120\50\114\97\110\92\98\124\120\50\114\97\92\98\124\120\50\114\92\98\124\121\114\97\110\103\101\92\98\124\121\114\97\110\103\92\98\124\121\114\97\110\92\98\124\121\114\97\92\98\124\121\114\92\98\124\121\50\114\97\110\103\101\92\98\124\121\50\114\97\110\103\92\98\124\121\50\114\97\110\92\98\124\121\50\114\97\92\98\124\121\50\114\92\98\124\122\114\97\110\103\101\92\98\124\122\114\97\110\103\92\98\124\122\114\97\110\92\98\124\122\114\97\92\98\124\122\114\92\98\124\99\98\114\97\110\103\101\92\98\124\99\98\114\97\110\103\92\98\124\99\98\114\97\110\92\98\124\99\98\114\97\92\98\124\99\98\114\92\98\124\114\114\97\110\103\101\92\98\124\114\114\97\110\103\92\98\124\114\114\97\110\92\98\124\114\114\97\92\98\124\114\114\92\98\124\116\114\97\110\103\101\92\98\124\116\114\97\110\103\92\98\124\116\114\97\110\92\98\124\116\114\97\92\98\124\116\114\92\98\124\117\114\97\110\103\101\92\98\124\117\114\97\110\103\92\98\124\117\114\97\110\92\98\124\117\114\97\92\98\124\117\114\92\98\124\118\114\97\110\103\101\92\98\124\118\114\97\110\103\92\98\124\118\114\97\110\92\98\124\118\114\97\92\98\124\118\114\92\98\124\120\122\101\114\111\97\120\105\115\92\98\124\120\122\101\114\111\97\120\105\92\98\124\120\122\101\114\111\97\120\92\98\124\120\122\101\114\111\97\92\98\124\120\50\122\101\114\111\97\120\105\115\92\98\124\120\50\122\101\114\111\97\120\105\92\98\124\120\50\122\101\114\111\97\120\92\98\124\120\50\122\101\114\111\97\92\98\124\121\122\101\114\111\97\120\105\115\92\98\124\121\122\101\114\111\97\120\105\92\98\124\121\122\101\114\111\97\120\92\98\124\121\122\101\114\111\97\92\98\124\121\50\122\101\114\111\97\120\105\115\92\98\124\121\50\122\101\114\111\97\120\105\92\98\124\121\50\122\101\114\111\97\120\92\98\124\121\50\122\101\114\111\97\92\98\124\122\122\101\114\111\97\120\105\115\92\98\124\122\122\101\114\111\97\120\105\92\98\124\122\122\101\114\111\97\120\92\98\124\122\122\101\114\111\97\92\98\124\122\101\114\111\97\120\105\115\92\98\124\122\101\114\111\97\120\105\92\98\124\122\101\114\111\97\120\92\98\124\122\101\114\111\97\92\98\124\122\101\114\111\92\98\124\122\101\114\92\98\124\122\101\92\98\124\122\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110") Pop+    , tokNext "all\\b|al\\b|a\\b|angles\\b|angle\\b|angl\\b|ang\\b|an\\b|arrow\\b|arro\\b|arr\\b|ar\\b|autoscale\\b|autoscal\\b|autosca\\b|autosc\\b|autos\\b|auto\\b|aut\\b|au\\b|bars\\b|bar\\b|ba\\b|b\\b|border\\b|borde\\b|bord\\b|bor\\b|boxwidth\\b|boxwidt\\b|boxwid\\b|boxwi\\b|boxw\\b|box\\b|clabel\\b|clabe\\b|clab\\b|cla\\b|cl\\b|clip\\b|cli\\b|cl\\b|c\\b|cntrparam\\b|cntrpara\\b|cntrpar\\b|cntrpa\\b|cntrp\\b|cntr\\b|cnt\\b|cn\\b|contour\\b|contou\\b|conto\\b|cont\\b|con\\b|co\\b|data\\b|dat\\b|da\\b|datafile\\b|datafil\\b|datafi\\b|dataf\\b|data\\b|dgrid3d\\b|dgrid3\\b|dgrid\\b|dgri\\b|dgr\\b|dg\\b|dummy\\b|dumm\\b|dum\\b|du\\b|encoding\\b|encodin\\b|encodi\\b|encod\\b|enco\\b|enc\\b|decimalsign\\b|decimalsig\\b|decimalsi\\b|decimals\\b|decimal\\b|decima\\b|decim\\b|deci\\b|dec\\b|fit\\b|fontpath\\b|fontpat\\b|fontpa\\b|fontp\\b|font\\b|format\\b|forma\\b|form\\b|for\\b|fo\\b|function\\b|functio\\b|functi\\b|funct\\b|func\\b|fun\\b|fu\\b|functions\\b|function\\b|functio\\b|functi\\b|funct\\b|func\\b|fun\\b|fu\\b|grid\\b|gri\\b|gr\\b|g\\b|hidden3d\\b|hidden3\\b|hidden\\b|hidde\\b|hidd\\b|hid\\b|historysize\\b|historysiz\\b|historysi\\b|historys\\b|history\\b|histor\\b|histo\\b|hist\\b|his\\b|isosamples\\b|isosample\\b|isosampl\\b|isosamp\\b|isosam\\b|isosa\\b|isos\\b|iso\\b|is\\b|key\\b|ke\\b|k\\b|keytitle\\b|keytitl\\b|keytit\\b|keyti\\b|keyt\\b|label\\b|labe\\b|lab\\b|la\\b|linestyle\\b|linestyl\\b|linesty\\b|linest\\b|lines\\b|line\\b|lin\\b|li\\b|ls\\b|loadpath\\b|loadpat\\b|loadpa\\b|loadp\\b|load\\b|loa\\b|locale\\b|local\\b|loca\\b|loc\\b|logscale\\b|logscal\\b|logsca\\b|logsc\\b|logs\\b|log\\b|macros\\b|macro\\b|macr\\b|mac\\b|mapping\\b|mappin\\b|mappi\\b|mapp\\b|map\\b|mapping3d\\b|mapping3\\b|mapping\\b|mappin\\b|mappi\\b|mapp\\b|map\\b|margin\\b|margi\\b|marg\\b|mar\\b|lmargin\\b|lmargi\\b|lmarg\\b|lmar\\b|rmargin\\b|rmargi\\b|rmarg\\b|rmar\\b|tmargin\\b|tmargi\\b|tmarg\\b|tmar\\b|bmargin\\b|bmargi\\b|bmarg\\b|bmar\\b|mouse\\b|mous\\b|mou\\b|mo\\b|multiplot\\b|multiplo\\b|multipl\\b|multip\\b|multi\\b|mxtics\\b|mxtic\\b|mxti\\b|mxt\\b|nomxtics\\b|nomxtic\\b|nomxti\\b|nomxt\\b|mx2tics\\b|mx2tic\\b|mx2ti\\b|mx2t\\b|nomx2tics\\b|nomx2tic\\b|nomx2ti\\b|nomx2t\\b|mytics\\b|mytic\\b|myti\\b|myt\\b|nomytics\\b|nomytic\\b|nomyti\\b|nomyt\\b|my2tics\\b|my2tic\\b|my2ti\\b|my2t\\b|nomy2tics\\b|nomy2tic\\b|nomy2ti\\b|nomy2t\\b|mztics\\b|mztic\\b|mzti\\b|mzt\\b|nomztics\\b|nomztic\\b|nomzti\\b|nomzt\\b|mcbtics\\b|mcbtic\\b|mcbti\\b|mcbt\\b|nomcbtics\\b|nomcbtic\\b|nomcbti\\b|nomcbt\\b|offsets\\b|offset\\b|offse\\b|offs\\b|off\\b|of\\b|origin\\b|origi\\b|orig\\b|ori\\b|or\\b|output\\b|outpu\\b|outp\\b|out\\b|ou\\b|o\\b|parametric\\b|parametri\\b|parametr\\b|paramet\\b|parame\\b|param\\b|para\\b|par\\b|pa\\b|pm3d\\b|pm3\\b|pm\\b|palette\\b|palett\\b|palet\\b|pale\\b|pal\\b|colorbox\\b|colorbo\\b|colorb\\b|plot\\b|plo\\b|pl\\b|p\\b|pointsize\\b|pointsiz\\b|pointsi\\b|points\\b|point\\b|poin\\b|poi\\b|polar\\b|pola\\b|pol\\b|print\\b|prin\\b|pri\\b|pr\\b|object\\b|objec\\b|obje\\b|obj\\b|samples\\b|sample\\b|sampl\\b|samp\\b|sam\\b|sa\\b|size\\b|siz\\b|si\\b|style\\b|styl\\b|sty\\b|st\\b|surface\\b|surfac\\b|surfa\\b|surf\\b|sur\\b|su\\b|table\\b|terminal\\b|termina\\b|termin\\b|termi\\b|term\\b|ter\\b|te\\b|t\\b|termoptions\\b|termoption\\b|termoptio\\b|termopti\\b|termopt\\b|termop\\b|termo\\b|tics\\b|tic\\b|ti\\b|ticscale\\b|ticscal\\b|ticsca\\b|ticsc\\b|ticslevel\\b|ticsleve\\b|ticslev\\b|ticsle\\b|ticsl\\b|timefmt\\b|timefm\\b|timef\\b|timestamp\\b|timestam\\b|timesta\\b|timest\\b|times\\b|time\\b|tim\\b|title\\b|titl\\b|tit\\b|variables\\b|variable\\b|variabl\\b|variab\\b|varia\\b|vari\\b|var\\b|va\\b|v\\b|version\\b|versio\\b|versi\\b|vers\\b|ver\\b|ve\\b|view\\b|vie\\b|vi\\b|xyplane\\b|xyplan\\b|xypla\\b|xypl\\b|xyp\\b|xdata\\b|xdat\\b|xda\\b|x2data\\b|x2dat\\b|x2da\\b|ydata\\b|ydat\\b|yda\\b|y2data\\b|y2dat\\b|y2da\\b|zdata\\b|zdat\\b|zda\\b|cbdata\\b|cbdat\\b|cbda\\b|xlabel\\b|xlabe\\b|xlab\\b|xla\\b|xl\\b|x2label\\b|x2labe\\b|x2lab\\b|x2la\\b|x2l\\b|ylabel\\b|ylabe\\b|ylab\\b|yla\\b|yl\\b|y2label\\b|y2labe\\b|y2lab\\b|y2la\\b|y2l\\b|zlabel\\b|zlabe\\b|zlab\\b|zla\\b|zl\\b|cblabel\\b|cblabe\\b|cblab\\b|cbla\\b|cbl\\b|xtics\\b|xtic\\b|xti\\b|noxtics\\b|noxtic\\b|noxti\\b|x2tics\\b|x2tic\\b|x2ti\\b|nox2tics\\b|nox2tic\\b|nox2ti\\b|ytics\\b|ytic\\b|yti\\b|noytics\\b|noytic\\b|noyti\\b|y2tics\\b|y2tic\\b|y2ti\\b|noy2tics\\b|noy2tic\\b|noy2ti\\b|ztics\\b|ztic\\b|zti\\b|noztics\\b|noztic\\b|nozti\\b|cbtics\\b|cbtic\\b|cbti\\b|nocbtics\\b|nocbtic\\b|nocbti\\b|xdtics\\b|xdtic\\b|xdti\\b|noxdtics\\b|noxdtic\\b|noxdti\\b|x2dtics\\b|x2dtic\\b|x2dti\\b|nox2dtics\\b|nox2dtic\\b|nox2dti\\b|ydtics\\b|ydtic\\b|ydti\\b|noydtics\\b|noydtic\\b|noydti\\b|y2dtics\\b|y2dtic\\b|y2dti\\b|noy2dtics\\b|noy2dtic\\b|noy2dti\\b|zdtics\\b|zdtic\\b|zdti\\b|nozdtics\\b|nozdtic\\b|nozdti\\b|cbdtics\\b|cbdtic\\b|cbdti\\b|nocbdtics\\b|nocbdtic\\b|nocbdti\\b|xmtics\\b|xmtic\\b|xmti\\b|noxmtics\\b|noxmtic\\b|noxmti\\b|x2mtics\\b|x2mtic\\b|x2mti\\b|nox2mtics\\b|nox2mtic\\b|nox2mti\\b|ymtics\\b|ymtic\\b|ymti\\b|noymtics\\b|noymtic\\b|noymti\\b|y2mtics\\b|y2mtic\\b|y2mti\\b|noy2mtics\\b|noy2mtic\\b|noy2mti\\b|zmtics\\b|zmtic\\b|zmti\\b|nozmtics\\b|nozmtic\\b|nozmti\\b|cbmtics\\b|cbmtic\\b|cbmti\\b|nocbmtics\\b|nocbmtic\\b|nocbmti\\b|xrange\\b|xrang\\b|xran\\b|xra\\b|xr\\b|x2range\\b|x2rang\\b|x2ran\\b|x2ra\\b|x2r\\b|yrange\\b|yrang\\b|yran\\b|yra\\b|yr\\b|y2range\\b|y2rang\\b|y2ran\\b|y2ra\\b|y2r\\b|zrange\\b|zrang\\b|zran\\b|zra\\b|zr\\b|cbrange\\b|cbrang\\b|cbran\\b|cbra\\b|cbr\\b|rrange\\b|rrang\\b|rran\\b|rra\\b|rr\\b|trange\\b|trang\\b|tran\\b|tra\\b|tr\\b|urange\\b|urang\\b|uran\\b|ura\\b|ur\\b|vrange\\b|vrang\\b|vran\\b|vra\\b|vr\\b|xzeroaxis\\b|xzeroaxi\\b|xzeroax\\b|xzeroa\\b|x2zeroaxis\\b|x2zeroaxi\\b|x2zeroax\\b|x2zeroa\\b|yzeroaxis\\b|yzeroaxi\\b|yzeroax\\b|yzeroa\\b|y2zeroaxis\\b|y2zeroaxi\\b|y2zeroax\\b|y2zeroa\\b|zzeroaxis\\b|zzeroaxi\\b|zzeroax\\b|zzeroa\\b|zeroaxis\\b|zeroaxi\\b|zeroax\\b|zeroa\\b|zero\\b|zer\\b|ze\\b|z\\b" (Arbitrary "Name" :. Arbitrary "Builtin") Pop     ]  genericargs' :: TokenMatcher genericargs' =     [ anyOf noargs'-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo dqstring')-    , tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo sqstring')-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\41\91\101\69\93\91\43\45\93\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\45\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\44\46\126\33\37\94\38\42\43\61\124\63\58\60\62\47\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\123\125\40\41\92\91\92\93\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\101\113\124\110\101\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")-    , tok "\64\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo dqstring')+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo sqstring')+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "-?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[,.\126!%^&*+=|?:<>/-]" (Arbitrary "Operator")+    , tok "[{}()\\[\\]]" (Arbitrary "Punctuation")+    , tok "(eq|ne)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "([a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "@[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\\\\\\n" (Arbitrary "Text")     ]  noargs' :: TokenMatcher noargs' =     [ anyOf whitespace'-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tokNext "\92\110" (Arbitrary "\84\101\120\116") Pop+    , tokNext ";" (Arbitrary "Punctuation") Pop+    , tokNext "\\n" (Arbitrary "Text") Pop     ]  save' :: TokenMatcher save' =-    [ tok "\102\117\110\99\116\105\111\110\115\92\98\124\102\117\110\99\116\105\111\110\92\98\124\102\117\110\99\116\105\111\92\98\124\102\117\110\99\116\105\92\98\124\102\117\110\99\116\92\98\124\102\117\110\99\92\98\124\102\117\110\92\98\124\102\117\92\98\124\102\92\98\124\115\101\116\92\98\124\115\101\92\98\124\115\92\98\124\116\101\114\109\105\110\97\108\92\98\124\116\101\114\109\105\110\97\92\98\124\116\101\114\109\105\110\92\98\124\116\101\114\109\105\92\98\124\116\101\114\109\92\98\124\116\101\114\92\98\124\116\101\92\98\124\116\92\98\124\118\97\114\105\97\98\108\101\115\92\98\124\118\97\114\105\97\98\108\101\92\98\124\118\97\114\105\97\98\108\92\98\124\118\97\114\105\97\98\92\98\124\118\97\114\105\97\92\98\124\118\97\114\105\92\98\124\118\97\114\92\98\124\118\97\92\98\124\118\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tok "functions\\b|function\\b|functio\\b|functi\\b|funct\\b|func\\b|fun\\b|fu\\b|f\\b|set\\b|se\\b|s\\b|terminal\\b|termina\\b|termin\\b|termi\\b|term\\b|ter\\b|te\\b|t\\b|variables\\b|variable\\b|variabl\\b|variab\\b|varia\\b|vari\\b|var\\b|va\\b|v\\b" (Arbitrary "Name" :. Arbitrary "Builtin")     , anyOf genericargs'     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tokNext "\98\105\110\100\92\98\124\98\105\110\92\98\124\98\105\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo bind')-    , tokNext "\101\120\105\116\92\98\124\101\120\105\92\98\124\101\120\92\98\124\113\117\105\116\92\98\124\113\117\105\92\98\124\113\117\92\98\124\113\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo quit')-    , tokNext "\102\105\116\92\98\124\102\105\92\98\124\102\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo fit')-    , tokNext "\40\105\102\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo if')-    , tok "\101\108\115\101\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\112\97\117\115\101\92\98\124\112\97\117\115\92\98\124\112\97\117\92\98\124\112\97\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo pause')-    , tokNext "\112\108\111\116\92\98\124\112\108\111\92\98\124\112\108\92\98\124\112\92\98\124\114\101\112\108\111\116\92\98\124\114\101\112\108\111\92\98\124\114\101\112\108\92\98\124\114\101\112\92\98\124\115\112\108\111\116\92\98\124\115\112\108\111\92\98\124\115\112\108\92\98\124\115\112\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo plot')-    , tokNext "\115\97\118\101\92\98\124\115\97\118\92\98\124\115\97\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo save')-    , tokNext "\115\101\116\92\98\124\115\101\92\98" (Arbitrary "\75\101\121\119\111\114\100") (DoAll [(GoTo genericargs'), (GoTo optionarg')])-    , tokNext "\115\104\111\119\92\98\124\115\104\111\92\98\124\115\104\92\98\124\117\110\115\101\116\92\98\124\117\110\115\101\92\98\124\117\110\115\92\98" (Arbitrary "\75\101\121\119\111\114\100") (DoAll [(GoTo noargs'), (GoTo optionarg')])-    , tokNext "\108\111\119\101\114\92\98\124\108\111\119\101\92\98\124\108\111\119\92\98\124\114\97\105\115\101\92\98\124\114\97\105\115\92\98\124\114\97\105\92\98\124\114\97\92\98\124\99\97\108\108\92\98\124\99\97\108\92\98\124\99\97\92\98\124\99\100\92\98\124\99\108\101\97\114\92\98\124\99\108\101\97\92\98\124\99\108\101\92\98\124\99\108\92\98\124\104\101\108\112\92\98\124\104\101\108\92\98\124\104\101\92\98\124\104\92\98\124\92\63\92\98\124\104\105\115\116\111\114\121\92\98\124\104\105\115\116\111\114\92\98\124\104\105\115\116\111\92\98\124\104\105\115\116\92\98\124\104\105\115\92\98\124\104\105\92\98\124\108\111\97\100\92\98\124\108\111\97\92\98\124\108\111\92\98\124\108\92\98\124\112\114\105\110\116\92\98\124\112\114\105\110\92\98\124\112\114\105\92\98\124\112\114\92\98\124\112\119\100\92\98\124\114\101\114\101\97\100\92\98\124\114\101\114\101\97\92\98\124\114\101\114\101\92\98\124\114\101\114\92\98\124\114\101\92\98\124\114\101\115\101\116\92\98\124\114\101\115\101\92\98\124\114\101\115\92\98\124\115\99\114\101\101\110\100\117\109\112\92\98\124\115\99\114\101\101\110\100\117\109\92\98\124\115\99\114\101\101\110\100\117\92\98\124\115\99\114\101\101\110\100\92\98\124\115\99\114\101\101\110\92\98\124\115\99\114\101\101\92\98\124\115\99\114\101\92\98\124\115\99\114\92\98\124\115\104\101\108\108\92\98\124\115\104\101\108\92\98\124\115\104\101\92\98\124\115\121\115\116\101\109\92\98\124\115\121\115\116\101\92\98\124\115\121\115\116\92\98\124\115\121\115\92\98\124\115\121\92\98\124\117\112\100\97\116\101\92\98\124\117\112\100\97\116\92\98\124\117\112\100\97\92\98\124\117\112\100\92\98\124\117\112\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo genericargs')-    , tokNext "\112\119\100\92\98\124\114\101\114\101\97\100\92\98\124\114\101\114\101\97\92\98\124\114\101\114\101\92\98\124\114\101\114\92\98\124\114\101\92\98\124\114\101\115\101\116\92\98\124\114\101\115\101\92\98\124\114\101\115\92\98\124\115\99\114\101\101\110\100\117\109\112\92\98\124\115\99\114\101\101\110\100\117\109\92\98\124\115\99\114\101\101\110\100\117\92\98\124\115\99\114\101\101\110\100\92\98\124\115\99\114\101\101\110\92\98\124\115\99\114\101\101\92\98\124\115\99\114\101\92\98\124\115\99\114\92\98\124\115\104\101\108\108\92\98\124\115\104\101\108\92\98\124\115\104\101\92\98\124\116\101\115\116\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo noargs')-    , tokNext "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\61\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")]) (GoTo genericargs')-    , tokNext "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\92\40\46\42\63\92\41\92\115\42\41\40\61\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")]) (GoTo genericargs')-    , tok "\64\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\59" (Arbitrary "\75\101\121\119\111\114\100")+    , tokNext "bind\\b|bin\\b|bi\\b" (Arbitrary "Keyword") (GoTo bind')+    , tokNext "exit\\b|exi\\b|ex\\b|quit\\b|qui\\b|qu\\b|q\\b" (Arbitrary "Keyword") (GoTo quit')+    , tokNext "fit\\b|fi\\b|f\\b" (Arbitrary "Keyword") (GoTo fit')+    , tokNext "(if)(\\s*)(\\()" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Punctuation")]) (GoTo if')+    , tok "else\\b" (Arbitrary "Keyword")+    , tokNext "pause\\b|paus\\b|pau\\b|pa\\b" (Arbitrary "Keyword") (GoTo pause')+    , tokNext "plot\\b|plo\\b|pl\\b|p\\b|replot\\b|replo\\b|repl\\b|rep\\b|splot\\b|splo\\b|spl\\b|sp\\b" (Arbitrary "Keyword") (GoTo plot')+    , tokNext "save\\b|sav\\b|sa\\b" (Arbitrary "Keyword") (GoTo save')+    , tokNext "set\\b|se\\b" (Arbitrary "Keyword") (DoAll [(GoTo genericargs'), (GoTo optionarg')])+    , tokNext "show\\b|sho\\b|sh\\b|unset\\b|unse\\b|uns\\b" (Arbitrary "Keyword") (DoAll [(GoTo noargs'), (GoTo optionarg')])+    , tokNext "lower\\b|lowe\\b|low\\b|raise\\b|rais\\b|rai\\b|ra\\b|call\\b|cal\\b|ca\\b|cd\\b|clear\\b|clea\\b|cle\\b|cl\\b|help\\b|hel\\b|he\\b|h\\b|\\?\\b|history\\b|histor\\b|histo\\b|hist\\b|his\\b|hi\\b|load\\b|loa\\b|lo\\b|l\\b|print\\b|prin\\b|pri\\b|pr\\b|pwd\\b|reread\\b|rerea\\b|rere\\b|rer\\b|re\\b|reset\\b|rese\\b|res\\b|screendump\\b|screendum\\b|screendu\\b|screend\\b|screen\\b|scree\\b|scre\\b|scr\\b|shell\\b|shel\\b|she\\b|system\\b|syste\\b|syst\\b|sys\\b|sy\\b|update\\b|updat\\b|upda\\b|upd\\b|up\\b" (Arbitrary "Keyword") (GoTo genericargs')+    , tokNext "pwd\\b|reread\\b|rerea\\b|rere\\b|rer\\b|re\\b|reset\\b|rese\\b|res\\b|screendump\\b|screendum\\b|screendu\\b|screend\\b|screen\\b|scree\\b|scre\\b|scr\\b|shell\\b|shel\\b|she\\b|test\\b" (Arbitrary "Keyword") (GoTo noargs')+    , tokNext "([a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(=)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text"), (Arbitrary "Operator")]) (GoTo genericargs')+    , tokNext "([a-zA-Z_][a-zA-Z0-9_]*)(\\s*\\(.*?\\)\\s*)(=)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Operator")]) (GoTo genericargs')+    , tok "@[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok ";" (Arbitrary "Keyword")     ] 
src/Text/Highlighter/Lexers/Go.hs view
@@ -5,32 +5,32 @@  lexer :: Lexer lexer = Lexer-    { lName = "\71\111"-    , lAliases = ["\103\111"]-    , lExtensions = ["\46\103\111"]-    , lMimetypes = ["\116\101\120\116\47\120\45\103\111\115\114\99"]+    { lName = "Go"+    , lAliases = ["go"]+    , lExtensions = [".go"]+    , lMimetypes = ["text/x-gosrc"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\46\42\63\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\40\98\114\101\97\107\124\100\101\102\97\117\108\116\124\102\117\110\99\124\105\110\116\101\114\102\97\99\101\124\115\101\108\101\99\116\124\99\97\115\101\124\100\101\102\101\114\124\103\111\124\109\97\112\124\115\116\114\117\99\116\124\99\104\97\110\124\101\108\115\101\124\103\111\116\111\124\112\97\99\107\97\103\101\124\115\119\105\116\99\104\124\99\111\110\115\116\124\102\97\108\108\116\104\114\111\117\103\104\124\105\102\124\114\97\110\103\101\124\116\121\112\101\124\99\111\110\116\105\110\117\101\124\102\111\114\124\105\109\112\111\114\116\124\114\101\116\117\114\110\124\118\97\114\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\117\105\110\116\56\124\117\105\110\116\49\54\124\117\105\110\116\51\50\124\117\105\110\116\54\52\124\105\110\116\56\124\105\110\116\49\54\124\105\110\116\51\50\124\105\110\116\54\52\124\102\108\111\97\116\51\50\124\102\108\111\97\116\54\52\124\98\121\116\101\124\117\105\110\116\124\105\110\116\124\102\108\111\97\116\124\117\105\110\116\112\116\114\124\115\116\114\105\110\103\124\99\108\111\115\101\124\99\108\111\115\101\100\124\108\101\110\124\99\97\112\124\110\101\119\124\109\97\107\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\100\43\40\92\46\92\100\43\91\101\69\93\91\43\92\45\93\63\92\100\43\124\92\46\92\100\42\124\91\101\69\93\91\43\92\45\93\63\92\100\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\46\92\100\43\40\91\101\69\93\91\43\92\45\93\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\91\48\45\55\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\40\48\124\91\49\45\57\93\91\48\45\57\93\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\39\40\92\92\91\39\34\92\92\97\98\102\110\114\116\118\93\124\92\92\120\91\48\45\57\97\45\102\65\45\70\93\123\50\125\124\92\92\91\48\45\55\93\123\49\44\51\125\124\92\92\117\91\48\45\57\97\45\102\65\45\70\93\123\52\125\124\92\92\85\91\48\45\57\97\45\102\65\45\70\93\123\56\125\124\91\94\92\92\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\96\91\94\96\93\42\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\40\60\60\61\124\62\62\61\124\60\60\124\62\62\124\60\61\124\62\61\124\38\92\94\61\124\38\92\94\124\92\43\61\124\45\61\124\92\42\61\124\47\61\124\37\61\124\38\61\124\92\124\61\124\38\38\124\92\124\92\124\124\60\45\124\92\43\92\43\124\45\45\124\61\61\124\33\61\124\58\61\124\92\46\92\46\92\46\41\124\91\43\92\45\42\47\37\38\124\94\60\62\61\33\40\41\92\91\92\93\123\125\46\44\59\58\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\97\45\122\65\45\90\95\93\92\119\42" (Arbitrary "\78\97\109\101")+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "//(.*?)\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "(break|default|func|interface|select|case|defer|go|map|struct|chan|else|goto|package|switch|const|fallthrough|if|range|type|continue|for|import|return|var)\\b" (Arbitrary "Keyword")+    , tok "(uint8|uint16|uint32|uint64|int8|int16|int32|int64|float32|float64|byte|uint|int|float|uintptr|string|close|closed|len|cap|new|make)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\d+(\\.\\d+[eE][+\\-]?\\d+|\\.\\d*|[eE][+\\-]?\\d+)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\.\\d+([eE][+\\-]?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "(0|[1-9][0-9]*)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "'(\\\\['\"\\\\abfnrtv]|\\\\x[0-9a-fA-F]{2}|\\\\[0-7]{1,3}|\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}|[^\\\\])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "`[^`]*`" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "(<<=|>>=|<<|>>|<=|>=|&\\^=|&\\^|\\+=|-=|\\*=|/=|%=|&=|\\|=|&&|\\|\\||<-|\\+\\+|--|==|!=|:=|\\.\\.\\.)|[+\\-*/%&|^<>=!()\\[\\]{}.,;:]" (Arbitrary "Punctuation")+    , tok "[a-zA-Z_]\\w*" (Arbitrary "Name")     ] 
+ src/Text/Highlighter/Lexers/GoodDataCL.hs view
@@ -0,0 +1,42 @@+module Text.Highlighter.Lexers.GoodDataCL (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "GoodData-CL"+    , lAliases = ["gooddata-cl"]+    , lExtensions = [".gdc"]+    , lMimetypes = ["text/x-gooddata-cl"]+    , lStart = root'+    , lFlags = [caseless]+    }++argsList' :: TokenMatcher+argsList' =+    [ tokNext "\\)" (Arbitrary "Punctuation") Pop+    , tok "," (Arbitrary "Punctuation")+    , tok "[a-zA-Z]\\w*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "=" (Arbitrary "Operator")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo stringLiteral')+    , tok "[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]{1,3})?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\s" (Arbitrary "Text")+    ]++root' :: TokenMatcher+root' =+    [ tok "#.*" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "[a-zA-Z]\\w*" (Arbitrary "Name" :. Arbitrary "Function")+    , tokNext "\\(" (Arbitrary "Punctuation") (GoTo argsList')+    , tok ";" (Arbitrary "Punctuation")+    , tok "\\s+" (Arbitrary "Text")+    ]++stringLiteral' :: TokenMatcher+stringLiteral' =+    [ tok "\\\\[tnrfbae\"\\\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "[^\\\\\"]+" (Arbitrary "Literal" :. Arbitrary "String")+    ]+
src/Text/Highlighter/Lexers/Groff.hs view
@@ -5,45 +5,45 @@  lexer :: Lexer lexer = Lexer-    { lName = "\71\114\111\102\102"-    , lAliases = ["\103\114\111\102\102", "\110\114\111\102\102", "\109\97\110"]-    , lExtensions = ["\46\91\49\50\51\52\53\54\55\93", "\46\109\97\110"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\116\114\111\102\102", "\116\101\120\116\47\116\114\111\102\102"]+    { lName = "Groff"+    , lAliases = ["groff", "nroff", "man"]+    , lExtensions = [".[1234567]", ".man"]+    , lMimetypes = ["application/x-troff", "text/troff"]     , lStart = root'     , lFlags = [multiline]     }  request' :: TokenMatcher request' =-    [ tokNext "\92\110" (Arbitrary "\84\101\120\116") Pop+    [ tokNext "\\n" (Arbitrary "Text") Pop     , anyOf escapes'-    , tok "\34\91\94\92\110\34\93\43\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\83\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    , tok "\"[^\\n\"]+\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\S+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\s+" (Arbitrary "Text")     ]  escapes' :: TokenMatcher escapes' =-    [ tok "\92\92\34\91\94\92\110\93\42" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\92\91\102\110\93\92\119" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\92\92\92\40\46\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\92\92\46\92\91\46\42\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\92\92\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tokNext "\92\92\92\110" (Arbitrary "\84\101\120\116") (GoTo request')+    [ tok "\\\\\"[^\\n]*" (Arbitrary "Comment")+    , tok "\\\\[fn]\\w" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "\\\\\\(.." (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "\\\\.\\[.*\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "\\\\." (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tokNext "\\\\\\n" (Arbitrary "Text") (GoTo request')     ]  root' :: TokenMatcher root' =-    [ tokNext "\40\63\105\41\40\92\46\41\40\92\119\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100")]) (GoTo request')-    , tokNext "\92\46" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo request')-    , tokNext "\91\94\92\92\92\110\93\42" (Arbitrary "\84\101\120\116") (GoTo textline')+    [ tokNext "(?i)(\\.)(\\w+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword")]) (GoTo request')+    , tokNext "\\." (Arbitrary "Punctuation") (GoTo request')+    , tokNext "[^\\\\\\n]*" (Arbitrary "Text") (GoTo textline')     ]  textline' :: TokenMatcher textline' =     [ anyOf escapes'-    , tok "\91\94\92\92\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tokNext "\92\110" (Arbitrary "\84\101\120\116") Pop+    , tok "[^\\\\\\n]+" (Arbitrary "Text")+    , tokNext "\\n" (Arbitrary "Text") Pop     ] 
src/Text/Highlighter/Lexers/Haskell.hs view
@@ -5,103 +5,104 @@  lexer :: Lexer lexer = Lexer-    { lName = "\72\97\115\107\101\108\108"-    , lAliases = ["\104\97\115\107\101\108\108", "\104\115"]-    , lExtensions = ["\46\104\115"]-    , lMimetypes = ["\116\101\120\116\47\120\45\104\97\115\107\101\108\108"]+    { lName = "Haskell"+    , lAliases = ["haskell", "hs"]+    , lExtensions = [".hs"]+    , lMimetypes = ["text/x-haskell"]     , lStart = root'     , lFlags = [multiline]     }  comment' :: TokenMatcher comment' =-    [ tok "\91\94\45\123\125\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\123\45" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\45\125" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\45\123\125\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "[^-{}]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "{-" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "-}" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[-{}]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  funclist' :: TokenMatcher funclist' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\91\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\91\95\97\45\122\93\91\92\119\92\39\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\45\45\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\123\45" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo comment')-    , tok "\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\58\33\35\36\37\38\42\43\46\92\92\47\60\61\62\63\64\94\124\126\45\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (DoAll [(GoTo funclist'), (GoTo funclist')])-    , tokNext "\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (PopNum 2)+    [ tok "\\s+" (Arbitrary "Text")+    , tok "[A-Z][a-zA-Z0-9_]*" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "[_a-z][\\w\\']*" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "--.*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "{-" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo comment')+    , tok "," (Arbitrary "Punctuation")+    , tok "[:!#$%&*+.\\\\/<=>?@^|\126-]+" (Arbitrary "Operator")+    , tokNext "\\(" (Arbitrary "Punctuation") (DoAll [(GoTo funclist'), (GoTo funclist')])+    , tokNext "\\)" (Arbitrary "Punctuation") (PopNum 2)     ]  string' :: TokenMatcher string' =-    [ tok "\91\94\92\92\34\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") (GoTo escape')-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "[^\\\\\"]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\\\" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") (GoTo escape')+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  import' :: TokenMatcher import' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\113\117\97\108\105\102\105\101\100\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\40\91\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42\41\40\92\115\43\41\40\97\115\41\40\92\115\43\41\40\91\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101")]) Pop-    , tokNext "\40\91\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42\41\40\92\115\43\41\40\104\105\100\105\110\103\41\40\92\115\43\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo funclist')-    , tokNext "\40\91\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42\41\40\92\115\43\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo funclist')-    , tokNext "\91\97\45\122\65\45\90\48\45\57\95\46\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tokNext "\\)" (Arbitrary "Punctuation") Pop+    , tok "qualified(?![\\w'])" (Arbitrary "Keyword")+    , tokNext "([A-Z][a-zA-Z0-9_.]*)(\\s+)(as)(\\s+)([A-Z][a-zA-Z0-9_.]*)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name")]) Pop+    , tokNext "([A-Z][a-zA-Z0-9_.]*)(\\s+)(hiding)(\\s+)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Punctuation")]) (GoTo funclist')+    , tokNext "([A-Z][a-zA-Z0-9_.]*)(\\s+)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Punctuation")]) (GoTo funclist')+    , tokNext "[a-zA-Z0-9_.]+" (Arbitrary "Name" :. Arbitrary "Namespace") Pop     ]  escape' :: TokenMatcher escape' =-    [ tokNext "\91\97\98\102\110\114\116\118\34\92\39\38\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") Pop-    , tokNext "\92\94\91\93\91\65\45\90\64\92\94\95\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") Pop-    , tokNext "\78\85\76\124\83\79\72\124\91\83\69\93\84\88\124\69\79\84\124\69\78\81\124\65\67\75\124\66\69\76\124\66\83\124\72\84\124\76\70\124\86\84\124\70\70\124\67\82\124\83\91\79\73\93\124\68\76\69\124\68\67\91\49\45\52\93\124\78\65\75\124\83\89\78\124\69\84\66\124\67\65\78\124\69\77\124\83\85\66\124\69\83\67\124\91\70\71\82\85\93\83\124\83\80\124\68\69\76" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") Pop-    , tokNext "\111\91\48\45\55\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") Pop-    , tokNext "\120\91\92\100\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") Pop-    , tokNext "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") Pop-    , tokNext "\92\115\43\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") Pop+    [ tokNext "[abfnrtv\"\\'&\\\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop+    , tokNext "\\^[][A-Z@\\^_]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop+    , tokNext "NUL|SOH|[SE]TX|EOT|ENQ|ACK|BEL|BS|HT|LF|VT|FF|CR|S[OI]|DLE|DC[1-4]|NAK|SYN|ETB|CAN|EM|SUB|ESC|[FGRU]S|SP|DEL" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop+    , tokNext "o[0-7]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop+    , tokNext "x[\\da-fA-F]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop+    , tokNext "\\d+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop+    , tokNext "\\s+\\\\" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\45\45\40\63\33\91\33\35\36\37\38\42\43\46\47\60\61\62\63\64\92\94\124\95\126\93\41\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\123\45" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo comment')-    , tokNext "\92\98\105\109\112\111\114\116\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100") (GoTo import')-    , tokNext "\92\98\109\111\100\117\108\101\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100") (GoTo module')-    , tok "\92\98\101\114\114\111\114\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\120\99\101\112\116\105\111\110")-    , tok "\92\98\40\99\97\115\101\124\99\108\97\115\115\124\100\97\116\97\124\100\101\102\97\117\108\116\124\100\101\114\105\118\105\110\103\124\100\111\124\101\108\115\101\124\105\102\124\105\110\124\105\110\102\105\120\91\108\114\93\63\124\105\110\115\116\97\110\99\101\124\108\101\116\124\110\101\119\116\121\112\101\124\111\102\124\116\104\101\110\124\116\121\112\101\124\119\104\101\114\101\124\95\41\40\63\33\92\39\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\94\91\95\97\45\122\93\91\92\119\92\39\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\91\95\97\45\122\93\91\92\119\92\39\93\42" (Arbitrary "\78\97\109\101")-    , tok "\91\65\45\90\93\91\92\119\92\39\93\42" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\92\92\40\63\33\91\58\33\35\36\37\38\42\43\46\92\92\47\60\61\62\63\64\94\124\126\45\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\40\60\45\124\58\58\124\45\62\124\61\62\124\61\41\40\63\33\91\58\33\35\36\37\38\42\43\46\92\92\47\60\61\62\63\64\94\124\126\45\93\43\41" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\58\91\58\33\35\36\37\38\42\43\46\92\92\47\60\61\62\63\64\94\124\126\45\93\42" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\91\58\33\35\36\37\38\42\43\46\92\92\47\60\61\62\63\64\94\124\126\45\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\100\43\91\101\69\93\91\43\45\93\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\100\43\92\46\92\100\43\40\91\101\69\93\91\43\45\93\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\91\111\79\93\91\48\45\55\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\120\88\93\91\92\100\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114") (GoTo character')-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\92\91\92\93" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\92\40\92\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\93\91\40\41\44\59\96\123\125\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "--(?![!#$%&*+./<=>?@\\^|_\126]).*?$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "{-" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo comment')+    , tokNext "(?<![\\w'])import(?![\\w'])" (Arbitrary "Keyword" :. Arbitrary "Reserved") (GoTo import')+    , tokNext "(?<![\\w'])module(?![\\w'])" (Arbitrary "Keyword" :. Arbitrary "Reserved") (GoTo module')+    , tok "(?<![\\w'])error(?![\\w'])" (Arbitrary "Name" :. Arbitrary "Exception")+    , tok "(?<![\\w'])(case|class|data|default|deriving|do|else|if|in|infix[lr]?|instance|let|newtype|of|then|type|where|_)(?!\\')(?![\\w'])" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "^[_a-z][\\w\\']*" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "[_a-z][\\w\\']*" (Arbitrary "Name")+    , tok "[A-Z][\\w\\']*" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "\\\\(?![:!#$%&*+.\\\\/<=>?@^|\126-]+)" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "(<-|::|->|=>|=)(?![:!#$%&*+.\\\\/<=>?@^|\126-]+)" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok ":[:!#$%&*+.\\\\/<=>?@^|\126-]*" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "[:!#$%&*+.\\\\/<=>?@^|\126-]+" (Arbitrary "Operator")+    , tok "\\d+[eE][+-]?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+\\.\\d+([eE][+-]?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[oO][0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][\\da-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char") (GoTo character')+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "\\[\\]" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "\\(\\)" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[][(),;`{}]" (Arbitrary "Punctuation")     ]  module' :: TokenMatcher module' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\40\91\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42\41\40\92\115\43\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo funclist')-    , tokNext "\91\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "([A-Z][a-zA-Z0-9_.]*)(\\s+)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Punctuation")]) (GoTo funclist')+    , tokNext "[A-Z][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace") Pop     ]  character' :: TokenMatcher character' =-    [ tok "\91\94\92\92\39\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tokNext "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") (GoTo escape')-    , tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114") Pop+    [ tok "[^\\\\']" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tokNext "\\\\" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") (GoTo escape')+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char") Pop     ] 
src/Text/Highlighter/Lexers/Haxe.hs view
@@ -5,31 +5,31 @@  lexer :: Lexer lexer = Lexer-    { lName = "\104\97\88\101"-    , lAliases = ["\104\120", "\104\97\88\101"]-    , lExtensions = ["\46\104\120"]-    , lMimetypes = ["\116\101\120\116\47\104\97\120\101"]+    { lName = "haXe"+    , lAliases = ["hx", "haXe"]+    , lExtensions = [".hx"]+    , lMimetypes = ["text/haxe"]     , lStart = root'     , lFlags = [multiline, dotall]     }  anonfundef' :: TokenMatcher anonfundef' =-    [ tokNext "\92\98\102\117\110\99\116\105\111\110\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (GoTo fundecl')+    [ tokNext "\\bfunction\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration") (GoTo fundecl')     ]  instancefundef' :: TokenMatcher instancefundef' =-    [ tok "\40\63\58\112\117\98\108\105\99\124\112\114\105\118\97\116\101\124\111\118\101\114\114\105\100\101\124\115\116\97\116\105\99\124\105\110\108\105\110\101\124\101\120\116\101\114\110\124\100\121\110\97\109\105\99\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tokNext "\92\98\40\102\117\110\99\116\105\111\110\41\40\92\115\43\41\40\40\63\58\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")]) (GoTo fundecl')+    [ tok "(?:public|private|override|static|inline|extern|dynamic)" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tokNext "\\b(function)(\\s+)((?:[a-zA-Z_][a-zA-Z0-9_]*))" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")]) (GoTo fundecl')     ]  typedecl' :: TokenMatcher typedecl' =     [ anyOf whitespace'-    , tok "\40\63\58\40\63\58\91\97\45\122\48\45\57\95\92\46\93\41\42\91\65\45\90\95\93\91\65\45\90\97\45\122\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tokNext "\60" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo generictypedecl')-    , tokNext "\40\63\61\91\123\125\40\41\61\44\97\45\122\93\41" (Arbitrary "\84\101\120\116") Pop+    , tok "(?:(?:[a-z0-9_\\.])*[A-Z_][A-Za-z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Class")+    , tokNext "<" (Arbitrary "Punctuation") (GoTo generictypedecl')+    , tokNext "(?=[{}()=,a-z])" (Arbitrary "Text") Pop     ]  typedefbody' :: TokenMatcher@@ -37,9 +37,9 @@     [ anyOf whitespace'     , anyOf instancevardef'     , anyOf instancefundef'-    , tokNext "\62" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo typedecl')-    , tok "\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tokNext ">" (Arbitrary "Punctuation") (GoTo typedecl')+    , tok "," (Arbitrary "Punctuation")+    , tokNext "}" (Arbitrary "Punctuation") Pop     ]  classdefbody' :: TokenMatcher@@ -47,7 +47,7 @@     [ anyOf whitespace'     , anyOf instancevardef'     , anyOf instancefundef'-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tokNext "}" (Arbitrary "Punctuation") Pop     , anyOf codeblock'     ] @@ -56,49 +56,49 @@     [ anyOf whitespace'     , anyOf typelabel'     , anyOf generictypedecl'-    , tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo funargdecl')-    , tokNext "\40\63\61\91\97\45\122\65\45\90\48\45\57\95\93\41" (Arbitrary "\84\101\120\116") Pop-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (DoAll [Pop, (GoTo codeblock')])-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tokNext "\\(" (Arbitrary "Punctuation") (GoTo funargdecl')+    , tokNext "(?=[a-zA-Z0-9_])" (Arbitrary "Text") Pop+    , tokNext "{" (Arbitrary "Punctuation") (DoAll [Pop, (GoTo codeblock')])+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  interfacedef' :: TokenMatcher interfacedef' =-    [ tokNext "\105\110\116\101\114\102\97\99\101" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (DoAll [(GoTo interfacedefprebody'), (GoTo typedecl')])+    [ tokNext "interface" (Arbitrary "Keyword" :. Arbitrary "Declaration") (DoAll [(GoTo interfacedefprebody'), (GoTo typedecl')])     ]  codekeywords' :: TokenMatcher codekeywords' =-    [ tok "\92\98\40\105\102\124\101\108\115\101\124\119\104\105\108\101\124\100\111\124\102\111\114\124\105\110\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\114\101\116\117\114\110\124\115\119\105\116\99\104\124\99\97\115\101\124\116\114\121\124\99\97\116\99\104\124\116\104\114\111\119\124\110\117\108\108\124\116\114\97\99\101\124\110\101\119\124\116\104\105\115\124\115\117\112\101\114\124\117\110\116\121\112\101\100\124\99\97\115\116\124\99\97\108\108\98\97\99\107\124\104\101\114\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")+    [ tok "\\b(if|else|while|do|for|in|break|continue|return|switch|case|try|catch|throw|null|trace|new|this|super|untyped|cast|callback|here)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")     ]  enumdefbody' :: TokenMatcher enumdefbody' =     [ anyOf whitespace'-    , tok "\40\63\58\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\73\110\115\116\97\110\99\101")-    , tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo funargdecl')-    , tok "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "(?:[a-zA-Z_][a-zA-Z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Instance")+    , tokNext "\\(" (Arbitrary "Punctuation") (GoTo funargdecl')+    , tok ";" (Arbitrary "Punctuation")+    , tokNext "}" (Arbitrary "Punctuation") Pop     ]  typedefprebody' :: TokenMatcher typedefprebody' =     [ anyOf whitespace'-    , tokNext "\40\61\41\40\92\115\42\41\40\123\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (DoAll [Pop, (GoTo typedefbody')])+    , tokNext "(=)(\\s*)({)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Punctuation")]) (DoAll [Pop, (GoTo typedefbody')])     ]  classdef' :: TokenMatcher classdef' =-    [ tokNext "\99\108\97\115\115" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (DoAll [(GoTo classdefprebody'), (GoTo typedecl')])+    [ tokNext "class" (Arbitrary "Keyword" :. Arbitrary "Declaration") (DoAll [(GoTo classdefprebody'), (GoTo typedecl')])     ]  generictypedecl' :: TokenMatcher generictypedecl' =     [ anyOf whitespace'-    , tok "\40\63\58\40\63\58\91\97\45\122\48\45\57\95\92\46\93\41\42\91\65\45\90\95\93\91\65\45\90\97\45\122\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tokNext "\60" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\62" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    , tok "(?:(?:[a-z0-9_\\.])*[A-Z_][A-Za-z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Class")+    , tokNext "<" (Arbitrary "Punctuation") Push+    , tokNext ">" (Arbitrary "Punctuation") Pop+    , tok "," (Arbitrary "Punctuation")     ]  instancevardecl' :: TokenMatcher@@ -110,18 +110,18 @@ classdefprebody' :: TokenMatcher classdefprebody' =     [ anyOf whitespace'-    , tokNext "\40\101\120\116\101\110\100\115\124\105\109\112\108\101\109\101\110\116\115\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (GoTo typedecl')-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (DoAll [Pop, (GoTo classdefbody')])+    , tokNext "(extends|implements)" (Arbitrary "Keyword" :. Arbitrary "Declaration") (GoTo typedecl')+    , tokNext "{" (Arbitrary "Punctuation") (DoAll [Pop, (GoTo classdefbody')])     ]  vardef' :: TokenMatcher vardef' =-    [ tokNext "\92\98\40\118\97\114\41\40\92\115\43\41\40\40\63\58\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")]) (GoTo vardecl')+    [ tokNext "\\b(var)(\\s+)((?:[a-zA-Z_][a-zA-Z0-9_]*))" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable")]) (GoTo vardecl')     ]  propertydef' :: TokenMatcher propertydef' =-    [ tok "\40\92\40\41\40\40\63\58\100\101\102\97\117\108\116\124\110\117\108\108\124\110\101\118\101\114\41\41\40\44\41\40\40\63\58\100\101\102\97\117\108\116\124\110\117\108\108\124\110\101\118\101\114\41\41\40\92\41\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])+    [ tok "(\\()((?:default|null|never))(,)((?:default|null|never))(\\))" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Keyword" :. Arbitrary "Reserved"), (Arbitrary "Punctuation"), (Arbitrary "Keyword" :. Arbitrary "Reserved"), (Arbitrary "Punctuation")])     ]  codeblock' :: TokenMatcher@@ -133,108 +133,108 @@     , anyOf literals'     , anyOf vardef'     , anyOf codekeywords'-    , tok "\91\40\41\59\44\92\91\92\93\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\63\58\61\124\92\43\61\124\45\61\124\92\42\61\124\47\61\124\37\61\124\38\61\124\92\124\61\124\92\94\61\124\60\60\61\124\62\62\61\124\62\62\62\61\124\92\124\92\124\124\38\38\124\92\46\92\46\92\46\124\61\61\124\33\61\124\62\124\60\124\62\61\124\60\61\124\92\124\124\38\124\92\94\124\60\60\124\62\62\124\62\62\62\124\92\43\124\92\45\124\92\42\124\47\124\37\124\33\124\92\43\92\43\124\92\45\92\45\124\126\124\92\46\124\92\63\124\92\58\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\63\58\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101")-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push+    , tok "[();,\\[\\]]" (Arbitrary "Punctuation")+    , tok "(?:=|\\+=|-=|\\*=|/=|%=|&=|\\|=|\\^=|<<=|>>=|>>>=|\\|\\||&&|\\.\\.\\.|==|!=|>|<|>=|<=|\\||&|\\^|<<|>>|>>>|\\+|\\-|\\*|/|%|!|\\+\\+|\\-\\-|\126|\\.|\\?|\\:)" (Arbitrary "Operator")+    , tok "(?:[a-zA-Z_][a-zA-Z0-9_]*)" (Arbitrary "Name")+    , tokNext "}" (Arbitrary "Punctuation") Pop+    , tokNext "{" (Arbitrary "Punctuation") Push     ]  case' :: TokenMatcher case' =-    [ tokNext "\92\98\40\99\97\115\101\41\40\92\115\43\41\40\40\63\58\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo funargdecl')+    [ tokNext "\\b(case)(\\s+)((?:[a-zA-Z_][a-zA-Z0-9_]*))(\\s*)(\\()" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Reserved"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Text"), (Arbitrary "Punctuation")]) (GoTo funargdecl')     ]  enumdefprebody' :: TokenMatcher enumdefprebody' =     [ anyOf whitespace'-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (DoAll [Pop, (GoTo enumdefbody')])+    , tokNext "{" (Arbitrary "Punctuation") (DoAll [Pop, (GoTo enumdefbody')])     ]  typedef' :: TokenMatcher typedef' =-    [ tokNext "\116\121\112\101\100\101\102" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (DoAll [(GoTo typedefprebody'), (GoTo typedecl')])+    [ tokNext "typedef" (Arbitrary "Keyword" :. Arbitrary "Declaration") (DoAll [(GoTo typedefprebody'), (GoTo typedecl')])     ]  instancevardef' :: TokenMatcher instancevardef' =-    [ tok "\40\63\58\112\117\98\108\105\99\124\112\114\105\118\97\116\101\124\111\118\101\114\114\105\100\101\124\115\116\97\116\105\99\124\105\110\108\105\110\101\124\101\120\116\101\114\110\124\100\121\110\97\109\105\99\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tokNext "\92\98\40\118\97\114\41\40\92\115\43\41\40\40\63\58\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\73\110\115\116\97\110\99\101")]) (GoTo instancevardecl')+    [ tok "(?:public|private|override|static|inline|extern|dynamic)" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tokNext "\\b(var)(\\s+)((?:[a-zA-Z_][a-zA-Z0-9_]*))" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Instance")]) (GoTo instancevardecl')     ]  literals' :: TokenMatcher literals' =-    [ tok "\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\48\45\57\93\91\48\45\57\93\42\92\46\91\48\45\57\93\43\40\91\101\69\93\91\48\45\57\93\43\41\63\91\102\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\126\47\40\91\94\92\110\93\41\42\63\47\91\103\105\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\92\98\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")+    [ tok "0[xX][0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[0-9][0-9]*\\.[0-9]+([eE][0-9]+)?[fd]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "\126/([^\\n])*?/[gisx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "\\b(true|false|null)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")     ]  whitespace' :: TokenMatcher whitespace' =     [ anyOf comments'-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    , tok "\\s+" (Arbitrary "Text")     ]  interfacedefprebody' :: TokenMatcher interfacedefprebody' =     [ anyOf whitespace'-    , tokNext "\40\101\120\116\101\110\100\115\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (GoTo typedecl')-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (DoAll [Pop, (GoTo classdefbody')])+    , tokNext "(extends)" (Arbitrary "Keyword" :. Arbitrary "Declaration") (GoTo typedecl')+    , tokNext "{" (Arbitrary "Punctuation") (DoAll [Pop, (GoTo classdefbody')])     ]  type' :: TokenMatcher type' =     [ anyOf whitespace'-    , tok "\40\63\58\40\63\58\91\97\45\122\48\45\57\95\92\46\93\41\42\91\65\45\90\95\93\91\65\45\90\97\45\122\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tokNext "\60" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo generictypedecl')-    , tok "\45\62" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tokNext "\40\63\61\91\123\125\40\41\44\59\61\93\41" (Arbitrary "\84\101\120\116") Pop+    , tok "(?:(?:[a-z0-9_\\.])*[A-Z_][A-Za-z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Class")+    , tokNext "<" (Arbitrary "Punctuation") (GoTo generictypedecl')+    , tok "->" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tokNext "(?=[{}(),;=])" (Arbitrary "Text") Pop     ]  vardecl' :: TokenMatcher vardecl' =     [ anyOf whitespace'     , anyOf typelabel'-    , tokNext "\61" (Arbitrary "\79\112\101\114\97\116\111\114") Pop-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tokNext "=" (Arbitrary "Operator") Pop+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  comments' :: TokenMatcher comments' =-    [ tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\46\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\35\91\94\92\110\93\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")+    [ tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "#[^\\n]*" (Arbitrary "Comment" :. Arbitrary "Preproc")     ]  enumdef' :: TokenMatcher enumdef' =-    [ tokNext "\101\110\117\109" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (DoAll [(GoTo enumdefprebody'), (GoTo typedecl')])+    [ tokNext "enum" (Arbitrary "Keyword" :. Arbitrary "Declaration") (DoAll [(GoTo enumdefprebody'), (GoTo typedecl')])     ]  imports' :: TokenMatcher imports' =-    [ tok "\40\112\97\99\107\97\103\101\124\105\109\112\111\114\116\124\117\115\105\110\103\41\40\92\115\43\41\40\91\94\59\93\43\41\40\59\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])+    [ tok "(package|import|using)(\\s+)([^;]+)(;)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Punctuation")])     ]  new' :: TokenMatcher new' =-    [ tokNext "\92\98\110\101\119\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo typedecl')+    [ tokNext "\\bnew\\b" (Arbitrary "Keyword") (GoTo typedecl')     ]  typelabel' :: TokenMatcher typelabel' =-    [ tokNext "\58" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo type')+    [ tokNext ":" (Arbitrary "Punctuation") (GoTo type')     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'     , anyOf comments'-    , tok "\40\63\58\112\117\98\108\105\99\124\112\114\105\118\97\116\101\124\111\118\101\114\114\105\100\101\124\115\116\97\116\105\99\124\105\110\108\105\110\101\124\101\120\116\101\114\110\124\100\121\110\97\109\105\99\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")+    , tok "(?:public|private|override|static|inline|extern|dynamic)" (Arbitrary "Keyword" :. Arbitrary "Declaration")     , anyOf enumdef'     , anyOf typedef'     , anyOf classdef'@@ -244,12 +244,12 @@ funargdecl' :: TokenMatcher funargdecl' =     [ anyOf whitespace'-    , tok "\40\63\58\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    , tok "(?:[a-zA-Z_][a-zA-Z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Variable")     , anyOf typelabel'     , anyOf literals'-    , tok "\61" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\63" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "=" (Arbitrary "Operator")+    , tok "," (Arbitrary "Punctuation")+    , tok "\\?" (Arbitrary "Punctuation")+    , tokNext "\\)" (Arbitrary "Punctuation") Pop     ] 
src/Text/Highlighter/Lexers/Html.hs view
@@ -6,59 +6,59 @@  lexer :: Lexer lexer = Lexer-    { lName = "\74\97\118\97\115\99\114\105\112\116"-    , lAliases = ["\104\116\109\108"]-    , lExtensions = ["\46\104\116\109\108", "\46\104\116\109", "\46\120\104\116\109\108", "\46\120\115\108\116"]-    , lMimetypes = ["\116\101\120\116\47\104\116\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\104\116\109\108\43\120\109\108"]+    { lName = "HTML"+    , lAliases = ["html"]+    , lExtensions = [".html", ".htm", ".xhtml", ".xslt"]+    , lMimetypes = ["text/html", "application/xhtml+xml"]     , lStart = root'     , lFlags = [caseless, dotall]     }  comment' :: TokenMatcher comment' =-    [ tok "\91\94\45\93\43" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\45\45\62" (Arbitrary "\67\111\109\109\101\110\116") Pop-    , tok "\45" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "[^-]+" (Arbitrary "Comment")+    , tokNext "-->" (Arbitrary "Comment") Pop+    , tok "-" (Arbitrary "Comment")     ]  styleContent' :: TokenMatcher styleContent' =-    [ tokNext "\60\92\115\42\47\92\115\42\115\116\121\108\101\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop-    , tok "\46\43\63\40\63\61\60\92\115\42\47\92\115\42\115\116\121\108\101\92\115\42\62\41" (Using Css.lexer)+    [ tokNext "<\\s*/\\s*style\\s*>" (Arbitrary "Name" :. Arbitrary "Tag") Pop+    , tok ".+?(?=<\\s*/\\s*style\\s*>)" (Using Css.lexer)     ]  attr' :: TokenMatcher attr' =-    [ tokNext "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\91\94\92\115\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "'.*?'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "[^\\s>]+" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  scriptContent' :: TokenMatcher scriptContent' =-    [ tokNext "\60\92\115\42\47\92\115\42\115\99\114\105\112\116\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop-    , tok "\46\43\63\40\63\61\60\92\115\42\47\92\115\42\115\99\114\105\112\116\92\115\42\62\41" (Using Javascript.lexer)+    [ tokNext "<\\s*/\\s*script\\s*>" (Arbitrary "Name" :. Arbitrary "Tag") Pop+    , tok ".+?(?=<\\s*/\\s*script\\s*>)" (Using Javascript.lexer)     ]  tag' :: TokenMatcher tag' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\91\97\45\122\65\45\90\48\45\57\95\58\45\93\43\92\115\42\61" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101") (GoTo attr')-    , tok "\91\97\45\122\65\45\90\48\45\57\95\58\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")-    , tokNext "\47\63\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "[a-zA-Z0-9_:-]+\\s*=" (Arbitrary "Name" :. Arbitrary "Attribute") (GoTo attr')+    , tok "[a-zA-Z0-9_:-]+" (Arbitrary "Name" :. Arbitrary "Attribute")+    , tokNext "/?\\s*>" (Arbitrary "Name" :. Arbitrary "Tag") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\91\94\60\38\93\43" (Arbitrary "\84\101\120\116")-    , tok "\38\92\83\42\63\59" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")-    , tok "\92\60\92\33\92\91\67\68\65\84\65\92\91\46\42\63\92\93\92\93\92\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\60\33\45\45" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')-    , tok "\60\92\63\46\42\63\92\63\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\60\33\91\94\62\93\42\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\60\92\115\42\115\99\114\105\112\116\92\115\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (DoAll [(GoTo scriptContent'), (GoTo tag')])-    , tokNext "\60\92\115\42\115\116\121\108\101\92\115\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (DoAll [(GoTo styleContent'), (GoTo tag')])-    , tokNext "\60\92\115\42\91\97\45\122\65\45\90\48\45\57\58\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (GoTo tag')-    , tok "\60\92\115\42\47\92\115\42\91\97\45\122\65\45\90\48\45\57\58\93\43\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")+    [ tok "[^<&]+" (Arbitrary "Text")+    , tok "&\\S*?;" (Arbitrary "Name" :. Arbitrary "Entity")+    , tok "\\<\\!\\[CDATA\\[.*?\\]\\]\\>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "<!--" (Arbitrary "Comment") (GoTo comment')+    , tok "<\\?.*?\\?>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "<![^>]*>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "<\\s*script\\s*" (Arbitrary "Name" :. Arbitrary "Tag") (DoAll [(GoTo scriptContent'), (GoTo tag')])+    , tokNext "<\\s*style\\s*" (Arbitrary "Name" :. Arbitrary "Tag") (DoAll [(GoTo styleContent'), (GoTo tag')])+    , tokNext "<\\s*[a-zA-Z0-9:]+" (Arbitrary "Name" :. Arbitrary "Tag") (GoTo tag')+    , tok "<\\s*/\\s*[a-zA-Z0-9:]+\\s*>" (Arbitrary "Name" :. Arbitrary "Tag")     ] 
+ src/Text/Highlighter/Lexers/Hybris.hs view
@@ -0,0 +1,51 @@+module Text.Highlighter.Lexers.Hybris (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "Hybris"+    , lAliases = ["hybris", "hy"]+    , lExtensions = [".hy", ".hyb"]+    , lMimetypes = ["text/x-hybris", "application/x-hybris"]+    , lStart = root'+    , lFlags = [multiline, dotall]+    }++import' :: TokenMatcher+import' =+    [ tokNext "[a-zA-Z0-9_.]+\\*?" (Arbitrary "Name" :. Arbitrary "Namespace") Pop+    ]++root' :: TokenMatcher+root' =+    [ tok "^(\\s*(?:function|method|operator\\s+)+?)([a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "@[a-zA-Z_][a-zA-Z0-9_\\.]*" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "(break|case|catch|next|default|do|else|finally|for|foreach|of|unless|if|new|return|switch|me|throw|try|while)\\b" (Arbitrary "Keyword")+    , tok "(extends|private|protected|public|static|throws|function|method|operator)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "(true|false|null|__FILE__|__LINE__|__VERSION__|__LIB_PATH__|__INC_PATH__)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tokNext "(class|struct)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text")]) (GoTo class')+    , tokNext "(import|include)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo import')+    , tok "(gc_collect|gc_mm_items|gc_mm_usage|gc_collect_threshold|urlencode|urldecode|base64encode|base64decode|sha1|crc32|sha2|md5|md5_file|acos|asin|atan|atan2|ceil|cos|cosh|exp|fabs|floor|fmod|log|log10|pow|sin|sinh|sqrt|tan|tanh|isint|isfloat|ischar|isstring|isarray|ismap|isalias|typeof|sizeof|toint|tostring|fromxml|toxml|binary|pack|load|eval|var_names|var_values|user_functions|dyn_functions|methods|call|call_method|mknod|mkfifo|mount|umount2|umount|ticks|usleep|sleep|time|strtime|strdate|dllopen|dlllink|dllcall|dllcall_argv|dllclose|env|exec|fork|getpid|wait|popen|pclose|exit|kill|pthread_create|pthread_create_argv|pthread_exit|pthread_join|pthread_kill|smtp_send|http_get|http_post|http_download|socket|bind|listen|accept|getsockname|getpeername|settimeout|connect|server|recv|send|close|print|println|printf|input|readline|serial_open|serial_fcntl|serial_get_attr|serial_get_ispeed|serial_get_ospeed|serial_set_attr|serial_set_ispeed|serial_set_ospeed|serial_write|serial_read|serial_close|xml_load|xml_parse|fopen|fseek|ftell|fsize|fread|fwrite|fgets|fclose|file|readdir|pcre_replace|size|pop|unmap|has|keys|values|length|find|substr|replace|split|trim|remove|contains|join)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(MethodReference|Runner|Dll|Thread|Pipe|Process|Runnable|CGI|ClientSocket|Socket|ServerSocket|File|Console|Directory|Exception)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "'\\\\.'|'[^\\\\]'|'\\\\u[0-9a-f]{4}'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(\\.)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Name" :. Arbitrary "Attribute")])+    , tok "[a-zA-Z_][a-zA-Z0-9_]*:" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "[a-zA-Z_\\$][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "[\126\\^\\*!%&\\[\\]\\(\\)\\{\\}<>\\|+=:;,./?\\-@]+" (Arbitrary "Operator")+    , tok "[0-9][0-9]*\\.[0-9]+([eE][0-9]+)?[fd]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-f]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+L?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\n" (Arbitrary "Text")+    ]++class' :: TokenMatcher+class' =+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop+    ]+
src/Text/Highlighter/Lexers/Ini.hs view
@@ -5,19 +5,19 @@  lexer :: Lexer lexer = Lexer-    { lName = "\73\78\73"-    , lAliases = ["\105\110\105", "\99\102\103"]-    , lExtensions = ["\46\105\110\105", "\46\99\102\103", "\46\112\114\111\112\101\114\116\105\101\115"]-    , lMimetypes = ["\116\101\120\116\47\120\45\105\110\105"]+    { lName = "INI"+    , lAliases = ["ini", "cfg"]+    , lExtensions = [".ini", ".cfg"]+    , lMimetypes = ["text/x-ini"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\91\59\35\93\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\91\46\42\63\92\93\36" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\46\42\63\41\40\91\32\92\116\93\42\41\40\61\41\40\91\32\92\116\93\42\41\40\46\42\63\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])+    [ tok "\\s+" (Arbitrary "Text")+    , tok "[;#].*?$" (Arbitrary "Comment")+    , tok "\\[.*?\\]$" (Arbitrary "Keyword")+    , tok "(.*?)([ \\t]*)(=)([ \\t]*)(.*(?:\\n[ \\t].+)*)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Attribute"), (Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")])     ] 
src/Text/Highlighter/Lexers/Io.hs view
@@ -5,37 +5,37 @@  lexer :: Lexer lexer = Lexer-    { lName = "\73\111"-    , lAliases = ["\105\111"]-    , lExtensions = ["\46\105\111"]-    , lMimetypes = ["\116\101\120\116\47\120\45\105\111\115\114\99"]+    { lName = "Io"+    , lAliases = ["io"]+    , lExtensions = [".io"]+    , lMimetypes = ["text/x-iosrc"]     , lStart = root'     , lFlags = [multiline]     }  nestedcomment' :: TokenMatcher nestedcomment' =-    [ tok "\91\94\43\47\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\92\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\92\43\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\43\47\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "[^+/]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/\\+" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "\\+/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[+/]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\46\42\63\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\35\40\46\42\63\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\92\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo nestedcomment')-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\58\58\61\124\58\61\124\61\124\92\40\124\92\41\124\59\124\44\124\92\42\124\45\124\92\43\124\62\124\60\124\64\124\33\124\47\124\92\124\124\92\94\124\92\46\124\37\124\38\124\92\91\124\92\93\124\92\123\124\92\125" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\99\108\111\110\101\124\100\111\124\100\111\70\105\108\101\124\100\111\83\116\114\105\110\103\124\109\101\116\104\111\100\124\102\111\114\124\105\102\124\101\108\115\101\124\101\108\115\101\105\102\124\116\104\101\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\110\105\108\124\102\97\108\115\101\124\116\114\117\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\79\98\106\101\99\116\124\108\105\115\116\124\76\105\115\116\124\77\97\112\124\97\114\103\115\124\83\101\113\117\101\110\99\101\124\67\111\114\111\117\116\105\110\101\124\70\105\108\101\41\8" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")-    , tok "\40\92\100\43\92\46\63\92\100\42\124\92\100\42\92\46\92\100\43\41\40\91\101\69\93\91\43\45\93\63\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "//(.*?)\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "#(.*?)\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/\\+" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo nestedcomment')+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "::=|:=|=|\\(|\\)|;|,|\\*|-|\\+|>|<|@|!|/|\\||\\^|\\.|%|&|\\[|\\]|\\{|\\}" (Arbitrary "Operator")+    , tok "(clone|do|doFile|doString|method|for|if|else|elseif|then)\\b" (Arbitrary "Keyword")+    , tok "(nil|false|true)\\b" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "(Object|list|List|Map|args|Sequence|Coroutine|File)\8" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "(\\d+\\.?\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ] 
+ src/Text/Highlighter/Lexers/Ioke.hs view
@@ -0,0 +1,107 @@+module Text.Highlighter.Lexers.Ioke (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "Ioke"+    , lAliases = ["ioke", "ik"]+    , lExtensions = [".ik"]+    , lMimetypes = ["text/x-iokesrc"]+    , lStart = root'+    , lFlags = [multiline]+    }++squareRegexp' :: TokenMatcher+squareRegexp' =+    [ tokNext "(?<!\\\\)][oxpniums]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , anyOf interpolatableText'+    , tok "\\\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "[^\\]]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    ]++textInterpolationRoot' :: TokenMatcher+textInterpolationRoot' =+    [ tokNext "}" (Arbitrary "Punctuation") Pop+    , anyOf root'+    ]++interpolatableText' :: TokenMatcher+interpolatableText' =+    [ tok "(\\\\b|\\\\e|\\\\t|\\\\n|\\\\f|\\\\r|\\\\\"|\\\\\\\\|\\\\#|\\\\\\Z|\\\\u[0-9a-fA-F]{1,4}|\\\\[0-3]?[0-7]?[0-7])" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tokNext "#{" (Arbitrary "Punctuation") (GoTo textInterpolationRoot')+    ]++text' :: TokenMatcher+text' =+    [ tokNext "(?<!\\\\)\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , anyOf interpolatableText'+    , tok "[^\"]" (Arbitrary "Literal" :. Arbitrary "String")+    ]++documentation' :: TokenMatcher+documentation' =+    [ tokNext "(?<!\\\\)\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc") Pop+    , anyOf interpolatableText'+    , tok "[^\"]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")+    ]++slashRegexp' :: TokenMatcher+slashRegexp' =+    [ tokNext "(?<!\\\\)/[oxpniums]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , anyOf interpolatableText'+    , tok "\\\\/" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "[^/]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    ]++squareText' :: TokenMatcher+squareText' =+    [ tokNext "(?<!\\\\)]" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , anyOf interpolatableText'+    , tok "[^\\]]" (Arbitrary "Literal" :. Arbitrary "String")+    ]++root' :: TokenMatcher+root' =+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok ";(.*?)\\n" (Arbitrary "Comment")+    , tok "\\A#!(.*?)\\n" (Arbitrary "Comment")+    , tokNext "#/" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") (GoTo slashRegexp')+    , tokNext "#r\\[" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") (GoTo squareRegexp')+    , tok ":[a-zA-Z0-9_!:?]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "[a-zA-Z0-9_!:?]+:(?![a-zA-Z0-9_!?])" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok ":\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tokNext "((?<=fn\\()|(?<=fnx\\()|(?<=method\\()|(?<=macro\\()|(?<=lecro\\()|(?<=syntax\\()|(?<=dmacro\\()|(?<=dlecro\\()|(?<=dlecrox\\()|(?<=dsyntax\\())[\\s\\n\\r]*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc") (GoTo documentation')+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo text')+    , tokNext "#\\[" (Arbitrary "Literal" :. Arbitrary "String") (GoTo squareText')+    , tok "[a-zA-Z0-9_][a-zA-Z0-9!?_:]+(?=\\s*=.*mimic\\s)" (Arbitrary "Name" :. Arbitrary "Entity")+    , tok "[a-zA-Z_][a-zA-Z0-9_!:?]*(?=[\\s]*[+*/-]?=[^=].*($|\\.))" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(break|cond|continue|do|ensure|for|for:dict|for:set|if|let|loop|p:for|p:for:dict|p:for:set|return|unless|until|while|with)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(eval|mimic|print|println)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword")+    , tok "(cell\\?|cellNames|cellOwner\\?|cellOwner|cells|cell|documentation|hash|identity|mimic|removeCell\\!|undefineCell\\!)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword")+    , tok "(stackTraceAsText)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword")+    , tok "(dict|list|message|set)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(case|case:and|case:else|case:nand|case:nor|case:not|case:or|case:otherwise|case:xor)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(asText|become\\!|derive|freeze\\!|frozen\\?|in\\?|is\\?|kind\\?|mimic\\!|mimics|mimics\\?|prependMimic\\!|removeAllMimics\\!|removeMimic\\!|same\\?|send|thaw\\!|uniqueHexId)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword")+    , tok "(after|around|before)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(kind|cellDescriptionDict|cellSummary|genSym|inspect|notice)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword")+    , tok "(use|destructuring)" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(cell\\?|cellOwner\\?|cellOwner|cellNames|cells|cell|documentation|identity|removeCell!|undefineCell)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword")+    , tok "(internal:compositeRegexp|internal:concatenateText|internal:createDecimal|internal:createNumber|internal:createRegexp|internal:createText)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(availableRestarts|bind|error\\!|findRestart|handle|invokeRestart|rescue|restart|signal\\!|warn\\!)(?![a-zA-Z0-9!:_?])" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(nil|false|true)(?![a-zA-Z0-9!:_?])" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "(Arity|Base|Call|Condition|DateTime|Aspects|Pointcut|Assignment|BaseBehavior|Boolean|Case|AndCombiner|Else|NAndCombiner|NOrCombiner|NotCombiner|OrCombiner|XOrCombiner|Conditions|Definitions|FlowControl|Internal|Literals|Reflection|DefaultMacro|DefaultMethod|DefaultSyntax|Dict|FileSystem|Ground|Handler|Hook|IO|IokeGround|Struct|LexicalBlock|LexicalMacro|List|Message|Method|Mixins|NativeMethod|Number|Origin|Pair|Range|Reflector|Regexp Match|Regexp|Rescue|Restart|Runtime|Sequence|Set|Symbol|System|Text|Tuple)(?![a-zA-Z0-9!:_?])" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(generateMatchMethod|aliasMethod|\955|\654|fnx|fn|method|dmacro|dlecro|syntax|macro|dlecrox|lecrox|lecro|syntax)(?![a-zA-Z0-9!:_?])" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "-?0[xX][0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "-?(\\d+\\.?\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "-?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "#\\(" (Arbitrary "Punctuation")+    , tok "(&&>>|\\|\\|>>|\\*\\*>>|:::|::|\\.\\.\\.|===|\\*\\*>|\\*\\*=|&&>|&&=|\\|\\|>|\\|\\|=|\\->>|\\+>>|!>>|<>>>|<>>|&>>|%>>|#>>|@>>|/>>|\\*>>|\\?>>|\\|>>|\\^>>|\126>>|\\$>>|=>>|<<=|>>=|<=>|<\\->|=\126|!\126|=>|\\+\\+|\\-\\-|<=|>=|==|!=|&&|\\.\\.|\\+=|\\-=|\\*=|\\/=|%=|&=|\\^=|\\|=|<\\-|\\+>|!>|<>|&>|%>|#>|\\@>|\\/>|\\*>|\\?>|\\|>|\\^>|\126>|\\$>|<\\->|\\->|<<|>>|\\*\\*|\\?\\||\\?&|\\|\\||>|<|\\*|\\/|%|\\+|\\-|&|\\^|\\||=|\\$|!|\126|\\?|#|\8800|\8728|\8712|\8713)" (Arbitrary "Operator")+    , tok "(and|nand|or|xor|nor|return|import)(?![a-zA-Z0-9_!?])" (Arbitrary "Operator")+    , tok "(\\`\\`|\\`|\\'\\'|\\'|\\.|\\,|@|@@|\\[|\\]|\\(|\\)|{|})" (Arbitrary "Punctuation")+    , tok "[A-Z][a-zA-Z0-9_!:?]*" (Arbitrary "Name" :. Arbitrary "Class")+    , tok "[a-z_][a-zA-Z0-9_!:?]*" (Arbitrary "Name")+    ]+
src/Text/Highlighter/Lexers/IrcLogs.hs view
@@ -5,27 +5,27 @@  lexer :: Lexer lexer = Lexer-    { lName = "\73\82\67\32\108\111\103\115"-    , lAliases = ["\105\114\99"]-    , lExtensions = ["\46\119\101\101\99\104\97\116\108\111\103"]-    , lMimetypes = ["\116\101\120\116\47\120\45\105\114\99\108\111\103"]+    { lName = "IRC logs"+    , lAliases = ["irc"]+    , lExtensions = [".weechatlog"]+    , lMimetypes = ["text/x-irclog"]     , lStart = root'     , lFlags = [multiline]     }  msg' :: TokenMatcher msg' =-    [ tok "\91\94\92\115\93\43\58\40\63\33\47\47\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")-    , tokNext "\46\42\92\110" (Arbitrary "\84\101\120\116") Pop+    [ tok "[^\\s]+:(?!//)" (Arbitrary "Name" :. Arbitrary "Attribute")+    , tokNext ".*\\n" (Arbitrary "Text") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\94\92\42\92\42\92\42\92\42\40\46\42\41\92\42\92\42\92\42\92\42\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\94\10\32\32\32\32\32\32\32\32\40\10\32\32\32\32\32\32\32\32\32\32\35\32\105\114\115\115\105\32\47\32\120\99\104\97\116\32\97\110\100\32\111\116\104\101\114\115\10\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\91\124\92\40\41\63\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\79\112\101\110\105\110\103\32\98\114\97\99\107\101\116\32\111\114\32\112\97\114\101\110\32\102\111\114\32\116\104\101\32\116\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\40\63\58\92\100\123\49\44\52\125\32\91\45\47\93\63\41\43\32\35\32\68\97\116\101\32\97\115\32\45\32\111\114\32\47\45\115\101\112\97\114\97\116\101\100\32\103\114\111\117\112\115\32\111\102\32\100\105\103\105\116\115\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\91\84\32\93\41\63\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\68\97\116\101\47\116\105\109\101\32\115\101\112\97\114\97\116\111\114\58\32\84\32\111\114\32\115\112\97\99\101\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\100\63\92\100\32\91\58\46\93\63\41\43\32\32\32\32\32\32\35\32\84\105\109\101\32\97\115\32\58\47\46\45\115\101\112\97\114\97\116\101\100\32\103\114\111\117\112\115\32\111\102\32\49\32\111\114\32\50\32\100\105\103\105\116\115\10\32\32\32\32\32\32\32\32\32\32\32\32\41\10\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\93\124\92\41\41\63\92\115\43\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\67\108\111\115\105\110\103\32\98\114\97\99\107\101\116\32\111\114\32\112\97\114\101\110\32\102\111\114\32\116\104\101\32\116\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\124\10\32\32\32\32\32\32\32\32\32\32\35\32\119\101\101\99\104\97\116\10\32\32\32\32\32\32\32\32\32\32\92\100\123\52\125\92\115\92\119\123\51\125\92\115\92\100\123\50\125\92\115\32\32\32\32\32\32\32\32\35\32\68\97\116\101\10\32\32\32\32\32\32\32\32\32\32\92\100\123\50\125\58\92\100\123\50\125\58\92\100\123\50\125\92\115\43\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\32\43\32\87\104\105\116\101\115\112\97\99\101\10\32\32\32\32\32\32\32\32\124\10\32\32\32\32\32\32\32\32\32\32\35\32\120\99\104\97\116\10\32\32\32\32\32\32\32\32\32\32\92\119\123\51\125\92\115\92\100\123\50\125\92\115\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\68\97\116\101\10\32\32\32\32\32\32\32\32\32\32\92\100\123\50\125\58\92\100\123\50\125\58\92\100\123\50\125\92\115\43\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\32\43\32\87\104\105\116\101\115\112\97\99\101\10\32\32\32\32\32\32\32\32\41\63\10\32\32\32\32\40\92\115\42\60\91\94\62\93\42\62\92\115\42\41\36" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")])-    , tokNext "\94\10\32\32\32\32\32\32\32\32\40\10\32\32\32\32\32\32\32\32\32\32\35\32\105\114\115\115\105\32\47\32\120\99\104\97\116\32\97\110\100\32\111\116\104\101\114\115\10\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\91\124\92\40\41\63\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\79\112\101\110\105\110\103\32\98\114\97\99\107\101\116\32\111\114\32\112\97\114\101\110\32\102\111\114\32\116\104\101\32\116\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\40\63\58\92\100\123\49\44\52\125\32\91\45\47\93\63\41\43\32\35\32\68\97\116\101\32\97\115\32\45\32\111\114\32\47\45\115\101\112\97\114\97\116\101\100\32\103\114\111\117\112\115\32\111\102\32\100\105\103\105\116\115\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\91\84\32\93\41\63\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\68\97\116\101\47\116\105\109\101\32\115\101\112\97\114\97\116\111\114\58\32\84\32\111\114\32\115\112\97\99\101\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\100\63\92\100\32\91\58\46\93\63\41\43\32\32\32\32\32\32\35\32\84\105\109\101\32\97\115\32\58\47\46\45\115\101\112\97\114\97\116\101\100\32\103\114\111\117\112\115\32\111\102\32\49\32\111\114\32\50\32\100\105\103\105\116\115\10\32\32\32\32\32\32\32\32\32\32\32\32\41\10\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\93\124\92\41\41\63\92\115\43\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\67\108\111\115\105\110\103\32\98\114\97\99\107\101\116\32\111\114\32\112\97\114\101\110\32\102\111\114\32\116\104\101\32\116\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\124\10\32\32\32\32\32\32\32\32\32\32\35\32\119\101\101\99\104\97\116\10\32\32\32\32\32\32\32\32\32\32\92\100\123\52\125\92\115\92\119\123\51\125\92\115\92\100\123\50\125\92\115\32\32\32\32\32\32\32\32\35\32\68\97\116\101\10\32\32\32\32\32\32\32\32\32\32\92\100\123\50\125\58\92\100\123\50\125\58\92\100\123\50\125\92\115\43\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\32\43\32\87\104\105\116\101\115\112\97\99\101\10\32\32\32\32\32\32\32\32\124\10\32\32\32\32\32\32\32\32\32\32\35\32\120\99\104\97\116\10\32\32\32\32\32\32\32\32\32\32\92\119\123\51\125\92\115\92\100\123\50\125\92\115\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\68\97\116\101\10\32\32\32\32\32\32\32\32\32\32\92\100\123\50\125\58\92\100\123\50\125\58\92\100\123\50\125\92\115\43\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\32\43\32\87\104\105\116\101\115\112\97\99\101\10\32\32\32\32\32\32\32\32\41\63\10\32\32\32\32\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\92\115\42\60\46\42\63\62\92\115\42\41\32\32\32\32\32\32\32\32\32\32\35\32\78\105\99\107\32" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")]) (GoTo msg')-    , tok "\94\10\32\32\32\32\32\32\32\32\40\10\32\32\32\32\32\32\32\32\32\32\35\32\105\114\115\115\105\32\47\32\120\99\104\97\116\32\97\110\100\32\111\116\104\101\114\115\10\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\91\124\92\40\41\63\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\79\112\101\110\105\110\103\32\98\114\97\99\107\101\116\32\111\114\32\112\97\114\101\110\32\102\111\114\32\116\104\101\32\116\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\40\63\58\92\100\123\49\44\52\125\32\91\45\47\93\63\41\43\32\35\32\68\97\116\101\32\97\115\32\45\32\111\114\32\47\45\115\101\112\97\114\97\116\101\100\32\103\114\111\117\112\115\32\111\102\32\100\105\103\105\116\115\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\91\84\32\93\41\63\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\68\97\116\101\47\116\105\109\101\32\115\101\112\97\114\97\116\111\114\58\32\84\32\111\114\32\115\112\97\99\101\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\100\63\92\100\32\91\58\46\93\63\41\43\32\32\32\32\32\32\35\32\84\105\109\101\32\97\115\32\58\47\46\45\115\101\112\97\114\97\116\101\100\32\103\114\111\117\112\115\32\111\102\32\49\32\111\114\32\50\32\100\105\103\105\116\115\10\32\32\32\32\32\32\32\32\32\32\32\32\41\10\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\93\124\92\41\41\63\92\115\43\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\67\108\111\115\105\110\103\32\98\114\97\99\107\101\116\32\111\114\32\112\97\114\101\110\32\102\111\114\32\116\104\101\32\116\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\124\10\32\32\32\32\32\32\32\32\32\32\35\32\119\101\101\99\104\97\116\10\32\32\32\32\32\32\32\32\32\32\92\100\123\52\125\92\115\92\119\123\51\125\92\115\92\100\123\50\125\92\115\32\32\32\32\32\32\32\32\35\32\68\97\116\101\10\32\32\32\32\32\32\32\32\32\32\92\100\123\50\125\58\92\100\123\50\125\58\92\100\123\50\125\92\115\43\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\32\43\32\87\104\105\116\101\115\112\97\99\101\10\32\32\32\32\32\32\32\32\124\10\32\32\32\32\32\32\32\32\32\32\35\32\120\99\104\97\116\10\32\32\32\32\32\32\32\32\32\32\92\119\123\51\125\92\115\92\100\123\50\125\92\115\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\68\97\116\101\10\32\32\32\32\32\32\32\32\32\32\92\100\123\50\125\58\92\100\123\50\125\58\92\100\123\50\125\92\115\43\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\32\43\32\87\104\105\116\101\115\112\97\99\101\10\32\32\32\32\32\32\32\32\41\63\10\32\32\32\32\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\92\115\42\91\42\93\92\115\43\41\32\32\32\32\32\32\32\32\32\32\32\32\35\32\83\116\97\114\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\91\94\92\115\93\43\92\115\43\46\42\63\92\110\41\32\32\32\32\32\32\32\35\32\78\105\99\107\32\43\32\114\101\115\116\32\111\102\32\109\101\115\115\97\103\101\32" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\73\110\115\101\114\116\101\100")])-    , tok "\94\10\32\32\32\32\32\32\32\32\40\10\32\32\32\32\32\32\32\32\32\32\35\32\105\114\115\115\105\32\47\32\120\99\104\97\116\32\97\110\100\32\111\116\104\101\114\115\10\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\91\124\92\40\41\63\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\79\112\101\110\105\110\103\32\98\114\97\99\107\101\116\32\111\114\32\112\97\114\101\110\32\102\111\114\32\116\104\101\32\116\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\40\63\58\92\100\123\49\44\52\125\32\91\45\47\93\63\41\43\32\35\32\68\97\116\101\32\97\115\32\45\32\111\114\32\47\45\115\101\112\97\114\97\116\101\100\32\103\114\111\117\112\115\32\111\102\32\100\105\103\105\116\115\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\91\84\32\93\41\63\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\68\97\116\101\47\116\105\109\101\32\115\101\112\97\114\97\116\111\114\58\32\84\32\111\114\32\115\112\97\99\101\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\100\63\92\100\32\91\58\46\93\63\41\43\32\32\32\32\32\32\35\32\84\105\109\101\32\97\115\32\58\47\46\45\115\101\112\97\114\97\116\101\100\32\103\114\111\117\112\115\32\111\102\32\49\32\111\114\32\50\32\100\105\103\105\116\115\10\32\32\32\32\32\32\32\32\32\32\32\32\41\10\32\32\32\32\32\32\32\32\32\32\40\63\58\32\92\93\124\92\41\41\63\92\115\43\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\67\108\111\115\105\110\103\32\98\114\97\99\107\101\116\32\111\114\32\112\97\114\101\110\32\102\111\114\32\116\104\101\32\116\105\109\101\115\116\97\109\112\10\32\32\32\32\32\32\32\32\124\10\32\32\32\32\32\32\32\32\32\32\35\32\119\101\101\99\104\97\116\10\32\32\32\32\32\32\32\32\32\32\92\100\123\52\125\92\115\92\119\123\51\125\92\115\92\100\123\50\125\92\115\32\32\32\32\32\32\32\32\35\32\68\97\116\101\10\32\32\32\32\32\32\32\32\32\32\92\100\123\50\125\58\92\100\123\50\125\58\92\100\123\50\125\92\115\43\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\32\43\32\87\104\105\116\101\115\112\97\99\101\10\32\32\32\32\32\32\32\32\124\10\32\32\32\32\32\32\32\32\32\32\35\32\120\99\104\97\116\10\32\32\32\32\32\32\32\32\32\32\92\119\123\51\125\92\115\92\100\123\50\125\92\115\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\68\97\116\101\10\32\32\32\32\32\32\32\32\32\32\92\100\123\50\125\58\92\100\123\50\125\58\92\100\123\50\125\92\115\43\32\32\32\32\32\32\32\32\32\35\32\84\105\109\101\32\43\32\87\104\105\116\101\115\112\97\99\101\10\32\32\32\32\32\32\32\32\41\63\10\32\32\32\32\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\92\115\42\40\63\58\92\42\123\51\125\124\60\63\45\91\33\64\61\80\93\63\45\62\63\41\92\115\42\41\32\32\35\32\83\116\97\114\40\115\41\32\111\114\32\115\121\109\98\111\108\115\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\91\94\92\115\93\43\92\115\43\41\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\78\105\99\107\32\43\32\83\112\97\99\101\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\46\42\63\92\110\41\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\82\101\115\116\32\111\102\32\109\101\115\115\97\103\101\32" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\67\111\109\109\101\110\116")])-    , tok "\94\46\42\63\92\110" (Arbitrary "\84\101\120\116")+    [ tok "^\\*\\*\\*\\*(.*)\\*\\*\\*\\*$" (Arbitrary "Comment")+    , tok "^\10        (\10          # irssi / xchat and others\10          (?: \\[|\\()?                  # Opening bracket or paren for the timestamp\10            (?:                        # Timestamp\10                (?: (?:\\d{1,4} [-/]?)+ # Date as - or /-separated groups of digits\10                 [T ])?                # Date/time separator: T or space\10                (?: \\d?\\d [:.]?)+      # Time as :/.-separated groups of 1 or 2 digits\10            )\10          (?: \\]|\\))?\\s+               # Closing bracket or paren for the timestamp\10        |\10          # weechat\10          \\d{4}\\s\\w{3}\\s\\d{2}\\s        # Date\10          \\d{2}:\\d{2}:\\d{2}\\s+         # Time + Whitespace\10        |\10          # xchat\10          \\w{3}\\s\\d{2}\\s               # Date\10          \\d{2}:\\d{2}:\\d{2}\\s+         # Time + Whitespace\10        )?\10    (\\s*<[^>]*>\\s*)$" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Name" :. Arbitrary "Tag")])+    , tokNext "^\10        (\10          # irssi / xchat and others\10          (?: \\[|\\()?                  # Opening bracket or paren for the timestamp\10            (?:                        # Timestamp\10                (?: (?:\\d{1,4} [-/]?)+ # Date as - or /-separated groups of digits\10                 [T ])?                # Date/time separator: T or space\10                (?: \\d?\\d [:.]?)+      # Time as :/.-separated groups of 1 or 2 digits\10            )\10          (?: \\]|\\))?\\s+               # Closing bracket or paren for the timestamp\10        |\10          # weechat\10          \\d{4}\\s\\w{3}\\s\\d{2}\\s        # Date\10          \\d{2}:\\d{2}:\\d{2}\\s+         # Time + Whitespace\10        |\10          # xchat\10          \\w{3}\\s\\d{2}\\s               # Date\10          \\d{2}:\\d{2}:\\d{2}\\s+         # Time + Whitespace\10        )?\10    \10                (\\s*<.*?>\\s*)          # Nick " (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Name" :. Arbitrary "Tag")]) (GoTo msg')+    , tok "^\10        (\10          # irssi / xchat and others\10          (?: \\[|\\()?                  # Opening bracket or paren for the timestamp\10            (?:                        # Timestamp\10                (?: (?:\\d{1,4} [-/]?)+ # Date as - or /-separated groups of digits\10                 [T ])?                # Date/time separator: T or space\10                (?: \\d?\\d [:.]?)+      # Time as :/.-separated groups of 1 or 2 digits\10            )\10          (?: \\]|\\))?\\s+               # Closing bracket or paren for the timestamp\10        |\10          # weechat\10          \\d{4}\\s\\w{3}\\s\\d{2}\\s        # Date\10          \\d{2}:\\d{2}:\\d{2}\\s+         # Time + Whitespace\10        |\10          # xchat\10          \\w{3}\\s\\d{2}\\s               # Date\10          \\d{2}:\\d{2}:\\d{2}\\s+         # Time + Whitespace\10        )?\10    \10                (\\s*[*]\\s+)            # Star\10                ([^\\s]+\\s+.*?\\n)       # Nick + rest of message " (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Keyword"), (Arbitrary "Generic" :. Arbitrary "Inserted")])+    , tok "^\10        (\10          # irssi / xchat and others\10          (?: \\[|\\()?                  # Opening bracket or paren for the timestamp\10            (?:                        # Timestamp\10                (?: (?:\\d{1,4} [-/]?)+ # Date as - or /-separated groups of digits\10                 [T ])?                # Date/time separator: T or space\10                (?: \\d?\\d [:.]?)+      # Time as :/.-separated groups of 1 or 2 digits\10            )\10          (?: \\]|\\))?\\s+               # Closing bracket or paren for the timestamp\10        |\10          # weechat\10          \\d{4}\\s\\w{3}\\s\\d{2}\\s        # Date\10          \\d{2}:\\d{2}:\\d{2}\\s+         # Time + Whitespace\10        |\10          # xchat\10          \\w{3}\\s\\d{2}\\s               # Date\10          \\d{2}:\\d{2}:\\d{2}\\s+         # Time + Whitespace\10        )?\10    \10                (\\s*(?:\\*{3}|<?-[!@=P]?->?)\\s*)  # Star(s) or symbols\10                ([^\\s]+\\s+)                     # Nick + Space\10                (.*?\\n)                         # Rest of message " (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Comment")])+    , tok "^.*?\\n" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Java.hs view
@@ -5,47 +5,47 @@  lexer :: Lexer lexer = Lexer-    { lName = "\74\97\118\97"-    , lAliases = ["\106\97\118\97"]-    , lExtensions = ["\46\106\97\118\97"]-    , lMimetypes = ["\116\101\120\116\47\120\45\106\97\118\97"]+    { lName = "Java"+    , lAliases = ["java"]+    , lExtensions = [".java"]+    , lMimetypes = ["text/x-java"]     , lStart = root'     , lFlags = [multiline, dotall]     }  import' :: TokenMatcher import' =-    [ tokNext "\91\97\45\122\65\45\90\48\45\57\95\46\93\43\92\42\63" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+    [ tokNext "[a-zA-Z0-9_.]+\\*?" (Arbitrary "Name" :. Arbitrary "Namespace") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\94\40\92\115\42\40\63\58\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\92\46\92\91\92\93\93\42\92\115\43\41\43\63\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\46\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\64\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\92\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\40\97\115\115\101\114\116\124\98\114\101\97\107\124\99\97\115\101\124\99\97\116\99\104\124\99\111\110\116\105\110\117\101\124\100\101\102\97\117\108\116\124\100\111\124\101\108\115\101\124\102\105\110\97\108\108\121\124\102\111\114\124\105\102\124\103\111\116\111\124\105\110\115\116\97\110\99\101\111\102\124\110\101\119\124\114\101\116\117\114\110\124\115\119\105\116\99\104\124\116\104\105\115\124\116\104\114\111\119\124\116\114\121\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\97\98\115\116\114\97\99\116\124\99\111\110\115\116\124\101\110\117\109\124\101\120\116\101\110\100\115\124\102\105\110\97\108\124\105\109\112\108\101\109\101\110\116\115\124\110\97\116\105\118\101\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\112\117\98\108\105\99\124\115\116\97\116\105\99\124\115\116\114\105\99\116\102\112\124\115\117\112\101\114\124\115\121\110\99\104\114\111\110\105\122\101\100\124\116\104\114\111\119\115\124\116\114\97\110\115\105\101\110\116\124\118\111\108\97\116\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\40\98\111\111\108\101\97\110\124\98\121\116\101\124\99\104\97\114\124\100\111\117\98\108\101\124\102\108\111\97\116\124\105\110\116\124\108\111\110\103\124\115\104\111\114\116\124\118\111\105\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\112\97\99\107\97\103\101\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")])-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tokNext "\40\99\108\97\115\115\124\105\110\116\101\114\102\97\99\101\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116")]) (GoTo class')-    , tokNext "\40\105\109\112\111\114\116\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo import')-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\39\92\92\46\39\124\39\91\94\92\92\93\39\124\39\92\92\117\91\48\45\57\97\45\102\93\123\52\125\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\40\92\46\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")])-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\91\97\45\122\65\45\90\95\92\36\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")-    , tok "\91\126\92\94\92\42\33\37\38\92\91\92\93\92\40\92\41\92\123\92\125\60\62\92\124\43\61\58\59\44\46\47\63\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\48\45\57\93\91\48\45\57\93\42\92\46\91\48\45\57\93\43\40\91\101\69\93\91\48\45\57\93\43\41\63\91\102\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\93\43\76\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\92\110" (Arbitrary "\84\101\120\116")+    [ tok "^(\\s*(?:[a-zA-Z_][a-zA-Z0-9_\\.\\[\\]]*\\s+)+?)([a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(\\()" (ByGroups [(Using lexer), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "@[a-zA-Z_][a-zA-Z0-9_\\.]*" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "(assert|break|case|catch|continue|default|do|else|finally|for|if|goto|instanceof|new|return|switch|this|throw|try|while)\\b" (Arbitrary "Keyword")+    , tok "(abstract|const|enum|extends|final|implements|native|private|protected|public|static|strictfp|super|synchronized|throws|transient|volatile)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "(boolean|byte|char|double|float|int|long|short|void)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(package)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")])+    , tok "(true|false|null)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tokNext "(class|interface)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text")]) (GoTo class')+    , tokNext "(import)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo import')+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "'\\\\.'|'[^\\\\]'|'\\\\u[0-9a-f]{4}'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(\\.)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Name" :. Arbitrary "Attribute")])+    , tok "[a-zA-Z_][a-zA-Z0-9_]*:" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "[a-zA-Z_\\$][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "[\126\\^\\*!%&\\[\\]\\(\\)\\{\\}<>\\|+=:;,./?-]" (Arbitrary "Operator")+    , tok "[0-9][0-9]*\\.[0-9]+([eE][0-9]+)?[fd]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-f]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+L?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\n" (Arbitrary "Text")     ]  class' :: TokenMatcher class' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ] 
src/Text/Highlighter/Lexers/Javascript.hs view
@@ -5,52 +5,52 @@  lexer :: Lexer lexer = Lexer-    { lName = "\74\97\118\97\83\99\114\105\112\116"-    , lAliases = ["\106\115", "\106\97\118\97\115\99\114\105\112\116"]-    , lExtensions = ["\46\106\115"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\106\97\118\97\115\99\114\105\112\116", "\116\101\120\116\47\120\45\106\97\118\97\115\99\114\105\112\116", "\116\101\120\116\47\106\97\118\97\115\99\114\105\112\116"]+    { lName = "JavaScript"+    , lAliases = ["js", "javascript"]+    , lExtensions = [".js"]+    , lMimetypes = ["application/javascript", "application/x-javascript", "text/x-javascript", "text/javascript"]     , lStart = root'     , lFlags = [dotall]     }  commentsandwhitespace' :: TokenMatcher commentsandwhitespace' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\60\33\45\45" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\46\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "<!--" (Arbitrary "Comment")+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tokNext "\94\40\63\61\92\115\124\47\124\60\33\45\45\41" (Arbitrary "\84\101\120\116") (GoTo slashstartsregex')+    [ tokNext "^(?=\\s|/|<!--)" (Arbitrary "Text") (GoTo slashstartsregex')     , anyOf commentsandwhitespace'-    , tokNext "\92\43\92\43\124\45\45\124\126\124\38\38\124\92\63\124\58\124\92\124\92\124\124\92\92\40\63\61\92\110\41\124\40\60\60\124\62\62\62\63\124\61\61\63\124\33\61\63\124\91\45\60\62\43\42\37\38\92\124\92\94\47\93\41\61\63" (Arbitrary "\79\112\101\114\97\116\111\114") (GoTo slashstartsregex')-    , tokNext "\91\123\40\92\91\59\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo slashstartsregex')-    , tok "\91\125\41\92\93\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\40\102\111\114\124\105\110\124\119\104\105\108\101\124\100\111\124\98\114\101\97\107\124\114\101\116\117\114\110\124\99\111\110\116\105\110\117\101\124\115\119\105\116\99\104\124\99\97\115\101\124\100\101\102\97\117\108\116\124\105\102\124\101\108\115\101\124\116\104\114\111\119\124\116\114\121\124\99\97\116\99\104\124\102\105\110\97\108\108\121\124\110\101\119\124\100\101\108\101\116\101\124\116\121\112\101\111\102\124\105\110\115\116\97\110\99\101\111\102\124\118\111\105\100\124\116\104\105\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo slashstartsregex')-    , tokNext "\40\118\97\114\124\119\105\116\104\124\102\117\110\99\116\105\111\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (GoTo slashstartsregex')-    , tok "\40\97\98\115\116\114\97\99\116\124\98\111\111\108\101\97\110\124\98\121\116\101\124\99\104\97\114\124\99\108\97\115\115\124\99\111\110\115\116\124\100\101\98\117\103\103\101\114\124\100\111\117\98\108\101\124\101\110\117\109\124\101\120\112\111\114\116\124\101\120\116\101\110\100\115\124\102\105\110\97\108\124\102\108\111\97\116\124\103\111\116\111\124\105\109\112\108\101\109\101\110\116\115\124\105\109\112\111\114\116\124\105\110\116\124\105\110\116\101\114\102\97\99\101\124\108\111\110\103\124\110\97\116\105\118\101\124\112\97\99\107\97\103\101\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\112\117\98\108\105\99\124\115\104\111\114\116\124\115\116\97\116\105\99\124\115\117\112\101\114\124\115\121\110\99\104\114\111\110\105\122\101\100\124\116\104\114\111\119\115\124\116\114\97\110\115\105\101\110\116\124\118\111\108\97\116\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\124\78\97\78\124\73\110\102\105\110\105\116\121\124\117\110\100\101\102\105\110\101\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\65\114\114\97\121\124\66\111\111\108\101\97\110\124\68\97\116\101\124\69\114\114\111\114\124\70\117\110\99\116\105\111\110\124\77\97\116\104\124\110\101\116\115\99\97\112\101\124\78\117\109\98\101\114\124\79\98\106\101\99\116\124\80\97\99\107\97\103\101\115\124\82\101\103\69\120\112\124\83\116\114\105\110\103\124\115\117\110\124\100\101\99\111\100\101\85\82\73\124\100\101\99\111\100\101\85\82\73\67\111\109\112\111\110\101\110\116\124\101\110\99\111\100\101\85\82\73\124\101\110\99\111\100\101\85\82\73\67\111\109\112\111\110\101\110\116\124\69\114\114\111\114\124\101\118\97\108\124\105\115\70\105\110\105\116\101\124\105\115\78\97\78\124\112\97\114\115\101\70\108\111\97\116\124\112\97\114\115\101\73\110\116\124\100\111\99\117\109\101\110\116\124\116\104\105\115\124\119\105\110\100\111\119\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\79\116\104\101\114")-    , tok "\91\48\45\57\93\91\48\45\57\93\42\92\46\91\48\45\57\93\43\40\91\101\69\93\91\48\45\57\93\43\41\63\91\102\100\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")+    , tokNext "\\+\\+|--|\126|&&|\\?|:|\\|\\||\\\\(?=\\n)|(<<|>>>?|==?|!=?|[-<>+*%&\\|\\^/])=?" (Arbitrary "Operator") (GoTo slashstartsregex')+    , tokNext "[{(\\[;,]" (Arbitrary "Punctuation") (GoTo slashstartsregex')+    , tok "[})\\].]" (Arbitrary "Punctuation")+    , tokNext "(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|this)\\b" (Arbitrary "Keyword") (GoTo slashstartsregex')+    , tokNext "(var|with|function)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration") (GoTo slashstartsregex')+    , tok "(abstract|boolean|byte|char|class|const|debugger|double|enum|export|extends|final|float|goto|implements|import|int|interface|long|native|package|private|protected|public|short|static|super|synchronized|throws|transient|volatile)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(true|false|null|NaN|Infinity|undefined)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[$a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Other")+    , tok "[0-9][0-9]*\\.[0-9]+([eE][0-9]+)?[fd]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")     ]  slashstartsregex' :: TokenMatcher slashstartsregex' =     [ anyOf commentsandwhitespace'-    , tokNext "\47\40\92\92\46\124\91\94\91\47\92\92\92\110\93\124\92\91\40\92\92\46\124\91\94\92\93\92\92\92\110\93\41\42\93\41\43\47\40\91\103\105\109\93\43\92\98\124\92\66\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\40\63\61\47\41" (Arbitrary "\84\101\120\116") (DoAll [Pop, (GoTo badregex')])-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    , tokNext "/(\\\\.|[^[/\\\\\\n]|\\[(\\\\.|[^\\]\\\\\\n])*])+/([gim]+\\b|\\B)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "(?=/)" (Arbitrary "Text") (DoAll [Pop, (GoTo badregex')])+    , tokNext "" (Arbitrary "Text") Pop     ]  badregex' :: TokenMatcher badregex' =-    [ tokNext "\10" (Arbitrary "\84\101\120\116") Pop+    [ tokNext "\10" (Arbitrary "Text") Pop     ] 
src/Text/Highlighter/Lexers/LighttpdConf.hs view
@@ -5,25 +5,25 @@  lexer :: Lexer lexer = Lexer-    { lName = "\76\105\103\104\116\116\112\100\32\99\111\110\102\105\103\117\114\97\116\105\111\110\32\102\105\108\101"-    , lAliases = ["\108\105\103\104\116\121", "\108\105\103\104\116\116\112\100"]+    { lName = "Lighttpd configuration file"+    , lAliases = ["lighty", "lighttpd"]     , lExtensions = []-    , lMimetypes = ["\116\101\120\116\47\120\45\108\105\103\104\116\116\112\100\45\99\111\110\102"]+    , lMimetypes = ["text/x-lighttpd-conf"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\35\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\83\42" (Arbitrary "\78\97\109\101")-    , tok "\91\97\45\122\65\45\90\46\95\45\93\43" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\100\43\92\46\92\100\43\92\46\92\100\43\92\46\92\100\43\40\63\58\47\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\61\62\124\61\126\124\92\43\61\124\61\61\124\61\124\92\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\36\91\65\45\90\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\40\41\123\125\92\91\92\93\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\34\40\91\94\34\92\92\93\42\40\63\58\92\92\46\91\94\34\92\92\93\42\41\42\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "#.*\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\S*" (Arbitrary "Name")+    , tok "[a-zA-Z._-]+" (Arbitrary "Keyword")+    , tok "\\d+\\.\\d+\\.\\d+\\.\\d+(?:/\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "=>|=\126|\\+=|==|=|\\+" (Arbitrary "Operator")+    , tok "\\$[A-Z]+" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[(){}\\[\\],]" (Arbitrary "Punctuation")+    , tok "\"([^\"\\\\]*(?:\\\\.[^\"\\\\]*)*)\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "\\s+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Llvm.hs view
@@ -5,10 +5,10 @@  lexer :: Lexer lexer = Lexer-    { lName = "\76\76\86\77"-    , lAliases = ["\108\108\118\109"]-    , lExtensions = ["\46\108\108"]-    , lMimetypes = ["\116\101\120\116\47\120\45\108\108\118\109"]+    { lName = "LLVM"+    , lAliases = ["llvm"]+    , lExtensions = [".ll"]+    , lMimetypes = ["text/x-llvm"]     , lStart = root'     , lFlags = [multiline]     }@@ -16,30 +16,30 @@ root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tok "\94\92\115\42\40\91\45\97\45\122\65\45\90\36\46\95\93\91\45\97\45\122\65\45\90\36\46\95\48\45\57\93\42\124\34\91\94\34\93\42\63\34\41\92\115\42\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")+    , tok "^\\s*([-a-zA-Z$._][-a-zA-Z$._0-9]*|\"[^\"]*?\")\\s*:" (Arbitrary "Name" :. Arbitrary "Label")     , anyOf keyword'-    , tok "\37\40\91\45\97\45\122\65\45\90\36\46\95\93\91\45\97\45\122\65\45\90\36\46\95\48\45\57\93\42\124\34\91\94\34\93\42\63\34\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\64\40\91\45\97\45\122\65\45\90\36\46\95\93\91\45\97\45\122\65\45\90\36\46\95\48\45\57\93\42\124\34\91\94\34\93\42\63\34\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\71\108\111\98\97\108")-    , tok "\37\92\100\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\65\110\111\110\121\109\111\117\115")-    , tok "\64\92\100\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\71\108\111\98\97\108")-    , tok "\33\40\91\45\97\45\122\65\45\90\36\46\95\93\91\45\97\45\122\65\45\90\36\46\95\48\45\57\93\42\124\34\91\94\34\93\42\63\34\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\33\92\100\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\65\110\111\110\121\109\111\117\115")-    , tok "\99\63\34\91\94\34\93\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\48\91\120\88\93\91\97\45\102\65\45\70\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\45\63\92\100\43\40\63\58\91\46\93\92\100\43\41\63\40\63\58\91\101\69\93\91\45\43\93\63\92\100\43\40\63\58\91\46\93\92\100\43\41\63\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\61\60\62\123\125\92\91\92\93\40\41\42\46\44\33\93\124\120\92\98" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    , tok "%([-a-zA-Z$._][-a-zA-Z$._0-9]*|\"[^\"]*?\")" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "@([-a-zA-Z$._][-a-zA-Z$._0-9]*|\"[^\"]*?\")" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Global")+    , tok "%\\d+" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Anonymous")+    , tok "@\\d+" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Global")+    , tok "!([-a-zA-Z$._][-a-zA-Z$._0-9]*|\"[^\"]*?\")" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "!\\d+" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Anonymous")+    , tok "c?\"[^\"]*?\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "0[xX][a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "-?\\d+(?:[.]\\d+)?(?:[eE][-+]?\\d+(?:[.]\\d+)?)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[=<>{}\\[\\]()*.,!]|x\\b" (Arbitrary "Punctuation")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\40\92\110\124\92\115\41\43" (Arbitrary "\84\101\120\116")-    , tok "\59\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "(\\n|\\s)+" (Arbitrary "Text")+    , tok ";.*?\\n" (Arbitrary "Comment")     ]  keyword' :: TokenMatcher keyword' =-    [ tok "\40\98\101\103\105\110\124\101\110\100\124\116\114\117\101\124\102\97\108\115\101\124\100\101\99\108\97\114\101\124\100\101\102\105\110\101\124\103\108\111\98\97\108\124\99\111\110\115\116\97\110\116\124\112\114\105\118\97\116\101\124\108\105\110\107\101\114\95\112\114\105\118\97\116\101\124\105\110\116\101\114\110\97\108\124\97\118\97\105\108\97\98\108\101\95\101\120\116\101\114\110\97\108\108\121\124\108\105\110\107\111\110\99\101\124\108\105\110\107\111\110\99\101\95\111\100\114\124\119\101\97\107\124\119\101\97\107\95\111\100\114\124\97\112\112\101\110\100\105\110\103\124\100\108\108\105\109\112\111\114\116\124\100\108\108\101\120\112\111\114\116\124\99\111\109\109\111\110\124\100\101\102\97\117\108\116\124\104\105\100\100\101\110\124\112\114\111\116\101\99\116\101\100\124\101\120\116\101\114\110\95\119\101\97\107\124\101\120\116\101\114\110\97\108\124\116\104\114\101\97\100\95\108\111\99\97\108\124\122\101\114\111\105\110\105\116\105\97\108\105\122\101\114\124\117\110\100\101\102\124\110\117\108\108\124\116\111\124\116\97\105\108\124\116\97\114\103\101\116\124\116\114\105\112\108\101\124\100\101\112\108\105\98\115\124\100\97\116\97\108\97\121\111\117\116\124\118\111\108\97\116\105\108\101\124\110\117\119\124\110\115\119\124\101\120\97\99\116\124\105\110\98\111\117\110\100\115\124\97\108\105\103\110\124\97\100\100\114\115\112\97\99\101\124\115\101\99\116\105\111\110\124\97\108\105\97\115\124\109\111\100\117\108\101\124\97\115\109\124\115\105\100\101\101\102\102\101\99\116\124\103\99\124\100\98\103\124\99\99\99\124\102\97\115\116\99\99\124\99\111\108\100\99\99\124\120\56\54\95\115\116\100\99\97\108\108\99\99\124\120\56\54\95\102\97\115\116\99\97\108\108\99\99\124\97\114\109\95\97\112\99\115\99\99\124\97\114\109\95\97\97\112\99\115\99\99\124\97\114\109\95\97\97\112\99\115\95\118\102\112\99\99\124\99\99\124\99\124\115\105\103\110\101\120\116\124\122\101\114\111\101\120\116\124\105\110\114\101\103\124\115\114\101\116\124\110\111\117\110\119\105\110\100\124\110\111\114\101\116\117\114\110\124\110\111\97\108\105\97\115\124\110\111\99\97\112\116\117\114\101\124\98\121\118\97\108\124\110\101\115\116\124\114\101\97\100\110\111\110\101\124\114\101\97\100\111\110\108\121\124\105\110\108\105\110\101\104\105\110\116\124\110\111\105\110\108\105\110\101\124\97\108\119\97\121\115\105\110\108\105\110\101\124\111\112\116\115\105\122\101\124\115\115\112\124\115\115\112\114\101\113\124\110\111\114\101\100\122\111\110\101\124\110\111\105\109\112\108\105\99\105\116\102\108\111\97\116\124\110\97\107\101\100\124\116\121\112\101\124\111\112\97\113\117\101\124\101\113\124\110\101\124\115\108\116\124\115\103\116\124\115\108\101\124\115\103\101\124\117\108\116\124\117\103\116\124\117\108\101\124\117\103\101\124\111\101\113\124\111\110\101\124\111\108\116\124\111\103\116\124\111\108\101\124\111\103\101\124\111\114\100\124\117\110\111\124\117\101\113\124\117\110\101\124\120\124\97\100\100\124\102\97\100\100\124\115\117\98\124\102\115\117\98\124\109\117\108\124\102\109\117\108\124\117\100\105\118\124\115\100\105\118\124\102\100\105\118\124\117\114\101\109\124\115\114\101\109\124\102\114\101\109\124\115\104\108\124\108\115\104\114\124\97\115\104\114\124\97\110\100\124\111\114\124\120\111\114\124\105\99\109\112\124\102\99\109\112\124\112\104\105\124\99\97\108\108\124\116\114\117\110\99\124\122\101\120\116\124\115\101\120\116\124\102\112\116\114\117\110\99\124\102\112\101\120\116\124\117\105\116\111\102\112\124\115\105\116\111\102\112\124\102\112\116\111\117\105\102\112\116\111\115\105\124\105\110\116\116\111\112\116\114\124\112\116\114\116\111\105\110\116\124\98\105\116\99\97\115\116\124\115\101\108\101\99\116\124\118\97\95\97\114\103\124\114\101\116\124\98\114\124\115\119\105\116\99\104\124\105\110\118\111\107\101\124\117\110\119\105\110\100\124\117\110\114\101\97\99\104\97\98\108\101\124\109\97\108\108\111\99\124\97\108\108\111\99\97\124\102\114\101\101\124\108\111\97\100\124\115\116\111\114\101\124\103\101\116\101\108\101\109\101\110\116\112\116\114\124\101\120\116\114\97\99\116\101\108\101\109\101\110\116\124\105\110\115\101\114\116\101\108\101\109\101\110\116\124\115\104\117\102\102\108\101\118\101\99\116\111\114\124\103\101\116\114\101\115\117\108\116\124\101\120\116\114\97\99\116\118\97\108\117\101\124\105\110\115\101\114\116\118\97\108\117\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\118\111\105\100\124\102\108\111\97\116\124\100\111\117\98\108\101\124\120\56\54\95\102\112\56\48\124\102\112\49\50\56\124\112\112\99\95\102\112\49\50\56\124\108\97\98\101\108\124\109\101\116\97\100\97\116\97" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\105\91\49\45\57\93\92\100\42" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "(begin|end|true|false|declare|define|global|constant|private|linker_private|internal|available_externally|linkonce|linkonce_odr|weak|weak_odr|appending|dllimport|dllexport|common|default|hidden|protected|extern_weak|external|thread_local|zeroinitializer|undef|null|to|tail|target|triple|deplibs|datalayout|volatile|nuw|nsw|exact|inbounds|align|addrspace|section|alias|module|asm|sideeffect|gc|dbg|ccc|fastcc|coldcc|x86_stdcallcc|x86_fastcallcc|arm_apcscc|arm_aapcscc|arm_aapcs_vfpcc|cc|c|signext|zeroext|inreg|sret|nounwind|noreturn|noalias|nocapture|byval|nest|readnone|readonly|inlinehint|noinline|alwaysinline|optsize|ssp|sspreq|noredzone|noimplicitfloat|naked|type|opaque|eq|ne|slt|sgt|sle|sge|ult|ugt|ule|uge|oeq|one|olt|ogt|ole|oge|ord|uno|ueq|une|x|add|fadd|sub|fsub|mul|fmul|udiv|sdiv|fdiv|urem|srem|frem|shl|lshr|ashr|and|or|xor|icmp|fcmp|phi|call|trunc|zext|sext|fptrunc|fpext|uitofp|sitofp|fptouifptosi|inttoptr|ptrtoint|bitcast|select|va_arg|ret|br|switch|invoke|unwind|unreachable|malloc|alloca|free|load|store|getelementptr|extractelement|insertelement|shufflevector|getresult|extractvalue|insertvalue)\\b" (Arbitrary "Keyword")+    , tok "void|float|double|x86_fp80|fp128|ppc_fp128|label|metadata" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "i[1-9]\\d*" (Arbitrary "Keyword")     ] 
src/Text/Highlighter/Lexers/Logtalk.hs view
@@ -5,137 +5,137 @@  lexer :: Lexer lexer = Lexer-    { lName = "\76\111\103\116\97\108\107"-    , lAliases = ["\108\111\103\116\97\108\107"]-    , lExtensions = ["\46\108\103\116"]-    , lMimetypes = ["\116\101\120\116\47\120\45\108\111\103\116\97\108\107"]+    { lName = "Logtalk"+    , lAliases = ["logtalk"]+    , lExtensions = [".lgt"]+    , lMimetypes = ["text/x-logtalk"]     , lStart = root'     , lFlags = [multiline]     }  quoted_atom' :: TokenMatcher quoted_atom' =-    [ tok "\91\39\93\91\39\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\91\39\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\40\120\91\97\45\102\65\45\70\48\45\57\93\43\124\91\48\45\55\93\43\41\92\92\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\91\94\92\92\39\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "['][']" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "[']" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|(x[a-fA-F0-9]+|[0-7]+)\\\\)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\'\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ]  root' :: TokenMatcher root' =-    [ tokNext "\94\92\115\42\58\45\92\115" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo directive')-    , tok "\37\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\47\92\42\40\46\124\92\110\41\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\48\39\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\98\91\48\49\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\111\91\48\45\55\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\100\43\92\46\63\92\100\42\40\40\101\124\69\41\40\92\43\124\45\41\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\40\91\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\97\102\116\101\114\124\98\101\102\111\114\101\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\112\97\114\97\109\101\116\101\114\124\116\104\105\115\124\115\101\40\108\102\124\110\100\101\114\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\117\114\114\101\110\116\95\112\114\101\100\105\99\97\116\101\124\112\114\101\100\105\99\97\116\101\95\112\114\111\112\101\114\116\121\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\101\120\112\97\110\100\95\40\103\111\97\108\124\116\101\114\109\41\124\40\103\111\97\108\124\116\101\114\109\41\95\101\120\112\97\110\115\105\111\110\124\112\104\114\97\115\101\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\97\98\111\108\105\115\104\124\99\40\114\101\97\116\101\124\117\114\114\101\110\116\41\41\95\40\111\98\106\101\99\116\124\112\114\111\116\111\99\111\108\124\99\97\116\101\103\111\114\121\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\111\98\106\101\99\116\124\112\114\111\116\111\99\111\108\124\99\97\116\101\103\111\114\121\41\95\112\114\111\112\101\114\116\121\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\99\111\109\112\108\101\109\101\110\116\115\95\111\98\106\101\99\116\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\101\120\116\101\110\100\115\95\40\111\98\106\101\99\116\124\112\114\111\116\111\99\111\108\124\99\97\116\101\103\111\114\121\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\105\109\112\40\108\101\109\101\110\116\115\95\112\114\111\116\111\99\111\108\124\111\114\116\115\95\99\97\116\101\103\111\114\121\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\105\110\115\116\97\110\116\105\97\116\124\115\112\101\99\105\97\108\105\122\41\101\115\95\99\108\97\115\115\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\117\114\114\101\110\116\95\101\118\101\110\116\124\40\97\98\111\108\105\115\104\124\100\101\102\105\110\101\41\95\101\118\101\110\116\115\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\117\114\114\101\110\116\124\115\101\116\41\95\108\111\103\116\97\108\107\95\102\108\97\103\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\108\111\103\116\97\108\107\95\40\99\111\109\112\105\108\101\124\108\40\105\98\114\97\114\121\95\112\97\116\104\124\111\97\100\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\108\97\117\115\101\124\114\101\116\114\97\99\116\40\97\108\108\41\63\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\97\40\98\111\108\105\115\104\124\115\115\101\114\116\40\97\124\122\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\97\40\108\108\124\116\99\104\41\124\116\104\114\111\119\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\102\97\105\108\124\116\114\117\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\40\98\97\103\124\115\101\116\41\111\102\124\102\40\105\110\100\124\111\114\41\97\108\108\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\116\104\114\101\97\100\101\100\40\95\40\99\97\108\108\124\111\110\99\101\124\105\103\110\111\114\101\124\101\120\105\116\124\112\101\101\107\124\119\97\105\116\124\110\111\116\105\102\121\41\41\63\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\117\110\105\102\121\95\119\105\116\104\95\111\99\99\117\114\115\95\99\104\101\99\107\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\102\117\110\99\116\111\114\124\97\114\103\124\99\111\112\121\95\116\101\114\109\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\114\101\109\124\109\111\100\124\97\98\115\124\115\105\103\110\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\102\108\111\97\116\40\95\40\105\110\116\101\103\101\114\124\102\114\97\99\116\105\111\110\97\108\41\95\112\97\114\116\41\63\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\102\108\111\111\114\124\116\114\117\110\99\97\116\101\124\114\111\117\110\100\124\99\101\105\108\105\110\103\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\111\115\124\97\116\97\110\124\101\120\112\124\108\111\103\124\115\40\105\110\124\113\114\116\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\118\97\114\124\97\116\111\109\40\105\99\41\63\124\105\110\116\101\103\101\114\124\102\108\111\97\116\124\99\111\109\112\111\117\110\100\124\110\40\111\110\118\97\114\124\117\109\98\101\114\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\117\114\114\101\110\124\115\101\41\116\95\40\105\110\124\111\117\116\41\112\117\116\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\111\112\101\110\124\99\108\111\115\101\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\102\108\117\115\104\95\111\117\116\112\117\116\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\97\116\95\101\110\100\95\111\102\95\115\116\114\101\97\109\124\102\108\117\115\104\95\111\117\116\112\117\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\115\116\114\101\97\109\95\112\114\111\112\101\114\116\121\124\97\116\95\101\110\100\95\111\102\95\115\116\114\101\97\109\124\115\101\116\95\115\116\114\101\97\109\95\112\111\115\105\116\105\111\110\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\110\108\124\40\103\101\116\124\112\101\101\107\124\112\117\116\41\95\40\98\121\116\101\124\99\40\104\97\114\124\111\100\101\41\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\110\108\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\114\101\97\100\40\95\116\101\114\109\41\63\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\119\114\105\116\101\40\113\124\95\40\99\97\110\111\110\105\99\97\108\124\116\101\114\109\41\41\63\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\117\114\114\101\110\116\95\41\63\111\112\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\117\114\114\101\110\116\95\41\63\99\104\97\114\95\99\111\110\118\101\114\115\105\111\110\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\97\116\111\109\95\40\108\101\110\103\116\104\124\99\40\104\97\114\115\124\111\40\110\99\97\116\124\100\101\115\41\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\99\104\97\114\95\99\111\100\101\124\115\117\98\95\97\116\111\109\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\110\117\109\98\101\114\95\99\40\104\97\114\124\111\100\101\41\115\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\115\101\124\99\117\114\114\101\110\41\116\95\112\114\111\108\111\103\95\102\108\97\103\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\104\97\108\116\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\104\97\108\116\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\58\58\124\58\124\92\94\92\94\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\123\125\93" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\111\110\99\101\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\114\101\112\101\97\116\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\62\62\124\60\60\124\47\92\92\124\92\92\92\92\124\92\92\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\98\105\115\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\61\58\61\124\61\92\92\61\124\60\124\61\60\124\62\61\124\62\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\61\92\46\92\46" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\61\124\92\92\61\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\61\61\124\92\92\61\61\124\64\61\60\124\64\60\124\64\62\61\124\64\62\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\47\47\124\91\45\43\42\47\93\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\98\40\109\111\100\124\114\101\109\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\98\92\42\92\42\92\98" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\45\45\62" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\91\33\59\93\124\45\62\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\92\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\63\64\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\40\41\92\91\92\93\44\46\124\93" (Arbitrary "\84\101\120\116")-    , tok "\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\84\101\120\116")-    , tokNext "\91\39\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo quoted_atom')+    [ tokNext "^\\s*:-\\s" (Arbitrary "Punctuation") (GoTo directive')+    , tok "%.*?\\n" (Arbitrary "Comment")+    , tok "/\\*(.|\\n)*?\\*/" (Arbitrary "Comment")+    , tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "0'." (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0b[01]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0o[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0x[0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\d+\\.?\\d*((e|E)(\\+|-)?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "([A-Z_][a-zA-Z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(after|before)(?=[(])" (Arbitrary "Keyword")+    , tok "(parameter|this|se(lf|nder))(?=[(])" (Arbitrary "Keyword")+    , tok "(current_predicate|predicate_property)(?=[(])" (Arbitrary "Keyword")+    , tok "(expand_(goal|term)|(goal|term)_expansion|phrase)(?=[(])" (Arbitrary "Keyword")+    , tok "(abolish|c(reate|urrent))_(object|protocol|category)(?=[(])" (Arbitrary "Keyword")+    , tok "(object|protocol|category)_property(?=[(])" (Arbitrary "Keyword")+    , tok "complements_object(?=[(])" (Arbitrary "Keyword")+    , tok "extends_(object|protocol|category)(?=[(])" (Arbitrary "Keyword")+    , tok "imp(lements_protocol|orts_category)(?=[(])" (Arbitrary "Keyword")+    , tok "(instantiat|specializ)es_class(?=[(])" (Arbitrary "Keyword")+    , tok "(current_event|(abolish|define)_events)(?=[(])" (Arbitrary "Keyword")+    , tok "(current|set)_logtalk_flag(?=[(])" (Arbitrary "Keyword")+    , tok "logtalk_(compile|l(ibrary_path|oad))(?=[(])" (Arbitrary "Keyword")+    , tok "(clause|retract(all)?)(?=[(])" (Arbitrary "Keyword")+    , tok "a(bolish|ssert(a|z))(?=[(])" (Arbitrary "Keyword")+    , tok "(ca(ll|tch)|throw)(?=[(])" (Arbitrary "Keyword")+    , tok "(fail|true)\\b" (Arbitrary "Keyword")+    , tok "((bag|set)of|f(ind|or)all)(?=[(])" (Arbitrary "Keyword")+    , tok "threaded(_(call|once|ignore|exit|peek|wait|notify))?(?=[(])" (Arbitrary "Keyword")+    , tok "unify_with_occurs_check(?=[(])" (Arbitrary "Keyword")+    , tok "(functor|arg|copy_term)(?=[(])" (Arbitrary "Keyword")+    , tok "(rem|mod|abs|sign)(?=[(])" (Arbitrary "Keyword")+    , tok "float(_(integer|fractional)_part)?(?=[(])" (Arbitrary "Keyword")+    , tok "(floor|truncate|round|ceiling)(?=[(])" (Arbitrary "Keyword")+    , tok "(cos|atan|exp|log|s(in|qrt))(?=[(])" (Arbitrary "Keyword")+    , tok "(var|atom(ic)?|integer|float|compound|n(onvar|umber))(?=[(])" (Arbitrary "Keyword")+    , tok "(curren|se)t_(in|out)put(?=[(])" (Arbitrary "Keyword")+    , tok "(open|close)(?=[(])" (Arbitrary "Keyword")+    , tok "flush_output(?=[(])" (Arbitrary "Keyword")+    , tok "(at_end_of_stream|flush_output)\\b" (Arbitrary "Keyword")+    , tok "(stream_property|at_end_of_stream|set_stream_position)(?=[(])" (Arbitrary "Keyword")+    , tok "(nl|(get|peek|put)_(byte|c(har|ode)))(?=[(])" (Arbitrary "Keyword")+    , tok "\\bnl\\b" (Arbitrary "Keyword")+    , tok "read(_term)?(?=[(])" (Arbitrary "Keyword")+    , tok "write(q|_(canonical|term))?(?=[(])" (Arbitrary "Keyword")+    , tok "(current_)?op(?=[(])" (Arbitrary "Keyword")+    , tok "(current_)?char_conversion(?=[(])" (Arbitrary "Keyword")+    , tok "atom_(length|c(hars|o(ncat|des)))(?=[(])" (Arbitrary "Keyword")+    , tok "(char_code|sub_atom)(?=[(])" (Arbitrary "Keyword")+    , tok "number_c(har|ode)s(?=[(])" (Arbitrary "Keyword")+    , tok "(se|curren)t_prolog_flag(?=[(])" (Arbitrary "Keyword")+    , tok "\\bhalt\\b" (Arbitrary "Keyword")+    , tok "halt(?=[(])" (Arbitrary "Keyword")+    , tok "(::|:|\\^\\^)" (Arbitrary "Operator")+    , tok "[{}]" (Arbitrary "Keyword")+    , tok "\\bonce(?=[(])" (Arbitrary "Keyword")+    , tok "\\brepeat\\b" (Arbitrary "Keyword")+    , tok "(>>|<<|/\\\\|\\\\\\\\|\\\\)" (Arbitrary "Operator")+    , tok "\\bis\\b" (Arbitrary "Keyword")+    , tok "(=:=|=\\\\=|<|=<|>=|>)" (Arbitrary "Operator")+    , tok "=\\.\\." (Arbitrary "Operator")+    , tok "(=|\\\\=)" (Arbitrary "Operator")+    , tok "(==|\\\\==|@=<|@<|@>=|@>)" (Arbitrary "Operator")+    , tok "(//|[-+*/])" (Arbitrary "Operator")+    , tok "\\b(mod|rem)\\b" (Arbitrary "Operator")+    , tok "\\b\\*\\*\\b" (Arbitrary "Operator")+    , tok "-->" (Arbitrary "Operator")+    , tok "([!;]|->)" (Arbitrary "Operator")+    , tok "\\\\+" (Arbitrary "Operator")+    , tok "[?@]" (Arbitrary "Operator")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[()\\[\\],.|]" (Arbitrary "Text")+    , tok "[a-z][a-zA-Z0-9_]*" (Arbitrary "Text")+    , tokNext "[']" (Arbitrary "Literal" :. Arbitrary "String") (GoTo quoted_atom')     ]  directive' :: TokenMatcher directive' =-    [ tokNext "\40\101\108\41\63\105\102\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\40\101\40\108\115\101\124\110\100\105\102\41\41\91\46\93" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\40\99\97\116\101\103\111\114\121\124\111\98\106\101\99\116\124\112\114\111\116\111\99\111\108\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo entityrelations')-    , tokNext "\40\101\110\100\95\40\99\97\116\101\103\111\114\121\124\111\98\106\101\99\116\124\112\114\111\116\111\99\111\108\41\41\91\46\93" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\40\112\117\98\108\105\99\124\112\114\111\116\101\99\116\101\100\124\112\114\105\118\97\116\101\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\101\40\110\40\99\111\100\105\110\103\124\115\117\114\101\95\108\111\97\100\101\100\41\124\120\112\111\114\116\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\105\110\40\102\111\124\105\116\105\97\108\105\122\97\116\105\111\110\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\40\100\121\110\97\109\105\99\124\115\121\110\99\104\114\111\110\105\122\101\100\124\116\104\114\101\97\100\101\100\41\91\46\93" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\40\97\108\105\97\115\124\100\40\121\110\97\109\105\99\124\105\115\99\111\110\116\105\103\117\111\117\115\41\124\109\40\101\116\97\95\112\114\101\100\105\99\97\116\101\124\111\100\101\124\117\108\116\105\102\105\108\101\41\124\115\40\101\116\95\40\108\111\103\116\97\108\107\124\112\114\111\108\111\103\41\95\102\108\97\103\124\121\110\99\104\114\111\110\105\122\101\100\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\111\112\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\40\99\97\108\108\115\124\114\101\101\120\112\111\114\116\124\117\115\101\40\115\124\95\109\111\100\117\108\101\41\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo root')-    , tokNext "\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\40\63\61\91\40\93\41" (Arbitrary "\84\101\120\116") (GoTo root')-    , tokNext "\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\91\46\93" (Arbitrary "\84\101\120\116") (GoTo root')+    [ tokNext "(el)?if(?=[(])" (Arbitrary "Keyword") (GoTo root')+    , tokNext "(e(lse|ndif))[.]" (Arbitrary "Keyword") (GoTo root')+    , tokNext "(category|object|protocol)(?=[(])" (Arbitrary "Keyword") (GoTo entityrelations')+    , tokNext "(end_(category|object|protocol))[.]" (Arbitrary "Keyword") (GoTo root')+    , tokNext "(public|protected|private)(?=[(])" (Arbitrary "Keyword") (GoTo root')+    , tokNext "e(n(coding|sure_loaded)|xport)(?=[(])" (Arbitrary "Keyword") (GoTo root')+    , tokNext "in(fo|itialization)(?=[(])" (Arbitrary "Keyword") (GoTo root')+    , tokNext "(dynamic|synchronized|threaded)[.]" (Arbitrary "Keyword") (GoTo root')+    , tokNext "(alias|d(ynamic|iscontiguous)|m(eta_predicate|ode|ultifile)|s(et_(logtalk|prolog)_flag|ynchronized))(?=[(])" (Arbitrary "Keyword") (GoTo root')+    , tokNext "op(?=[(])" (Arbitrary "Keyword") (GoTo root')+    , tokNext "(calls|reexport|use(s|_module))(?=[(])" (Arbitrary "Keyword") (GoTo root')+    , tokNext "[a-z][a-zA-Z0-9_]*(?=[(])" (Arbitrary "Text") (GoTo root')+    , tokNext "[a-z][a-zA-Z0-9_]*[.]" (Arbitrary "Text") (GoTo root')     ]  entityrelations' :: TokenMatcher entityrelations' =-    [ tok "\40\101\120\116\101\110\100\115\124\105\40\110\115\116\97\110\116\105\97\116\101\115\124\109\112\40\108\101\109\101\110\116\115\124\111\114\116\115\41\41\124\115\112\101\99\105\97\108\105\122\101\115\41\40\63\61\91\40\93\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\48\39\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\98\91\48\49\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\111\91\48\45\55\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\100\43\92\46\63\92\100\42\40\40\101\124\69\41\40\92\43\124\45\41\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\40\91\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\84\101\120\116")-    , tokNext "\91\39\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo quoted_atom')-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\40\91\41\93\92\46\41" (Arbitrary "\84\101\120\116") (GoTo root')-    , tok "\40\58\58\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\40\41\92\91\92\93\44\46\124\93" (Arbitrary "\84\101\120\116")-    , tok "\37\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\47\92\42\40\46\124\92\110\41\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "(extends|i(nstantiates|mp(lements|orts))|specializes)(?=[(])" (Arbitrary "Keyword")+    , tok "0'." (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0b[01]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0o[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0x[0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\d+\\.?\\d*((e|E)(\\+|-)?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "([A-Z_][a-zA-Z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[a-z][a-zA-Z0-9_]*" (Arbitrary "Text")+    , tokNext "[']" (Arbitrary "Literal" :. Arbitrary "String") (GoTo quoted_atom')+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "([)]\\.)" (Arbitrary "Text") (GoTo root')+    , tok "(::)" (Arbitrary "Operator")+    , tok "[()\\[\\],.|]" (Arbitrary "Text")+    , tok "%.*?\\n" (Arbitrary "Comment")+    , tok "/\\*(.|\\n)*?\\*/" (Arbitrary "Comment")+    , tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Lua.hs view
@@ -5,75 +5,74 @@  lexer :: Lexer lexer = Lexer-    { lName = "\76\117\97"-    , lAliases = ["\108\117\97"]-    , lExtensions = ["\46\108\117\97"]-    , lMimetypes = ["\116\101\120\116\47\120\45\108\117\97", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\108\117\97"]+    { lName = "Lua"+    , lAliases = ["lua"]+    , lExtensions = [".lua", ".wlua"]+    , lMimetypes = ["text/x-lua", "application/x-lua"]     , lStart = root'     , lFlags = [multiline]     }  classname' :: TokenMatcher classname' =-    [ tokNext "\91\65\45\90\97\45\122\95\93\91\65\45\90\97\45\122\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[A-Za-z_][A-Za-z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  stringescape' :: TokenMatcher stringescape' =-    [ tok "\92\92\40\91\97\98\102\110\114\116\118\92\92\34\39\93\124\92\100\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tok "\\\\([abfnrtv\\\\\"']|\\d{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     ]  base' :: TokenMatcher base' =-    [ tok "\40\63\115\41\45\45\92\91\40\61\42\41\92\91\46\42\63\92\93\92\49\92\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\45\45\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\40\63\105\41\40\92\100\42\92\46\92\100\43\124\92\100\43\92\46\92\100\42\41\40\101\91\43\45\93\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\63\105\41\92\100\43\101\91\43\45\93\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\63\105\41\48\120\91\48\45\57\97\45\102\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\91\94\92\83\92\110\93" (Arbitrary "\84\101\120\116")-    , tok "\40\63\115\41\92\91\40\61\42\41\92\91\46\42\63\92\93\92\49\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\91\92\91\92\93\92\123\92\125\92\40\92\41\92\46\44\58\59\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\61\61\124\126\61\124\60\61\124\62\61\124\92\46\92\46\124\92\46\92\46\92\46\124\91\61\43\92\45\42\47\37\94\60\62\35\93\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\97\110\100\124\111\114\124\110\111\116\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\40\98\114\101\97\107\124\100\111\124\101\108\115\101\124\101\108\115\101\105\102\124\101\110\100\124\102\111\114\124\105\102\124\105\110\124\114\101\112\101\97\116\124\114\101\116\117\114\110\124\116\104\101\110\124\117\110\116\105\108\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\108\111\99\97\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\105\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tokNext "\40\102\117\110\99\116\105\111\110\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo funcname')-    , tokNext "\40\99\108\97\115\115\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tok "\91\65\45\90\97\45\122\95\93\91\65\45\90\97\45\122\48\45\57\95\93\42\40\92\46\91\65\45\90\97\45\122\95\93\91\65\45\90\97\45\122\48\45\57\95\93\42\41\63" (Arbitrary "\78\97\109\101")-    , tok "\40\63\115\41\92\91\40\61\42\41\92\91\40\46\42\63\41\92\93\92\49\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101") (Combined [stringescape', sqs'])-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") (Combined [stringescape', dqs'])+    [ tok "(?s)--\\[(=*)\\[.*?\\]\\1\\]" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "--.*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "(?i)(\\d*\\.\\d+|\\d+\\.\\d*)(e[+-]?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(?i)\\d+e[+-]?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(?i)0x[0-9a-f]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\n" (Arbitrary "Text")+    , tok "[^\\S\\n]" (Arbitrary "Text")+    , tok "(?s)\\[(=*)\\[.*?\\]\\1\\]" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "(==|\126=|<=|>=|\\.\\.|\\.\\.\\.|[=+\\-*/%^<>#])" (Arbitrary "Operator")+    , tok "[\\[\\]\\{\\}\\(\\)\\.,:;]" (Arbitrary "Punctuation")+    , tok "(and|or|not)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "(break|do|else|elseif|end|for|if|in|repeat|return|then|until|while)\\b" (Arbitrary "Keyword")+    , tok "(local)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "(true|false|nil)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tokNext "(function)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo funcname')+    , tokNext "(class)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tok "[A-Za-z_][A-Za-z0-9_]*(\\.[A-Za-z_][A-Za-z0-9_]*)?" (Arbitrary "Name")+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single") (Combined [stringescape', sqs'])+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (Combined [stringescape', dqs'])     ]  string' :: TokenMatcher string' =-    [ tok "\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "." (Arbitrary "Literal" :. Arbitrary "String")     ]  dqs' :: TokenMatcher dqs' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf string'     ]  sqs' :: TokenMatcher sqs' =-    [ tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf string'     ]  root' :: TokenMatcher root' =-    [ tok "\35\33\40\46\42\63\41\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "" (Arbitrary "\84\101\120\116") (GoTo base')+    [ tok "#!(.*?)$" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "" (Arbitrary "Text") (GoTo base')     ]  funcname' :: TokenMatcher funcname' =-    [ tokNext "\91\65\45\90\97\45\122\95\93\91\65\45\90\97\45\122\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop-    , tokNext "\92\40" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tokNext "(?:([A-Za-z_][A-Za-z0-9_]*)(\\.))?([A-Za-z_][A-Za-z0-9_]*)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Function")]) Pop+    , tokNext "\\(" (Arbitrary "Punctuation") Pop     ] 
src/Text/Highlighter/Lexers/MOOCode.hs view
@@ -5,27 +5,27 @@  lexer :: Lexer lexer = Lexer-    { lName = "\77\79\79\67\111\100\101"-    , lAliases = ["\109\111\111\99\111\100\101"]-    , lExtensions = ["\46\109\111\111"]-    , lMimetypes = ["\116\101\120\116\47\120\45\109\111\111\99\111\100\101"]+    { lName = "MOOCode"+    , lAliases = ["moocode"]+    , lExtensions = [".moo"]+    , lMimetypes = ["text/x-moocode"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\40\48\124\91\49\45\57\93\91\48\45\57\95\93\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\40\69\95\80\69\82\77\124\69\95\68\73\86\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\120\99\101\112\116\105\111\110")-    , tok "\40\40\35\91\45\48\45\57\93\43\41\124\40\92\36\91\97\45\122\95\65\45\90\48\45\57\93\43\41\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")-    , tok "\92\98\40\105\102\124\101\108\115\101\124\101\108\115\101\105\102\124\101\110\100\105\102\124\102\111\114\124\101\110\100\102\111\114\124\102\111\114\107\124\101\110\100\102\111\114\107\124\119\104\105\108\101\124\101\110\100\119\104\105\108\101\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\114\101\116\117\114\110\124\116\114\121\124\101\120\99\101\112\116\124\101\110\100\116\114\121\124\102\105\110\97\108\108\121\124\105\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\114\97\110\100\111\109\124\108\101\110\103\116\104\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\112\108\97\121\101\114\124\99\97\108\108\101\114\124\116\104\105\115\124\97\114\103\115\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\73\110\115\116\97\110\99\101")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\40\91\33\59\61\44\123\125\38\92\124\58\92\46\92\91\92\93\64\92\40\92\41\92\60\92\62\92\63\93\43\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\91\97\45\122\95\65\45\90\48\45\57\93\43\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\40\91\97\45\122\65\45\90\95\48\45\57\93\43\41" (Arbitrary "\84\101\120\116")+    [ tok "(0|[1-9][0-9_]*)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "(E_PERM|E_DIV)" (Arbitrary "Name" :. Arbitrary "Exception")+    , tok "((#[-0-9]+)|(\\$[a-z_A-Z0-9]+))" (Arbitrary "Name" :. Arbitrary "Entity")+    , tok "\\b(if|else|elseif|endif|for|endfor|fork|endfork|while|endwhile|break|continue|return|try|except|endtry|finally|in)\\b" (Arbitrary "Keyword")+    , tok "(random|length)" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(player|caller|this|args)" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Instance")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\n" (Arbitrary "Text")+    , tok "([!;=,{}&\\|:\\.\\[\\]@\\(\\)\\<\\>\\?]+)" (Arbitrary "Operator")+    , tok "([a-z_A-Z0-9]+)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Operator")])+    , tok "([a-zA-Z_0-9]+)" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Mako.hs view
@@ -7,47 +7,47 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\121\116\104\111\110"-    , lAliases = ["\109\97\107\111"]-    , lExtensions = ["\46\109\97\111"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\109\97\107\111"]+    { lName = "Mako"+    , lAliases = ["mako"]+    , lExtensions = [".mao"]+    , lMimetypes = ["application/x-mako"]     , lStart = root'     , lFlags = [multiline]     }  ondeftags' :: TokenMatcher ondeftags' =-    [ tok "\60\37" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\40\63\60\61\60\37\41\40\105\110\99\108\117\100\101\124\105\110\104\101\114\105\116\124\110\97\109\101\115\112\97\99\101\124\112\97\103\101\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tok "<%" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(?<=<%)(include|inherit|namespace|page)" (Arbitrary "Name" :. Arbitrary "Builtin")     , anyOf tag'     ]  tag' :: TokenMatcher tag' =-    [ tok "\40\40\63\58\92\119\43\41\92\115\42\61\41\92\115\42\40\34\46\42\63\34\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tokNext "\47\63\92\115\42\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "((?:\\w+)\\s*=)\\s*(\".*?\")" (ByGroups [(Arbitrary "Name" :. Arbitrary "Attribute"), (Arbitrary "Literal" :. Arbitrary "String")])+    , tokNext "/?\\s*>" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok "\\s+" (Arbitrary "Text")     ]  root' :: TokenMatcher root' =-    [ tok "\40\92\115\42\41\40\37\41\40\92\115\42\101\110\100\40\63\58\92\119\43\41\41\40\92\110\124\92\90\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\79\116\104\101\114")])-    , tok "\40\92\115\42\41\40\37\41\40\91\94\92\110\93\42\41\40\92\110\124\92\90\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Using Python.lexer), (Arbitrary "\79\116\104\101\114")])-    , tok "\40\92\115\42\41\40\35\35\91\94\92\110\93\42\41\40\92\110\124\92\90\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\79\116\104\101\114")])-    , tok "\40\63\115\41\60\37\100\111\99\62\46\42\63\60\47\37\100\111\99\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\40\60\37\41\40\91\92\119\92\46\92\58\93\43\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")]) (GoTo tag')-    , tok "\40\60\47\37\41\40\91\92\119\92\46\92\58\93\43\41\40\62\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tokNext "\60\37\40\63\61\40\91\92\119\92\46\92\58\93\43\41\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo ondeftags')-    , tok "\40\60\37\40\63\58\33\63\41\41\40\46\42\63\41\40\37\62\41\40\63\115\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Using Python.lexer), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tok "\40\92\36\92\123\41\40\46\42\63\41\40\92\125\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Using Python.lexer), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tok "\40\63\115\120\41\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\46\43\63\41\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\97\110\121\116\104\105\110\103\44\32\102\111\108\108\111\119\101\100\32\98\121\58\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\58\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\60\61\92\110\41\40\63\61\37\124\92\35\92\35\41\32\124\32\35\32\97\110\32\101\118\97\108\32\111\114\32\99\111\109\109\101\110\116\32\108\105\110\101\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\61\92\35\92\42\41\32\124\32\32\32\32\32\32\32\32\32\32\35\32\109\117\108\116\105\108\105\110\101\32\99\111\109\109\101\110\116\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\61\60\47\63\37\41\32\124\32\32\32\32\32\32\32\32\32\32\35\32\97\32\112\121\116\104\111\110\32\98\108\111\99\107\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\99\97\108\108\32\115\116\97\114\116\32\111\114\32\101\110\100\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\61\92\36\92\123\41\32\124\32\32\32\32\32\32\32\32\32\32\35\32\97\32\115\117\98\115\116\105\116\117\116\105\111\110\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\63\60\61\92\110\41\40\63\61\92\115\42\37\41\32\124\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\45\32\100\111\110\39\116\32\99\111\110\115\117\109\101\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\40\92\92\92\110\41\32\124\32\32\32\32\32\32\32\32\32\32\32\32\35\32\97\110\32\101\115\99\97\112\101\100\32\110\101\119\108\105\110\101\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\92\90\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\35\32\101\110\100\32\111\102\32\115\116\114\105\110\103\10\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\32\41\10\32\32\32\32\32\32\32\32\32\32\32\32" (ByGroups [(Arbitrary "\79\116\104\101\114"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "(\\s*)(%)(\\s*end(?:\\w+))(\\n|\\Z)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Keyword"), (Arbitrary "Other")])+    , tok "(\\s*)(%)([^\\n]*)(\\n|\\Z)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc"), (Using Python.lexer), (Arbitrary "Other")])+    , tok "(\\s*)(##[^\\n]*)(\\n|\\Z)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Other")])+    , tok "(?s)<%doc>.*?</%doc>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "(<%)([\\w\\.\\:]+)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Name" :. Arbitrary "Builtin")]) (GoTo tag')+    , tok "(</%)([\\w\\.\\:]+)(>)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tokNext "<%(?=([\\w\\.\\:]+))" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo ondeftags')+    , tok "(<%(?:!?))(.*?)(%>)(?s)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Using Python.lexer), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tok "(\\$\\{)(.*?)(\\})" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Using Python.lexer), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tok "(?sx)\10                (.+?)                # anything, followed by:\10                (?:\10                 (?<=\\n)(?=%|\\#\\#) | # an eval or comment line\10                 (?=\\#\\*) |          # multiline comment\10                 (?=</?%) |          # a python block\10                                     # call start or end\10                 (?=\\$\\{) |          # a substitution\10                 (?<=\\n)(?=\\s*%) |\10                                     # - don't consume\10                 (\\\\\\n) |            # an escaped newline\10                 \\Z                  # end of string\10                )\10            " (ByGroups [(Arbitrary "Other"), (Arbitrary "Operator")])+    , tok "\\s+" (Arbitrary "Text")     ]  attr' :: TokenMatcher attr' =-    [ tokNext "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\91\94\92\115\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "'.*?'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "[^\\s>]+" (Arbitrary "Literal" :. Arbitrary "String") Pop     ] 
+ src/Text/Highlighter/Lexers/Maql.hs view
@@ -0,0 +1,39 @@+module Text.Highlighter.Lexers.Maql (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "MAQL"+    , lAliases = ["maql"]+    , lExtensions = [".maql"]+    , lMimetypes = ["text/x-gooddata-maql", "application/x-gooddata-maql"]+    , lStart = root'+    , lFlags = [caseless]+    }++root' :: TokenMatcher+root' =+    [ tok "IDENTIFIER\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\{[^}]+\\}" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[0-9]+(?:\\.[0-9]+)?(?:[eE][+-]?[0-9]{1,3})?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo stringLiteral')+    , tok "\\<\\>|\\!\\=" (Arbitrary "Operator")+    , tok "\\=|\\>\\=|\\>|\\<\\=|\\<" (Arbitrary "Operator")+    , tok "\\:\\=" (Arbitrary "Operator")+    , tok "\\[[^]]+\\]" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Class")+    , tok "(DIMENSIONS?|BOTTOM|METRIC|COUNT|OTHER|FACT|WITH|TOP|OR|ATTRIBUTE|CREATE|PARENT|FALSE|ROWS?|FROM|ALL|AS|PF|COLUMNS?|DEFINE|REPORT|LIMIT|TABLE|LIKE|AND|BY|BETWEEN|EXCEPT|SELECT|MATCH|WHERE|TRUE|FOR|IN|WITHOUT|FILTER|ALIAS|ORDER|FACT|WHEN|NOT|ON|KEYS|KEY|FULLSET|PRIMARY|LABELS|LABEL|VISUAL|TITLE|DESCRIPTION|FOLDER|ALTER|DROP|ADD|DATASET|DATATYPE|INT|BIGINT|DOUBLE|DATE|VARCHAR|DECIMAL|SYNCHRONIZE|TYPE|DEFAULT|ORDER|ASC|DESC|HYPERLINK|INCLUDE|TEMPLATE|MODIFY)\\b" (Arbitrary "Keyword")+    , tok "[a-zA-Z]\\w*\\b" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "#.*" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "[,;\\(\\)]" (Arbitrary "Punctuation")+    , tok "\\s+" (Arbitrary "Text")+    ]++stringLiteral' :: TokenMatcher+stringLiteral' =+    [ tok "\\\\[tnrfbae\"\\\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "[^\\\\\"]+" (Arbitrary "Literal" :. Arbitrary "String")+    ]+
src/Text/Highlighter/Lexers/Matlab.hs view
@@ -5,38 +5,38 @@  lexer :: Lexer lexer = Lexer-    { lName = "\77\97\116\108\97\98"-    , lAliases = ["\109\97\116\108\97\98", "\111\99\116\97\118\101"]-    , lExtensions = ["\46\109"]-    , lMimetypes = ["\116\101\120\116\47\109\97\116\108\97\98"]+    { lName = "Matlab"+    , lAliases = ["matlab", "octave"]+    , lExtensions = [".m"]+    , lMimetypes = ["text/matlab"]     , lStart = root'     , lFlags = [multiline]     }  deffunc' :: TokenMatcher deffunc' =-    [ tokNext "\40\92\115\42\41\40\63\58\40\46\43\41\40\92\115\42\41\40\61\41\40\92\115\42\41\41\63\40\46\43\41\40\92\40\41\40\46\42\41\40\92\41\41\40\92\115\42\41" (ByGroups [(Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101")]) Pop+    [ tokNext "(\\s*)(?:(.+)(\\s*)(=)(\\s*))?(.+)(\\()(.*)(\\))(\\s*)" (ByGroups [(Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Text"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Punctuation"), (Arbitrary "Text" :. Arbitrary "Whitespace"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Text" :. Arbitrary "Whitespace")]) Pop     ]  root' :: TokenMatcher root' =-    [ tok "\94\33\46\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tok "\37\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\94\92\115\42\102\117\110\99\116\105\111\110" (Arbitrary "\75\101\121\119\111\114\100") (GoTo deffunc')-    , tok "\40\98\114\101\97\107\124\99\97\115\101\124\99\97\116\99\104\124\99\108\97\115\115\100\101\102\124\99\111\110\116\105\110\117\101\124\101\108\115\101\124\101\108\115\101\105\102\124\101\110\100\124\102\111\114\124\102\117\110\99\116\105\111\110\124\103\108\111\98\97\108\124\105\102\124\111\116\104\101\114\119\105\115\101\124\112\97\114\102\111\114\124\112\101\114\115\105\115\116\101\110\116\124\114\101\116\117\114\110\124\115\119\105\116\99\104\124\116\114\121\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\115\105\110\124\115\105\110\100\124\115\105\110\104\124\97\115\105\110\124\97\115\105\110\100\124\97\115\105\110\104\124\99\111\115\124\99\111\115\100\124\99\111\115\104\124\97\99\111\115\124\97\99\111\115\100\124\97\99\111\115\104\124\116\97\110\124\116\97\110\100\124\116\97\110\104\124\97\116\97\110\124\97\116\97\110\100\124\97\116\97\110\50\124\97\116\97\110\104\124\115\101\99\124\115\101\99\100\124\115\101\99\104\124\97\115\101\99\124\97\115\101\99\100\124\97\115\101\99\104\124\99\115\99\124\99\115\99\100\124\99\115\99\104\124\97\99\115\99\124\97\99\115\99\100\124\97\99\115\99\104\124\99\111\116\124\99\111\116\100\124\99\111\116\104\124\97\99\111\116\124\97\99\111\116\100\124\97\99\111\116\104\124\104\121\112\111\116\124\101\120\112\124\101\120\112\109\49\124\108\111\103\124\108\111\103\49\112\124\108\111\103\49\48\124\108\111\103\50\124\112\111\119\50\124\114\101\97\108\112\111\119\124\114\101\97\108\108\111\103\124\114\101\97\108\115\113\114\116\124\115\113\114\116\124\110\116\104\114\111\111\116\124\110\101\120\116\112\111\119\50\124\97\98\115\124\97\110\103\108\101\124\99\111\109\112\108\101\120\124\99\111\110\106\124\105\109\97\103\124\114\101\97\108\124\117\110\119\114\97\112\124\105\115\114\101\97\108\124\99\112\108\120\112\97\105\114\124\102\105\120\124\102\108\111\111\114\124\99\101\105\108\124\114\111\117\110\100\124\109\111\100\124\114\101\109\124\115\105\103\110\124\97\105\114\121\124\98\101\115\115\101\108\106\124\98\101\115\115\101\108\121\124\98\101\115\115\101\108\104\124\98\101\115\115\101\108\105\124\98\101\115\115\101\108\107\124\98\101\116\97\124\98\101\116\97\105\110\99\124\98\101\116\97\108\110\124\101\108\108\105\112\106\124\101\108\108\105\112\107\101\124\101\114\102\124\101\114\102\99\124\101\114\102\99\120\124\101\114\102\105\110\118\124\101\120\112\105\110\116\124\103\97\109\109\97\124\103\97\109\109\97\105\110\99\124\103\97\109\109\97\108\110\124\112\115\105\124\108\101\103\101\110\100\114\101\124\99\114\111\115\115\124\100\111\116\124\102\97\99\116\111\114\124\105\115\112\114\105\109\101\124\112\114\105\109\101\115\124\103\99\100\124\108\99\109\124\114\97\116\124\114\97\116\115\124\112\101\114\109\115\124\110\99\104\111\111\115\101\107\124\102\97\99\116\111\114\105\97\108\124\99\97\114\116\50\115\112\104\124\99\97\114\116\50\112\111\108\124\112\111\108\50\99\97\114\116\124\115\112\104\50\99\97\114\116\124\104\115\118\50\114\103\98\124\114\103\98\50\104\115\118\124\122\101\114\111\115\124\111\110\101\115\124\101\121\101\124\114\101\112\109\97\116\124\114\97\110\100\124\114\97\110\100\110\124\108\105\110\115\112\97\99\101\124\108\111\103\115\112\97\99\101\124\102\114\101\113\115\112\97\99\101\124\109\101\115\104\103\114\105\100\124\97\99\99\117\109\97\114\114\97\121\124\115\105\122\101\124\108\101\110\103\116\104\124\110\100\105\109\115\124\110\117\109\101\108\124\100\105\115\112\124\105\115\101\109\112\116\121\124\105\115\101\113\117\97\108\124\105\115\101\113\117\97\108\119\105\116\104\101\113\117\97\108\110\97\110\115\124\99\97\116\124\114\101\115\104\97\112\101\124\100\105\97\103\124\98\108\107\100\105\97\103\124\116\114\105\108\124\116\114\105\117\124\102\108\105\112\108\114\124\102\108\105\112\117\100\124\102\108\105\112\100\105\109\124\114\111\116\57\48\124\102\105\110\100\124\101\110\100\124\115\117\98\50\105\110\100\124\105\110\100\50\115\117\98\124\98\115\120\102\117\110\124\110\100\103\114\105\100\124\112\101\114\109\117\116\101\124\105\112\101\114\109\117\116\101\124\115\104\105\102\116\100\105\109\124\99\105\114\99\115\104\105\102\116\124\115\113\117\101\101\122\101\124\105\115\115\99\97\108\97\114\124\105\115\118\101\99\116\111\114\124\97\110\115\124\101\112\115\124\114\101\97\108\109\97\120\124\114\101\97\108\109\105\110\124\112\105\124\105\124\105\110\102\124\110\97\110\124\105\115\110\97\110\124\105\115\105\110\102\124\105\115\102\105\110\105\116\101\124\106\124\119\104\121\124\99\111\109\112\97\110\124\103\97\108\108\101\114\121\124\104\97\100\97\109\97\114\100\124\104\97\110\107\101\108\124\104\105\108\98\124\105\110\118\104\105\108\98\124\109\97\103\105\99\124\112\97\115\99\97\108\124\114\111\115\115\101\114\124\116\111\101\112\108\105\116\122\124\118\97\110\100\101\114\124\119\105\108\107\105\110\115\111\110\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\45\124\61\61\124\126\61\124\60\124\62\124\60\61\124\62\61\124\38\38\124\38\124\126\124\92\124\92\124\63" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\46\92\42\124\92\42\124\92\43\124\92\46\92\94\124\92\46\92\92\124\92\46\92\47\124\92\47\124\92\92" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\91\124\92\93\124\92\40\124\92\41\124\92\123\124\92\125\124\58\124\64\124\92\46\124\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\61\124\58\124\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\63\60\61\91\92\119\92\41\92\93\93\41\92\39" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tokNext "\40\63\60\33\91\92\119\92\41\92\93\93\41\92\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")-    , tok "\46" (Arbitrary "\84\101\120\116")+    [ tok "^!.*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok "%.*$" (Arbitrary "Comment")+    , tokNext "^\\s*function" (Arbitrary "Keyword") (GoTo deffunc')+    , tok "(break|case|catch|classdef|continue|else|elseif|end|enumerated|events|for|function|global|if|methods|otherwise|parfor|persistent|properties|return|spmd|switch|try|while)\\b" (Arbitrary "Keyword")+    , tok "(sin|sind|sinh|asin|asind|asinh|cos|cosd|cosh|acos|acosd|acosh|tan|tand|tanh|atan|atand|atan2|atanh|sec|secd|sech|asec|asecd|asech|csc|cscd|csch|acsc|acscd|acsch|cot|cotd|coth|acot|acotd|acoth|hypot|exp|expm1|log|log1p|log10|log2|pow2|realpow|reallog|realsqrt|sqrt|nthroot|nextpow2|abs|angle|complex|conj|imag|real|unwrap|isreal|cplxpair|fix|floor|ceil|round|mod|rem|sign|airy|besselj|bessely|besselh|besseli|besselk|beta|betainc|betaln|ellipj|ellipke|erf|erfc|erfcx|erfinv|expint|gamma|gammainc|gammaln|psi|legendre|cross|dot|factor|isprime|primes|gcd|lcm|rat|rats|perms|nchoosek|factorial|cart2sph|cart2pol|pol2cart|sph2cart|hsv2rgb|rgb2hsv|zeros|ones|eye|repmat|rand|randn|linspace|logspace|freqspace|meshgrid|accumarray|size|length|ndims|numel|disp|isempty|isequal|isequalwithequalnans|cat|reshape|diag|blkdiag|tril|triu|fliplr|flipud|flipdim|rot90|find|end|sub2ind|ind2sub|bsxfun|ndgrid|permute|ipermute|shiftdim|circshift|squeeze|isscalar|isvector|ans|eps|realmax|realmin|pi|i|inf|nan|isnan|isinf|isfinite|j|why|compan|gallery|hadamard|hankel|hilb|invhilb|magic|pascal|rosser|toeplitz|vander|wilkinson)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "-|==|\126=|<|>|<=|>=|&&|&|\126|\\|\\|?" (Arbitrary "Operator")+    , tok "\\.\\*|\\*|\\+|\\.\\^|\\.\\\\|\\.\\/|\\/|\\\\" (Arbitrary "Operator")+    , tok "\\[|\\]|\\(|\\)|\\{|\\}|:|@|\\.|," (Arbitrary "Punctuation")+    , tok "=|:|;" (Arbitrary "Punctuation")+    , tok "(?<=[\\w\\)\\]])\\'" (Arbitrary "Operator")+    , tokNext "(?<![\\w\\)\\]])\\'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "." (Arbitrary "Text")     ]  string' :: TokenMatcher string' =-    [ tokNext "\91\94\92\39\93\42\92\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "[^\\']*\\'" (Arbitrary "Literal" :. Arbitrary "String") Pop     ] 
src/Text/Highlighter/Lexers/MiniD.hs view
@@ -5,41 +5,41 @@  lexer :: Lexer lexer = Lexer-    { lName = "\77\105\110\105\68"-    , lAliases = ["\109\105\110\105\100"]-    , lExtensions = ["\46\109\100"]-    , lMimetypes = ["\116\101\120\116\47\120\45\109\105\110\105\100\115\114\99"]+    { lName = "MiniD"+    , lAliases = ["minid"]+    , lExtensions = [".md"]+    , lMimetypes = ["text/x-minidsrc"]     , lStart = root'     , lFlags = [multiline]     }  nestedcomment' :: TokenMatcher nestedcomment' =-    [ tok "\91\94\43\47\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\92\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\92\43\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\43\47\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "[^+/]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/\\+" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "\\+/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[+/]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\46\42\63\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\92\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo nestedcomment')-    , tok "\40\97\115\124\97\115\115\101\114\116\124\98\114\101\97\107\124\99\97\115\101\124\99\97\116\99\104\124\99\108\97\115\115\124\99\111\110\116\105\110\117\101\124\99\111\114\111\117\116\105\110\101\124\100\101\102\97\117\108\116\124\100\111\124\101\108\115\101\124\102\105\110\97\108\108\121\124\102\111\114\124\102\111\114\101\97\99\104\124\102\117\110\99\116\105\111\110\124\103\108\111\98\97\108\124\110\97\109\101\115\112\97\99\101\124\105\102\124\105\109\112\111\114\116\124\105\110\124\105\115\124\108\111\99\97\108\124\109\111\100\117\108\101\124\114\101\116\117\114\110\124\115\117\112\101\114\124\115\119\105\116\99\104\124\116\104\105\115\124\116\104\114\111\119\124\116\114\121\124\118\97\114\97\114\103\124\119\104\105\108\101\124\119\105\116\104\124\121\105\101\108\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\102\97\108\115\101\124\116\114\117\101\124\110\117\108\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\91\48\45\57\93\91\48\45\57\95\93\42\41\63\92\46\91\48\45\57\95\93\43\40\91\101\69\93\91\43\92\45\93\63\91\48\45\57\95\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\91\66\98\93\91\48\49\95\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\48\91\67\99\93\91\48\45\55\95\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\95\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\40\48\124\91\49\45\57\93\91\48\45\57\95\93\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\39\40\92\92\91\39\34\63\92\92\97\98\102\110\114\116\118\93\124\92\92\120\91\48\45\57\97\45\102\65\45\70\93\123\50\125\124\92\92\91\48\45\57\93\123\49\44\51\125\124\92\92\117\91\48\45\57\97\45\102\65\45\70\93\123\52\125\124\92\92\85\91\48\45\57\97\45\102\65\45\70\93\123\56\125\124\46\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\64\34\40\34\34\124\46\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\96\40\96\96\124\46\41\42\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\40\126\61\124\92\94\61\124\37\61\124\92\42\61\124\61\61\124\33\61\124\62\62\62\61\124\62\62\62\124\62\62\61\124\62\62\124\62\61\124\60\61\62\124\92\63\61\124\45\92\62\124\60\60\61\124\60\60\124\60\61\124\92\43\92\43\124\92\43\61\124\45\45\124\45\61\124\92\124\92\124\124\92\124\61\124\38\38\124\38\61\124\92\46\92\46\124\47\61\41\124\91\45\47\46\38\36\64\124\92\43\60\62\33\40\41\92\91\92\93\123\125\63\44\59\58\61\42\37\94\126\35\92\92\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\97\45\122\65\45\90\95\93\92\119\42" (Arbitrary "\78\97\109\101")+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "//(.*?)\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/\\+" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo nestedcomment')+    , tok "(as|assert|break|case|catch|class|continue|coroutine|default|do|else|finally|for|foreach|function|global|namespace|if|import|in|is|local|module|return|super|switch|this|throw|try|vararg|while|with|yield)\\b" (Arbitrary "Keyword")+    , tok "(false|true|null)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "([0-9][0-9_]*)?\\.[0-9_]+([eE][+\\-]?[0-9_]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[Bb][01_]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "0[Cc][0-7_]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][0-9a-fA-F_]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "(0|[1-9][0-9_]*)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "'(\\\\['\"?\\\\abfnrtv]|\\\\x[0-9a-fA-F]{2}|\\\\[0-9]{1,3}|\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}|.)'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "@\"(\"\"|.)*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "`(``|.)*`" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "(\126=|\\^=|%=|\\*=|==|!=|>>>=|>>>|>>=|>>|>=|<=>|\\?=|-\\>|<<=|<<|<=|\\+\\+|\\+=|--|-=|\\|\\||\\|=|&&|&=|\\.\\.|/=)|[-/.&$@|\\+<>!()\\[\\]{}?,;:=*%^\126#\\\\]" (Arbitrary "Punctuation")+    , tok "[a-zA-Z_]\\w*" (Arbitrary "Name")     ] 
src/Text/Highlighter/Lexers/Modelica.hs view
@@ -5,60 +5,60 @@  lexer :: Lexer lexer = Lexer-    { lName = "\72\116\109\108"-    , lAliases = ["\109\111\100\101\108\105\99\97"]-    , lExtensions = ["\46\109\111"]-    , lMimetypes = ["\116\101\120\116\47\120\45\109\111\100\101\108\105\99\97"]+    { lName = "Modelica"+    , lAliases = ["modelica"]+    , lExtensions = [".mo"]+    , lMimetypes = ["text/x-modelica"]     , lStart = root'     , lFlags = [caseless, dotall]     }  functions' :: TokenMatcher functions' =-    [ tok "\40\97\98\115\124\97\99\111\115\124\97\99\111\115\104\124\97\115\105\110\124\97\115\105\110\104\124\97\116\97\110\124\97\116\97\110\50\124\97\116\97\110\51\124\99\101\105\108\124\99\111\115\124\99\111\115\104\124\99\114\111\115\115\124\100\105\118\124\101\120\112\124\102\108\111\111\114\124\108\111\103\124\108\111\103\49\48\124\109\111\100\124\114\101\109\124\115\105\103\110\124\115\105\110\124\115\105\110\104\124\115\105\122\101\124\115\113\114\116\124\116\97\110\124\116\97\110\104\124\122\101\114\111\115\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")+    [ tok "(abs|acos|acosh|asin|asinh|atan|atan2|atan3|ceil|cos|cosh|cross|div|exp|floor|log|log10|mod|rem|sign|sin|sinh|size|sqrt|tan|tanh|zeros)\\b" (Arbitrary "Name" :. Arbitrary "Function")     ]  classes' :: TokenMatcher classes' =-    [ tok "\40\98\108\111\99\107\124\99\108\97\115\115\124\99\111\110\110\101\99\116\111\114\124\102\117\110\99\116\105\111\110\124\109\111\100\101\108\124\112\97\99\107\97\103\101\124\114\101\99\111\114\100\124\116\121\112\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")+    [ tok "(block|class|connector|function|model|package|record|type)\\b" (Arbitrary "Name" :. Arbitrary "Class")     ]  statements' :: TokenMatcher statements' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\124\92\100\46\41\91\101\69\93\91\43\45\93\63\92\100\43\91\108\76\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\100\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\126\33\37\94\38\42\43\61\124\63\58\60\62\47\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\40\41\92\91\92\93\123\125\44\46\59\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\78\85\76\76\124\82\101\97\108\124\73\110\116\101\103\101\114\124\66\111\111\108\101\97\110\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\91\97\45\122\65\45\90\95\93\91\92\119\93\42\124\39\91\97\45\122\65\45\90\95\92\43\92\45\92\42\92\47\92\94\93\91\92\119\93\42\39\41\40\92\46\40\91\97\45\122\65\45\90\95\93\91\92\119\93\42\124\39\91\97\45\122\65\45\90\95\92\43\92\45\92\42\92\47\92\94\93\91\92\119\93\42\39\41\41\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tok "\40\39\91\92\119\92\43\92\45\92\42\92\47\92\94\93\43\39\124\92\119\43\41" (Arbitrary "\78\97\109\101")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+|\\d.)[eE][+-]?\\d+[lL]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[\126!%^&*+=|?:<>/-]" (Arbitrary "Operator")+    , tok "[()\\[\\]{},.;]" (Arbitrary "Punctuation")+    , tok "(true|false|NULL|Real|Integer|Boolean)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "([a-zA-Z_][\\w]*|'[a-zA-Z_\\+\\-\\*\\/\\^][\\w]*')(\\.([a-zA-Z_][\\w]*|'[a-zA-Z_\\+\\-\\*\\/\\^][\\w]*'))+" (Arbitrary "Name" :. Arbitrary "Class")+    , tok "('[\\w\\+\\-\\*\\/\\^]+'|\\w+)" (Arbitrary "Name")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\92\110\124\40\46\124\92\110\41\42\63\91\94\92\92\93\92\110\41" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "//(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment")     ]  htmlContent' :: TokenMatcher htmlContent' =-    [ tokNext "\60\92\115\42\47\92\115\42\104\116\109\108\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop-    , tok "\46\43\63\40\63\61\60\92\115\42\47\92\115\42\104\116\109\108\92\115\42\62\41" (Using Html.lexer)+    [ tokNext "<\\s*/\\s*html\\s*>" (Arbitrary "Name" :. Arbitrary "Tag") Pop+    , tok ".+?(?=<\\s*/\\s*html\\s*>)" (Using Html.lexer)     ]  keywords' :: TokenMatcher keywords' =-    [ tok "\40\97\108\103\111\114\105\116\104\109\124\97\110\110\111\116\97\116\105\111\110\124\98\114\101\97\107\124\99\111\110\110\101\99\116\124\99\111\110\115\116\97\110\116\124\99\111\110\115\116\114\97\105\110\101\100\98\121\124\100\105\115\99\114\101\116\101\124\101\97\99\104\124\101\108\115\101\124\101\108\115\101\105\102\124\101\108\115\101\119\104\101\110\124\101\110\99\97\112\115\117\108\97\116\101\100\124\101\110\117\109\101\114\97\116\105\111\110\124\101\110\100\124\101\113\117\97\116\105\111\110\124\101\120\105\116\124\101\120\112\97\110\100\97\98\108\101\124\101\120\116\101\110\100\115\124\101\120\116\101\114\110\97\108\124\102\97\108\115\101\124\102\105\110\97\108\124\102\108\111\119\124\102\111\114\124\105\102\124\105\109\112\111\114\116\124\105\110\124\105\110\110\101\114\124\105\110\112\117\116\124\108\111\111\112\124\110\111\110\100\105\115\99\114\101\116\101\124\111\117\116\101\114\124\111\117\116\112\117\116\124\112\97\114\97\109\101\116\101\114\124\112\97\114\116\105\97\108\124\112\114\111\116\101\99\116\101\100\124\112\117\98\108\105\99\124\114\101\100\101\99\108\97\114\101\124\114\101\112\108\97\99\101\97\98\108\101\124\115\116\114\101\97\109\124\116\105\109\101\124\116\104\101\110\124\116\114\117\101\124\119\104\101\110\124\119\104\105\108\101\124\119\105\116\104\105\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "(algorithm|annotation|break|connect|constant|constrainedby|discrete|each|else|elseif|elsewhen|encapsulated|enumeration|end|equation|exit|expandable|extends|external|false|final|flow|for|if|import|in|inner|input|loop|nondiscrete|outer|output|parameter|partial|protected|public|redeclare|replaceable|stream|time|then|true|when|while|within)\\b" (Arbitrary "Keyword")     ]  operators' :: TokenMatcher operators' =-    [ tok "\40\97\110\100\124\97\115\115\101\114\116\124\99\97\114\100\105\110\97\108\105\116\121\124\99\104\97\110\103\101\124\100\101\108\97\121\124\100\101\114\124\101\100\103\101\124\105\110\105\116\105\97\108\124\110\111\69\118\101\110\116\124\110\111\116\124\111\114\124\112\114\101\124\114\101\105\110\105\116\124\114\101\116\117\114\110\124\115\97\109\112\108\101\124\115\109\111\111\116\104\124\116\101\114\109\105\110\97\108\124\116\101\114\109\105\110\97\116\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tok "(and|assert|cardinality|change|delay|der|edge|initial|noEvent|not|or|pre|reinit|return|sample|smooth|terminal|terminate)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")     ]  root' :: TokenMatcher@@ -68,16 +68,16 @@     , anyOf functions'     , anyOf operators'     , anyOf classes'-    , tokNext "\40\34\60\104\116\109\108\62\124\60\104\116\109\108\62\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (GoTo htmlContent')+    , tokNext "(\"<html>|<html>)" (Arbitrary "Name" :. Arbitrary "Tag") (GoTo htmlContent')     , anyOf statements'     ]  string' :: TokenMatcher string' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\44\52\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\91\94\92\92\34\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ] 
src/Text/Highlighter/Lexers/Modula2.hs view
@@ -5,56 +5,56 @@  lexer :: Lexer lexer = Lexer-    { lName = "\77\111\100\117\108\97\45\50"-    , lAliases = ["\109\111\100\117\108\97\50", "\109\50"]-    , lExtensions = ["\46\100\101\102", "\46\109\111\100"]-    , lMimetypes = ["\116\101\120\116\47\120\45\109\111\100\117\108\97\50"]+    { lName = "Modula-2"+    , lAliases = ["modula2", "m2"]+    , lExtensions = [".def", ".mod"]+    , lMimetypes = ["text/x-modula2"]     , lStart = root'     , lFlags = [multiline, dotall]     }  punctuation' :: TokenMatcher punctuation' =-    [ tok "\91\92\40\92\41\92\91\92\93\123\125\44\46\58\59\124\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok "[\\(\\)\\[\\]{},.:;|]" (Arbitrary "Punctuation")     ]  pragmas' :: TokenMatcher pragmas' =-    [ tok "\92\40\92\42\92\36\40\46\42\63\41\92\42\92\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\60\92\42\40\46\42\63\41\92\42\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")+    [ tok "\\(\\*\\$(.*?)\\*\\)" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "<\\*(.*?)\\*>" (Arbitrary "Comment" :. Arbitrary "Preproc")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\110\43" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "\\n+" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")     ]  numliterals' :: TokenMatcher numliterals' =-    [ tok "\91\48\49\93\43\66" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\66\105\110\97\114\121")-    , tok "\91\48\45\55\93\43\66" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\91\48\45\55\93\43\67" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\91\48\45\57\65\45\70\93\43\67" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\65\45\70\93\43\72" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\93\43\92\46\91\48\45\57\93\43\69\91\43\45\93\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\93\43\92\46\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "[01]+B" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Binary")+    , tok "[0-7]+B" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "[0-7]+C" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "[0-9A-F]+C" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9A-F]+H" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+\\.[0-9]+E[+-][0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9]+\\.[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ]  operators' :: TokenMatcher operators' =-    [ tok "\91\42\47\43\61\35\126\38\60\62\92\94\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\58\61" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\64" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\46\92\46" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\96" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\58\58" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "[*/+=#\126&<>\\^-]" (Arbitrary "Operator")+    , tok ":=" (Arbitrary "Operator")+    , tok "@" (Arbitrary "Operator")+    , tok "\\.\\." (Arbitrary "Operator")+    , tok "`" (Arbitrary "Operator")+    , tok "::" (Arbitrary "Operator")     ]  identifiers' :: TokenMatcher identifiers' =-    [ tok "\40\91\97\45\122\65\45\90\95\92\36\93\91\97\45\122\65\45\90\48\45\57\95\92\36\93\42\41" (Arbitrary "\78\97\109\101")+    [ tok "([a-zA-Z_\\$][a-zA-Z0-9_\\$]*)" (Arbitrary "Name")     ]  root' :: TokenMatcher@@ -71,14 +71,14 @@  strings' :: TokenMatcher strings' =-    [ tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")     ]  comments' :: TokenMatcher comments' =-    [ tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\40\46\42\63\41\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\92\40\92\42\40\91\94\92\36\93\46\42\63\41\92\42\92\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*(.*?)\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "\\(\\*([^\\$].*?)\\*\\)" (Arbitrary "Comment" :. Arbitrary "Multiline")     ] 
src/Text/Highlighter/Lexers/MoinWiki.hs view
@@ -5,36 +5,36 @@  lexer :: Lexer lexer = Lexer-    { lName = "\77\111\105\110\77\111\105\110\47\84\114\97\99\32\87\105\107\105\32\109\97\114\107\117\112"-    , lAliases = ["\116\114\97\99\45\119\105\107\105", "\109\111\105\110"]+    { lName = "MoinMoin/Trac Wiki markup"+    , lAliases = ["trac-wiki", "moin"]     , lExtensions = []-    , lMimetypes = ["\116\101\120\116\47\120\45\116\114\97\99\45\119\105\107\105"]+    , lMimetypes = ["text/x-trac-wiki"]     , lStart = root'     , lFlags = [caseless, multiline]     }  root' :: TokenMatcher root' =-    [ tok "\94\35\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\40\33\41\40\92\83\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")])-    , tok "\94\40\61\43\41\40\91\94\61\93\43\41\40\61\43\41\40\92\115\42\35\46\43\41\63\36" (ByGroups [(Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\72\101\97\100\105\110\103"), (Using lexer), (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\72\101\97\100\105\110\103"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tokNext "\40\123\123\123\41\40\92\110\35\33\46\43\41\63" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")]) (GoTo codeblock')-    , tok "\40\92\39\92\39\92\39\63\124\92\124\92\124\124\96\124\95\95\124\126\126\124\92\94\124\44\44\124\58\58\41" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\94\40\32\43\41\40\91\46\42\45\93\41\40\32\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116")])-    , tok "\94\40\32\43\41\40\91\97\45\122\105\118\120\93\123\49\44\53\125\92\46\41\40\32\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116")])-    , tok "\92\91\92\91\92\119\43\46\42\63\92\93\92\93" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\92\91\91\94\92\115\92\93\93\43\41\40\92\115\43\91\94\92\93\93\43\63\41\63\40\92\93\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\75\101\121\119\111\114\100")])-    , tok "\94\45\45\45\45\43\36" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\91\94\92\110\92\39\92\91\123\33\95\126\94\44\124\93\43" (Arbitrary "\84\101\120\116")-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\46" (Arbitrary "\84\101\120\116")+    [ tok "^#.*$" (Arbitrary "Comment")+    , tok "(!)(\\S+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")])+    , tok "^(=+)([^=]+)(=+)(\\s*#.+)?$" (ByGroups [(Arbitrary "Generic" :. Arbitrary "Heading"), (Using lexer), (Arbitrary "Generic" :. Arbitrary "Heading"), (Arbitrary "Literal" :. Arbitrary "String")])+    , tokNext "({{{)(\\n#!.+)?" (ByGroups [(Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Name" :. Arbitrary "Namespace")]) (GoTo codeblock')+    , tok "(\\'\\'\\'?|\\|\\||`|__|\126\126|\\^|,,|::)" (Arbitrary "Comment")+    , tok "^( +)([.*-])( )" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Text")])+    , tok "^( +)([a-zivx]{1,5}\\.)( )" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Text")])+    , tok "\\[\\[\\w+.*?\\]\\]" (Arbitrary "Keyword")+    , tok "(\\[[^\\s\\]]+)(\\s+[^\\]]+?)?(\\])" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Keyword")])+    , tok "^----+$" (Arbitrary "Keyword")+    , tok "[^\\n\\'\\[{!_\126^,|]+" (Arbitrary "Text")+    , tok "\\n" (Arbitrary "Text")+    , tok "." (Arbitrary "Text")     ]  codeblock' :: TokenMatcher codeblock' =-    [ tokNext "\125\125\125" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110") Pop-    , tokNext "\123\123\123" (Arbitrary "\84\101\120\116") Push-    , tok "\91\94\123\125\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\46" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")+    [ tokNext "}}}" (Arbitrary "Name" :. Arbitrary "Builtin") Pop+    , tokNext "{{{" (Arbitrary "Text") Push+    , tok "[^{}]+" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "." (Arbitrary "Comment" :. Arbitrary "Preproc")     ] 
src/Text/Highlighter/Lexers/MuPAD.hs view
@@ -5,9 +5,9 @@  lexer :: Lexer lexer = Lexer-    { lName = "\77\117\80\65\68"-    , lAliases = ["\109\117\112\97\100"]-    , lExtensions = ["\46\109\117"]+    { lName = "MuPAD"+    , lAliases = ["mupad"]+    , lExtensions = [".mu"]     , lMimetypes = []     , lStart = root'     , lFlags = [multiline]@@ -15,29 +15,29 @@  comment' :: TokenMatcher comment' =-    [ tok "\91\94\42\47\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\42\47\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "[^*/]" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[*/]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tok "\47\47\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo comment')-    , tok "\34\40\63\58\91\94\34\92\92\93\124\92\92\46\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\40\124\92\41\124\92\91\124\92\93\124\92\123\124\92\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\63\120\41\92\98\40\63\58\10\32\32\32\32\32\32\32\32\32\32\32\32\110\101\120\116\124\98\114\101\97\107\124\101\110\100\124\10\32\32\32\32\32\32\32\32\32\32\32\32\97\120\105\111\109\124\101\110\100\95\97\120\105\111\109\124\99\97\116\101\103\111\114\121\124\101\110\100\95\99\97\116\101\103\111\114\121\124\100\111\109\97\105\110\124\101\110\100\95\100\111\109\97\105\110\124\105\110\104\101\114\105\116\115\124\10\32\32\32\32\32\32\32\32\32\32\32\32\105\102\124\37\105\102\124\116\104\101\110\124\101\108\105\102\124\101\108\115\101\124\101\110\100\95\105\102\124\10\32\32\32\32\32\32\32\32\32\32\32\32\99\97\115\101\124\111\102\124\100\111\124\111\116\104\101\114\119\105\115\101\124\101\110\100\95\99\97\115\101\124\10\32\32\32\32\32\32\32\32\32\32\32\32\119\104\105\108\101\124\101\110\100\95\119\104\105\108\101\124\10\32\32\32\32\32\32\32\32\32\32\32\32\114\101\112\101\97\116\124\117\110\116\105\108\124\101\110\100\95\114\101\112\101\97\116\124\10\32\32\32\32\32\32\32\32\32\32\32\32\102\111\114\124\102\114\111\109\124\116\111\124\100\111\119\110\116\111\124\115\116\101\112\124\101\110\100\95\102\111\114\124\10\32\32\32\32\32\32\32\32\32\32\32\32\112\114\111\99\124\108\111\99\97\108\124\111\112\116\105\111\110\124\115\97\118\101\124\98\101\103\105\110\124\101\110\100\95\112\114\111\99\124\10\32\32\32\32\32\32\32\32\32\32\32\32\100\101\108\101\116\101\124\102\114\97\109\101\10\32\32\32\32\32\32\32\32\32\32\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\63\120\41\92\98\40\63\58\10\32\32\32\32\32\32\32\32\32\32\32\32\68\79\77\95\65\82\82\65\89\124\68\79\77\95\66\79\79\76\124\68\79\77\95\67\79\77\80\76\69\88\124\68\79\77\95\68\79\77\65\73\78\124\68\79\77\95\69\88\69\67\124\68\79\77\95\69\88\80\82\124\10\32\32\32\32\32\32\32\32\32\32\32\32\68\79\77\95\70\65\73\76\124\68\79\77\95\70\76\79\65\84\124\68\79\77\95\70\82\65\77\69\124\68\79\77\95\70\85\78\67\95\69\78\86\124\68\79\77\95\72\70\65\82\82\65\89\124\68\79\77\95\73\68\69\78\84\124\10\32\32\32\32\32\32\32\32\32\32\32\32\68\79\77\95\73\78\84\124\68\79\77\95\73\78\84\69\82\86\65\76\124\68\79\77\95\76\73\83\84\124\68\79\77\95\78\73\76\124\68\79\77\95\78\85\76\76\124\68\79\77\95\80\79\76\89\124\68\79\77\95\80\82\79\67\124\10\32\32\32\32\32\32\32\32\32\32\32\32\68\79\77\95\80\82\79\67\95\69\78\86\124\68\79\77\95\82\65\84\124\68\79\77\95\83\69\84\124\68\79\77\95\83\84\82\73\78\71\124\68\79\77\95\84\65\66\76\69\124\68\79\77\95\86\65\82\10\32\32\32\32\32\32\32\32\32\32\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tok "\40\63\120\41\92\98\40\63\58\10\32\32\32\32\32\32\32\32\32\32\32\32\80\73\124\69\85\76\69\82\124\69\124\67\65\84\65\76\65\78\124\10\32\32\32\32\32\32\32\32\32\32\32\32\78\73\76\124\70\65\73\76\124\117\110\100\101\102\105\110\101\100\124\105\110\102\105\110\105\116\121\124\10\32\32\32\32\32\32\32\32\32\32\32\32\84\82\85\69\124\70\65\76\83\69\124\85\78\75\78\79\87\78\10\32\32\32\32\32\32\32\32\32\32\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\98\40\63\58\100\111\109\124\112\114\111\99\110\97\109\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\92\46\124\44\124\58\124\59\124\61\124\92\43\124\45\124\92\42\124\47\124\92\94\124\64\124\62\124\60\124\92\36\124\92\124\124\33\124\92\39\124\37\124\126\61" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\63\120\41\92\98\40\63\58\10\32\32\32\32\32\32\32\32\32\32\32\32\97\110\100\124\111\114\124\110\111\116\124\120\111\114\124\10\32\32\32\32\32\32\32\32\32\32\32\32\97\115\115\117\109\105\110\103\124\10\32\32\32\32\32\32\32\32\32\32\32\32\100\105\118\124\109\111\100\124\10\32\32\32\32\32\32\32\32\32\32\32\32\117\110\105\111\110\124\109\105\110\117\115\124\105\110\116\101\114\115\101\99\116\124\105\110\124\115\117\98\115\101\116\10\32\32\32\32\32\32\32\32\32\32\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\92\98\40\63\58\73\124\82\68\78\95\73\78\70\124\82\68\95\78\73\78\70\124\82\68\95\78\65\78\41\92\98" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\40\63\120\41\10\32\32\32\32\32\32\32\32\32\32\40\40\63\58\91\97\45\122\65\45\90\95\35\93\91\97\45\122\65\45\90\95\35\48\45\57\93\42\124\96\91\94\96\93\42\96\41\10\32\32\32\32\32\32\32\32\32\32\40\63\58\58\58\91\97\45\122\65\45\90\95\35\93\91\97\45\122\65\45\90\95\35\48\45\57\93\42\124\96\91\94\96\93\42\96\41\42\41\92\115\42\40\91\40\93\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\63\120\41\10\32\32\32\32\32\32\32\32\32\32\40\63\58\91\97\45\122\65\45\90\95\35\93\91\97\45\122\65\45\90\95\35\48\45\57\93\42\124\96\91\94\96\93\42\96\41\10\32\32\32\32\32\32\32\32\32\32\40\63\58\58\58\91\97\45\122\65\45\90\95\35\93\91\97\45\122\65\45\90\95\35\48\45\57\93\42\124\96\91\94\96\93\42\96\41\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\48\45\57\93\43\40\63\58\92\46\91\48\45\57\93\42\41\63\40\63\58\101\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\46\91\48\45\57\93\43\40\63\58\101\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\46" (Arbitrary "\84\101\120\116")+    [ tok "//.*?$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo comment')+    , tok "\"(?:[^\"\\\\]|\\\\.)*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\(|\\)|\\[|\\]|\\{|\\}" (Arbitrary "Punctuation")+    , tok "(?x)\\b(?:\10            next|break|end|\10            axiom|end_axiom|category|end_category|domain|end_domain|inherits|\10            if|%if|then|elif|else|end_if|\10            case|of|do|otherwise|end_case|\10            while|end_while|\10            repeat|until|end_repeat|\10            for|from|to|downto|step|end_for|\10            proc|local|option|save|begin|end_proc|\10            delete|frame\10          )\\b" (Arbitrary "Keyword")+    , tok "(?x)\\b(?:\10            DOM_ARRAY|DOM_BOOL|DOM_COMPLEX|DOM_DOMAIN|DOM_EXEC|DOM_EXPR|\10            DOM_FAIL|DOM_FLOAT|DOM_FRAME|DOM_FUNC_ENV|DOM_HFARRAY|DOM_IDENT|\10            DOM_INT|DOM_INTERVAL|DOM_LIST|DOM_NIL|DOM_NULL|DOM_POLY|DOM_PROC|\10            DOM_PROC_ENV|DOM_RAT|DOM_SET|DOM_STRING|DOM_TABLE|DOM_VAR\10          )\\b" (Arbitrary "Name" :. Arbitrary "Class")+    , tok "(?x)\\b(?:\10            PI|EULER|E|CATALAN|\10            NIL|FAIL|undefined|infinity|\10            TRUE|FALSE|UNKNOWN\10          )\\b" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\\b(?:dom|procname)\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tok "\\.|,|:|;|=|\\+|-|\\*|/|\\^|@|>|<|\\$|\\||!|\\'|%|\126=" (Arbitrary "Operator")+    , tok "(?x)\\b(?:\10            and|or|not|xor|\10            assuming|\10            div|mod|\10            union|minus|intersect|in|subset\10          )\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "\\b(?:I|RDN_INF|RD_NINF|RD_NAN)\\b" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "(?x)\10          ((?:[a-zA-Z_#][a-zA-Z_#0-9]*|`[^`]*`)\10          (?:::[a-zA-Z_#][a-zA-Z_#0-9]*|`[^`]*`)*)\\s*([(])" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation")])+    , tok "(?x)\10          (?:[a-zA-Z_#][a-zA-Z_#0-9]*|`[^`]*`)\10          (?:::[a-zA-Z_#][a-zA-Z_#0-9]*|`[^`]*`)*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[0-9]+(?:\\.[0-9]*)?(?:e[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\.[0-9]+(?:e[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "." (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Mxml.hs view
@@ -5,9 +5,9 @@  lexer :: Lexer lexer = Lexer-    { lName = "\65\99\116\105\111\110\83\99\114\105\112\116\51"-    , lAliases = ["\109\120\109\108"]-    , lExtensions = ["\46\109\120\109\108"]+    { lName = "MXML"+    , lAliases = ["mxml"]+    , lExtensions = [".mxml"]     , lMimetypes = []     , lStart = root'     , lFlags = [multiline, dotall]@@ -15,35 +15,35 @@  comment' :: TokenMatcher comment' =-    [ tok "\91\94\45\93\43" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\45\45\62" (Arbitrary "\67\111\109\109\101\110\116") Pop-    , tok "\45" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "[^-]+" (Arbitrary "Comment")+    , tokNext "-->" (Arbitrary "Comment") Pop+    , tok "-" (Arbitrary "Comment")     ]  tag' :: TokenMatcher tag' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\91\97\45\122\65\45\90\48\45\57\95\46\58\45\93\43\92\115\42\61" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101") (GoTo attr')-    , tokNext "\47\63\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "[a-zA-Z0-9_.:-]+\\s*=" (Arbitrary "Name" :. Arbitrary "Attribute") (GoTo attr')+    , tokNext "/?\\s*>" (Arbitrary "Name" :. Arbitrary "Tag") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\91\94\60\38\93\43" (Arbitrary "\84\101\120\116")-    , tok "\38\92\83\42\63\59" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")-    , tok "\40\92\60\92\33\92\91\67\68\65\84\65\92\91\41\40\46\42\63\41\40\92\93\92\93\92\62\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Using ActionScript3.lexer), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tokNext "\60\33\45\45" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')-    , tok "\60\92\63\46\42\63\92\63\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\60\33\91\94\62\93\42\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\60\92\115\42\91\97\45\122\65\45\90\48\45\57\58\46\95\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (GoTo tag')-    , tok "\60\92\115\42\47\92\115\42\91\97\45\122\65\45\90\48\45\57\58\46\95\45\93\43\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")+    [ tok "[^<&]+" (Arbitrary "Text")+    , tok "&\\S*?;" (Arbitrary "Name" :. Arbitrary "Entity")+    , tok "(\\<\\!\\[CDATA\\[)(.*?)(\\]\\]\\>)" (ByGroups [(Arbitrary "Literal" :. Arbitrary "String"), (Using ActionScript3.lexer), (Arbitrary "Literal" :. Arbitrary "String")])+    , tokNext "<!--" (Arbitrary "Comment") (GoTo comment')+    , tok "<\\?.*?\\?>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "<![^>]*>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "<\\s*[a-zA-Z0-9:._-]+" (Arbitrary "Name" :. Arbitrary "Tag") (GoTo tag')+    , tok "<\\s*/\\s*[a-zA-Z0-9:._-]+\\s*>" (Arbitrary "Name" :. Arbitrary "Tag")     ]  attr' :: TokenMatcher attr' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\91\94\92\115\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "'.*?'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "[^\\s>]+" (Arbitrary "Literal" :. Arbitrary "String") Pop     ] 
src/Text/Highlighter/Lexers/MySql.hs view
@@ -5,40 +5,40 @@  lexer :: Lexer lexer = Lexer-    { lName = "\77\121\83\81\76"-    , lAliases = ["\109\121\115\113\108"]+    { lName = "MySQL"+    , lAliases = ["mysql"]     , lExtensions = []-    , lMimetypes = ["\116\101\120\116\47\120\45\109\121\115\113\108"]+    , lMimetypes = ["text/x-mysql"]     , lStart = root'     , lFlags = [caseless]     }  multilineComments' :: TokenMatcher multilineComments' =-    [ tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo multilineComments')-    , tokNext "\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\94\47\92\42\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\91\47\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo multilineComments')+    , tokNext "\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[^/\\*]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "[/*]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\40\35\124\45\45\92\115\43\41\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo multilineComments')-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\48\45\57\93\42\92\46\91\48\45\57\93\43\40\101\91\43\45\93\91\48\45\57\93\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\39\40\39\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\34\40\34\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\96\40\96\96\124\91\94\96\93\41\42\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\91\43\42\47\60\62\61\126\33\64\35\37\94\38\124\96\63\94\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\98\40\116\105\110\121\105\110\116\124\115\109\97\108\108\105\110\116\124\109\101\100\105\117\109\105\110\116\124\105\110\116\124\105\110\116\101\103\101\114\124\98\105\103\105\110\116\124\100\97\116\101\124\100\97\116\101\116\105\109\101\124\116\105\109\101\124\98\105\116\124\98\111\111\108\124\116\105\110\121\116\101\120\116\124\109\101\100\105\117\109\116\101\120\116\124\108\111\110\103\116\101\120\116\124\116\101\120\116\124\116\105\110\121\98\108\111\98\124\109\101\100\105\117\109\98\108\111\98\124\108\111\110\103\98\108\111\98\124\98\108\111\98\124\102\108\111\97\116\124\100\111\117\98\108\101\124\100\111\117\98\108\101\92\115\43\112\114\101\99\105\115\105\111\110\124\114\101\97\108\124\110\117\109\101\114\105\99\124\100\101\99\124\100\101\99\105\109\97\108\124\116\105\109\101\115\116\97\109\112\124\121\101\97\114\124\99\104\97\114\124\118\97\114\99\104\97\114\124\118\97\114\98\105\110\97\114\121\124\118\97\114\99\104\97\114\97\99\116\101\114\124\101\110\117\109\124\115\101\116\41\40\92\98\92\115\42\41\40\92\40\41\63" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\92\98\40\97\100\100\124\97\108\108\124\97\108\116\101\114\124\97\110\97\108\121\122\101\124\97\110\100\124\97\115\124\97\115\99\124\97\115\101\110\115\105\116\105\118\101\124\98\101\102\111\114\101\124\98\101\116\119\101\101\110\124\98\105\103\105\110\116\124\98\105\110\97\114\121\124\98\108\111\98\124\98\111\116\104\124\98\121\124\99\97\108\108\124\99\97\115\99\97\100\101\124\99\97\115\101\124\99\104\97\110\103\101\124\99\104\97\114\124\99\104\97\114\97\99\116\101\114\124\99\104\101\99\107\124\99\111\108\108\97\116\101\124\99\111\108\117\109\110\124\99\111\110\100\105\116\105\111\110\124\99\111\110\115\116\114\97\105\110\116\124\99\111\110\116\105\110\117\101\124\99\111\110\118\101\114\116\124\99\114\101\97\116\101\124\99\114\111\115\115\124\99\117\114\114\101\110\116\95\100\97\116\101\124\99\117\114\114\101\110\116\95\116\105\109\101\124\99\117\114\114\101\110\116\95\116\105\109\101\115\116\97\109\112\124\99\117\114\114\101\110\116\95\117\115\101\114\124\99\117\114\115\111\114\124\100\97\116\97\98\97\115\101\124\100\97\116\97\98\97\115\101\115\124\100\97\121\95\104\111\117\114\124\100\97\121\95\109\105\99\114\111\115\101\99\111\110\100\124\100\97\121\95\109\105\110\117\116\101\124\100\97\121\95\115\101\99\111\110\100\124\100\101\99\124\100\101\99\105\109\97\108\124\100\101\99\108\97\114\101\124\100\101\102\97\117\108\116\124\100\101\108\97\121\101\100\124\100\101\108\101\116\101\124\100\101\115\99\124\100\101\115\99\114\105\98\101\124\100\101\116\101\114\109\105\110\105\115\116\105\99\124\100\105\115\116\105\110\99\116\124\100\105\115\116\105\110\99\116\114\111\119\124\100\105\118\124\100\111\117\98\108\101\124\100\114\111\112\124\100\117\97\108\124\101\97\99\104\124\101\108\115\101\124\101\108\115\101\105\102\124\101\110\99\108\111\115\101\100\124\101\115\99\97\112\101\100\124\101\120\105\115\116\115\124\101\120\105\116\124\101\120\112\108\97\105\110\124\102\101\116\99\104\124\102\108\111\97\116\124\102\108\111\97\116\52\124\102\108\111\97\116\56\124\102\111\114\124\102\111\114\99\101\124\102\111\114\101\105\103\110\124\102\114\111\109\124\102\117\108\108\116\101\120\116\124\103\114\97\110\116\124\103\114\111\117\112\124\104\97\118\105\110\103\124\104\105\103\104\95\112\114\105\111\114\105\116\121\124\104\111\117\114\95\109\105\99\114\111\115\101\99\111\110\100\124\104\111\117\114\95\109\105\110\117\116\101\124\104\111\117\114\95\115\101\99\111\110\100\124\105\102\124\105\103\110\111\114\101\124\105\110\124\105\110\100\101\120\124\105\110\102\105\108\101\124\105\110\110\101\114\124\105\110\111\117\116\124\105\110\115\101\110\115\105\116\105\118\101\124\105\110\115\101\114\116\124\105\110\116\124\105\110\116\49\124\105\110\116\50\124\105\110\116\51\124\105\110\116\52\124\105\110\116\56\124\105\110\116\101\103\101\114\124\105\110\116\101\114\118\97\108\124\105\110\116\111\124\105\115\124\105\116\101\114\97\116\101\124\106\111\105\110\124\107\101\121\124\107\101\121\115\124\107\105\108\108\124\108\101\97\100\105\110\103\124\108\101\97\118\101\124\108\101\102\116\124\108\105\107\101\124\108\105\109\105\116\124\108\105\110\101\115\124\108\111\97\100\124\108\111\99\97\108\116\105\109\101\124\108\111\99\97\108\116\105\109\101\115\116\97\109\112\124\108\111\99\107\124\108\111\110\103\124\108\111\111\112\124\108\111\119\95\112\114\105\111\114\105\116\121\124\109\97\116\99\104\124\109\105\110\117\116\101\95\109\105\99\114\111\115\101\99\111\110\100\124\109\105\110\117\116\101\95\115\101\99\111\110\100\124\109\111\100\124\109\111\100\105\102\105\101\115\124\110\97\116\117\114\97\108\124\110\111\95\119\114\105\116\101\95\116\111\95\98\105\110\108\111\103\124\110\111\116\124\110\117\109\101\114\105\99\124\111\110\124\111\112\116\105\109\105\122\101\124\111\112\116\105\111\110\124\111\112\116\105\111\110\97\108\108\121\124\111\114\124\111\114\100\101\114\124\111\117\116\124\111\117\116\101\114\124\111\117\116\102\105\108\101\124\112\114\101\99\105\115\105\111\110\124\112\114\105\109\97\114\121\124\112\114\111\99\101\100\117\114\101\124\112\117\114\103\101\124\114\97\105\100\48\124\114\101\97\100\124\114\101\97\100\115\124\114\101\97\108\124\114\101\102\101\114\101\110\99\101\115\124\114\101\103\101\120\112\124\114\101\108\101\97\115\101\124\114\101\110\97\109\101\124\114\101\112\101\97\116\124\114\101\112\108\97\99\101\124\114\101\113\117\105\114\101\124\114\101\115\116\114\105\99\116\124\114\101\116\117\114\110\124\114\101\118\111\107\101\124\114\105\103\104\116\124\114\108\105\107\101\124\115\99\104\101\109\97\124\115\99\104\101\109\97\115\124\115\101\99\111\110\100\95\109\105\99\114\111\115\101\99\111\110\100\124\115\101\108\101\99\116\124\115\101\110\115\105\116\105\118\101\124\115\101\112\97\114\97\116\111\114\124\115\101\116\124\115\104\111\119\124\115\109\97\108\108\105\110\116\124\115\111\110\97\109\101\124\115\112\97\116\105\97\108\124\115\112\101\99\105\102\105\99\124\115\113\108\124\115\113\108\95\98\105\103\95\114\101\115\117\108\116\124\115\113\108\95\99\97\108\99\95\102\111\117\110\100\95\114\111\119\115\124\115\113\108\95\115\109\97\108\108\95\114\101\115\117\108\116\124\115\113\108\101\120\99\101\112\116\105\111\110\124\115\113\108\115\116\97\116\101\124\115\113\108\119\97\114\110\105\110\103\124\115\115\108\124\115\116\97\114\116\105\110\103\124\115\116\114\97\105\103\104\116\95\106\111\105\110\124\116\97\98\108\101\124\116\101\114\109\105\110\97\116\101\100\124\116\104\101\110\124\116\111\124\116\114\97\105\108\105\110\103\124\116\114\105\103\103\101\114\124\117\110\100\111\124\117\110\105\111\110\124\117\110\105\113\117\101\124\117\110\108\111\99\107\124\117\110\115\105\103\110\101\100\124\117\112\100\97\116\101\124\117\115\97\103\101\124\117\115\101\124\117\115\105\110\103\124\117\116\99\95\100\97\116\101\124\117\116\99\95\116\105\109\101\124\117\116\99\95\116\105\109\101\115\116\97\109\112\124\118\97\108\117\101\115\124\118\97\114\121\105\110\103\124\119\104\101\110\124\119\104\101\114\101\124\119\104\105\108\101\124\119\105\116\104\124\119\114\105\116\101\124\120\53\48\57\124\120\111\114\124\121\101\97\114\95\109\111\110\116\104\124\122\101\114\111\102\105\108\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\97\117\116\111\95\105\110\99\114\101\109\101\110\116\124\101\110\103\105\110\101\124\99\104\97\114\115\101\116\124\116\97\98\108\101\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")-    , tok "\64\91\65\45\90\97\45\122\48\45\57\93\42\91\46\95\93\42\91\65\45\90\97\45\122\48\45\57\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\59\58\40\41\92\91\92\93\44\92\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "(#|--\\s+).*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo multilineComments')+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[0-9]*\\.[0-9]+(e[+-][0-9]+)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "'(''|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "\"(\"\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "`(``|[^`])*`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "[+*/<>=\126!@#%^&|`?^-]" (Arbitrary "Operator")+    , tok "\\b(tinyint|smallint|mediumint|int|integer|bigint|date|datetime|time|bit|bool|tinytext|mediumtext|longtext|text|tinyblob|mediumblob|longblob|blob|float|double|double\\s+precision|real|numeric|dec|decimal|timestamp|year|char|varchar|varbinary|varcharacter|enum|set)(\\b\\s*)(\\()?" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tok "\\b(add|all|alter|analyze|and|as|asc|asensitive|before|between|bigint|binary|blob|both|by|call|cascade|case|change|char|character|check|collate|column|condition|constraint|continue|convert|create|cross|current_date|current_time|current_timestamp|current_user|cursor|database|databases|day_hour|day_microsecond|day_minute|day_second|dec|decimal|declare|default|delayed|delete|desc|describe|deterministic|distinct|distinctrow|div|double|drop|dual|each|else|elseif|enclosed|escaped|exists|exit|explain|fetch|float|float4|float8|for|force|foreign|from|fulltext|grant|group|having|high_priority|hour_microsecond|hour_minute|hour_second|if|ignore|in|index|infile|inner|inout|insensitive|insert|int|int1|int2|int3|int4|int8|integer|interval|into|is|iterate|join|key|keys|kill|leading|leave|left|like|limit|lines|load|localtime|localtimestamp|lock|long|loop|low_priority|match|minute_microsecond|minute_second|mod|modifies|natural|no_write_to_binlog|not|numeric|on|optimize|option|optionally|or|order|out|outer|outfile|precision|primary|procedure|purge|raid0|read|reads|real|references|regexp|release|rename|repeat|replace|require|restrict|return|revoke|right|rlike|schema|schemas|second_microsecond|select|sensitive|separator|set|show|smallint|soname|spatial|specific|sql|sql_big_result|sql_calc_found_rows|sql_small_result|sqlexception|sqlstate|sqlwarning|ssl|starting|straight_join|table|terminated|then|to|trailing|trigger|undo|union|unique|unlock|unsigned|update|usage|use|using|utc_date|utc_time|utc_timestamp|values|varying|when|where|while|with|write|x509|xor|year_month|zerofill)\\b" (Arbitrary "Keyword")+    , tok "\\b(auto_increment|engine|charset|tables)\\b" (Arbitrary "Keyword" :. Arbitrary "Pseudo")+    , tok "(true|false|null)" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "([a-zA-Z_][a-zA-Z0-9_]*)(\\s*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "@[A-Za-z0-9]*[._]*[A-Za-z0-9]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[;:()\\[\\],\\.]" (Arbitrary "Punctuation")     ] 
src/Text/Highlighter/Lexers/Nasm.hs view
@@ -5,61 +5,61 @@  lexer :: Lexer lexer = Lexer-    { lName = "\78\65\83\77"-    , lAliases = ["\110\97\115\109"]-    , lExtensions = ["\46\97\115\109", "\46\65\83\77"]-    , lMimetypes = ["\116\101\120\116\47\120\45\110\97\115\109"]+    { lName = "NASM"+    , lAliases = ["nasm"]+    , lExtensions = [".asm", ".ASM"]+    , lMimetypes = ["text/x-nasm"]     , lStart = root'     , lFlags = [caseless, multiline]     }  preproc' :: TokenMatcher preproc' =-    [ tok "\91\94\59\92\110\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\59\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101") Pop-    , tokNext "\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop+    [ tok "[^;\\n]+" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext ";.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single") Pop+    , tokNext "\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop     ]  punctuation' :: TokenMatcher punctuation' =-    [ tok "\91\44\40\41\58\92\91\92\93\93\43" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\38\124\94\60\62\43\42\47\37\126\45\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\36\93\43" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\115\101\103\124\119\114\116\124\115\116\114\105\99\116" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\98\121\116\101\124\91\100\113\93\63\119\111\114\100" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")+    [ tok "[,():\\[\\]]+" (Arbitrary "Punctuation")+    , tok "[&|^<>+*/%\126-]+" (Arbitrary "Operator")+    , tok "[$]+" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "seg|wrt|strict" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "byte|[dq]?word" (Arbitrary "Keyword" :. Arbitrary "Type")     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tokNext "\94\92\115\42\37" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo preproc')-    , tok "\91\97\45\122\65\45\90\36\46\95\63\93\91\97\45\122\65\45\90\48\45\57\36\46\95\63\35\64\126\93\42\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tokNext "\40\91\97\45\122\65\45\90\36\46\95\63\93\91\97\45\122\65\45\90\48\45\57\36\46\95\63\35\64\126\93\42\41\40\92\115\43\41\40\101\113\117\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")]) (GoTo instructionArgs')-    , tokNext "\66\73\84\83\124\85\83\69\49\54\124\85\83\69\51\50\124\83\69\67\84\73\79\78\124\83\69\71\77\69\78\84\124\65\66\83\79\76\85\84\69\124\69\88\84\69\82\78\124\71\76\79\66\65\76\124\79\82\71\124\65\76\73\71\78\124\83\84\82\85\67\124\69\78\68\83\84\82\85\67\124\67\79\77\77\79\78\124\67\80\85\124\71\82\79\85\80\124\85\80\80\69\82\67\65\83\69\124\73\77\80\79\82\84\124\69\88\80\79\82\84\124\76\73\66\82\65\82\89\124\77\79\68\85\76\69" (Arbitrary "\75\101\121\119\111\114\100") (GoTo instructionArgs')-    , tokNext "\40\63\58\114\101\115\124\100\41\91\98\119\100\113\116\93\124\116\105\109\101\115" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (GoTo instructionArgs')-    , tokNext "\91\97\45\122\65\45\90\36\46\95\63\93\91\97\45\122\65\45\90\48\45\57\36\46\95\63\35\64\126\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") (GoTo instructionArgs')-    , tok "\91\92\114\92\110\93\43" (Arbitrary "\84\101\120\116")+    , tokNext "^\\s*%" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo preproc')+    , tok "[a-zA-Z$._?][a-zA-Z0-9$._?#@\126]*:" (Arbitrary "Name" :. Arbitrary "Label")+    , tokNext "([a-zA-Z$._?][a-zA-Z0-9$._?#@\126]*)(\\s+)(equ)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Constant"), (Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Keyword" :. Arbitrary "Declaration")]) (GoTo instructionArgs')+    , tokNext "BITS|USE16|USE32|SECTION|SEGMENT|ABSOLUTE|EXTERN|GLOBAL|ORG|ALIGN|STRUC|ENDSTRUC|COMMON|CPU|GROUP|UPPERCASE|IMPORT|EXPORT|LIBRARY|MODULE" (Arbitrary "Keyword") (GoTo instructionArgs')+    , tokNext "(?:res|d)[bwdqt]|times" (Arbitrary "Keyword" :. Arbitrary "Declaration") (GoTo instructionArgs')+    , tokNext "[a-zA-Z$._?][a-zA-Z0-9$._?#@\126]*" (Arbitrary "Name" :. Arbitrary "Function") (GoTo instructionArgs')+    , tok "[\\r\\n]+" (Arbitrary "Text")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\91\32\92\116\93\43" (Arbitrary "\84\101\120\116")-    , tok "\59\46\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")+    [ tok "\\n" (Arbitrary "Text")+    , tok "[ \\t]+" (Arbitrary "Text")+    , tok ";.*" (Arbitrary "Comment" :. Arbitrary "Single")     ]  instructionArgs' :: TokenMatcher instructionArgs' =-    [ tok "\34\40\92\92\34\124\91\94\34\93\41\42\34\124\39\40\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\40\63\58\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\93\43\124\36\48\91\48\45\57\97\45\102\65\45\70\93\42\124\91\48\45\57\93\43\91\48\45\57\97\45\102\65\45\70\93\42\104\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\55\93\43\113" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\91\48\49\93\43\98" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\48\45\57\93\43\92\46\101\63\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "\"(\\\\\"|[^\"])*\"|'(\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "(?:0[xX][0-9a-fA-F]+|$0[0-9a-fA-F]*|[0-9]+[0-9a-fA-F]*h)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-7]+q" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "[01]+b" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[0-9]+\\.e?[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     , anyOf punctuation'-    , tok "\91\97\45\100\93\91\108\104\93\124\101\63\91\97\45\100\93\120\124\101\63\91\115\98\93\112\124\101\63\91\115\100\93\105\124\91\99\45\103\115\93\115\124\115\116\91\48\45\55\93\124\109\109\91\48\45\55\93\124\99\114\91\48\45\52\93\124\100\114\91\48\45\51\54\55\93\124\116\114\91\51\45\55\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\97\45\122\65\45\90\36\46\95\63\93\91\97\45\122\65\45\90\48\45\57\36\46\95\63\35\64\126\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tokNext "\91\92\114\92\110\93\43" (Arbitrary "\84\101\120\116") Pop+    , tok "[a-d][lh]|e?[a-d]x|e?[sb]p|e?[sd]i|[c-gs]s|st[0-7]|mm[0-7]|cr[0-4]|dr[0-367]|tr[3-7]" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[a-zA-Z$._?][a-zA-Z0-9$._?#@\126]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tokNext "[\\r\\n]+" (Arbitrary "Text") Pop     , anyOf whitespace'     ] 
src/Text/Highlighter/Lexers/Newspeak.hs view
@@ -5,55 +5,55 @@  lexer :: Lexer lexer = Lexer-    { lName = "\78\101\119\115\112\101\97\107"-    , lAliases = ["\110\101\119\115\112\101\97\107"]-    , lExtensions = ["\46\110\115\50"]-    , lMimetypes = ["\116\101\120\116\47\120\45\110\101\119\115\112\101\97\107"]+    { lName = "Newspeak"+    , lAliases = ["newspeak"]+    , lExtensions = [".ns2"]+    , lMimetypes = ["text/x-newspeak"]     , lStart = root'     , lFlags = [multiline]     }  literals' :: TokenMatcher literals' =-    [ tok "\92\36\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\39\91\94\39\93\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\35\39\91\94\39\93\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\35\92\119\43\58\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\35\40\92\43\124\92\47\124\126\124\92\42\124\60\124\62\124\61\124\64\124\37\124\92\124\124\38\124\92\63\124\33\124\44\124\45\41\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")+    [ tok "\\$." (Arbitrary "Literal" :. Arbitrary "String")+    , tok "'[^']*'" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "#'[^']*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "#\\w+:?" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "#(\\+|\\/|\126|\\*|<|>|=|@|%|\\||&|\\?|!|,|-)+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")     ]  root' :: TokenMatcher root' =-    [ tok "\92\98\40\78\101\119\115\113\117\101\97\107\50\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\39\91\94\39\93\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\98\40\99\108\97\115\115\41\40\92\115\43\41\40\91\97\45\122\65\45\90\48\45\57\95\93\43\41\40\92\115\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116")])-    , tok "\92\98\40\109\105\120\105\110\124\115\101\108\102\124\115\117\112\101\114\124\112\114\105\118\97\116\101\124\112\117\98\108\105\99\124\112\114\111\116\101\99\116\101\100\124\110\105\108\124\116\114\117\101\124\102\97\108\115\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\91\97\45\122\65\45\90\48\45\57\95\93\43\92\58\41\40\92\115\42\41\40\91\97\45\122\65\45\90\95\93\92\119\43\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")])-    , tok "\40\91\97\45\122\65\45\90\48\45\57\95\93\43\41\40\92\115\42\41\40\61\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\60\91\97\45\122\65\45\90\48\45\57\95\93\43\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\112\101\99\105\97\108")+    [ tok "\\b(Newsqueak2)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "'[^']*'" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\b(class)(\\s+)([a-zA-Z0-9_]+)(\\s*)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text")])+    , tok "\\b(mixin|self|super|private|public|protected|nil|true|false)\\b" (Arbitrary "Keyword")+    , tok "([a-zA-Z0-9_]+\\:)(\\s*)([a-zA-Z_]\\w+)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable")])+    , tok "([a-zA-Z0-9_]+)(\\s*)(=)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Attribute"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tok "<[a-zA-Z0-9_]+>" (Arbitrary "Comment" :. Arbitrary "Special")     , anyOf expressionstat'     , anyOf whitespace'     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\34\91\94\34\93\42\34" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "\"[^\"]*\"" (Arbitrary "Comment")     ]  expressionstat' :: TokenMatcher expressionstat' =-    [ tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\91\102\70\93\41\91\102\70\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\58\92\119\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\92\119\43\41\40\58\58\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\92\119\43\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\92\119\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\92\40\124\92\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\91\124\92\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\123\124\92\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\92\94\124\92\43\124\92\47\124\126\124\92\42\124\60\124\62\124\61\124\64\124\37\124\92\124\124\38\124\92\63\124\33\124\44\124\45\124\58\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\46\124\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok ":\\w+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(\\w+)(::)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Operator")])+    , tok "\\w+:" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "\\w+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "\\(|\\)" (Arbitrary "Punctuation")+    , tok "\\[|\\]" (Arbitrary "Punctuation")+    , tok "\\{|\\}" (Arbitrary "Punctuation")+    , tok "(\\^|\\+|\\/|\126|\\*|<|>|=|@|%|\\||&|\\?|!|,|-|:)" (Arbitrary "Operator")+    , tok "\\.|;" (Arbitrary "Punctuation")     , anyOf whitespace'     , anyOf literals'     ]
src/Text/Highlighter/Lexers/NginxConf.hs view
@@ -5,48 +5,48 @@  lexer :: Lexer lexer = Lexer-    { lName = "\78\103\105\110\120\32\99\111\110\102\105\103\117\114\97\116\105\111\110\32\102\105\108\101"-    , lAliases = ["\110\103\105\110\120"]+    { lName = "Nginx configuration file"+    , lAliases = ["nginx"]     , lExtensions = []-    , lMimetypes = ["\116\101\120\116\47\120\45\110\103\105\110\120\45\99\111\110\102"]+    , lMimetypes = ["text/x-nginx-conf"]     , lStart = root'     , lFlags = [multiline]     }  base' :: TokenMatcher base' =-    [ tok "\35\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\111\110\124\111\102\102" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\36\91\94\92\115\59\35\40\41\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\91\97\45\122\48\45\57\46\45\93\43\41\40\58\41\40\91\48\45\57\93\43\41" (ByGroups [(Arbitrary "\78\97\109\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")])-    , tok "\91\97\45\122\45\93\43\47\91\97\45\122\45\43\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\48\45\57\93\43\91\107\109\93\63\92\98" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\40\126\41\40\92\115\42\41\40\91\94\92\115\123\93\43\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")])-    , tok "\91\58\61\126\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\94\92\115\59\35\123\125\36\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\47\91\94\92\115\59\35\93\42" (Arbitrary "\78\97\109\101")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\91\36\59\93" (Arbitrary "\84\101\120\116")+    [ tok "#.*\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "on|off" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\\$[^\\s;#()]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "([a-z0-9.-]+)(:)([0-9]+)" (ByGroups [(Arbitrary "Name"), (Arbitrary "Punctuation"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")])+    , tok "[a-z-]+/[a-z-+]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[0-9]+[km]?\\b" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "(\126)(\\s*)([^\\s{]+)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")])+    , tok "[:=\126]" (Arbitrary "Punctuation")+    , tok "[^\\s;#{}$]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "/[^\\s;#]*" (Arbitrary "Name")+    , tok "\\s+" (Arbitrary "Text")+    , tok "[$;]" (Arbitrary "Text")     ]  root' :: TokenMatcher root' =-    [ tok "\40\105\110\99\108\117\100\101\41\40\92\115\43\41\40\91\94\92\115\59\93\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101")])-    , tokNext "\91\94\92\115\59\35\93\43" (Arbitrary "\75\101\121\119\111\114\100") (GoTo stmt')+    [ tok "(include)(\\s+)([^\\s;]+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name")])+    , tokNext "[^\\s;#]+" (Arbitrary "Keyword") (GoTo stmt')     , anyOf base'     ]  stmt' :: TokenMatcher stmt' =-    [ tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo block')-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tokNext "{" (Arbitrary "Punctuation") (GoTo block')+    , tokNext ";" (Arbitrary "Punctuation") Pop     , anyOf base'     ]  block' :: TokenMatcher block' =-    [ tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (PopNum 2)-    , tokNext "\91\94\92\115\59\35\93\43" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101") (GoTo stmt')+    [ tokNext "}" (Arbitrary "Punctuation") (PopNum 2)+    , tokNext "[^\\s;#]+" (Arbitrary "Keyword" :. Arbitrary "Namespace") (GoTo stmt')     , anyOf base'     ] 
src/Text/Highlighter/Lexers/NumPy.hs view
@@ -5,8 +5,8 @@  lexer :: Lexer lexer = Lexer-    { lName = "\78\117\109\80\121"-    , lAliases = ["\110\117\109\112\121"]+    { lName = "NumPy"+    , lAliases = ["numpy"]     , lExtensions = []     , lMimetypes = []     , lStart = root'@@ -15,135 +15,135 @@  tsqs' :: TokenMatcher tsqs' =-    [ tokNext "\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "'''" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  builtins' :: TokenMatcher builtins' =-    [ tok "\40\63\60\33\92\46\41\40\95\95\105\109\112\111\114\116\95\95\124\97\98\115\124\97\108\108\124\97\110\121\124\97\112\112\108\121\124\98\97\115\101\115\116\114\105\110\103\124\98\105\110\124\98\111\111\108\124\98\117\102\102\101\114\124\98\121\116\101\97\114\114\97\121\124\98\121\116\101\115\124\99\97\108\108\97\98\108\101\124\99\104\114\124\99\108\97\115\115\109\101\116\104\111\100\124\99\109\112\124\99\111\101\114\99\101\124\99\111\109\112\105\108\101\124\99\111\109\112\108\101\120\124\100\101\108\97\116\116\114\124\100\105\99\116\124\100\105\114\124\100\105\118\109\111\100\124\101\110\117\109\101\114\97\116\101\124\101\118\97\108\124\101\120\101\99\102\105\108\101\124\101\120\105\116\124\102\105\108\101\124\102\105\108\116\101\114\124\102\108\111\97\116\124\102\114\111\122\101\110\115\101\116\124\103\101\116\97\116\116\114\124\103\108\111\98\97\108\115\124\104\97\115\97\116\116\114\124\104\97\115\104\124\104\101\120\124\105\100\124\105\110\112\117\116\124\105\110\116\124\105\110\116\101\114\110\124\105\115\105\110\115\116\97\110\99\101\124\105\115\115\117\98\99\108\97\115\115\124\105\116\101\114\124\108\101\110\124\108\105\115\116\124\108\111\99\97\108\115\124\108\111\110\103\124\109\97\112\124\109\97\120\124\109\105\110\124\110\101\120\116\124\111\98\106\101\99\116\124\111\99\116\124\111\112\101\110\124\111\114\100\124\112\111\119\124\112\114\111\112\101\114\116\121\124\114\97\110\103\101\124\114\97\119\95\105\110\112\117\116\124\114\101\100\117\99\101\124\114\101\108\111\97\100\124\114\101\112\114\124\114\101\118\101\114\115\101\100\124\114\111\117\110\100\124\115\101\116\124\115\101\116\97\116\116\114\124\115\108\105\99\101\124\115\111\114\116\101\100\124\115\116\97\116\105\99\109\101\116\104\111\100\124\115\116\114\124\115\117\109\124\115\117\112\101\114\124\116\117\112\108\101\124\116\121\112\101\124\117\110\105\99\104\114\124\117\110\105\99\111\100\101\124\118\97\114\115\124\120\114\97\110\103\101\124\122\105\112\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\63\60\33\92\46\41\40\115\101\108\102\124\78\111\110\101\124\69\108\108\105\112\115\105\115\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\124\70\97\108\115\101\124\84\114\117\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\40\63\60\33\92\46\41\40\65\114\105\116\104\109\101\116\105\99\69\114\114\111\114\124\65\115\115\101\114\116\105\111\110\69\114\114\111\114\124\65\116\116\114\105\98\117\116\101\69\114\114\111\114\124\66\97\115\101\69\120\99\101\112\116\105\111\110\124\68\101\112\114\101\99\97\116\105\111\110\87\97\114\110\105\110\103\124\69\79\70\69\114\114\111\114\124\69\110\118\105\114\111\110\109\101\110\116\69\114\114\111\114\124\69\120\99\101\112\116\105\111\110\124\70\108\111\97\116\105\110\103\80\111\105\110\116\69\114\114\111\114\124\70\117\116\117\114\101\87\97\114\110\105\110\103\124\71\101\110\101\114\97\116\111\114\69\120\105\116\124\73\79\69\114\114\111\114\124\73\109\112\111\114\116\69\114\114\111\114\124\73\109\112\111\114\116\87\97\114\110\105\110\103\124\73\110\100\101\110\116\97\116\105\111\110\69\114\114\111\114\124\73\110\100\101\120\69\114\114\111\114\124\75\101\121\69\114\114\111\114\124\75\101\121\98\111\97\114\100\73\110\116\101\114\114\117\112\116\124\76\111\111\107\117\112\69\114\114\111\114\124\77\101\109\111\114\121\69\114\114\111\114\124\78\97\109\101\69\114\114\111\114\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\69\114\114\111\114\124\79\83\69\114\114\111\114\124\79\118\101\114\102\108\111\119\69\114\114\111\114\124\79\118\101\114\102\108\111\119\87\97\114\110\105\110\103\124\80\101\110\100\105\110\103\68\101\112\114\101\99\97\116\105\111\110\87\97\114\110\105\110\103\124\82\101\102\101\114\101\110\99\101\69\114\114\111\114\124\82\117\110\116\105\109\101\69\114\114\111\114\124\82\117\110\116\105\109\101\87\97\114\110\105\110\103\124\83\116\97\110\100\97\114\100\69\114\114\111\114\124\83\116\111\112\73\116\101\114\97\116\105\111\110\124\83\121\110\116\97\120\69\114\114\111\114\124\83\121\110\116\97\120\87\97\114\110\105\110\103\124\83\121\115\116\101\109\69\114\114\111\114\124\83\121\115\116\101\109\69\120\105\116\124\84\97\98\69\114\114\111\114\124\84\121\112\101\69\114\114\111\114\124\85\110\98\111\117\110\100\76\111\99\97\108\69\114\114\111\114\124\85\110\105\99\111\100\101\68\101\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\69\110\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\84\114\97\110\115\108\97\116\101\69\114\114\111\114\124\85\110\105\99\111\100\101\87\97\114\110\105\110\103\124\85\115\101\114\87\97\114\110\105\110\103\124\86\97\108\117\101\69\114\114\111\114\124\86\77\83\69\114\114\111\114\124\87\97\114\110\105\110\103\124\87\105\110\100\111\119\115\69\114\114\111\114\124\90\101\114\111\68\105\118\105\115\105\111\110\69\114\114\111\114\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\120\99\101\112\116\105\111\110")+    [ tok "(?<!\\.)(__import__|abs|all|any|apply|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|exit|file|filter|float|frozenset|getattr|globals|hasattr|hash|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?<!\\.)(self|None|Ellipsis|NotImplemented|False|True)\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tok "(?<!\\.)(ArithmeticError|AssertionError|AttributeError|BaseException|DeprecationWarning|EOFError|EnvironmentError|Exception|FloatingPointError|FutureWarning|GeneratorExit|IOError|ImportError|ImportWarning|IndentationError|IndexError|KeyError|KeyboardInterrupt|LookupError|MemoryError|NameError|NotImplemented|NotImplementedError|OSError|OverflowError|OverflowWarning|PendingDeprecationWarning|ReferenceError|RuntimeError|RuntimeWarning|StandardError|StopIteration|SyntaxError|SyntaxWarning|SystemError|SystemExit|TabError|TypeError|UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|UnicodeError|UnicodeTranslateError|UnicodeWarning|UserWarning|ValueError|VMSError|Warning|WindowsError|ZeroDivisionError)\\b" (Arbitrary "Name" :. Arbitrary "Exception")     ]  name' :: TokenMatcher name' =-    [ tok "\64\91\97\45\122\65\45\90\48\45\57\95\46\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")+    [ tok "@[a-zA-Z0-9_.]+" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")     ]  dqs' :: TokenMatcher dqs' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\34\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\\"|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  sqs' :: TokenMatcher sqs' =-    [ tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\39\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\'|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  tdqs' :: TokenMatcher tdqs' =-    [ tokNext "\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  backtick' :: TokenMatcher backtick' =-    [ tok "\96\46\42\63\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107")+    [ tok "`.*?`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick")     ]  funcname' :: TokenMatcher funcname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Function") Pop     ]  classname' :: TokenMatcher classname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  stringescape' :: TokenMatcher stringescape' =-    [ tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\92\110\124\78\123\46\42\63\125\124\117\91\97\45\102\65\45\70\48\45\57\93\123\52\125\124\85\91\97\45\102\65\45\70\48\45\57\93\123\56\125\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tok "\\\\([\\\\abfnrtv\"\\']|\\n|N{.*?}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     ]  numbers' :: TokenMatcher numbers' =-    [ tok "\40\92\100\43\92\46\92\100\42\124\92\100\42\92\46\92\100\43\41\40\91\101\69\93\91\43\45\93\63\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\100\43\91\101\69\93\91\43\45\93\63\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\120\88\93\91\97\45\102\65\45\70\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\92\100\43\76" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114" :. Arbitrary "\76\111\110\103")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "(\\d+\\.\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+[eE][+-]?[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+L" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer" :. Arbitrary "Long")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ]  keywords' :: TokenMatcher keywords' =-    [ tok "\40\97\115\115\101\114\116\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\100\101\108\124\101\108\105\102\124\101\108\115\101\124\101\120\99\101\112\116\124\101\120\101\99\124\102\105\110\97\108\108\121\124\102\111\114\124\103\108\111\98\97\108\124\105\102\124\108\97\109\98\100\97\124\112\97\115\115\124\112\114\105\110\116\124\114\97\105\115\101\124\114\101\116\117\114\110\124\116\114\121\124\119\104\105\108\101\124\121\105\101\108\100\124\97\115\124\119\105\116\104\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "(assert|break|continue|del|elif|else|except|exec|finally|for|global|if|lambda|pass|print|raise|return|try|while|yield|as|with)\\b" (Arbitrary "Keyword")     ]  import' :: TokenMatcher import' =-    [ tok "\40\40\63\58\92\115\124\92\92\92\115\41\43\41\40\97\115\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")])-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tok "\40\92\115\42\41\40\44\41\40\92\115\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116")])-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    [ tok "((?:\\s|\\\\\\s)+)(as)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")])+    , tok "[a-zA-Z_][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tok "(\\s*)(,)(\\s*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text")])+    , tokNext "" (Arbitrary "Text") Pop     ]  nl' :: TokenMatcher nl' =-    [ tok "\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "\\n" (Arbitrary "Literal" :. Arbitrary "String")     ]  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\94\40\92\115\42\41\40\34\34\34\40\63\58\46\124\92\110\41\42\63\34\34\34\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")])-    , tok "\94\40\92\115\42\41\40\39\39\39\40\63\58\46\124\92\110\41\42\63\39\39\39\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")])-    , tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\91\93\123\125\58\40\41\44\59\91\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\92" (Arbitrary "\84\101\120\116")-    , tok "\40\105\110\124\105\115\124\97\110\100\124\111\114\124\110\111\116\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\33\61\124\61\61\124\60\60\124\62\62\124\91\45\126\43\47\42\37\61\60\62\38\94\124\46\93" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "\\n" (Arbitrary "Text")+    , tok "^(\\s*)([rRuU]{,2}\"\"\"(?:.|\\n)*?\"\"\")" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")])+    , tok "^(\\s*)([rRuU]{,2}'''(?:.|\\n)*?''')" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")])+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "#.*$" (Arbitrary "Comment")+    , tok "[]{}:(),;[]" (Arbitrary "Punctuation")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "\\\\" (Arbitrary "Text")+    , tok "(in|is|and|or|not)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "!=|==|<<|>>|[-\126+/*%=<>&^|.]" (Arbitrary "Operator")     , anyOf keywords'-    , tokNext "\40\100\101\102\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo funcname')-    , tokNext "\40\99\108\97\115\115\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tokNext "\40\102\114\111\109\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo fromimport')-    , tokNext "\40\105\109\112\111\114\116\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo import')+    , tokNext "(def)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo funcname')+    , tokNext "(class)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tokNext "(from)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo fromimport')+    , tokNext "(import)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo import')     , anyOf builtins'     , anyOf backtick'-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tdqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tsqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo dqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo sqs')-    , tokNext "\91\117\85\93\63\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tdqs'])-    , tokNext "\91\117\85\93\63\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tsqs'])-    , tokNext "\91\117\85\93\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', dqs'])-    , tokNext "\91\117\85\93\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', sqs'])+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tdqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])'''" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tsqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo dqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo sqs')+    , tokNext "[uU]?\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tdqs'])+    , tokNext "[uU]?'''" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tsqs'])+    , tokNext "[uU]?\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', dqs'])+    , tokNext "[uU]?'" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', sqs'])     , anyOf name'     , anyOf numbers'     ]  strings' :: TokenMatcher strings' =-    [ tok "\37\40\92\40\91\97\45\122\65\45\90\48\45\57\95\93\43\92\41\41\63\91\45\35\48\32\43\93\42\40\91\48\45\57\93\43\124\91\42\93\41\63\40\92\46\40\91\48\45\57\93\43\124\91\42\93\41\41\63\91\104\108\76\93\63\91\100\105\111\117\120\88\101\69\102\70\103\71\99\114\115\37\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")-    , tok "\91\94\92\92\92\39\34\37\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\92\39\34\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\37" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "%(\\([a-zA-Z0-9_]+\\))?[-#0 +]*([0-9]+|[*])?(\\.([0-9]+|[*]))?[hlL]?[diouxXeEfFgGcrs%]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")+    , tok "[^\\\\\\'\"%\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[\\'\"\\\\]" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "%" (Arbitrary "Literal" :. Arbitrary "String")     ]  fromimport' :: TokenMatcher fromimport' =-    [ tokNext "\40\40\63\58\92\115\124\92\92\92\115\41\43\41\40\105\109\112\111\114\116\41\92\98" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101")]) Pop-    , tok "\91\97\45\122\65\45\90\95\46\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")+    [ tokNext "((?:\\s|\\\\\\s)+)(import)\\b" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Namespace")]) Pop+    , tok "[a-zA-Z_.][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace")     ] 
src/Text/Highlighter/Lexers/Objdump.hs view
@@ -5,26 +5,26 @@  lexer :: Lexer lexer = Lexer-    { lName = "\71\97\115"-    , lAliases = ["\111\98\106\100\117\109\112"]-    , lExtensions = ["\46\111\98\106\100\117\109\112"]-    , lMimetypes = ["\116\101\120\116\47\120\45\111\98\106\100\117\109\112"]+    { lName = "objdump"+    , lAliases = ["objdump"]+    , lExtensions = [".objdump"]+    , lMimetypes = ["text/x-objdump"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\40\46\42\63\41\40\58\41\40\32\43\102\105\108\101\32\102\111\114\109\97\116\32\41\40\46\42\63\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tok "\40\68\105\115\97\115\115\101\109\98\108\121\32\111\102\32\115\101\99\116\105\111\110\32\41\40\46\42\63\41\40\58\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\91\48\45\57\65\45\90\97\45\122\93\43\41\40\32\41\40\60\41\40\46\42\63\41\40\91\45\43\93\41\40\48\91\120\88\93\91\65\45\90\97\45\122\48\45\57\93\43\41\40\62\58\41\36" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\91\48\45\57\65\45\90\97\45\122\93\43\41\40\32\41\40\60\41\40\46\42\63\41\40\62\58\41\36" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\32\42\41\40\91\48\45\57\65\45\90\97\45\122\93\43\58\41\40\92\116\41\40\40\63\58\91\48\45\57\65\45\90\97\45\122\93\91\48\45\57\65\45\90\97\45\122\93\32\41\43\41\40\32\42\9\41\40\91\97\45\122\65\45\90\93\46\42\63\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120"), (Arbitrary "\84\101\120\116"), (Using Gas.lexer)])-    , tok "\40\32\42\41\40\91\48\45\57\65\45\90\97\45\122\93\43\58\41\40\92\116\41\40\40\63\58\91\48\45\57\65\45\90\97\45\122\93\91\48\45\57\65\45\90\97\45\122\93\32\41\43\41\40\32\42\41\40\46\42\63\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")])-    , tok "\40\32\42\41\40\91\48\45\57\65\45\90\97\45\122\93\43\58\41\40\92\116\41\40\40\63\58\91\48\45\57\65\45\90\97\45\122\93\91\48\45\57\65\45\90\97\45\122\93\32\41\43\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")])-    , tok "\9\92\46\92\46\92\46\36" (Arbitrary "\84\101\120\116")-    , tok "\40\9\9\9\41\40\91\48\45\57\65\45\90\97\45\122\93\43\58\41\40\32\41\40\91\94\9\93\43\41\40\9\41\40\46\42\63\41\40\91\45\43\93\41\40\48\120\91\48\45\57\65\45\90\97\45\122\93\43\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\80\114\111\112\101\114\116\121"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")])-    , tok "\40\9\9\9\41\40\91\48\45\57\65\45\90\97\45\122\93\43\58\41\40\32\41\40\91\94\9\93\43\41\40\9\41\40\46\42\63\41\36" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\80\114\111\112\101\114\116\121"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")])-    , tok "\91\94\10\93\43\10" (Arbitrary "\79\116\104\101\114")+    [ tok "(.*?)(:)( +file format )(.*?)$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Punctuation"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")])+    , tok "(Disassembly of section )(.*?)(:)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Punctuation")])+    , tok "([0-9A-Za-z]+)( )(<)(.*?)([-+])(0[xX][A-Za-z0-9]+)(>:)$" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Punctuation")])+    , tok "([0-9A-Za-z]+)( )(<)(.*?)(>:)$" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation")])+    , tok "( *)([0-9A-Za-z]+:)(\\t)((?:[0-9A-Za-z][0-9A-Za-z] )+)( *\9)([a-zA-Z].*?)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Using Gas.lexer)])+    , tok "( *)([0-9A-Za-z]+:)(\\t)((?:[0-9A-Za-z][0-9A-Za-z] )+)( *)(.*?)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")])+    , tok "( *)([0-9A-Za-z]+:)(\\t)((?:[0-9A-Za-z][0-9A-Za-z] )+)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")])+    , tok "\9\\.\\.\\.$" (Arbitrary "Text")+    , tok "(\9\9\9)([0-9A-Za-z]+:)( )([^\9]+)(\9)(.*?)([-+])(0x[0-9A-Za-z]+)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Property"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Constant"), (Arbitrary "Punctuation"), (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")])+    , tok "(\9\9\9)([0-9A-Za-z]+:)( )([^\9]+)(\9)(.*?)$" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Property"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Constant")])+    , tok "[^\10]+\10" (Arbitrary "Other")     ] 
src/Text/Highlighter/Lexers/ObjectiveC.hs view
@@ -5,109 +5,111 @@  lexer :: Lexer lexer = Lexer-    { lName = "\79\98\106\101\99\116\105\118\101\45\67"-    , lAliases = ["\111\98\106\101\99\116\105\118\101\45\99", "\111\98\106\101\99\116\105\118\101\99", "\111\98\106\45\99", "\111\98\106\99"]-    , lExtensions = ["\46\109"]-    , lMimetypes = ["\116\101\120\116\47\120\45\111\98\106\101\99\116\105\118\101\45\99"]+    { lName = "Objective-C"+    , lAliases = ["objective-c", "objectivec", "obj-c", "objc"]+    , lExtensions = [".m"]+    , lMimetypes = ["text/x-objective-c"]     , lStart = root'     , lFlags = [multiline]     }  classname' :: TokenMatcher classname' =-    [ tokNext "\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\41\40\92\115\42\58\92\115\42\41\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\41\63" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")]) Pop-    , tokNext "\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\41\40\92\115\42\41\40\92\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\92\41\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")]) Pop-    , tokNext "\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "([a-zA-Z$_][a-zA-Z0-9$_]*)(\\s*:\\s*)([a-zA-Z$_][a-zA-Z0-9$_]*)?" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")]) Pop+    , tokNext "([a-zA-Z$_][a-zA-Z0-9$_]*)(\\s*)(\\([a-zA-Z$_][a-zA-Z0-9$_]*\\))" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Label")]) Pop+    , tokNext "([a-zA-Z$_][a-zA-Z0-9$_]*)" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  function' :: TokenMatcher function' =     [ anyOf whitespace'     , anyOf statements'-    , tok "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok ";" (Arbitrary "Punctuation")+    , tokNext "{" (Arbitrary "Punctuation") Push+    , tokNext "}" (Arbitrary "Punctuation") Pop     ]  statement' :: TokenMatcher statement' =     [ anyOf whitespace'     , anyOf statements'-    , tok "\91\123\125\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "[{}]" (Arbitrary "Punctuation")+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  statements' :: TokenMatcher statements' =-    [ tokNext "\40\76\124\64\41\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\40\76\124\64\41\63\39\40\92\92\46\124\92\92\91\48\45\55\93\123\49\44\51\125\124\92\92\120\91\97\45\102\65\45\70\48\45\57\93\123\49\44\50\125\124\91\94\92\92\92\39\92\110\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\41\91\101\69\93\91\43\45\93\63\92\100\43\91\108\76\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\91\102\70\93\41\91\102\70\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\48\45\55\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\92\100\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\126\33\37\94\38\42\43\61\124\63\58\60\62\47\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\40\41\92\91\92\93\44\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\97\117\116\111\124\98\114\101\97\107\124\99\97\115\101\124\99\111\110\115\116\124\99\111\110\116\105\110\117\101\124\100\101\102\97\117\108\116\124\100\111\124\101\108\115\101\124\101\110\117\109\124\101\120\116\101\114\110\124\102\111\114\124\103\111\116\111\124\105\102\124\114\101\103\105\115\116\101\114\124\114\101\115\116\114\105\99\116\101\100\124\114\101\116\117\114\110\124\115\105\122\101\111\102\124\115\116\97\116\105\99\124\115\116\114\117\99\116\124\115\119\105\116\99\104\124\116\121\112\101\100\101\102\124\117\110\105\111\110\124\118\111\108\97\116\105\108\101\124\118\105\114\116\117\97\108\124\119\104\105\108\101\124\105\110\124\64\115\101\108\101\99\116\111\114\124\64\112\114\105\118\97\116\101\124\64\112\114\111\116\101\99\116\101\100\124\64\112\117\98\108\105\99\124\64\101\110\99\111\100\101\124\64\115\121\110\99\104\114\111\110\105\122\101\100\124\64\116\114\121\124\64\116\104\114\111\119\124\64\99\97\116\99\104\124\64\102\105\110\97\108\108\121\124\64\101\110\100\124\64\112\114\111\112\101\114\116\121\124\64\115\121\110\116\104\101\115\105\122\101\124\64\100\121\110\97\109\105\99\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\105\110\116\124\108\111\110\103\124\102\108\111\97\116\124\115\104\111\114\116\124\100\111\117\98\108\101\124\99\104\97\114\124\117\110\115\105\103\110\101\100\124\115\105\103\110\101\100\124\118\111\105\100\124\105\100\124\66\79\79\76\124\73\66\79\117\116\108\101\116\124\73\66\65\99\116\105\111\110\124\83\69\76\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\95\123\48\44\50\125\105\110\108\105\110\101\124\110\97\107\101\100\124\114\101\115\116\114\105\99\116\124\116\104\114\101\97\100\124\116\121\112\101\110\97\109\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\95\95\40\97\115\109\124\105\110\116\56\124\98\97\115\101\100\124\101\120\99\101\112\116\124\105\110\116\49\54\124\115\116\100\99\97\108\108\124\99\100\101\99\108\124\102\97\115\116\99\97\108\108\124\105\110\116\51\50\124\100\101\99\108\115\112\101\99\124\102\105\110\97\108\108\121\124\105\110\116\54\52\124\116\114\121\124\108\101\97\118\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")-    , tok "\40\84\82\85\69\124\70\65\76\83\69\124\110\105\108\124\78\85\76\76\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\58\40\63\33\58\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108")-    , tok "\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42" (Arbitrary "\78\97\109\101")+    [ tokNext "(L|@)?\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "(L|@)?'(\\\\.|\\\\[0-7]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\'\\n])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+[lL]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\d+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[\126!%^&*+=|?:<>/-]" (Arbitrary "Operator")+    , tok "[()\\[\\],.]" (Arbitrary "Punctuation")+    , tok "(auto|break|case|const|continue|default|do|else|enum|extern|for|goto|if|register|restricted|return|sizeof|static|struct|switch|typedef|union|volatile|virtual|while|in|@selector|@private|@protected|@public|@encode|@synchronized|@try|@throw|@catch|@finally|@end|@property|@synthesize|@dynamic)\\b" (Arbitrary "Keyword")+    , tok "(int|long|float|short|double|char|unsigned|signed|void|id|BOOL|IBOutlet|IBAction|SEL)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(_{0,2}inline|naked|restrict|thread|typename)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "__(asm|int8|based|except|int16|stdcall|cdecl|fastcall|int32|declspec|finally|int64|try|leave)\\b" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(TRUE|FALSE|nil|NULL)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[a-zA-Z$_][a-zA-Z0-9$_]*:(?!:)" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "[a-zA-Z$_][a-zA-Z0-9$_]*" (Arbitrary "Name")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tokNext "\94\40\92\115\42\41\40\35\105\102\92\115\43\48\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")]) (GoTo if0')-    , tokNext "\94\40\92\115\42\41\40\35\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")]) (GoTo macro')-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\92\110\124\40\46\124\92\110\41\42\63\91\94\92\92\93\92\110\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "^#if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tokNext "^#" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')+    , tokNext "^(?:\\s|//.*?\\n|/[*].*?[*]/)+#if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tokNext "^(?:\\s|//.*?\\n|/[*].*?[*]/)+#" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')+    , tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "//(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  forward_classname' :: TokenMatcher forward_classname' =-    [ tokNext "\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\41\40\92\115\42\44\92\115\42\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116")]) (GoTo forward_classname')-    , tokNext "\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\41\40\92\115\42\59\63\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116")]) Pop+    [ tokNext "([a-zA-Z$_][a-zA-Z0-9$_]*)(\\s*,\\s*)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text")]) (GoTo forward_classname')+    , tokNext "([a-zA-Z$_][a-zA-Z0-9$_]*)(\\s*;?)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text")]) Pop     ]  if0' :: TokenMatcher if0' =-    [ tokNext "\94\92\115\42\35\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Push-    , tokNext "\94\92\115\42\35\101\110\100\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tokNext "^\\s*#if.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Push+    , tokNext "^\\s*#endif.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok ".*?\\n" (Arbitrary "Comment")     ]  macro' :: TokenMatcher macro' =-    [ tok "\91\94\47\92\110\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\47\91\42\93\40\46\124\92\110\41\42\63\91\42\93\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101") Pop-    , tok "\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\40\63\60\61\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop+    [ tok "[^/\\n]+" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "/[*](.|\\n)*?[*]/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single") Pop+    , tok "/" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(?<=\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tokNext "\40\40\63\58\91\97\45\122\65\45\90\48\45\57\95\42\92\115\93\41\43\63\40\63\58\92\115\124\91\42\93\41\41\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\41\40\92\115\42\92\40\91\94\59\93\42\63\92\41\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\43\41\40\123\41" (ByGroups [(Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Using lexer), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")]) (GoTo function')-    , tok "\40\40\63\58\91\97\45\122\65\45\90\48\45\57\95\42\92\115\93\41\43\63\40\63\58\92\115\124\91\42\93\41\41\40\91\97\45\122\65\45\90\36\95\93\91\97\45\122\65\45\90\48\45\57\36\95\93\42\41\40\92\115\42\92\40\91\94\59\93\42\63\92\41\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\43\41\40\59\41" (ByGroups [(Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Using lexer), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "\40\64\105\110\116\101\114\102\97\99\101\124\64\105\109\112\108\101\109\101\110\116\97\116\105\111\110\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tokNext "\40\64\99\108\97\115\115\124\64\112\114\111\116\111\99\111\108\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo forward_classname')-    , tok "\40\92\115\42\41\40\64\101\110\100\41\40\92\115\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")])-    , tokNext "" (Arbitrary "\84\101\120\116") (GoTo statement')+    , tokNext "((?:[a-zA-Z0-9_*\\s])+?(?:\\s|[*]))([a-zA-Z$_][a-zA-Z0-9$_]*)(\\s*\\([^;]*?\\))((?:\\s|//.*?\\n|/[*].*?[*]/)+)({)" (ByGroups [(Using lexer), (Arbitrary "Name" :. Arbitrary "Function"), (Using lexer), (Arbitrary "Text"), (Arbitrary "Punctuation")]) (GoTo function')+    , tok "((?:[a-zA-Z0-9_*\\s])+?(?:\\s|[*]))([a-zA-Z$_][a-zA-Z0-9$_]*)(\\s*\\([^;]*?\\))((?:\\s|//.*?\\n|/[*].*?[*]/)+)(;)" (ByGroups [(Using lexer), (Arbitrary "Name" :. Arbitrary "Function"), (Using lexer), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tokNext "(@interface|@implementation)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tokNext "(@class|@protocol)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo forward_classname')+    , tok "(\\s*)(@end)(\\s*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text")])+    , tokNext "" (Arbitrary "Text") (GoTo statement')     ]  string' :: TokenMatcher string' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\44\52\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\91\94\92\92\34\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ] 
src/Text/Highlighter/Lexers/ObjectiveJ.hs view
@@ -5,145 +5,145 @@  lexer :: Lexer lexer = Lexer-    { lName = "\79\98\106\101\99\116\105\118\101\45\74"-    , lAliases = ["\111\98\106\101\99\116\105\118\101\45\106", "\111\98\106\101\99\116\105\118\101\106", "\111\98\106\45\106", "\111\98\106\106"]-    , lExtensions = ["\46\106"]-    , lMimetypes = ["\116\101\120\116\47\120\45\111\98\106\101\99\116\105\118\101\45\106"]+    { lName = "Objective-J"+    , lAliases = ["objective-j", "objectivej", "obj-j", "objj"]+    , lExtensions = [".j"]+    , lMimetypes = ["text/x-objective-j"]     , lStart = root'     , lFlags = [multiline, dotall]     }  statements' :: TokenMatcher statements' =-    [ tokNext "\40\76\124\64\41\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\40\76\124\64\41\63\39\40\92\92\46\124\92\92\91\48\45\55\93\123\49\44\51\125\124\92\92\120\91\97\45\102\65\45\70\48\45\57\93\123\49\44\50\125\124\91\94\92\92\92\39\92\110\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\41\91\101\69\93\91\43\45\93\63\92\100\43\91\108\76\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\91\102\70\93\41\91\102\70\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\48\45\55\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\92\100\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tokNext "\94\40\63\61\92\115\124\47\124\60\33\45\45\41" (Arbitrary "\84\101\120\116") (GoTo slashstartsregex')-    , tokNext "\92\43\92\43\124\45\45\124\126\124\38\38\124\92\63\124\58\124\92\124\92\124\124\92\92\40\63\61\92\110\41\124\40\60\60\124\62\62\62\63\124\61\61\63\124\33\61\63\124\91\45\60\62\43\42\37\38\92\124\92\94\47\93\41\61\63" (Arbitrary "\79\112\101\114\97\116\111\114") (GoTo slashstartsregex')-    , tokNext "\91\123\40\92\91\59\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo slashstartsregex')-    , tok "\91\125\41\92\93\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\40\102\111\114\124\105\110\124\119\104\105\108\101\124\100\111\124\98\114\101\97\107\124\114\101\116\117\114\110\124\99\111\110\116\105\110\117\101\124\115\119\105\116\99\104\124\99\97\115\101\124\100\101\102\97\117\108\116\124\105\102\124\101\108\115\101\124\116\104\114\111\119\124\116\114\121\124\99\97\116\99\104\124\102\105\110\97\108\108\121\124\110\101\119\124\100\101\108\101\116\101\124\116\121\112\101\111\102\124\105\110\115\116\97\110\99\101\111\102\124\118\111\105\100\124\112\114\111\116\111\116\121\112\101\124\95\95\112\114\111\116\111\95\95\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo slashstartsregex')-    , tokNext "\40\118\97\114\124\119\105\116\104\124\102\117\110\99\116\105\111\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110") (GoTo slashstartsregex')-    , tok "\40\64\115\101\108\101\99\116\111\114\124\64\112\114\105\118\97\116\101\124\64\112\114\111\116\101\99\116\101\100\124\64\112\117\98\108\105\99\124\64\101\110\99\111\100\101\124\64\115\121\110\99\104\114\111\110\105\122\101\100\124\64\116\114\121\124\64\116\104\114\111\119\124\64\99\97\116\99\104\124\64\102\105\110\97\108\108\121\124\64\101\110\100\124\64\112\114\111\112\101\114\116\121\124\64\115\121\110\116\104\101\115\105\122\101\124\64\100\121\110\97\109\105\99\124\64\102\111\114\124\64\97\99\99\101\115\115\111\114\115\124\110\101\119\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\105\110\116\124\108\111\110\103\124\102\108\111\97\116\124\115\104\111\114\116\124\100\111\117\98\108\101\124\99\104\97\114\124\117\110\115\105\103\110\101\100\124\115\105\103\110\101\100\124\118\111\105\100\124\105\100\124\66\79\79\76\124\98\111\111\108\124\98\111\111\108\101\97\110\124\73\66\79\117\116\108\101\116\124\73\66\65\99\116\105\111\110\124\83\69\76\124\64\111\117\116\108\101\116\124\64\97\99\116\105\111\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\115\101\108\102\124\115\117\112\101\114\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\84\82\85\69\124\89\69\83\124\70\65\76\83\69\124\78\79\124\78\105\108\124\110\105\108\124\78\85\76\76\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\124\78\97\78\124\73\110\102\105\110\105\116\121\124\117\110\100\101\102\105\110\101\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\65\66\83\124\65\83\73\78\124\65\67\79\83\124\65\84\65\78\124\65\84\65\78\50\124\83\73\78\124\67\79\83\124\84\65\78\124\69\88\80\124\80\79\87\124\67\69\73\76\124\70\76\79\79\82\124\82\79\85\78\68\124\77\73\78\124\77\65\88\124\82\65\78\68\124\83\81\82\84\124\69\124\76\78\50\124\76\78\49\48\124\76\79\71\50\69\124\76\79\71\49\48\69\124\80\73\124\80\73\50\124\80\73\95\50\124\83\81\82\84\49\95\50\124\83\81\82\84\50\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\65\114\114\97\121\124\66\111\111\108\101\97\110\124\68\97\116\101\124\69\114\114\111\114\124\70\117\110\99\116\105\111\110\124\77\97\116\104\124\110\101\116\115\99\97\112\101\124\78\117\109\98\101\114\124\79\98\106\101\99\116\124\80\97\99\107\97\103\101\115\124\82\101\103\69\120\112\124\83\116\114\105\110\103\124\115\117\110\124\100\101\99\111\100\101\85\82\73\124\100\101\99\111\100\101\85\82\73\67\111\109\112\111\110\101\110\116\124\101\110\99\111\100\101\85\82\73\124\101\110\99\111\100\101\85\82\73\67\111\109\112\111\110\101\110\116\124\69\114\114\111\114\124\101\118\97\108\124\105\115\70\105\110\105\116\101\124\105\115\78\97\78\124\112\97\114\115\101\70\108\111\97\116\124\112\97\114\115\101\73\110\116\124\100\111\99\117\109\101\110\116\124\116\104\105\115\124\119\105\110\100\111\119\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\40\63\61\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Using lexer)])-    , tok "\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")+    [ tokNext "(L|@)?\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "(L|@)?'(\\\\.|\\\\[0-7]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\'\\n])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+[lL]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\d+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tokNext "^(?=\\s|/|<!--)" (Arbitrary "Text") (GoTo slashstartsregex')+    , tokNext "\\+\\+|--|\126|&&|\\?|:|\\|\\||\\\\(?=\\n)|(<<|>>>?|==?|!=?|[-<>+*%&\\|\\^/])=?" (Arbitrary "Operator") (GoTo slashstartsregex')+    , tokNext "[{(\\[;,]" (Arbitrary "Punctuation") (GoTo slashstartsregex')+    , tok "[})\\].]" (Arbitrary "Punctuation")+    , tokNext "(for|in|while|do|break|return|continue|switch|case|default|if|else|throw|try|catch|finally|new|delete|typeof|instanceof|void|prototype|__proto__)\\b" (Arbitrary "Keyword") (GoTo slashstartsregex')+    , tokNext "(var|with|function)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration") (GoTo slashstartsregex')+    , tok "(@selector|@private|@protected|@public|@encode|@synchronized|@try|@throw|@catch|@finally|@end|@property|@synthesize|@dynamic|@for|@accessors|new)\\b" (Arbitrary "Keyword")+    , tok "(int|long|float|short|double|char|unsigned|signed|void|id|BOOL|bool|boolean|IBOutlet|IBAction|SEL|@outlet|@action)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(self|super)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(TRUE|YES|FALSE|NO|Nil|nil|NULL)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(true|false|null|NaN|Infinity|undefined)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(ABS|ASIN|ACOS|ATAN|ATAN2|SIN|COS|TAN|EXP|POW|CEIL|FLOOR|ROUND|MIN|MAX|RAND|SQRT|E|LN2|LN10|LOG2E|LOG10E|PI|PI2|PI_2|SQRT1_2|SQRT2)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(Array|Boolean|Date|Error|Function|Math|netscape|Number|Object|Packages|RegExp|String|sun|decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|Error|eval|isFinite|isNaN|parseFloat|parseInt|document|this|window)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "([$a-zA-Z_][a-zA-Z0-9_]*)((?:\\s|//.*?\\n|/[*].*?[*]/)*)(?=\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Using lexer)])+    , tok "[$a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")     ]  string' :: TokenMatcher string' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\44\52\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\91\94\92\92\34\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ]  function_signature' :: TokenMatcher function_signature' =     [ anyOf whitespace'-    , tokNext "\40\92\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\92\41\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\58\41" (ByGroups [(Using lexer), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")]) (GoTo function_parameters')-    , tokNext "\40\92\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\92\41\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\41" (ByGroups [(Using lexer), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")]) Pop-    , tokNext "\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\58\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")]) (GoTo function_parameters')-    , tokNext "\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")]) Pop-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    , tokNext "(\\((?:\\s|//.*?\\n|/[*].*?[*]/)*)([a-zA-Z_][a-zA-Z0-9_]+)((?:\\s|//.*?\\n|/[*].*?[*]/)*\\)(?:\\s|//.*?\\n|/[*].*?[*]/)*)([$a-zA-Z_][a-zA-Z0-9_]+(?:\\s|//.*?\\n|/[*].*?[*]/)*:)" (ByGroups [(Using lexer), (Arbitrary "Keyword" :. Arbitrary "Type"), (Using lexer), (Arbitrary "Name" :. Arbitrary "Function")]) (GoTo function_parameters')+    , tokNext "(\\((?:\\s|//.*?\\n|/[*].*?[*]/)*)([a-zA-Z_][a-zA-Z0-9_]+)((?:\\s|//.*?\\n|/[*].*?[*]/)*\\)(?:\\s|//.*?\\n|/[*].*?[*]/)*)([$a-zA-Z_][a-zA-Z0-9_]+)" (ByGroups [(Using lexer), (Arbitrary "Keyword" :. Arbitrary "Type"), (Using lexer), (Arbitrary "Name" :. Arbitrary "Function")]) Pop+    , tokNext "([$a-zA-Z_][a-zA-Z0-9_]+(?:\\s|//.*?\\n|/[*].*?[*]/)*:)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function")]) (GoTo function_parameters')+    , tokNext "([$a-zA-Z_][a-zA-Z0-9_]+)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function")]) Pop+    , tokNext "" (Arbitrary "Text") Pop     ]  classname' :: TokenMatcher classname' =-    [ tokNext "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\58\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\63" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")]) Pop-    , tokNext "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\92\40\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\41\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Using lexer), (Arbitrary "\78\97\109\101" :. Arbitrary "\76\97\98\101\108"), (Arbitrary "\84\101\120\116")]) Pop-    , tokNext "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "([a-zA-Z_][a-zA-Z0-9_]*)((?:\\s|//.*?\\n|/[*].*?[*]/)*:(?:\\s|//.*?\\n|/[*].*?[*]/)*)([a-zA-Z_][a-zA-Z0-9_]*)?" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Using lexer), (Arbitrary "Name" :. Arbitrary "Class")]) Pop+    , tokNext "([a-zA-Z_][a-zA-Z0-9_]*)((?:\\s|//.*?\\n|/[*].*?[*]/)*\\()([a-zA-Z_][a-zA-Z0-9_]*)(\\))" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Using lexer), (Arbitrary "Name" :. Arbitrary "Label"), (Arbitrary "Text")]) Pop+    , tokNext "([a-zA-Z_][a-zA-Z0-9_]*)" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  forward_classname' :: TokenMatcher forward_classname' =-    [ tokNext "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\44\92\115\42\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116")]) Push-    , tokNext "\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\59\63\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116")]) Pop+    [ tokNext "([a-zA-Z_][a-zA-Z0-9_]*)(\\s*,\\s*)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text")]) Push+    , tokNext "([a-zA-Z_][a-zA-Z0-9_]*)(\\s*;?)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text")]) Pop     ]  badregex' :: TokenMatcher badregex' =-    [ tokNext "\10" (Arbitrary "\84\101\120\116") Pop+    [ tokNext "\10" (Arbitrary "Text") Pop     ]  function_parameters' :: TokenMatcher function_parameters' =     [ anyOf whitespace'-    , tok "\40\92\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\40\91\94\92\41\93\43\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\92\41\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\43\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\41" (ByGroups [(Using lexer), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Using lexer), (Arbitrary "\84\101\120\116")])-    , tok "\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\58\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\40\58\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\40\44\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\46\46\46\41" (Using lexer)-    , tok "\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\43\41" (Arbitrary "\84\101\120\116")+    , tok "(\\((?:\\s|//.*?\\n|/[*].*?[*]/)*)([^\\)]+)((?:\\s|//.*?\\n|/[*].*?[*]/)*\\)(?:\\s|//.*?\\n|/[*].*?[*]/)*)+([$a-zA-Z_][a-zA-Z0-9_]+)" (ByGroups [(Using lexer), (Arbitrary "Keyword" :. Arbitrary "Type"), (Using lexer), (Arbitrary "Text")])+    , tok "([$a-zA-Z_][a-zA-Z0-9_]+(?:\\s|//.*?\\n|/[*].*?[*]/)*:)" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "(:)" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "(,(?:\\s|//.*?\\n|/[*].*?[*]/)*...)" (Using lexer)+    , tok "([$a-zA-Z_][a-zA-Z0-9_]+)" (Arbitrary "Text")     ]  if0' :: TokenMatcher if0' =-    [ tokNext "\94\92\115\42\35\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Push-    , tokNext "\94\92\115\42\35\101\110\100\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tokNext "^\\s*#if.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Push+    , tokNext "^\\s*#endif.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok ".*?\\n" (Arbitrary "Comment")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\40\64\105\109\112\111\114\116\41\40\92\115\43\41\40\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")])-    , tok "\40\64\105\109\112\111\114\116\41\40\92\115\43\41\40\60\40\92\92\92\92\124\92\92\62\124\91\94\62\93\41\42\62\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")])-    , tok "\40\35\40\63\58\105\110\99\108\117\100\101\124\105\109\112\111\114\116\41\41\40\92\115\43\41\40\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")])-    , tok "\40\35\40\63\58\105\110\99\108\117\100\101\124\105\109\112\111\114\116\41\41\40\92\115\43\41\40\60\40\92\92\92\92\124\92\92\62\124\91\94\62\93\41\42\62\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")])-    , tokNext "\35\105\102\92\115\43\48" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo if0')-    , tokNext "\35" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo macro')-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\92\110\124\40\46\124\92\110\41\42\63\91\94\92\92\93\92\110\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\60\33\45\45" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "(@import)(\\s+)(\"(\\\\\\\\|\\\\\"|[^\"])*\")" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")])+    , tok "(@import)(\\s+)(<(\\\\\\\\|\\\\>|[^>])*>)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")])+    , tok "(#(?:include|import))(\\s+)(\"(\\\\\\\\|\\\\\"|[^\"])*\")" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")])+    , tok "(#(?:include|import))(\\s+)(<(\\\\\\\\|\\\\>|[^>])*>)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")])+    , tokNext "#if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tokNext "#" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')+    , tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "//(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "<!--" (Arbitrary "Comment")     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tok "\94\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\91\92\43\45\93\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\41\40\91\92\40\97\45\122\65\45\90\95\93\46\42\63\91\94\92\40\93\41\40\40\63\58\92\115\124\47\47\46\42\63\92\110\124\47\91\42\93\46\42\63\91\42\93\47\41\42\123\41" (ByGroups [(Using lexer), (Using lexer), (Using lexer)])-    , tokNext "\40\64\105\110\116\101\114\102\97\99\101\124\64\105\109\112\108\101\109\101\110\116\97\116\105\111\110\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tokNext "\40\64\99\108\97\115\115\124\64\112\114\111\116\111\99\111\108\41\40\92\115\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo forward_classname')-    , tok "\40\92\115\42\41\40\64\101\110\100\41\40\92\115\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")])+    , tok "^((?:\\s|//.*?\\n|/[*].*?[*]/)*[\\+-](?:\\s|//.*?\\n|/[*].*?[*]/)*)([\\(a-zA-Z_].*?[^\\(])((?:\\s|//.*?\\n|/[*].*?[*]/)*{)" (ByGroups [(Using lexer), (Using lexer), (Using lexer)])+    , tokNext "(@interface|@implementation)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tokNext "(@class|@protocol)(\\s*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo forward_classname')+    , tok "(\\s*)(@end)(\\s*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text")])     , anyOf statements'-    , tok "\91\123\92\40\92\41\125\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    , tok "[{\\(\\)}]" (Arbitrary "Punctuation")+    , tok ";" (Arbitrary "Punctuation")     ]  slashstartsregex' :: TokenMatcher slashstartsregex' =     [ anyOf whitespace'-    , tokNext "\47\40\92\92\46\124\91\94\91\47\92\92\92\110\93\124\92\91\40\92\92\46\124\91\94\92\93\92\92\92\110\93\41\42\93\41\43\47\40\91\103\105\109\93\43\92\98\124\92\66\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\40\63\61\47\41" (Arbitrary "\84\101\120\116") (DoAll [Pop, (GoTo badregex')])-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    , tokNext "/(\\\\.|[^[/\\\\\\n]|\\[(\\\\.|[^\\]\\\\\\n])*])+/([gim]+\\b|\\B)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "(?=/)" (Arbitrary "Text") (DoAll [Pop, (GoTo badregex')])+    , tokNext "" (Arbitrary "Text") Pop     ]  macro' :: TokenMatcher macro' =-    [ tok "\91\94\47\92\110\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\47\91\42\93\40\46\124\92\110\41\42\63\91\42\93\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101") Pop-    , tok "\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\40\63\60\61\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop+    [ tok "[^/\\n]+" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "/[*](.|\\n)*?[*]/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single") Pop+    , tok "/" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(?<=\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop     ]  expression' :: TokenMatcher expression' =-    [ tok "\40\91\36\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tokNext "\40\92\41\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tok "([$a-zA-Z_][a-zA-Z0-9_]*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Punctuation")])+    , tokNext "(\\))" (Arbitrary "Punctuation") Pop     ] 
src/Text/Highlighter/Lexers/Ocaml.hs view
@@ -5,68 +5,68 @@  lexer :: Lexer lexer = Lexer-    { lName = "\79\67\97\109\108"-    , lAliases = ["\111\99\97\109\108"]-    , lExtensions = ["\46\109\108", "\46\109\108\105", "\46\109\108\108", "\46\109\108\121"]-    , lMimetypes = ["\116\101\120\116\47\120\45\111\99\97\109\108"]+    { lName = "OCaml"+    , lAliases = ["ocaml"]+    , lExtensions = [".ml", ".mli", ".mll", ".mly"]+    , lMimetypes = ["text/x-ocaml"]     , lStart = root'     , lFlags = [multiline]     }  comment' :: TokenMatcher comment' =-    [ tok "\91\94\40\42\41\93\43" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\92\40\92\42" (Arbitrary "\67\111\109\109\101\110\116") Push-    , tokNext "\92\42\92\41" (Arbitrary "\67\111\109\109\101\110\116") Pop-    , tok "\91\40\42\41\93" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "[^(*)]+" (Arbitrary "Comment")+    , tokNext "\\(\\*" (Arbitrary "Comment") Push+    , tokNext "\\*\\)" (Arbitrary "Comment") Pop+    , tok "[(*)]" (Arbitrary "Comment")     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\102\97\108\115\101\124\116\114\117\101\124\92\40\92\41\124\92\91\92\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tokNext "\92\98\40\91\65\45\90\93\91\65\45\90\97\45\122\48\45\57\95\92\39\93\42\41\40\63\61\92\115\42\92\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") (GoTo dotted')-    , tok "\92\98\40\91\65\45\90\93\91\65\45\90\97\45\122\48\45\57\95\92\39\93\42\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tokNext "\92\40\92\42" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')-    , tok "\92\98\40\97\115\124\97\115\115\101\114\116\124\98\101\103\105\110\124\99\108\97\115\115\124\99\111\110\115\116\114\97\105\110\116\124\100\111\124\100\111\110\101\124\100\111\119\110\116\111\124\101\108\115\101\124\101\110\100\124\101\120\99\101\112\116\105\111\110\124\101\120\116\101\114\110\97\108\124\102\97\108\115\101\124\102\111\114\124\102\117\110\124\102\117\110\99\116\105\111\110\124\102\117\110\99\116\111\114\124\105\102\124\105\110\124\105\110\99\108\117\100\101\124\105\110\104\101\114\105\116\124\105\110\105\116\105\97\108\105\122\101\114\124\108\97\122\121\124\108\101\116\124\109\97\116\99\104\124\109\101\116\104\111\100\124\109\111\100\117\108\101\124\109\117\116\97\98\108\101\124\110\101\119\124\111\98\106\101\99\116\124\111\102\124\111\112\101\110\124\112\114\105\118\97\116\101\124\114\97\105\115\101\124\114\101\99\124\115\105\103\124\115\116\114\117\99\116\124\116\104\101\110\124\116\111\124\116\114\117\101\124\116\114\121\124\116\121\112\101\124\118\97\108\124\118\105\114\116\117\97\108\124\119\104\101\110\124\119\104\105\108\101\124\119\105\116\104\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\33\61\124\35\124\38\124\38\38\124\92\40\124\92\41\124\92\42\124\92\43\124\44\124\45\124\45\92\46\124\45\62\124\92\46\124\92\46\92\46\124\58\124\58\58\124\58\61\124\58\62\124\59\124\59\59\124\60\124\60\45\124\61\124\62\124\62\93\124\62\125\124\92\63\124\92\63\92\63\124\92\91\124\92\91\60\124\92\91\62\124\92\91\92\124\124\93\124\95\124\96\124\123\124\123\60\124\92\124\124\92\124\93\124\125\124\126\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\91\61\60\62\64\94\124\38\43\92\42\47\36\37\45\93\124\91\33\63\126\93\41\63\91\33\36\37\38\42\43\92\46\47\58\60\61\62\63\64\94\124\126\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\98\40\97\110\100\124\97\115\114\124\108\97\110\100\124\108\111\114\124\108\115\108\124\108\120\111\114\124\109\111\100\124\111\114\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\92\98\40\117\110\105\116\124\105\110\116\124\102\108\111\97\116\124\98\111\111\108\124\115\116\114\105\110\103\124\99\104\97\114\124\108\105\115\116\124\97\114\114\97\121\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\91\94\92\87\92\100\93\91\92\119\39\93\42" (Arbitrary "\78\97\109\101")-    , tok "\92\100\91\92\100\95\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\48\91\120\88\93\91\92\100\97\45\102\65\45\70\93\91\92\100\97\45\102\65\45\70\95\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\111\79\93\91\48\45\55\93\91\48\45\55\95\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\98\66\93\91\48\49\93\91\48\49\95\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\66\105\110\97\114\121")-    , tok "\45\63\92\100\91\92\100\95\93\42\40\46\91\92\100\95\93\42\41\63\40\91\101\69\93\91\43\92\45\93\63\92\100\91\92\100\95\93\42\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\39\40\63\58\40\92\92\91\92\92\92\34\39\110\116\98\114\32\93\41\124\40\92\92\91\48\45\57\93\123\51\125\41\124\40\92\92\120\91\48\45\57\97\45\102\65\45\70\93\123\50\125\41\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\39\46\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\39" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") (GoTo string')-    , tok "\91\126\63\93\91\97\45\122\93\91\92\119\92\39\93\42\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "false|true|\\(\\)|\\[\\]" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tokNext "\\b([A-Z][A-Za-z0-9_\\']*)(?=\\s*\\.)" (Arbitrary "Name" :. Arbitrary "Namespace") (GoTo dotted')+    , tok "\\b([A-Z][A-Za-z0-9_\\']*)" (Arbitrary "Name" :. Arbitrary "Class")+    , tokNext "\\(\\*" (Arbitrary "Comment") (GoTo comment')+    , tok "\\b(as|assert|begin|class|constraint|do|done|downto|else|end|exception|external|false|for|fun|function|functor|if|in|include|inherit|initializer|lazy|let|match|method|module|mutable|new|object|of|open|private|raise|rec|sig|struct|then|to|true|try|type|val|virtual|when|while|with)\\b" (Arbitrary "Keyword")+    , tok "(!=|#|&|&&|\\(|\\)|\\*|\\+|,|-|-\\.|->|\\.|\\.\\.|:|::|:=|:>|;|;;|<|<-|=|>|>]|>}|\\?|\\?\\?|\\[|\\[<|\\[>|\\[\\||]|_|`|{|{<|\\||\\|]|}|\126)" (Arbitrary "Operator")+    , tok "([=<>@^|&+\\*/$%-]|[!?\126])?[!$%&*+\\./:<=>?@^|\126-]" (Arbitrary "Operator")+    , tok "\\b(and|asr|land|lor|lsl|lxor|mod|or)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "\\b(unit|int|float|bool|string|char|list|array)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "[^\\W\\d][\\w']*" (Arbitrary "Name")+    , tok "\\d[\\d_]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "0[xX][\\da-fA-F][\\da-fA-F_]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[oO][0-7][0-7_]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[bB][01][01_]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Binary")+    , tok "-?\\d[\\d_]*(.[\\d_]*)?([eE][+\\-]?\\d[\\d_]*)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "'(?:(\\\\[\\\\\\\"'ntbr ])|(\\\\[0-9]{3})|(\\\\x[0-9a-fA-F]{2}))'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "'.'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "'" (Arbitrary "Keyword")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo string')+    , tok "[\126?][a-z][\\w\\']*:" (Arbitrary "Name" :. Arbitrary "Variable")     ]  string' :: TokenMatcher string' =-    [ tok "\91\94\92\92\34\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")+    [ tok "[^\\\\\"]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")     , anyOf escapeSequence'-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") Pop+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") Pop     ]  escapeSequence' :: TokenMatcher escapeSequence' =-    [ tok "\92\92\91\92\34\92\39\110\116\98\114\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\92\92\91\48\45\57\93\123\51\125" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\92\92\120\91\48\45\57\97\45\102\65\45\70\93\123\50\125" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tok "\\\\[\\\\\\\"\\'ntbr]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "\\\\[0-9]{3}" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "\\\\x[0-9a-fA-F]{2}" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     ]  dotted' :: TokenMatcher dotted' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\46" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\65\45\90\93\91\65\45\90\97\45\122\48\45\57\95\92\39\93\42\40\63\61\92\115\42\92\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tokNext "\91\65\45\90\93\91\65\45\90\97\45\122\48\45\57\95\92\39\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop-    , tokNext "\91\97\45\122\93\91\97\45\122\48\45\57\95\92\39\93\42" (Arbitrary "\78\97\109\101") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tok "\\." (Arbitrary "Punctuation")+    , tok "[A-Z][A-Za-z0-9_\\']*(?=\\s*\\.)" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tokNext "[A-Z][A-Za-z0-9_\\']*" (Arbitrary "Name" :. Arbitrary "Class") Pop+    , tokNext "[a-z_][A-Za-z0-9_\\']*" (Arbitrary "Name") Pop     ] 
src/Text/Highlighter/Lexers/Ooc.hs view
@@ -5,48 +5,48 @@  lexer :: Lexer lexer = Lexer-    { lName = "\79\111\99"-    , lAliases = ["\111\111\99"]-    , lExtensions = ["\46\111\111\99"]-    , lMimetypes = ["\116\101\120\116\47\120\45\111\111\99"]+    { lName = "Ooc"+    , lAliases = ["ooc"]+    , lExtensions = [".ooc"]+    , lMimetypes = ["text/x-ooc"]     , lStart = root'     , lFlags = [multiline]     }  include' :: TokenMatcher include' =-    [ tok "\91\92\119\47\93\43" (Arbitrary "\78\97\109\101")-    , tok "\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\32\92\116\93" (Arbitrary "\84\101\120\116")-    , tokNext "\91\59\92\110\93" (Arbitrary "\84\101\120\116") Pop+    [ tok "[\\w/]+" (Arbitrary "Name")+    , tok "," (Arbitrary "Punctuation")+    , tok "[ \\t]" (Arbitrary "Text")+    , tokNext "[;\\n]" (Arbitrary "Text") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\92\98\40\99\108\97\115\115\124\105\110\116\101\114\102\97\99\101\124\105\109\112\108\101\109\101\110\116\124\97\98\115\116\114\97\99\116\124\101\120\116\101\110\100\115\124\102\114\111\109\124\116\104\105\115\124\115\117\112\101\114\124\110\101\119\124\99\111\110\115\116\124\102\105\110\97\108\124\115\116\97\116\105\99\124\105\109\112\111\114\116\124\117\115\101\124\101\120\116\101\114\110\124\105\110\108\105\110\101\124\112\114\111\116\111\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\102\97\108\108\116\104\114\111\117\103\104\124\111\112\101\114\97\116\111\114\124\105\102\124\101\108\115\101\124\102\111\114\124\119\104\105\108\101\124\100\111\124\115\119\105\116\99\104\124\99\97\115\101\124\97\115\124\105\110\124\118\101\114\115\105\111\110\124\114\101\116\117\114\110\124\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\105\110\99\108\117\100\101\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo include')-    , tok "\40\99\111\118\101\114\41\40\91\32\92\116\93\43\41\40\102\114\111\109\41\40\91\32\92\116\93\43\41\40\91\97\45\122\65\45\90\48\45\57\95\93\43\91\42\64\93\63\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")])-    , tok "\40\102\117\110\99\41\40\40\63\58\91\32\92\116\93\124\92\92\92\110\41\43\41\40\126\91\97\45\122\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\92\98\102\117\110\99\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\47\47\46\42" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\40\63\115\41\47\92\42\46\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\40\61\61\63\124\92\43\61\63\124\45\91\61\62\93\63\124\92\42\61\63\124\47\61\63\124\58\61\124\33\61\63\124\37\61\63\124\92\63\124\62\123\49\44\51\125\61\63\124\60\123\49\44\51\125\61\63\124\92\46\92\46\124\38\38\63\124\92\124\92\124\63\124\92\94\61\63\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\92\46\41\40\91\32\92\116\93\42\41\40\91\97\45\122\93\92\119\42\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")])-    , tok "\91\65\45\90\93\91\65\45\90\48\45\57\95\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\91\65\45\90\93\91\97\45\122\65\45\90\48\45\57\95\93\42\40\91\64\42\93\124\92\91\91\32\92\116\93\42\92\93\41\63" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tok "\40\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\40\63\58\126\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\63\41\40\40\63\58\91\32\92\116\93\124\92\92\92\110\41\42\41\40\63\61\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116")])-    , tok "\91\97\45\122\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\58\40\41\123\125\92\91\92\93\59\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\99\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116\97\108")-    , tok "\48\98\91\48\49\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\66\105\110\97\114\121")-    , tok "\91\48\45\57\95\93\92\46\91\48\45\57\95\93\42\40\63\33\92\46\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\95\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\68\101\99\105\109\97\108")-    , tok "\34\40\63\58\92\92\46\124\92\92\91\48\45\55\93\123\49\44\51\125\124\92\92\120\91\97\45\102\65\45\70\48\45\57\93\123\49\44\50\125\124\91\94\92\92\92\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\63\58\92\92\46\124\92\92\91\48\45\57\93\123\49\44\51\125\124\92\92\120\91\97\45\102\65\45\70\48\45\57\93\123\49\44\50\125\124\91\94\92\92\92\39\92\110\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\64" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\46" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\92\91\32\92\116\92\110\93" (Arbitrary "\84\101\120\116")-    , tok "\91\32\92\116\93\43" (Arbitrary "\84\101\120\116")+    [ tok "\\b(class|interface|implement|abstract|extends|from|this|super|new|const|final|static|import|use|extern|inline|proto|break|continue|fallthrough|operator|if|else|for|while|do|switch|case|as|in|version|return|true|false|null)\\b" (Arbitrary "Keyword")+    , tokNext "include\\b" (Arbitrary "Keyword") (GoTo include')+    , tok "(cover)([ \\t]+)(from)([ \\t]+)([a-zA-Z0-9_]+[*@]?)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Class")])+    , tok "(func)((?:[ \\t]|\\\\\\n)+)(\126[a-z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "\\bfunc\\b" (Arbitrary "Keyword")+    , tok "//.*" (Arbitrary "Comment")+    , tok "(?s)/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "(==?|\\+=?|-[=>]?|\\*=?|/=?|:=|!=?|%=?|\\?|>{1,3}=?|<{1,3}=?|\\.\\.|&&?|\\|\\|?|\\^=?)" (Arbitrary "Operator")+    , tok "(\\.)([ \\t]*)([a-z]\\w*)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Function")])+    , tok "[A-Z][A-Z0-9_]+" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "[A-Z][a-zA-Z0-9_]*([@*]|\\[[ \\t]*\\])?" (Arbitrary "Name" :. Arbitrary "Class")+    , tok "([a-z][a-zA-Z0-9_]*(?:\126[a-z][a-zA-Z0-9_]*)?)((?:[ \\t]|\\\\\\n)*)(?=\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text")])+    , tok "[a-z][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[:(){}\\[\\];,]" (Arbitrary "Punctuation")+    , tok "0x[0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0c[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0b[01]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Binary")+    , tok "[0-9_]\\.[0-9_]*(?!\\.)" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9_]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Decimal")+    , tok "\"(?:\\\\.|\\\\[0-7]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(?:\\\\.|\\\\[0-9]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\'\\n])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "@" (Arbitrary "Punctuation")+    , tok "\\." (Arbitrary "Punctuation")+    , tok "\\\\[ \\t\\n]" (Arbitrary "Text")+    , tok "[ \\t]+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Perl.hs view
@@ -5,151 +5,153 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\101\114\108"-    , lAliases = ["\112\101\114\108", "\112\108"]-    , lExtensions = ["\46\112\108", "\46\112\109"]-    , lMimetypes = ["\116\101\120\116\47\120\45\112\101\114\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\112\101\114\108"]+    { lName = "Perl"+    , lAliases = ["perl", "pl"]+    , lExtensions = [".pl", ".pm"]+    , lMimetypes = ["text/x-perl", "application/x-perl"]     , lStart = root'     , lFlags = [multiline, dotall]     }  modulename' :: TokenMatcher modulename' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\92\119\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+    [ tokNext "[a-zA-Z_][\\w_]*" (Arbitrary "Name" :. Arbitrary "Namespace") Pop     ]  format' :: TokenMatcher format' =-    [ tokNext "\92\46\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108") Pop-    , tok "\91\94\92\110\93\42\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")+    [ tokNext "\\.\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") Pop+    , tok "[^\\n]*\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")     ]  rbString' :: TokenMatcher rbString' =-    [ tok "\92\92\91\92\40\92\41\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tokNext "\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo rbString')-    , tokNext "\92\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") Pop-    , tok "\91\94\92\40\92\41\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")+    [ tok "\\\\[\\(\\)\\\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tokNext "\\(" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo rbString')+    , tokNext "\\)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") Pop+    , tok "[^\\(\\)]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")     ]  balancedRegex' :: TokenMatcher balancedRegex' =-    [ tokNext "\47\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\33\40\92\92\92\92\124\92\92\33\124\91\94\33\93\41\42\33\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\92\92\40\92\92\92\92\124\91\94\92\92\93\41\42\92\92\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\123\40\92\92\92\92\124\92\92\125\124\91\94\125\93\41\42\125\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\60\40\92\92\92\92\124\92\92\62\124\91\94\62\93\41\42\62\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\92\91\40\92\92\92\92\124\92\92\92\93\124\91\94\92\93\93\41\42\92\93\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\92\40\40\92\92\92\92\124\92\92\92\41\124\91\94\92\41\93\41\42\92\41\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\64\40\92\92\92\92\124\92\92\92\64\124\91\94\92\64\93\41\42\64\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\37\40\92\92\92\92\124\92\92\92\37\124\91\94\92\37\93\41\42\37\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop-    , tokNext "\92\36\40\92\92\92\92\124\92\92\92\36\124\91\94\92\36\93\41\42\92\36\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") Pop+    [ tokNext "/(\\\\\\\\|\\\\/|[^/])*/[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "!(\\\\\\\\|\\\\!|[^!])*![egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "\\\\(\\\\\\\\|[^\\\\])*\\\\[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "{(\\\\\\\\|\\\\}|[^}])*}[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "<(\\\\\\\\|\\\\>|[^>])*>[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "\\[(\\\\\\\\|\\\\\\]|[^\\]])*\\][egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "\\((\\\\\\\\|\\\\\\)|[^\\)])*\\)[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "@(\\\\\\\\|\\\\\\@|[^\\@])*@[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "%(\\\\\\\\|\\\\\\%|[^\\%])*%[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop+    , tokNext "\\$(\\\\\\\\|\\\\\\$|[^\\$])*\\$[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") Pop     ]  name' :: TokenMatcher name' =-    [ tok "\91\97\45\122\65\45\90\48\45\57\95\93\43\58\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tokNext "\91\97\45\122\65\45\90\48\45\57\95\58\93\43" (Arbitrary "\78\97\109\101") Pop-    , tokNext "\91\65\45\90\95\93\43\40\63\61\91\94\97\45\122\65\45\90\48\45\57\95\93\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116") Pop-    , tokNext "\40\63\61\91\94\97\45\122\65\45\90\48\45\57\95\93\41" (Arbitrary "\84\101\120\116") Pop+    [ tok "[a-zA-Z0-9_]+::" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tokNext "[a-zA-Z0-9_:]+" (Arbitrary "Name") Pop+    , tokNext "[A-Z_]+(?=[^a-zA-Z0-9_])" (Arbitrary "Name" :. Arbitrary "Constant") Pop+    , tokNext "(?=[^a-zA-Z0-9_])" (Arbitrary "Text") Pop     ]  varname' :: TokenMatcher varname' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\92\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tokNext "\92\41\124\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\91\97\45\122\65\45\90\48\45\57\95\93\43\58\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tokNext "\91\97\45\122\65\45\90\48\45\57\95\58\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "\\{" (Arbitrary "Punctuation") Pop+    , tokNext "\\)|," (Arbitrary "Punctuation") Pop+    , tok "[a-zA-Z0-9_]+::" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tokNext "[a-zA-Z0-9_:]+" (Arbitrary "Name" :. Arbitrary "Variable") Pop     ]  endPart' :: TokenMatcher endPart' =-    [ tokNext "\46\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop+    [ tokNext ".+" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop     ]  sbString' :: TokenMatcher sbString' =-    [ tok "\92\92\91\92\91\92\93\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tokNext "\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo sbString')-    , tokNext "\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") Pop-    , tok "\91\94\92\91\92\93\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")+    [ tok "\\\\[\\[\\]\\\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tokNext "\\[" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo sbString')+    , tokNext "\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") Pop+    , tok "[^\\[\\]]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")     ]  funcname' :: TokenMatcher funcname' =-    [ tok "\91\97\45\122\65\45\90\95\93\91\92\119\95\93\42\91\92\33\92\63\93\63" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\40\92\40\91\36\64\37\93\42\92\41\41\40\92\115\42\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116")])-    , tokNext "\46\42\63\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tok "[a-zA-Z_][\\w_]*[\\!\\?]?" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "\\s+" (Arbitrary "Text")+    , tok "(\\([$@%]*\\))(\\s*)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Text")])+    , tokNext ".*?{" (Arbitrary "Punctuation") Pop+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\92\35\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\94\61\91\97\45\122\65\45\90\48\45\57\93\43\92\115\43\46\42\63\92\110\61\99\117\116" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\40\99\97\115\101\124\99\111\110\116\105\110\117\101\124\100\111\124\101\108\115\101\124\101\108\115\105\102\124\102\111\114\124\102\111\114\101\97\99\104\124\105\102\124\108\97\115\116\124\109\121\124\110\101\120\116\124\111\117\114\124\114\101\100\111\124\114\101\115\101\116\124\116\104\101\110\124\117\110\108\101\115\115\124\117\110\116\105\108\124\119\104\105\108\101\124\117\115\101\124\112\114\105\110\116\124\110\101\119\124\66\69\71\73\78\124\69\78\68\124\114\101\116\117\114\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\40\102\111\114\109\97\116\41\40\92\115\43\41\40\91\97\45\122\65\45\90\48\45\57\95\93\43\41\40\92\115\42\41\40\61\41\40\92\115\42\92\110\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116")]) (GoTo format')-    , tok "\40\101\113\124\108\116\124\103\116\124\108\101\124\103\101\124\110\101\124\110\111\116\124\97\110\100\124\111\114\124\99\109\112\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\115\47\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\115\33\40\92\92\92\92\124\92\92\33\124\91\94\33\93\41\42\33\40\92\92\92\92\124\92\92\33\124\91\94\33\93\41\42\33\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\115\92\92\40\92\92\92\92\124\91\94\92\92\93\41\42\92\92\40\92\92\92\92\124\91\94\92\92\93\41\42\92\92\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\115\64\40\92\92\92\92\124\92\92\64\124\91\94\64\93\41\42\64\40\92\92\92\92\124\92\92\64\124\91\94\64\93\41\42\64\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\115\37\40\92\92\92\92\124\92\92\37\124\91\94\37\93\41\42\37\40\92\92\92\92\124\92\92\37\124\91\94\37\93\41\42\37\91\101\103\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tokNext "\115\123\40\92\92\92\92\124\92\92\125\124\91\94\125\93\41\42\125\92\115\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") (GoTo balancedRegex')-    , tokNext "\115\60\40\92\92\92\92\124\92\92\62\124\91\94\62\93\41\42\62\92\115\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") (GoTo balancedRegex')-    , tokNext "\115\92\91\40\92\92\92\92\124\92\92\92\93\124\91\94\92\93\93\41\42\92\93\92\115\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") (GoTo balancedRegex')-    , tokNext "\115\92\40\40\92\92\92\92\124\92\92\92\41\124\91\94\92\41\93\41\42\92\41\92\115\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") (GoTo balancedRegex')-    , tok "\109\63\47\40\92\92\92\92\124\92\92\47\124\91\94\47\92\110\93\41\42\47\91\103\99\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tokNext "\109\40\63\61\91\47\33\92\92\123\60\92\91\92\40\64\37\92\36\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120") (GoTo balancedRegex')-    , tok "\40\40\63\60\61\61\126\41\124\40\63\60\61\92\40\41\41\92\115\42\47\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\91\103\99\105\109\111\115\120\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\40\97\98\115\124\97\99\99\101\112\116\124\97\108\97\114\109\124\97\116\97\110\50\124\98\105\110\100\124\98\105\110\109\111\100\101\124\98\108\101\115\115\124\99\97\108\108\101\114\124\99\104\100\105\114\124\99\104\109\111\100\124\99\104\111\109\112\124\99\104\111\112\124\99\104\111\119\110\124\99\104\114\124\99\104\114\111\111\116\124\99\108\111\115\101\124\99\108\111\115\101\100\105\114\124\99\111\110\110\101\99\116\124\99\111\110\116\105\110\117\101\124\99\111\115\124\99\114\121\112\116\124\100\98\109\99\108\111\115\101\124\100\98\109\111\112\101\110\124\100\101\102\105\110\101\100\124\100\101\108\101\116\101\124\100\105\101\124\100\117\109\112\124\101\97\99\104\124\101\110\100\103\114\101\110\116\124\101\110\100\104\111\115\116\101\110\116\124\101\110\100\110\101\116\101\110\116\124\101\110\100\112\114\111\116\111\101\110\116\124\101\110\100\112\119\101\110\116\124\101\110\100\115\101\114\118\101\110\116\124\101\111\102\124\101\118\97\108\124\101\120\101\99\124\101\120\105\115\116\115\124\101\120\105\116\124\101\120\112\124\102\99\110\116\108\124\102\105\108\101\110\111\124\102\108\111\99\107\124\102\111\114\107\124\102\111\114\109\97\116\124\102\111\114\109\108\105\110\101\124\103\101\116\99\124\103\101\116\103\114\101\110\116\124\103\101\116\103\114\103\105\100\124\103\101\116\103\114\110\97\109\124\103\101\116\104\111\115\116\98\121\97\100\100\114\124\103\101\116\104\111\115\116\98\121\110\97\109\101\124\103\101\116\104\111\115\116\101\110\116\124\103\101\116\108\111\103\105\110\124\103\101\116\110\101\116\98\121\97\100\100\114\124\103\101\116\110\101\116\98\121\110\97\109\101\124\103\101\116\110\101\116\101\110\116\124\103\101\116\112\101\101\114\110\97\109\101\124\103\101\116\112\103\114\112\124\103\101\116\112\112\105\100\124\103\101\116\112\114\105\111\114\105\116\121\124\103\101\116\112\114\111\116\111\98\121\110\97\109\101\124\103\101\116\112\114\111\116\111\98\121\110\117\109\98\101\114\124\103\101\116\112\114\111\116\111\101\110\116\124\103\101\116\112\119\101\110\116\124\103\101\116\112\119\110\97\109\124\103\101\116\112\119\117\105\100\124\103\101\116\115\101\114\118\98\121\110\97\109\101\124\103\101\116\115\101\114\118\98\121\112\111\114\116\124\103\101\116\115\101\114\118\101\110\116\124\103\101\116\115\111\99\107\110\97\109\101\124\103\101\116\115\111\99\107\111\112\116\124\103\108\111\98\124\103\109\116\105\109\101\124\103\111\116\111\124\103\114\101\112\124\104\101\120\124\105\109\112\111\114\116\124\105\110\100\101\120\124\105\110\116\124\105\111\99\116\108\124\106\111\105\110\124\107\101\121\115\124\107\105\108\108\124\108\97\115\116\124\108\99\124\108\99\102\105\114\115\116\124\108\101\110\103\116\104\124\108\105\110\107\124\108\105\115\116\101\110\124\108\111\99\97\108\124\108\111\99\97\108\116\105\109\101\124\108\111\103\124\108\115\116\97\116\124\109\97\112\124\109\107\100\105\114\124\109\115\103\99\116\108\124\109\115\103\103\101\116\124\109\115\103\114\99\118\124\109\115\103\115\110\100\124\109\121\124\110\101\120\116\124\110\111\124\111\99\116\124\111\112\101\110\124\111\112\101\110\100\105\114\124\111\114\100\124\111\117\114\124\112\97\99\107\124\112\97\99\107\97\103\101\124\112\105\112\101\124\112\111\112\124\112\111\115\124\112\114\105\110\116\102\124\112\114\111\116\111\116\121\112\101\124\112\117\115\104\124\113\117\111\116\101\109\101\116\97\124\114\97\110\100\124\114\101\97\100\124\114\101\97\100\100\105\114\124\114\101\97\100\108\105\110\101\124\114\101\97\100\108\105\110\107\124\114\101\97\100\112\105\112\101\124\114\101\99\118\124\114\101\100\111\124\114\101\102\124\114\101\110\97\109\101\124\114\101\113\117\105\114\101\124\114\101\118\101\114\115\101\124\114\101\119\105\110\100\100\105\114\124\114\105\110\100\101\120\124\114\109\100\105\114\124\115\99\97\108\97\114\124\115\101\101\107\124\115\101\101\107\100\105\114\124\115\101\108\101\99\116\124\115\101\109\99\116\108\124\115\101\109\103\101\116\124\115\101\109\111\112\124\115\101\110\100\124\115\101\116\103\114\101\110\116\124\115\101\116\104\111\115\116\101\110\116\124\115\101\116\110\101\116\101\110\116\124\115\101\116\112\103\114\112\124\115\101\116\112\114\105\111\114\105\116\121\124\115\101\116\112\114\111\116\111\101\110\116\124\115\101\116\112\119\101\110\116\124\115\101\116\115\101\114\118\101\110\116\124\115\101\116\115\111\99\107\111\112\116\124\115\104\105\102\116\124\115\104\109\99\116\108\124\115\104\109\103\101\116\124\115\104\109\114\101\97\100\124\115\104\109\119\114\105\116\101\124\115\104\117\116\100\111\119\110\124\115\105\110\124\115\108\101\101\112\124\115\111\99\107\101\116\124\115\111\99\107\101\116\112\97\105\114\124\115\111\114\116\124\115\112\108\105\99\101\124\115\112\108\105\116\124\115\112\114\105\110\116\102\124\115\113\114\116\124\115\114\97\110\100\124\115\116\97\116\124\115\116\117\100\121\124\115\117\98\115\116\114\124\115\121\109\108\105\110\107\124\115\121\115\99\97\108\108\124\115\121\115\111\112\101\110\124\115\121\115\114\101\97\100\124\115\121\115\115\101\101\107\124\115\121\115\116\101\109\124\115\121\115\119\114\105\116\101\124\116\101\108\108\124\116\101\108\108\100\105\114\124\116\105\101\124\116\105\101\100\124\116\105\109\101\124\116\105\109\101\115\124\116\114\124\116\114\117\110\99\97\116\101\124\117\99\124\117\99\102\105\114\115\116\124\117\109\97\115\107\124\117\110\100\101\102\124\117\110\108\105\110\107\124\117\110\112\97\99\107\124\117\110\115\104\105\102\116\124\117\110\116\105\101\124\117\116\105\109\101\124\118\97\108\117\101\115\124\118\101\99\124\119\97\105\116\124\119\97\105\116\112\105\100\124\119\97\110\116\97\114\114\97\121\124\119\97\114\110\124\119\114\105\116\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\40\95\95\40\68\65\84\65\124\68\73\69\124\87\65\82\78\41\95\95\41\124\40\83\84\68\40\73\78\124\79\85\84\124\69\82\82\41\41\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\60\60\40\91\92\39\34\93\63\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\92\49\59\63\92\110\46\42\63\92\110\92\50\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\95\95\69\78\68\95\95" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo endPart')-    , tok "\92\36\92\94\91\65\68\69\70\72\73\76\77\79\80\83\84\87\88\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\71\108\111\98\97\108")-    , tok "\92\36\91\92\92\92\34\92\91\92\93\39\38\96\43\42\46\44\59\61\37\126\63\64\36\33\60\62\40\94\124\47\45\93\40\63\33\92\119\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101" :. Arbitrary "\71\108\111\98\97\108")-    , tokNext "\91\36\64\37\35\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") (GoTo varname')-    , tok "\48\95\63\91\48\45\55\93\43\40\95\91\48\45\55\93\43\41\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\120\91\48\45\57\65\45\70\97\45\102\93\43\40\95\91\48\45\57\65\45\70\97\45\102\93\43\41\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\98\91\48\49\93\43\40\95\91\48\49\93\43\41\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\66\105\110")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\96\40\92\92\92\92\124\92\92\96\124\91\94\96\93\41\42\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107")-    , tok "\60\40\91\94\92\115\62\93\43\41\62" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120\112")-    , tokNext "\40\113\124\113\113\124\113\119\124\113\114\124\113\120\41\92\123" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo cbString')-    , tokNext "\40\113\124\113\113\124\113\119\124\113\114\124\113\120\41\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo rbString')-    , tokNext "\40\113\124\113\113\124\113\119\124\113\114\124\113\120\41\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo sbString')-    , tokNext "\40\113\124\113\113\124\113\119\124\113\114\124\113\120\41\92\60" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo ltString')-    , tok "\40\113\124\113\113\124\113\119\124\113\114\124\113\120\41\40\91\94\97\45\122\65\45\90\48\45\57\93\41\40\46\124\92\110\41\42\63\92\50" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tokNext "\112\97\99\107\97\103\101\92\115\43" (Arbitrary "\75\101\121\119\111\114\100") (GoTo modulename')-    , tokNext "\115\117\98\92\115\43" (Arbitrary "\75\101\121\119\111\114\100") (GoTo funcname')-    , tok "\40\92\91\92\93\124\92\42\92\42\124\58\58\124\60\60\124\62\62\124\62\61\124\60\61\124\60\61\62\124\61\123\51\125\124\33\61\124\61\126\124\33\126\124\38\38\63\124\92\124\92\124\124\92\46\123\49\44\51\125\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\45\43\47\42\37\61\60\62\38\94\124\33\92\92\126\93\61\63" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\92\40\92\41\92\91\92\93\58\59\44\60\62\47\92\63\92\123\92\125\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\40\63\61\92\119\41" (Arbitrary "\78\97\109\101") (GoTo name')+    [ tok "\\#.*?$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "^=[a-zA-Z0-9]+\\s+.*?\\n=cut" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "(case|continue|do|else|elsif|for|foreach|if|last|my|next|our|redo|reset|then|unless|until|while|use|print|new|BEGIN|CHECK|INIT|END|return)\\b" (Arbitrary "Keyword")+    , tokNext "(format)(\\s+)([a-zA-Z0-9_]+)(\\s*)(=)(\\s*\\n)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Text"), (Arbitrary "Punctuation"), (Arbitrary "Text")]) (GoTo format')+    , tok "(eq|lt|gt|le|ge|ne|not|and|or|cmp)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "s/(\\\\\\\\|\\\\/|[^/])*/(\\\\\\\\|\\\\/|[^/])*/[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "s!(\\\\\\\\|\\\\!|[^!])*!(\\\\\\\\|\\\\!|[^!])*![egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "s\\\\(\\\\\\\\|[^\\\\])*\\\\(\\\\\\\\|[^\\\\])*\\\\[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "s@(\\\\\\\\|\\\\@|[^@])*@(\\\\\\\\|\\\\@|[^@])*@[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "s%(\\\\\\\\|\\\\%|[^%])*%(\\\\\\\\|\\\\%|[^%])*%[egimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tokNext "s{(\\\\\\\\|\\\\}|[^}])*}\\s*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") (GoTo balancedRegex')+    , tokNext "s<(\\\\\\\\|\\\\>|[^>])*>\\s*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") (GoTo balancedRegex')+    , tokNext "s\\[(\\\\\\\\|\\\\\\]|[^\\]])*\\]\\s*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") (GoTo balancedRegex')+    , tokNext "s\\((\\\\\\\\|\\\\\\)|[^\\)])*\\)\\s*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") (GoTo balancedRegex')+    , tok "m?/(\\\\\\\\|\\\\/|[^/\\n])*/[gcimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tokNext "m(?=[/!\\\\{<\\[\\(@%\\$])" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex") (GoTo balancedRegex')+    , tok "((?<==\126)|(?<=\\())\\s*/(\\\\\\\\|\\\\/|[^/])*/[gcimosx]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "\\s+" (Arbitrary "Text")+    , tok "(abs|accept|alarm|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|connect|continue|cos|crypt|dbmclose|dbmopen|defined|delete|die|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eval|exec|exists|exit|exp|fcntl|fileno|flock|fork|format|formline|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|goto|grep|hex|import|index|int|ioctl|join|keys|kill|last|lc|lcfirst|length|link|listen|local|localtime|log|lstat|map|mkdir|msgctl|msgget|msgrcv|msgsnd|my|next|no|oct|open|opendir|ord|our|pack|package|pipe|pop|pos|printf|prototype|push|quotemeta|rand|read|readdir|readline|readlink|readpipe|recv|redo|ref|rename|require|reverse|rewinddir|rindex|rmdir|scalar|seek|seekdir|select|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|sysseek|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|wait|waitpid|wantarray|warn|write)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "((__(DATA|DIE|WARN)__)|(STD(IN|OUT|ERR)))\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tok "<<([\\'\"]?)([a-zA-Z_][a-zA-Z0-9_]*)\\1;?\\n.*?\\n\\2\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "__END__" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo endPart')+    , tok "\\$\\^[ADEFHILMOPSTWX]" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Global")+    , tok "\\$[\\\\\\\"\\[\\]'&`+*.,;=%\126?@$!<>(^|/-](?!\\w)" (Arbitrary "Name" :. Arbitrary "Variable" :. Arbitrary "Global")+    , tokNext "[$@%#]+" (Arbitrary "Name" :. Arbitrary "Variable") (GoTo varname')+    , tok "0_?[0-7]+(_[0-7]+)*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0x[0-9A-Fa-f]+(_[0-9A-Fa-f]+)*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0b[01]+(_[01]+)*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Bin")+    , tok "(?i)(\\d*(_\\d*)*\\.\\d+(_\\d*)*|\\d+(_\\d*)*\\.\\d+(_\\d*)*)(e[+-]?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(?i)\\d+(_\\d*)*e[+-]?\\d+(_\\d*)*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+(_\\d+)*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "`(\\\\\\\\|\\\\`|[^`])*`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick")+    , tok "<([^\\s>]+)>" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tokNext "(q|qq|qw|qr|qx)\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo cbString')+    , tokNext "(q|qq|qw|qr|qx)\\(" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo rbString')+    , tokNext "(q|qq|qw|qr|qx)\\[" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo sbString')+    , tokNext "(q|qq|qw|qr|qx)\\<" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo ltString')+    , tok "(q|qq|qw|qr|qx)([^a-zA-Z0-9])(.|\\n)*?\\2" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tokNext "package\\s+" (Arbitrary "Keyword") (GoTo modulename')+    , tokNext "sub\\s+" (Arbitrary "Keyword") (GoTo funcname')+    , tok "(\\[\\]|\\*\\*|::|<<|>>|>=|<=|<=>|={3}|!=|=\126|!\126|&&?|\\|\\||\\.{1,3})" (Arbitrary "Operator")+    , tok "[-+/*%=<>&^|!\\\\\126]=?" (Arbitrary "Operator")+    , tok "[\\(\\)\\[\\]:;,<>/\\?\\{\\}]" (Arbitrary "Punctuation")+    , tokNext "(?=\\w)" (Arbitrary "Name") (GoTo name')     ]  cbString' :: TokenMatcher cbString' =-    [ tok "\92\92\91\92\123\92\125\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tokNext "\92\123" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo cbString')-    , tokNext "\92\125" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") Pop-    , tok "\91\94\92\123\92\125\92\92\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")+    [ tok "\\\\[\\{\\}\\\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tokNext "\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo cbString')+    , tokNext "\\}" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") Pop+    , tok "[^\\{\\}\\\\]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")     ]  ltString' :: TokenMatcher ltString' =-    [ tok "\92\92\91\92\60\92\62\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tokNext "\92\60" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo ltString')-    , tokNext "\92\62" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") Pop-    , tok "\91\94\92\60\92\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")+    [ tok "\\\\[\\<\\>\\\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tokNext "\\<" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo ltString')+    , tokNext "\\>" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") Pop+    , tok "[^\\<\\>]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")     ] 
src/Text/Highlighter/Lexers/Php.hs view
@@ -5,68 +5,72 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\72\80"-    , lAliases = ["\112\104\112", "\112\104\112\51", "\112\104\112\52", "\112\104\112\53"]-    , lExtensions = ["\46\112\104\112", "\46\112\104\112\91\51\52\53\93"]-    , lMimetypes = ["\116\101\120\116\47\120\45\112\104\112"]+    { lName = "PHP"+    , lAliases = ["php", "php3", "php4", "php5"]+    , lExtensions = [".php", ".php[345]"]+    , lMimetypes = ["text/x-php"]     , lStart = root'     , lFlags = [caseless, multiline, dotall]     }  classname' :: TokenMatcher classname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\92\92\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[a-zA-Z_][\\\\a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  php' :: TokenMatcher php' =-    [ tokNext "\92\63\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\60\60\60\40\92\39\63\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\92\49\92\110\46\42\63\92\110\92\50\92\59\63\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\92\42\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\47\92\42\92\42\46\42\63\92\42\47" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")-    , tok "\47\92\42\46\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\40\45\62\124\58\58\41\40\92\115\42\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")])-    , tok "\91\126\33\37\94\38\42\43\61\124\58\46\60\62\47\63\64\45\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\92\91\92\93\123\125\40\41\59\44\93\43" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\40\99\108\97\115\115\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tok "\40\102\117\110\99\116\105\111\110\41\40\92\115\42\41\40\63\61\92\40\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")])-    , tokNext "\40\102\117\110\99\116\105\111\110\41\40\92\115\43\41\40\38\63\41\40\92\115\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116")]) (GoTo functionname')-    , tok "\40\99\111\110\115\116\41\40\92\115\43\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")])-    , tok "\40\97\110\100\124\69\95\80\65\82\83\69\124\111\108\100\95\102\117\110\99\116\105\111\110\124\69\95\69\82\82\79\82\124\111\114\124\97\115\124\69\95\87\65\82\78\73\78\71\124\112\97\114\101\110\116\124\101\118\97\108\124\80\72\80\95\79\83\124\98\114\101\97\107\124\101\120\105\116\124\99\97\115\101\124\101\120\116\101\110\100\115\124\80\72\80\95\86\69\82\83\73\79\78\124\99\102\117\110\99\116\105\111\110\124\70\65\76\83\69\124\112\114\105\110\116\124\102\111\114\124\114\101\113\117\105\114\101\124\99\111\110\116\105\110\117\101\124\102\111\114\101\97\99\104\124\114\101\113\117\105\114\101\95\111\110\99\101\124\100\101\99\108\97\114\101\124\114\101\116\117\114\110\124\100\101\102\97\117\108\116\124\115\116\97\116\105\99\124\100\111\124\115\119\105\116\99\104\124\100\105\101\124\115\116\100\67\108\97\115\115\124\101\99\104\111\124\101\108\115\101\124\84\82\85\69\124\101\108\115\101\105\102\124\118\97\114\124\101\109\112\116\121\124\105\102\124\120\111\114\124\101\110\100\100\101\99\108\97\114\101\124\105\110\99\108\117\100\101\124\118\105\114\116\117\97\108\124\101\110\100\102\111\114\124\105\110\99\108\117\100\101\95\111\110\99\101\124\119\104\105\108\101\124\101\110\100\102\111\114\101\97\99\104\124\103\108\111\98\97\108\124\95\95\70\73\76\69\95\95\124\101\110\100\105\102\124\108\105\115\116\124\95\95\76\73\78\69\95\95\124\101\110\100\115\119\105\116\99\104\124\110\101\119\124\95\95\115\108\101\101\112\124\101\110\100\119\104\105\108\101\124\110\111\116\124\97\114\114\97\121\124\95\95\119\97\107\101\117\112\124\69\95\65\76\76\124\78\85\76\76\124\102\105\110\97\108\124\112\104\112\95\117\115\101\114\95\102\105\108\116\101\114\124\105\110\116\101\114\102\97\99\101\124\105\109\112\108\101\109\101\110\116\115\124\112\117\98\108\105\99\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\97\98\115\116\114\97\99\116\124\99\108\111\110\101\124\116\114\121\124\99\97\116\99\104\124\116\104\114\111\119\124\116\104\105\115\124\117\115\101\124\110\97\109\101\115\112\97\99\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41\8" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\36\92\123\92\36\43\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\92\125" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\92\36\43\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\92\92\97\45\122\65\45\90\95\93\91\92\92\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\79\116\104\101\114")-    , tok "\91\48\45\57\93\40\92\46\91\48\45\57\93\42\41\63\40\101\69\91\43\45\93\91\48\45\57\93\41\63\91\102\108\70\76\100\68\93\63\124\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\39\40\91\94\39\92\92\93\42\40\63\58\92\92\46\91\94\39\92\92\93\42\41\42\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\96\40\91\94\96\92\92\93\42\40\63\58\92\92\46\91\94\96\92\92\93\42\41\42\41\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") (GoTo string')+    [ tokNext "\\?>" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok "<<<(\\'?)([a-zA-Z_][a-zA-Z0-9_]*)\\1\\n.*?\\n\\2\\;?\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\s+" (Arbitrary "Text")+    , tok "#.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "/\\*\\*.*?\\*/" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")+    , tok "/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "(->|::)(\\s*)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Attribute")])+    , tok "[\126!%^&*+=|:.<>/?@-]+" (Arbitrary "Operator")+    , tok "[\\[\\]{}();,]+" (Arbitrary "Punctuation")+    , tokNext "(class)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tok "(function)(\\s*)(?=\\()" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")])+    , tokNext "(function)(\\s+)(&?)(\\s*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text")]) (GoTo functionname')+    , tok "(const)(\\s+)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Constant")])+    , tok "(and|E_PARSE|old_function|E_ERROR|or|as|E_WARNING|parent|eval|PHP_OS|break|exit|case|extends|PHP_VERSION|cfunction|FALSE|print|for|require|continue|foreach|require_once|declare|return|default|static|do|switch|die|stdClass|echo|else|TRUE|elseif|var|empty|if|xor|enddeclare|include|virtual|endfor|include_once|while|endforeach|global|__FILE__|endif|list|__LINE__|endswitch|new|__sleep|endwhile|not|array|__wakeup|E_ALL|NULL|final|php_user_filter|interface|implements|public|private|protected|abstract|clone|try|catch|throw|this|use|namespace)\\b" (Arbitrary "Keyword")+    , tok "(true|false|null)\8" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "\\$\\{\\$+[a-zA-Z_][a-zA-Z0-9_]*\\}" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "\\$+[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[\\\\a-zA-Z_][\\\\a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Other")+    , tok "(\\d+\\.\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+[eE][+-]?[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "'([^'\\\\]*(?:\\\\.[^'\\\\]*)*)'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "`([^`\\\\]*(?:\\\\.[^`\\\\]*)*)`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo string')     ]  root' :: TokenMatcher root' =-    [ tokNext "\60\92\63\40\112\104\112\41\63" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo php')-    , tok "\91\94\60\93\43" (Arbitrary "\79\116\104\101\114")-    , tok "\60" (Arbitrary "\79\116\104\101\114")+    [ tokNext "<\\?(php)?" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo php')+    , tok "[^<]+" (Arbitrary "Other")+    , tok "<" (Arbitrary "Other")     ]  functionname' :: TokenMatcher functionname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Function") Pop     ]  string' :: TokenMatcher string' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") Pop-    , tok "\91\94\123\36\34\92\92\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\92\92\40\91\110\114\116\92\34\36\93\124\91\48\45\55\93\123\49\44\51\125\124\120\91\48\45\57\65\45\70\97\45\102\93\123\49\44\50\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\92\36\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\40\92\91\92\83\43\92\93\124\45\62\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")-    , tok "\40\92\123\92\36\92\123\41\40\46\42\63\41\40\92\125\92\125\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108"), (Using lexer), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")])-    , tok "\40\92\123\41\40\92\36\46\42\63\41\40\92\125\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108"), (Using lexer), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")])-    , tok "\40\92\36\92\123\41\40\92\83\43\41\40\92\125\41" (ByGroups [(Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")])-    , tok "\91\36\123\92\92\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") Pop+    , tok "[^{$\"\\\\]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "\\\\([nrt\\\"$\\\\]|[0-7]{1,3}|x[0-9A-Fa-f]{1,2})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "\\$[a-zA-Z_][a-zA-Z0-9_]*(\\[\\S+\\]|->[a-zA-Z_][a-zA-Z0-9_]*)?" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")+    , tok "(\\{\\$\\{)(.*?)(\\}\\})" (ByGroups [(Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol"), (Using lexer), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")])+    , tok "(\\{)(\\$.*?)(\\})" (ByGroups [(Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol"), (Using lexer), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")])+    , tok "(\\$\\{)(\\S+)(\\})" (ByGroups [(Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol"), (Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")])+    , tok "[${\\\\]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")     ] 
+ src/Text/Highlighter/Lexers/PostScript.hs view
@@ -0,0 +1,48 @@+module Text.Highlighter.Lexers.PostScript (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "PostScript"+    , lAliases = ["postscript"]+    , lExtensions = [".ps", ".eps"]+    , lMimetypes = ["application/postscript"]+    , lStart = root'+    , lFlags = [multiline]+    }++root' :: TokenMatcher+root' =+    [ tok "^%!.+\\n" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "%%.*\\n" (Arbitrary "Comment" :. Arbitrary "Special")+    , tok "(^%.*\\n){2,}" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "%.*\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "\\(" (Arbitrary "Literal" :. Arbitrary "String") (GoTo stringliteral')+    , tok "[\\{\\}(\\<\\<)(\\>\\>)\\[\\]]" (Arbitrary "Punctuation")+    , tok "<[0-9A-Fa-f]+>(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+\\#(\\-|\\+)?([0-9]+\\.?|[0-9]*\\.[0-9]+|[0-9]+\\.[0-9]*)((e|E)[0-9]+)?(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "(\\-|\\+)?([0-9]+\\.?|[0-9]*\\.[0-9]+|[0-9]+\\.[0-9]*)((e|E)[0-9]+)?(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\-|\\+)?[0-9]+(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\/[^\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s]+(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[^\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s]+(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "(false|true)(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(eq|ne|ge|gt|le|lt|and|or|not|if|ifelse|for|forall)(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Keyword" :. Arbitrary "Reserved")+    , tok "(abs|add|aload|arc|arcn|array|atan|begin|bind|ceiling|charpath|clip|closepath|concat|concatmatrix|copy|cos|currentlinewidth|currentmatrix|currentpoint|curveto|cvi|cvs|def|defaultmatrix|dict|dictstackoverflow|div|dtransform|dup|end|exch|exec|exit|exp|fill|findfont|floor|get|getinterval|grestore|gsave|gt|identmatrix|idiv|idtransform|index|invertmatrix|itransform|length|lineto|ln|load|log|loop|matrix|mod|moveto|mul|neg|newpath|pathforall|pathbbox|pop|print|pstack|put|quit|rand|rangecheck|rcurveto|repeat|restore|rlineto|rmoveto|roll|rotate|round|run|save|scale|scalefont|setdash|setfont|setgray|setlinecap|setlinejoin|setlinewidth|setmatrix|setrgbcolor|shfill|show|showpage|sin|sqrt|stack|stringwidth|stroke|strokepath|sub|syntaxerror|transform|translate|truncate|typecheck|undefined|undefinedfilename|undefinedresult)(?=[\\(\\)\\<\\>\\[\\]\\{\\}\\/\\%\\s])" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\s+" (Arbitrary "Text")+    ]++stringliteral' :: TokenMatcher+stringliteral' =+    [ tok "[^\\(\\)\\\\]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\\\" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") (GoTo escape')+    , tokNext "\\(" (Arbitrary "Literal" :. Arbitrary "String") Push+    , tokNext "\\)" (Arbitrary "Literal" :. Arbitrary "String") Pop+    ]++escape' :: TokenMatcher+escape' =+    [ tokNext "([0-8]{3}|n|r|t|b|f|\\\\|\\(|\\)|)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop+    ]+
src/Text/Highlighter/Lexers/Povray.hs view
@@ -5,29 +5,29 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\79\86\82\97\121"-    , lAliases = ["\112\111\118"]-    , lExtensions = ["\46\112\111\118", "\46\105\110\99"]-    , lMimetypes = ["\116\101\120\116\47\120\45\112\111\118\114\97\121"]+    { lName = "POVRay"+    , lAliases = ["pov"]+    , lExtensions = [".pov", ".inc"]+    , lMimetypes = ["text/x-povray"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\47\92\42\91\92\119\92\87\93\42\63\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\47\47\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\40\63\115\41\34\40\63\58\92\92\46\124\91\94\34\92\92\93\41\43\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\35\40\100\101\98\117\103\124\100\101\102\97\117\108\116\124\101\108\115\101\124\101\110\100\124\101\114\114\111\114\124\102\99\108\111\115\101\124\102\111\112\101\110\124\105\102\124\105\102\100\101\102\124\105\102\110\100\101\102\124\105\110\99\108\117\100\101\124\114\97\110\103\101\124\114\101\97\100\124\114\101\110\100\101\114\124\115\116\97\116\105\115\116\105\99\115\124\115\119\105\116\99\104\124\117\110\100\101\102\124\118\101\114\115\105\111\110\124\119\97\114\110\105\110\103\124\119\104\105\108\101\124\119\114\105\116\101\124\100\101\102\105\110\101\124\109\97\99\114\111\124\108\111\99\97\108\124\100\101\99\108\97\114\101\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\92\98\40\97\97\95\108\101\118\101\108\124\97\97\95\116\104\114\101\115\104\111\108\100\124\97\98\115\124\97\99\111\115\124\97\99\111\115\104\124\97\100\97\112\116\105\118\101\124\97\100\99\95\98\97\105\108\111\117\116\124\97\103\97\116\101\124\97\103\97\116\101\95\116\117\114\98\124\97\108\108\124\97\108\112\104\97\124\97\109\98\105\101\110\116\124\97\109\98\105\101\110\116\95\108\105\103\104\116\124\97\110\103\108\101\124\97\112\101\114\116\117\114\101\124\97\114\99\95\97\110\103\108\101\124\97\114\101\97\95\108\105\103\104\116\124\97\115\99\124\97\115\105\110\124\97\115\105\110\104\124\97\115\115\117\109\101\100\95\103\97\109\109\97\124\97\116\97\110\124\97\116\97\110\50\124\97\116\97\110\104\124\97\116\109\111\115\112\104\101\114\101\124\97\116\109\111\115\112\104\101\114\105\99\95\97\116\116\101\110\117\97\116\105\111\110\124\97\116\116\101\110\117\97\116\105\110\103\124\97\118\101\114\97\103\101\124\98\97\99\107\103\114\111\117\110\100\124\98\108\97\99\107\95\104\111\108\101\124\98\108\117\101\124\98\108\117\114\95\115\97\109\112\108\101\115\124\98\111\117\110\100\101\100\95\98\121\124\98\111\120\95\109\97\112\112\105\110\103\124\98\111\122\111\124\98\114\101\97\107\124\98\114\105\99\107\124\98\114\105\99\107\95\115\105\122\101\124\98\114\105\103\104\116\110\101\115\115\124\98\114\105\108\108\105\97\110\99\101\124\98\117\109\112\115\124\98\117\109\112\121\49\124\98\117\109\112\121\50\124\98\117\109\112\121\51\124\98\117\109\112\95\109\97\112\124\98\117\109\112\95\115\105\122\101\124\99\97\115\101\124\99\97\117\115\116\105\99\115\124\99\101\105\108\124\99\104\101\99\107\101\114\124\99\104\114\124\99\108\105\112\112\101\100\95\98\121\124\99\108\111\99\107\124\99\111\108\111\114\124\99\111\108\111\114\95\109\97\112\124\99\111\108\111\117\114\124\99\111\108\111\117\114\95\109\97\112\124\99\111\109\112\111\110\101\110\116\124\99\111\109\112\111\115\105\116\101\124\99\111\110\99\97\116\124\99\111\110\102\105\100\101\110\99\101\124\99\111\110\105\99\95\115\119\101\101\112\124\99\111\110\115\116\97\110\116\124\99\111\110\116\114\111\108\48\124\99\111\110\116\114\111\108\49\124\99\111\115\124\99\111\115\104\124\99\111\117\110\116\124\99\114\97\99\107\108\101\124\99\114\97\110\100\124\99\117\98\101\124\99\117\98\105\99\95\115\112\108\105\110\101\124\99\121\108\105\110\100\114\105\99\97\108\95\109\97\112\112\105\110\103\124\100\101\98\117\103\124\100\101\99\108\97\114\101\124\100\101\102\97\117\108\116\124\100\101\103\114\101\101\115\124\100\101\110\116\115\124\100\105\102\102\117\115\101\124\100\105\114\101\99\116\105\111\110\124\100\105\115\116\97\110\99\101\124\100\105\115\116\97\110\99\101\95\109\97\120\105\109\117\109\124\100\105\118\124\100\117\115\116\124\100\117\115\116\95\116\121\112\101\124\101\99\99\101\110\116\114\105\99\105\116\121\124\101\108\115\101\124\101\109\105\116\116\105\110\103\124\101\110\100\124\101\114\114\111\114\124\101\114\114\111\114\95\98\111\117\110\100\124\101\120\112\124\101\120\112\111\110\101\110\116\124\102\97\100\101\95\100\105\115\116\97\110\99\101\124\102\97\100\101\95\112\111\119\101\114\124\102\97\108\108\111\102\102\124\102\97\108\108\111\102\102\95\97\110\103\108\101\124\102\97\108\115\101\124\102\105\108\101\95\101\120\105\115\116\115\124\102\105\108\116\101\114\124\102\105\110\105\115\104\124\102\105\115\104\101\121\101\124\102\108\97\116\110\101\115\115\124\102\108\105\112\124\102\108\111\111\114\124\102\111\99\97\108\95\112\111\105\110\116\124\102\111\103\124\102\111\103\95\97\108\116\124\102\111\103\95\111\102\102\115\101\116\124\102\111\103\95\116\121\112\101\124\102\114\101\113\117\101\110\99\121\124\103\105\102\124\103\108\111\98\97\108\95\115\101\116\116\105\110\103\115\124\103\108\111\119\105\110\103\124\103\114\97\100\105\101\110\116\124\103\114\97\110\105\116\101\124\103\114\97\121\95\116\104\114\101\115\104\111\108\100\124\103\114\101\101\110\124\104\97\108\111\124\104\101\120\97\103\111\110\124\104\102\95\103\114\97\121\95\49\54\124\104\105\101\114\97\114\99\104\121\124\104\111\108\108\111\119\124\104\121\112\101\114\99\111\109\112\108\101\120\124\105\102\124\105\102\100\101\102\124\105\102\102\124\105\109\97\103\101\95\109\97\112\124\105\110\99\105\100\101\110\99\101\124\105\110\99\108\117\100\101\124\105\110\116\124\105\110\116\101\114\112\111\108\97\116\101\124\105\110\118\101\114\115\101\124\105\111\114\124\105\114\105\100\124\105\114\105\100\95\119\97\118\101\108\101\110\103\116\104\124\106\105\116\116\101\114\124\108\97\109\98\100\97\124\108\101\111\112\97\114\100\124\108\105\110\101\97\114\124\108\105\110\101\97\114\95\115\112\108\105\110\101\124\108\105\110\101\97\114\95\115\119\101\101\112\124\108\111\99\97\116\105\111\110\124\108\111\103\124\108\111\111\107\115\95\108\105\107\101\124\108\111\111\107\95\97\116\124\108\111\119\95\101\114\114\111\114\95\102\97\99\116\111\114\124\109\97\110\100\101\108\124\109\97\112\95\116\121\112\101\124\109\97\114\98\108\101\124\109\97\116\101\114\105\97\108\95\109\97\112\124\109\97\116\114\105\120\124\109\97\120\124\109\97\120\95\105\110\116\101\114\115\101\99\116\105\111\110\115\124\109\97\120\95\105\116\101\114\97\116\105\111\110\124\109\97\120\95\116\114\97\99\101\95\108\101\118\101\108\124\109\97\120\95\118\97\108\117\101\124\109\101\116\97\108\108\105\99\124\109\105\110\124\109\105\110\105\109\117\109\95\114\101\117\115\101\124\109\111\100\124\109\111\114\116\97\114\124\110\101\97\114\101\115\116\95\99\111\117\110\116\124\110\111\124\110\111\114\109\97\108\124\110\111\114\109\97\108\95\109\97\112\124\110\111\95\115\104\97\100\111\119\124\110\117\109\98\101\114\95\111\102\95\119\97\118\101\115\124\111\99\116\97\118\101\115\124\111\102\102\124\111\102\102\115\101\116\124\111\109\101\103\97\124\111\109\110\105\109\97\120\124\111\110\124\111\110\99\101\124\111\110\105\111\110\124\111\112\101\110\124\111\114\116\104\111\103\114\97\112\104\105\99\124\112\97\110\111\114\97\109\105\99\124\112\97\116\116\101\114\110\49\124\112\97\116\116\101\114\110\50\124\112\97\116\116\101\114\110\51\124\112\101\114\115\112\101\99\116\105\118\101\124\112\103\109\124\112\104\97\115\101\124\112\104\111\110\103\124\112\104\111\110\103\95\115\105\122\101\124\112\105\124\112\105\103\109\101\110\116\124\112\105\103\109\101\110\116\95\109\97\112\124\112\108\97\110\97\114\95\109\97\112\112\105\110\103\124\112\110\103\124\112\111\105\110\116\95\97\116\124\112\111\116\124\112\111\119\124\112\112\109\124\112\114\101\99\105\115\105\111\110\124\112\119\114\124\113\117\97\100\114\97\116\105\99\95\115\112\108\105\110\101\124\113\117\97\116\101\114\110\105\111\110\124\113\117\105\99\107\95\99\111\108\111\114\124\113\117\105\99\107\95\99\111\108\111\117\114\124\113\117\105\108\116\101\100\124\114\97\100\105\97\108\124\114\97\100\105\97\110\115\124\114\97\100\105\111\115\105\116\121\124\114\97\100\105\117\115\124\114\97\105\110\98\111\119\124\114\97\109\112\95\119\97\118\101\124\114\97\110\100\124\114\97\110\103\101\124\114\101\99\105\112\114\111\99\97\108\124\114\101\99\117\114\115\105\111\110\95\108\105\109\105\116\124\114\101\100\124\114\101\102\108\101\99\116\105\111\110\124\114\101\102\114\97\99\116\105\111\110\124\114\101\110\100\101\114\124\114\101\112\101\97\116\124\114\103\98\124\114\103\98\102\124\114\103\98\102\116\124\114\103\98\116\124\114\105\103\104\116\124\114\105\112\112\108\101\115\124\114\111\116\97\116\101\124\114\111\117\103\104\110\101\115\115\124\115\97\109\112\108\101\115\124\115\99\97\108\101\124\115\99\97\108\108\111\112\95\119\97\118\101\124\115\99\97\116\116\101\114\105\110\103\124\115\101\101\100\124\115\104\97\100\111\119\108\101\115\115\124\115\105\110\124\115\105\110\101\95\119\97\118\101\124\115\105\110\104\124\115\107\121\124\115\107\121\95\115\112\104\101\114\101\124\115\108\105\99\101\124\115\108\111\112\101\95\109\97\112\124\115\109\111\111\116\104\124\115\112\101\99\117\108\97\114\124\115\112\104\101\114\105\99\97\108\95\109\97\112\112\105\110\103\124\115\112\105\114\97\108\124\115\112\105\114\97\108\49\124\115\112\105\114\97\108\50\124\115\112\111\116\108\105\103\104\116\124\115\112\111\116\116\101\100\124\115\113\114\124\115\113\114\116\124\115\116\97\116\105\115\116\105\99\115\124\115\116\114\124\115\116\114\99\109\112\124\115\116\114\101\110\103\116\104\124\115\116\114\108\101\110\124\115\116\114\108\119\114\124\115\116\114\117\112\114\124\115\116\117\114\109\124\115\117\98\115\116\114\124\115\119\105\116\99\104\124\115\121\115\124\116\124\116\97\110\124\116\97\110\104\124\116\101\115\116\95\99\97\109\101\114\97\95\49\124\116\101\115\116\95\99\97\109\101\114\97\95\50\124\116\101\115\116\95\99\97\109\101\114\97\95\51\124\116\101\115\116\95\99\97\109\101\114\97\95\52\124\116\101\120\116\117\114\101\124\116\101\120\116\117\114\101\95\109\97\112\124\116\103\97\124\116\104\105\99\107\110\101\115\115\124\116\104\114\101\115\104\111\108\100\124\116\105\103\104\116\110\101\115\115\124\116\105\108\101\50\124\116\105\108\101\115\124\116\114\97\99\107\124\116\114\97\110\115\102\111\114\109\124\116\114\97\110\115\108\97\116\101\124\116\114\97\110\115\109\105\116\124\116\114\105\97\110\103\108\101\95\119\97\118\101\124\116\114\117\101\124\116\116\102\124\116\117\114\98\117\108\101\110\99\101\124\116\117\114\98\95\100\101\112\116\104\124\116\121\112\101\124\117\108\116\114\97\95\119\105\100\101\95\97\110\103\108\101\124\117\112\124\117\115\101\95\99\111\108\111\114\124\117\115\101\95\99\111\108\111\117\114\124\117\115\101\95\105\110\100\101\120\124\117\95\115\116\101\112\115\124\118\97\108\124\118\97\114\105\97\110\99\101\124\118\97\120\105\115\95\114\111\116\97\116\101\124\118\99\114\111\115\115\124\118\100\111\116\124\118\101\114\115\105\111\110\124\118\108\101\110\103\116\104\124\118\110\111\114\109\97\108\105\122\101\124\118\111\108\117\109\101\95\111\98\106\101\99\116\124\118\111\108\117\109\101\95\114\101\110\100\101\114\101\100\124\118\111\108\95\119\105\116\104\95\108\105\103\104\116\124\118\114\111\116\97\116\101\124\118\95\115\116\101\112\115\124\119\97\114\110\105\110\103\124\119\97\114\112\124\119\97\116\101\114\95\108\101\118\101\108\124\119\97\118\101\115\124\119\104\105\108\101\124\119\105\100\116\104\124\119\111\111\100\124\119\114\105\110\107\108\101\115\124\121\101\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\98\105\99\117\98\105\99\95\112\97\116\99\104\124\98\108\111\98\124\98\111\120\124\99\97\109\101\114\97\124\99\111\110\101\124\99\117\98\105\99\124\99\121\108\105\110\100\101\114\124\100\105\102\102\101\114\101\110\99\101\124\100\105\115\99\124\104\101\105\103\104\116\95\102\105\101\108\100\124\105\110\116\101\114\115\101\99\116\105\111\110\124\106\117\108\105\97\95\102\114\97\99\116\97\108\124\108\97\116\104\101\124\108\105\103\104\116\95\115\111\117\114\99\101\124\109\101\114\103\101\124\109\101\115\104\124\111\98\106\101\99\116\124\112\108\97\110\101\124\112\111\108\121\124\112\111\108\121\103\111\110\124\112\114\105\115\109\124\113\117\97\100\114\105\99\124\113\117\97\114\116\105\99\124\115\109\111\111\116\104\95\116\114\105\97\110\103\108\101\124\115\111\114\124\115\112\104\101\114\101\124\115\117\112\101\114\101\108\108\105\112\115\111\105\100\124\116\101\120\116\124\116\111\114\117\115\124\116\114\105\97\110\103\108\101\124\117\110\105\111\110" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\92\91\92\93\40\41\123\125\60\62\59\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\45\43\42\47\61\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\98\40\120\124\121\124\122\124\117\124\118\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\95\48\45\57\93\42" (Arbitrary "\78\97\109\101")-    , tok "\91\48\45\57\93\43\92\46\91\48\45\57\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\46\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")+    [ tok "/\\*[\\w\\W]*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "//.*\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "(?s)\"(?:\\\\.|[^\"\\\\])+\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "#(debug|default|else|end|error|fclose|fopen|if|ifdef|ifndef|include|range|read|render|statistics|switch|undef|version|warning|while|write|define|macro|local|declare)" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "\\b(aa_level|aa_threshold|abs|acos|acosh|adaptive|adc_bailout|agate|agate_turb|all|alpha|ambient|ambient_light|angle|aperture|arc_angle|area_light|asc|asin|asinh|assumed_gamma|atan|atan2|atanh|atmosphere|atmospheric_attenuation|attenuating|average|background|black_hole|blue|blur_samples|bounded_by|box_mapping|bozo|break|brick|brick_size|brightness|brilliance|bumps|bumpy1|bumpy2|bumpy3|bump_map|bump_size|case|caustics|ceil|checker|chr|clipped_by|clock|color|color_map|colour|colour_map|component|composite|concat|confidence|conic_sweep|constant|control0|control1|cos|cosh|count|crackle|crand|cube|cubic_spline|cylindrical_mapping|debug|declare|default|degrees|dents|diffuse|direction|distance|distance_maximum|div|dust|dust_type|eccentricity|else|emitting|end|error|error_bound|exp|exponent|fade_distance|fade_power|falloff|falloff_angle|false|file_exists|filter|finish|fisheye|flatness|flip|floor|focal_point|fog|fog_alt|fog_offset|fog_type|frequency|gif|global_settings|glowing|gradient|granite|gray_threshold|green|halo|hexagon|hf_gray_16|hierarchy|hollow|hypercomplex|if|ifdef|iff|image_map|incidence|include|int|interpolate|inverse|ior|irid|irid_wavelength|jitter|lambda|leopard|linear|linear_spline|linear_sweep|location|log|looks_like|look_at|low_error_factor|mandel|map_type|marble|material_map|matrix|max|max_intersections|max_iteration|max_trace_level|max_value|metallic|min|minimum_reuse|mod|mortar|nearest_count|no|normal|normal_map|no_shadow|number_of_waves|octaves|off|offset|omega|omnimax|on|once|onion|open|orthographic|panoramic|pattern1|pattern2|pattern3|perspective|pgm|phase|phong|phong_size|pi|pigment|pigment_map|planar_mapping|png|point_at|pot|pow|ppm|precision|pwr|quadratic_spline|quaternion|quick_color|quick_colour|quilted|radial|radians|radiosity|radius|rainbow|ramp_wave|rand|range|reciprocal|recursion_limit|red|reflection|refraction|render|repeat|rgb|rgbf|rgbft|rgbt|right|ripples|rotate|roughness|samples|scale|scallop_wave|scattering|seed|shadowless|sin|sine_wave|sinh|sky|sky_sphere|slice|slope_map|smooth|specular|spherical_mapping|spiral|spiral1|spiral2|spotlight|spotted|sqr|sqrt|statistics|str|strcmp|strength|strlen|strlwr|strupr|sturm|substr|switch|sys|t|tan|tanh|test_camera_1|test_camera_2|test_camera_3|test_camera_4|texture|texture_map|tga|thickness|threshold|tightness|tile2|tiles|track|transform|translate|transmit|triangle_wave|true|ttf|turbulence|turb_depth|type|ultra_wide_angle|up|use_color|use_colour|use_index|u_steps|val|variance|vaxis_rotate|vcross|vdot|version|vlength|vnormalize|volume_object|volume_rendered|vol_with_light|vrotate|v_steps|warning|warp|water_level|waves|while|width|wood|wrinkles|yes)\\b" (Arbitrary "Keyword")+    , tok "bicubic_patch|blob|box|camera|cone|cubic|cylinder|difference|disc|height_field|intersection|julia_fractal|lathe|light_source|merge|mesh|object|plane|poly|polygon|prism|quadric|quartic|smooth_triangle|sor|sphere|superellipsoid|text|torus|triangle|union" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[\\[\\](){}<>;,]" (Arbitrary "Punctuation")+    , tok "[-+*/=]" (Arbitrary "Operator")+    , tok "\\b(x|y|z|u|v)\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tok "[a-zA-Z_][a-zA-Z_0-9]*" (Arbitrary "Name")+    , tok "[0-9]+\\.[0-9]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\.[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\s+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Prolog.hs view
@@ -5,41 +5,41 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\114\111\108\111\103"-    , lAliases = ["\112\114\111\108\111\103"]-    , lExtensions = ["\46\112\114\111\108\111\103", "\46\112\114\111", "\46\112\108"]-    , lMimetypes = ["\116\101\120\116\47\120\45\112\114\111\108\111\103"]+    { lName = "Prolog"+    , lAliases = ["prolog"]+    , lExtensions = [".prolog", ".pro", ".pl"]+    , lMimetypes = ["text/x-prolog"]     , lStart = root'     , lFlags = [utf8]     }  nestedComment' :: TokenMatcher nestedComment' =-    [ tokNext "\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tok "\91\94\42\47\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\91\42\47\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tok "[^*/]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "[*/]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tok "\94\35\46\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo nestedComment')-    , tok "\37\46\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\92\91\92\93\40\41\123\125\124\46\44\59\33\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\58\45\124\45\45\62" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\34\40\63\58\92\92\120\91\48\45\57\97\45\102\65\45\70\93\43\92\92\124\92\92\117\91\48\45\57\97\45\102\65\45\70\93\123\52\125\124\92\85\91\48\45\57\97\45\102\65\45\70\93\123\56\125\124\92\92\91\48\45\55\93\43\92\92\124\92\92\91\92\119\92\87\93\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\63\58\39\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\65\116\111\109")-    , tok "\40\105\115\124\60\124\62\124\61\60\124\62\61\124\61\61\124\61\58\61\124\61\124\47\124\47\47\124\92\42\124\92\43\124\45\41\40\63\61\92\115\124\91\97\45\122\65\45\90\48\45\57\92\91\93\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\109\111\100\124\100\105\118\124\110\111\116\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\95" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\91\97\45\122\93\43\41\40\58\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\91\97\45\122\192\45\8191\12352\45\55295\57344\45\65519\93\91\97\45\122\65\45\90\48\45\57\95\36\192\45\8191\12352\45\55295\57344\45\65519\93\42\41\40\92\115\42\41\40\58\45\124\45\45\62\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\40\91\97\45\122\192\45\8191\12352\45\55295\57344\45\65519\93\91\97\45\122\65\45\90\48\45\57\95\36\192\45\8191\12352\45\55295\57344\45\65519\93\42\41\40\92\115\42\41\40\92\40\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\91\97\45\122\192\45\8191\12352\45\55295\57344\45\65519\93\91\97\45\122\65\45\90\48\45\57\95\36\192\45\8191\12352\45\55295\57344\45\65519\93\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\65\116\111\109")-    , tok "\91\35\38\42\43\92\45\46\47\58\60\61\62\63\64\92\92\94\126\161\45\191\8208\45\12351\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\65\116\111\109")-    , tok "\91\65\45\90\95\93\91\65\45\90\97\45\122\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\92\115\43\124\91\8192\45\8207\65520\45\65534\65519\93" (Arbitrary "\84\101\120\116")+    [ tok "^#.*" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo nestedComment')+    , tok "%.*" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[\\[\\](){}|.,;!]" (Arbitrary "Punctuation")+    , tok ":-|-->" (Arbitrary "Punctuation")+    , tok "\"(?:\\\\x[0-9a-fA-F]+\\\\|\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}|\\\\[0-7]+\\\\|\\\\[\\w\\W]|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(?:''|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Atom")+    , tok "(is|<|>|=<|>=|==|=:=|=|/|//|\\*|\\+|-)(?=\\s|[a-zA-Z0-9\\[])" (Arbitrary "Operator")+    , tok "(mod|div|not)\\b" (Arbitrary "Operator")+    , tok "_" (Arbitrary "Keyword")+    , tok "([a-z]+)(:)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Namespace"), (Arbitrary "Punctuation")])+    , tok "([a-z\192-\8191\12352-\55295\57344-\65519][a-zA-Z0-9_$\192-\8191\12352-\55295\57344-\65519]*)(\\s*)(:-|-->)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tok "([a-z\192-\8191\12352-\55295\57344-\65519][a-zA-Z0-9_$\192-\8191\12352-\55295\57344-\65519]*)(\\s*)(\\()" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Punctuation")])+    , tok "[a-z\192-\8191\12352-\55295\57344-\65519][a-zA-Z0-9_$\192-\8191\12352-\55295\57344-\65519]*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Atom")+    , tok "[#&*+\\-./:<=>?@\\\\^\126\161-\191\8208-\12351]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Atom")+    , tok "[A-Z_][A-Za-z0-9_]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "\\s+|[\8192-\8207\65520-\65534\65519]" (Arbitrary "Text")     ] 
+ src/Text/Highlighter/Lexers/Properties.hs view
@@ -0,0 +1,22 @@+module Text.Highlighter.Lexers.Properties (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "Properties"+    , lAliases = ["properties"]+    , lExtensions = [".properties"]+    , lMimetypes = ["text/x-java-properties"]+    , lStart = root'+    , lFlags = [multiline]+    }++root' :: TokenMatcher+root' =+    [ tok "\\s+" (Arbitrary "Text")+    , tok "(?:[;#]|//).*$" (Arbitrary "Comment")+    , tok "(.*?)([ \\t]*)([=:])([ \\t]*)(.*(?:(?<=\\\\)\\n.*)*)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Attribute"), (Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String")])+    ]+
+ src/Text/Highlighter/Lexers/ProtoBuf.hs view
@@ -0,0 +1,54 @@+module Text.Highlighter.Lexers.ProtoBuf (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "Protocol Buffer"+    , lAliases = ["protobuf"]+    , lExtensions = [".proto"]+    , lMimetypes = []+    , lStart = root'+    , lFlags = [multiline]+    }++type' :: TokenMatcher+type' =+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name") Pop+    ]++message' :: TokenMatcher+message' =+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop+    ]++root' :: TokenMatcher+root' =+    [ tok "[ \\t]+" (Arbitrary "Text")+    , tok "[,;{}\\[\\]\\(\\)]" (Arbitrary "Punctuation")+    , tok "/(\\\\\\n)?/(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "\\b(import|option|optional|required|repeated|default|packed|ctype|extensions|to|max|rpc|returns)\\b" (Arbitrary "Keyword")+    , tok "(int32|int64|uint32|uint64|sint32|sint64|fixed32|fixed64|sfixed32|sfixed64|float|double|bool|string|bytes)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(true|false)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tokNext "(package)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo package')+    , tokNext "(message|extend)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text")]) (GoTo message')+    , tokNext "(enum|group|service)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text")]) (GoTo type')+    , tok "\\\".*\\\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\-?(inf|nan))" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\d+[LlUu]*" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[+-=]" (Arbitrary "Operator")+    , tok "([a-zA-Z_][a-zA-Z0-9_\\.]*)([ \\t]*)(=)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Attribute"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tok "[a-zA-Z_][a-zA-Z0-9_\\.]*" (Arbitrary "Name")+    ]++package' :: TokenMatcher+package' =+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Namespace") Pop+    ]+
src/Text/Highlighter/Lexers/Python.hs view
@@ -5,145 +5,145 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\121\116\104\111\110"-    , lAliases = ["\112\121\116\104\111\110", "\112\121"]-    , lExtensions = ["\46\112\121", "\46\112\121\119", "\46\115\99", "\83\67\111\110\115\116\114\117\99\116", "\83\67\111\110\115\99\114\105\112\116", "\46\116\97\99"]-    , lMimetypes = ["\116\101\120\116\47\120\45\112\121\116\104\111\110", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\112\121\116\104\111\110"]+    { lName = "Python"+    , lAliases = ["python", "py"]+    , lExtensions = [".py", ".pyw", ".sc", "SConstruct", "SConscript", ".tac"]+    , lMimetypes = ["text/x-python", "application/x-python"]     , lStart = root'     , lFlags = [multiline]     }  tsqs' :: TokenMatcher tsqs' =-    [ tokNext "\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "'''" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  builtins' :: TokenMatcher builtins' =-    [ tok "\40\63\60\33\92\46\41\40\95\95\105\109\112\111\114\116\95\95\124\97\98\115\124\97\108\108\124\97\110\121\124\97\112\112\108\121\124\98\97\115\101\115\116\114\105\110\103\124\98\105\110\124\98\111\111\108\124\98\117\102\102\101\114\124\98\121\116\101\97\114\114\97\121\124\98\121\116\101\115\124\99\97\108\108\97\98\108\101\124\99\104\114\124\99\108\97\115\115\109\101\116\104\111\100\124\99\109\112\124\99\111\101\114\99\101\124\99\111\109\112\105\108\101\124\99\111\109\112\108\101\120\124\100\101\108\97\116\116\114\124\100\105\99\116\124\100\105\114\124\100\105\118\109\111\100\124\101\110\117\109\101\114\97\116\101\124\101\118\97\108\124\101\120\101\99\102\105\108\101\124\101\120\105\116\124\102\105\108\101\124\102\105\108\116\101\114\124\102\108\111\97\116\124\102\114\111\122\101\110\115\101\116\124\103\101\116\97\116\116\114\124\103\108\111\98\97\108\115\124\104\97\115\97\116\116\114\124\104\97\115\104\124\104\101\120\124\105\100\124\105\110\112\117\116\124\105\110\116\124\105\110\116\101\114\110\124\105\115\105\110\115\116\97\110\99\101\124\105\115\115\117\98\99\108\97\115\115\124\105\116\101\114\124\108\101\110\124\108\105\115\116\124\108\111\99\97\108\115\124\108\111\110\103\124\109\97\112\124\109\97\120\124\109\105\110\124\110\101\120\116\124\111\98\106\101\99\116\124\111\99\116\124\111\112\101\110\124\111\114\100\124\112\111\119\124\112\114\111\112\101\114\116\121\124\114\97\110\103\101\124\114\97\119\95\105\110\112\117\116\124\114\101\100\117\99\101\124\114\101\108\111\97\100\124\114\101\112\114\124\114\101\118\101\114\115\101\100\124\114\111\117\110\100\124\115\101\116\124\115\101\116\97\116\116\114\124\115\108\105\99\101\124\115\111\114\116\101\100\124\115\116\97\116\105\99\109\101\116\104\111\100\124\115\116\114\124\115\117\109\124\115\117\112\101\114\124\116\117\112\108\101\124\116\121\112\101\124\117\110\105\99\104\114\124\117\110\105\99\111\100\101\124\118\97\114\115\124\120\114\97\110\103\101\124\122\105\112\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\63\60\33\92\46\41\40\115\101\108\102\124\78\111\110\101\124\69\108\108\105\112\115\105\115\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\124\70\97\108\115\101\124\84\114\117\101\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\40\63\60\33\92\46\41\40\65\114\105\116\104\109\101\116\105\99\69\114\114\111\114\124\65\115\115\101\114\116\105\111\110\69\114\114\111\114\124\65\116\116\114\105\98\117\116\101\69\114\114\111\114\124\66\97\115\101\69\120\99\101\112\116\105\111\110\124\68\101\112\114\101\99\97\116\105\111\110\87\97\114\110\105\110\103\124\69\79\70\69\114\114\111\114\124\69\110\118\105\114\111\110\109\101\110\116\69\114\114\111\114\124\69\120\99\101\112\116\105\111\110\124\70\108\111\97\116\105\110\103\80\111\105\110\116\69\114\114\111\114\124\70\117\116\117\114\101\87\97\114\110\105\110\103\124\71\101\110\101\114\97\116\111\114\69\120\105\116\124\73\79\69\114\114\111\114\124\73\109\112\111\114\116\69\114\114\111\114\124\73\109\112\111\114\116\87\97\114\110\105\110\103\124\73\110\100\101\110\116\97\116\105\111\110\69\114\114\111\114\124\73\110\100\101\120\69\114\114\111\114\124\75\101\121\69\114\114\111\114\124\75\101\121\98\111\97\114\100\73\110\116\101\114\114\117\112\116\124\76\111\111\107\117\112\69\114\114\111\114\124\77\101\109\111\114\121\69\114\114\111\114\124\78\97\109\101\69\114\114\111\114\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\69\114\114\111\114\124\79\83\69\114\114\111\114\124\79\118\101\114\102\108\111\119\69\114\114\111\114\124\79\118\101\114\102\108\111\119\87\97\114\110\105\110\103\124\80\101\110\100\105\110\103\68\101\112\114\101\99\97\116\105\111\110\87\97\114\110\105\110\103\124\82\101\102\101\114\101\110\99\101\69\114\114\111\114\124\82\117\110\116\105\109\101\69\114\114\111\114\124\82\117\110\116\105\109\101\87\97\114\110\105\110\103\124\83\116\97\110\100\97\114\100\69\114\114\111\114\124\83\116\111\112\73\116\101\114\97\116\105\111\110\124\83\121\110\116\97\120\69\114\114\111\114\124\83\121\110\116\97\120\87\97\114\110\105\110\103\124\83\121\115\116\101\109\69\114\114\111\114\124\83\121\115\116\101\109\69\120\105\116\124\84\97\98\69\114\114\111\114\124\84\121\112\101\69\114\114\111\114\124\85\110\98\111\117\110\100\76\111\99\97\108\69\114\114\111\114\124\85\110\105\99\111\100\101\68\101\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\69\110\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\84\114\97\110\115\108\97\116\101\69\114\114\111\114\124\85\110\105\99\111\100\101\87\97\114\110\105\110\103\124\85\115\101\114\87\97\114\110\105\110\103\124\86\97\108\117\101\69\114\114\111\114\124\86\77\83\69\114\114\111\114\124\87\97\114\110\105\110\103\124\87\105\110\100\111\119\115\69\114\114\111\114\124\90\101\114\111\68\105\118\105\115\105\111\110\69\114\114\111\114\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\120\99\101\112\116\105\111\110")+    [ tok "(?<!\\.)(__import__|abs|all|any|apply|basestring|bin|bool|buffer|bytearray|bytes|callable|chr|classmethod|cmp|coerce|compile|complex|delattr|dict|dir|divmod|enumerate|eval|execfile|exit|file|filter|float|frozenset|getattr|globals|hasattr|hash|hex|id|input|int|intern|isinstance|issubclass|iter|len|list|locals|long|map|max|min|next|object|oct|open|ord|pow|property|range|raw_input|reduce|reload|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|unichr|unicode|vars|xrange|zip)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?<!\\.)(self|None|Ellipsis|NotImplemented|False|True)\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tok "(?<!\\.)(ArithmeticError|AssertionError|AttributeError|BaseException|DeprecationWarning|EOFError|EnvironmentError|Exception|FloatingPointError|FutureWarning|GeneratorExit|IOError|ImportError|ImportWarning|IndentationError|IndexError|KeyError|KeyboardInterrupt|LookupError|MemoryError|NameError|NotImplemented|NotImplementedError|OSError|OverflowError|OverflowWarning|PendingDeprecationWarning|ReferenceError|RuntimeError|RuntimeWarning|StandardError|StopIteration|SyntaxError|SyntaxWarning|SystemError|SystemExit|TabError|TypeError|UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|UnicodeError|UnicodeTranslateError|UnicodeWarning|UserWarning|ValueError|VMSError|Warning|WindowsError|ZeroDivisionError)\\b" (Arbitrary "Name" :. Arbitrary "Exception")     ]  name' :: TokenMatcher name' =-    [ tok "\64\91\97\45\122\65\45\90\48\45\57\95\46\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")+    [ tok "@[a-zA-Z0-9_.]+" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")     ]  dqs' :: TokenMatcher dqs' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\34\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\\"|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  sqs' :: TokenMatcher sqs' =-    [ tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\39\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\'|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  tdqs' :: TokenMatcher tdqs' =-    [ tokNext "\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  backtick' :: TokenMatcher backtick' =-    [ tok "\96\46\42\63\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107")+    [ tok "`.*?`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick")     ]  funcname' :: TokenMatcher funcname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Function") Pop     ]  classname' :: TokenMatcher classname' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  stringescape' :: TokenMatcher stringescape' =-    [ tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\92\110\124\78\123\46\42\63\125\124\117\91\97\45\102\65\45\70\48\45\57\93\123\52\125\124\85\91\97\45\102\65\45\70\48\45\57\93\123\56\125\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tok "\\\\([\\\\abfnrtv\"\\']|\\n|N{.*?}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     ]  numbers' :: TokenMatcher numbers' =-    [ tok "\40\92\100\43\92\46\92\100\42\124\92\100\42\92\46\92\100\43\41\40\91\101\69\93\91\43\45\93\63\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\100\43\91\101\69\93\91\43\45\93\63\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\120\88\93\91\97\45\102\65\45\70\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\92\100\43\76" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114" :. Arbitrary "\76\111\110\103")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "(\\d+\\.\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+[eE][+-]?[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[xX][a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+L" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer" :. Arbitrary "Long")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ]  keywords' :: TokenMatcher keywords' =-    [ tok "\40\97\115\115\101\114\116\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\100\101\108\124\101\108\105\102\124\101\108\115\101\124\101\120\99\101\112\116\124\101\120\101\99\124\102\105\110\97\108\108\121\124\102\111\114\124\103\108\111\98\97\108\124\105\102\124\108\97\109\98\100\97\124\112\97\115\115\124\112\114\105\110\116\124\114\97\105\115\101\124\114\101\116\117\114\110\124\116\114\121\124\119\104\105\108\101\124\121\105\101\108\100\124\97\115\124\119\105\116\104\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "(assert|break|continue|del|elif|else|except|exec|finally|for|global|if|lambda|pass|print|raise|return|try|while|yield|as|with)\\b" (Arbitrary "Keyword")     ]  import' :: TokenMatcher import' =-    [ tok "\40\40\63\58\92\115\124\92\92\92\115\41\43\41\40\97\115\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")])-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tok "\40\92\115\42\41\40\44\41\40\92\115\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116")])-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    [ tok "((?:\\s|\\\\\\s)+)(as)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")])+    , tok "[a-zA-Z_][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tok "(\\s*)(,)(\\s*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text")])+    , tokNext "" (Arbitrary "Text") Pop     ]  nl' :: TokenMatcher nl' =-    [ tok "\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "\\n" (Arbitrary "Literal" :. Arbitrary "String")     ]  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\94\40\92\115\42\41\40\34\34\34\40\63\58\46\124\92\110\41\42\63\34\34\34\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")])-    , tok "\94\40\92\115\42\41\40\39\39\39\40\63\58\46\124\92\110\41\42\63\39\39\39\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")])-    , tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\91\93\123\125\58\40\41\44\59\91\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\92" (Arbitrary "\84\101\120\116")-    , tok "\40\105\110\124\105\115\124\97\110\100\124\111\114\124\110\111\116\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\33\61\124\61\61\124\60\60\124\62\62\124\91\45\126\43\47\42\37\61\60\62\38\94\124\46\93" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "\\n" (Arbitrary "Text")+    , tok "^(\\s*)([rRuU]{,2}\"\"\"(?:.|\\n)*?\"\"\")" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")])+    , tok "^(\\s*)([rRuU]{,2}'''(?:.|\\n)*?''')" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")])+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "#.*$" (Arbitrary "Comment")+    , tok "[]{}:(),;[]" (Arbitrary "Punctuation")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "\\\\" (Arbitrary "Text")+    , tok "(in|is|and|or|not)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "!=|==|<<|>>|[-\126+/*%=<>&^|.]" (Arbitrary "Operator")     , anyOf keywords'-    , tokNext "\40\100\101\102\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo funcname')-    , tokNext "\40\99\108\97\115\115\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tokNext "\40\102\114\111\109\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo fromimport')-    , tokNext "\40\105\109\112\111\114\116\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo import')+    , tokNext "(def)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo funcname')+    , tokNext "(class)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tokNext "(from)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo fromimport')+    , tokNext "(import)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo import')     , anyOf builtins'     , anyOf backtick'-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tdqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tsqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo dqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo sqs')-    , tokNext "\91\117\85\93\63\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tdqs'])-    , tokNext "\91\117\85\93\63\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tsqs'])-    , tokNext "\91\117\85\93\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', dqs'])-    , tokNext "\91\117\85\93\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', sqs'])+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tdqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])'''" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tsqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo dqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo sqs')+    , tokNext "[uU]?\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tdqs'])+    , tokNext "[uU]?'''" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tsqs'])+    , tokNext "[uU]?\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', dqs'])+    , tokNext "[uU]?'" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', sqs'])     , anyOf name'     , anyOf numbers'     ]  strings' :: TokenMatcher strings' =-    [ tok "\37\40\92\40\91\97\45\122\65\45\90\48\45\57\95\93\43\92\41\41\63\91\45\35\48\32\43\93\42\40\91\48\45\57\93\43\124\91\42\93\41\63\40\92\46\40\91\48\45\57\93\43\124\91\42\93\41\41\63\91\104\108\76\93\63\91\100\105\111\117\120\88\101\69\102\70\103\71\99\114\115\37\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\73\110\116\101\114\112\111\108")-    , tok "\91\94\92\92\92\39\34\37\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\92\39\34\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\37" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "%(\\([a-zA-Z0-9_]+\\))?[-#0 +]*([0-9]+|[*])?(\\.([0-9]+|[*]))?[hlL]?[diouxXeEfFgGcrs%]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol")+    , tok "[^\\\\\\'\"%\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[\\'\"\\\\]" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "%" (Arbitrary "Literal" :. Arbitrary "String")     ]  fromimport' :: TokenMatcher fromimport' =-    [ tokNext "\40\40\63\58\92\115\124\92\92\92\115\41\43\41\40\105\109\112\111\114\116\41\92\98" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101")]) Pop-    , tok "\91\97\45\122\65\45\90\95\46\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")+    [ tokNext "((?:\\s|\\\\\\s)+)(import)\\b" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword" :. Arbitrary "Namespace")]) Pop+    , tok "[a-zA-Z_.][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace")     ] 
src/Text/Highlighter/Lexers/Python3.hs view
@@ -5,25 +5,25 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\121\116\104\111\110\32\51"-    , lAliases = ["\112\121\116\104\111\110\51", "\112\121\51"]+    { lName = "Python 3"+    , lAliases = ["python3", "py3"]     , lExtensions = []-    , lMimetypes = ["\116\101\120\116\47\120\45\112\121\116\104\111\110\51", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\112\121\116\104\111\110\51"]+    , lMimetypes = ["text/x-python3", "application/x-python3"]     , lStart = root'     , lFlags = [multiline, utf8]     }  tsqs' :: TokenMatcher tsqs' =-    [ tokNext "\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "'''" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  sqs' :: TokenMatcher sqs' =-    [ tokNext "\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\39\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\'|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ] @@ -34,116 +34,116 @@  classname' :: TokenMatcher classname' =-    [ tokNext "\91\65\45\90\95\97\45\122\170\181\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1488\45\1514\1520\45\1522\1569\45\1594\1600\1601\45\1610\1646\45\1647\1649\45\1747\1749\1765\45\1766\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1901\1920\45\1957\1969\2308\45\2361\2365\2384\2392\45\2401\2429\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2493\2510\2524\45\2525\2527\45\2529\2544\45\2545\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2649\45\2652\2654\2674\45\2676\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2749\2768\2784\45\2785\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2877\2908\45\2909\2911\45\2913\2929\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3168\45\3169\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3261\3294\3296\45\3297\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3424\45\3425\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3585\45\3632\3634\3648\45\3653\3654\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3762\3773\3776\45\3780\3782\3804\45\3805\3840\3904\45\3911\3913\45\3946\3976\45\3979\4096\45\4129\4131\45\4135\4137\45\4138\4176\45\4181\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5920\45\5937\5952\45\5969\5984\45\5996\5998\45\6000\6016\45\6067\6103\6108\6176\45\6210\6211\6212\45\6263\6272\45\6312\6400\45\6428\6480\45\6509\6512\45\6516\6528\45\6569\6593\45\6599\6656\45\6678\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8305\8319\8336\45\8340\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65137\65139\65143\65145\65147\65149\65151\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65392\65393\45\65437\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\91\48\45\57\65\45\90\95\97\45\122\170\181\183\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\768\45\879\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1155\45\1158\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1425\45\1465\1467\45\1469\1471\1473\45\1474\1476\45\1477\1479\1488\45\1514\1520\45\1522\1552\45\1557\1569\45\1594\1600\1601\45\1610\1611\45\1630\1632\45\1641\1646\45\1647\1648\1649\45\1747\1749\1750\45\1756\1759\45\1764\1765\45\1766\1767\45\1768\1770\45\1773\1774\45\1775\1776\45\1785\1786\45\1788\1791\1808\1809\1810\45\1839\1840\45\1866\1869\45\1901\1920\45\1957\1958\45\1968\1969\2305\45\2306\2307\2308\45\2361\2364\2365\2366\45\2368\2369\45\2376\2377\45\2380\2381\2384\2385\45\2388\2392\45\2401\2402\45\2403\2406\45\2415\2429\2433\2434\45\2435\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2492\2493\2494\45\2496\2497\45\2500\2503\45\2504\2507\45\2508\2509\2510\2519\2524\45\2525\2527\45\2529\2530\45\2531\2534\45\2543\2544\45\2545\2561\45\2562\2563\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2620\2622\45\2624\2625\45\2626\2631\45\2632\2635\45\2637\2649\45\2652\2654\2662\45\2671\2672\45\2673\2674\45\2676\2689\45\2690\2691\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2748\2749\2750\45\2752\2753\45\2757\2759\45\2760\2761\2763\45\2764\2765\2768\2784\45\2785\2786\45\2787\2790\45\2799\2817\2818\45\2819\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2876\2877\2878\2879\2880\2881\45\2883\2887\45\2888\2891\45\2892\2893\2902\2903\2908\45\2909\2911\45\2913\2918\45\2927\2929\2946\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3006\45\3007\3008\3009\45\3010\3014\45\3016\3018\45\3020\3021\3031\3046\45\3055\3073\45\3075\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3134\45\3136\3137\45\3140\3142\45\3144\3146\45\3149\3157\45\3158\3168\45\3169\3174\45\3183\3202\45\3203\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3260\3261\3262\3263\3264\45\3268\3270\3271\45\3272\3274\45\3275\3276\45\3277\3285\45\3286\3294\3296\45\3297\3302\45\3311\3330\45\3331\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3390\45\3392\3393\45\3395\3398\45\3400\3402\45\3404\3405\3415\3424\45\3425\3430\45\3439\3458\45\3459\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3530\3535\45\3537\3538\45\3540\3542\3544\45\3551\3570\45\3571\3585\45\3632\3633\3634\45\3635\3636\45\3642\3648\45\3653\3654\3655\45\3662\3664\45\3673\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3761\3762\45\3763\3764\45\3769\3771\45\3772\3773\3776\45\3780\3782\3784\45\3789\3792\45\3801\3804\45\3805\3840\3864\45\3865\3872\45\3881\3893\3895\3897\3902\45\3903\3904\45\3911\3913\45\3946\3953\45\3966\3967\3968\45\3972\3974\45\3975\3976\45\3979\3984\45\3991\3993\45\4028\4038\4096\45\4129\4131\45\4135\4137\45\4138\4140\4141\45\4144\4145\4146\4150\45\4151\4152\4153\4160\45\4169\4176\45\4181\4182\45\4183\4184\45\4185\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4959\4969\45\4977\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5906\45\5908\5920\45\5937\5938\45\5940\5952\45\5969\5970\45\5971\5984\45\5996\5998\45\6000\6002\45\6003\6016\45\6067\6070\6071\45\6077\6078\45\6085\6086\6087\45\6088\6089\45\6099\6103\6108\6109\6112\45\6121\6155\45\6157\6160\45\6169\6176\45\6210\6211\6212\45\6263\6272\45\6312\6313\6400\45\6428\6432\45\6434\6435\45\6438\6439\45\6440\6441\45\6443\6448\45\6449\6450\6451\45\6456\6457\45\6459\6470\45\6479\6480\45\6509\6512\45\6516\6528\45\6569\6576\45\6592\6593\45\6599\6600\45\6601\6608\45\6617\6656\45\6678\6679\45\6680\6681\45\6683\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7616\45\7619\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8255\45\8256\8276\8305\8319\8336\45\8340\8400\45\8412\8417\8421\45\8427\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12330\45\12335\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12441\45\12442\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43010\43011\45\43013\43014\43015\45\43018\43019\43020\45\43042\43043\45\43044\43045\45\43046\43047\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64286\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65024\45\65039\65056\45\65059\65075\45\65076\65101\45\65103\65137\65139\65143\65145\65147\65149\65151\45\65276\65296\45\65305\65313\45\65338\65343\65345\45\65370\65382\45\65391\65392\65393\45\65437\65438\45\65439\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[A-Z_a-z\170\181\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1488-\1514\1520-\1522\1569-\1594\1600\1601-\1610\1646-\1647\1649-\1747\1749\1765-\1766\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1901\1920-\1957\1969\2308-\2361\2365\2384\2392-\2401\2429\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2493\2510\2524-\2525\2527-\2529\2544-\2545\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2649-\2652\2654\2674-\2676\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2749\2768\2784-\2785\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2877\2908-\2909\2911-\2913\2929\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3168-\3169\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3261\3294\3296-\3297\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3424-\3425\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3585-\3632\3634\3648-\3653\3654\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3762\3773\3776-\3780\3782\3804-\3805\3840\3904-\3911\3913-\3946\3976-\3979\4096-\4129\4131-\4135\4137-\4138\4176-\4181\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5920-\5937\5952-\5969\5984-\5996\5998-\6000\6016-\6067\6103\6108\6176-\6210\6211\6212-\6263\6272-\6312\6400-\6428\6480-\6509\6512-\6516\6528-\6569\6593-\6599\6656-\6678\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8305\8319\8336-\8340\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12337-\12341\12344-\12346\12347\12348\12353-\12438\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43011-\43013\43015-\43018\43020-\43042\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65137\65139\65143\65145\65147\65149\65151-\65276\65313-\65338\65345-\65370\65382-\65391\65392\65393-\65437\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500][0-9A-Z_a-z\170\181\183\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\768-\879\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1155-\1158\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1425-\1465\1467-\1469\1471\1473-\1474\1476-\1477\1479\1488-\1514\1520-\1522\1552-\1557\1569-\1594\1600\1601-\1610\1611-\1630\1632-\1641\1646-\1647\1648\1649-\1747\1749\1750-\1756\1759-\1764\1765-\1766\1767-\1768\1770-\1773\1774-\1775\1776-\1785\1786-\1788\1791\1808\1809\1810-\1839\1840-\1866\1869-\1901\1920-\1957\1958-\1968\1969\2305-\2306\2307\2308-\2361\2364\2365\2366-\2368\2369-\2376\2377-\2380\2381\2384\2385-\2388\2392-\2401\2402-\2403\2406-\2415\2429\2433\2434-\2435\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2492\2493\2494-\2496\2497-\2500\2503-\2504\2507-\2508\2509\2510\2519\2524-\2525\2527-\2529\2530-\2531\2534-\2543\2544-\2545\2561-\2562\2563\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2620\2622-\2624\2625-\2626\2631-\2632\2635-\2637\2649-\2652\2654\2662-\2671\2672-\2673\2674-\2676\2689-\2690\2691\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2748\2749\2750-\2752\2753-\2757\2759-\2760\2761\2763-\2764\2765\2768\2784-\2785\2786-\2787\2790-\2799\2817\2818-\2819\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2876\2877\2878\2879\2880\2881-\2883\2887-\2888\2891-\2892\2893\2902\2903\2908-\2909\2911-\2913\2918-\2927\2929\2946\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3006-\3007\3008\3009-\3010\3014-\3016\3018-\3020\3021\3031\3046-\3055\3073-\3075\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3134-\3136\3137-\3140\3142-\3144\3146-\3149\3157-\3158\3168-\3169\3174-\3183\3202-\3203\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3260\3261\3262\3263\3264-\3268\3270\3271-\3272\3274-\3275\3276-\3277\3285-\3286\3294\3296-\3297\3302-\3311\3330-\3331\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3390-\3392\3393-\3395\3398-\3400\3402-\3404\3405\3415\3424-\3425\3430-\3439\3458-\3459\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3530\3535-\3537\3538-\3540\3542\3544-\3551\3570-\3571\3585-\3632\3633\3634-\3635\3636-\3642\3648-\3653\3654\3655-\3662\3664-\3673\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3761\3762-\3763\3764-\3769\3771-\3772\3773\3776-\3780\3782\3784-\3789\3792-\3801\3804-\3805\3840\3864-\3865\3872-\3881\3893\3895\3897\3902-\3903\3904-\3911\3913-\3946\3953-\3966\3967\3968-\3972\3974-\3975\3976-\3979\3984-\3991\3993-\4028\4038\4096-\4129\4131-\4135\4137-\4138\4140\4141-\4144\4145\4146\4150-\4151\4152\4153\4160-\4169\4176-\4181\4182-\4183\4184-\4185\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4959\4969-\4977\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5906-\5908\5920-\5937\5938-\5940\5952-\5969\5970-\5971\5984-\5996\5998-\6000\6002-\6003\6016-\6067\6070\6071-\6077\6078-\6085\6086\6087-\6088\6089-\6099\6103\6108\6109\6112-\6121\6155-\6157\6160-\6169\6176-\6210\6211\6212-\6263\6272-\6312\6313\6400-\6428\6432-\6434\6435-\6438\6439-\6440\6441-\6443\6448-\6449\6450\6451-\6456\6457-\6459\6470-\6479\6480-\6509\6512-\6516\6528-\6569\6576-\6592\6593-\6599\6600-\6601\6608-\6617\6656-\6678\6679-\6680\6681-\6683\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7616-\7619\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8255-\8256\8276\8305\8319\8336-\8340\8400-\8412\8417\8421-\8427\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12330-\12335\12337-\12341\12344-\12346\12347\12348\12353-\12438\12441-\12442\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43010\43011-\43013\43014\43015-\43018\43019\43020-\43042\43043-\43044\43045-\43046\43047\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64286\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65024-\65039\65056-\65059\65075-\65076\65101-\65103\65137\65139\65143\65145\65147\65149\65151-\65276\65296-\65305\65313-\65338\65343\65345-\65370\65382-\65391\65392\65393-\65437\65438-\65439\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  stringescape' :: TokenMatcher stringescape' =-    [ tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\92\110\124\78\123\46\42\63\125\124\117\91\97\45\102\65\45\70\48\45\57\93\123\52\125\124\85\91\97\45\102\65\45\70\48\45\57\93\123\56\125\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tok "\\\\([\\\\abfnrtv\"\\']|\\n|N{.*?}|u[a-fA-F0-9]{4}|U[a-fA-F0-9]{8}|x[a-fA-F0-9]{2}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     ]  numbers' :: TokenMatcher numbers' =-    [ tok "\40\92\100\43\92\46\92\100\42\124\92\100\42\92\46\92\100\43\41\40\91\101\69\93\91\43\45\93\63\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\91\111\79\93\91\48\45\55\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\48\91\98\66\93\91\48\49\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\66\105\110")-    , tok "\48\91\120\88\93\91\97\45\102\65\45\70\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "(\\d+\\.\\d*|\\d*\\.\\d+)([eE][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0[oO][0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "0[bB][01]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Bin")+    , tok "0[xX][a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ]  keywords' :: TokenMatcher keywords' =-    [ tok "\40\97\115\115\101\114\116\124\98\114\101\97\107\124\99\111\110\116\105\110\117\101\124\100\101\108\124\101\108\105\102\124\101\108\115\101\124\101\120\99\101\112\116\124\102\105\110\97\108\108\121\124\102\111\114\124\103\108\111\98\97\108\124\105\102\124\108\97\109\98\100\97\124\112\97\115\115\124\114\97\105\115\101\124\114\101\116\117\114\110\124\116\114\121\124\119\104\105\108\101\124\121\105\101\108\100\124\97\115\124\119\105\116\104\124\84\114\117\101\124\70\97\108\115\101\124\78\111\110\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "(assert|break|continue|del|elif|else|except|finally|for|global|if|lambda|pass|raise|return|try|while|yield|as|with|True|False|None)\\b" (Arbitrary "Keyword")     ]  nl' :: TokenMatcher nl' =-    [ tok "\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "\\n" (Arbitrary "Literal" :. Arbitrary "String")     ]  builtins' :: TokenMatcher builtins' =-    [ tok "\40\63\60\33\92\46\41\40\95\95\105\109\112\111\114\116\95\95\124\97\98\115\124\97\108\108\124\97\110\121\124\98\105\110\124\98\111\111\108\124\98\121\116\101\97\114\114\97\121\124\98\121\116\101\115\124\99\104\114\124\99\108\97\115\115\109\101\116\104\111\100\124\99\109\112\124\99\111\109\112\105\108\101\124\99\111\109\112\108\101\120\124\100\101\108\97\116\116\114\124\100\105\99\116\124\100\105\114\124\100\105\118\109\111\100\124\101\110\117\109\101\114\97\116\101\124\101\118\97\108\124\102\105\108\116\101\114\124\102\108\111\97\116\124\102\111\114\109\97\116\124\102\114\111\122\101\110\115\101\116\124\103\101\116\97\116\116\114\124\103\108\111\98\97\108\115\124\104\97\115\97\116\116\114\124\104\97\115\104\124\104\101\120\124\105\100\124\105\110\112\117\116\124\105\110\116\124\105\115\105\110\115\116\97\110\99\101\124\105\115\115\117\98\99\108\97\115\115\124\105\116\101\114\124\108\101\110\124\108\105\115\116\124\108\111\99\97\108\115\124\109\97\112\124\109\97\120\124\109\101\109\111\114\121\118\105\101\119\124\109\105\110\124\110\101\120\116\124\111\98\106\101\99\116\124\111\99\116\124\111\112\101\110\124\111\114\100\124\112\111\119\124\112\114\105\110\116\124\112\114\111\112\101\114\116\121\124\114\97\110\103\101\124\114\101\112\114\124\114\101\118\101\114\115\101\100\124\114\111\117\110\100\124\115\101\116\124\115\101\116\97\116\116\114\124\115\108\105\99\101\124\115\111\114\116\101\100\124\115\116\97\116\105\99\109\101\116\104\111\100\124\115\116\114\124\115\117\109\124\115\117\112\101\114\124\116\117\112\108\101\124\116\121\112\101\124\118\97\114\115\124\122\105\112\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\63\60\33\92\46\41\40\115\101\108\102\124\69\108\108\105\112\115\105\115\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111")-    , tok "\40\63\60\33\92\46\41\40\65\114\105\116\104\109\101\116\105\99\69\114\114\111\114\124\65\115\115\101\114\116\105\111\110\69\114\114\111\114\124\65\116\116\114\105\98\117\116\101\69\114\114\111\114\124\66\97\115\101\69\120\99\101\112\116\105\111\110\124\66\117\102\102\101\114\69\114\114\111\114\124\66\121\116\101\115\87\97\114\110\105\110\103\124\68\101\112\114\101\99\97\116\105\111\110\87\97\114\110\105\110\103\124\69\79\70\69\114\114\111\114\124\69\110\118\105\114\111\110\109\101\110\116\69\114\114\111\114\124\69\120\99\101\112\116\105\111\110\124\70\108\111\97\116\105\110\103\80\111\105\110\116\69\114\114\111\114\124\70\117\116\117\114\101\87\97\114\110\105\110\103\124\71\101\110\101\114\97\116\111\114\69\120\105\116\124\73\79\69\114\114\111\114\124\73\109\112\111\114\116\69\114\114\111\114\124\73\109\112\111\114\116\87\97\114\110\105\110\103\124\73\110\100\101\110\116\97\116\105\111\110\69\114\114\111\114\124\73\110\100\101\120\69\114\114\111\114\124\75\101\121\69\114\114\111\114\124\75\101\121\98\111\97\114\100\73\110\116\101\114\114\117\112\116\124\76\111\111\107\117\112\69\114\114\111\114\124\77\101\109\111\114\121\69\114\114\111\114\124\78\97\109\101\69\114\114\111\114\124\78\111\116\73\109\112\108\101\109\101\110\116\101\100\69\114\114\111\114\124\79\83\69\114\114\111\114\124\79\118\101\114\102\108\111\119\69\114\114\111\114\124\80\101\110\100\105\110\103\68\101\112\114\101\99\97\116\105\111\110\87\97\114\110\105\110\103\124\82\101\102\101\114\101\110\99\101\69\114\114\111\114\124\82\117\110\116\105\109\101\69\114\114\111\114\124\82\117\110\116\105\109\101\87\97\114\110\105\110\103\124\83\116\111\112\73\116\101\114\97\116\105\111\110\124\83\121\110\116\97\120\69\114\114\111\114\124\83\121\110\116\97\120\87\97\114\110\105\110\103\124\83\121\115\116\101\109\69\114\114\111\114\124\83\121\115\116\101\109\69\120\105\116\124\84\97\98\69\114\114\111\114\124\84\121\112\101\69\114\114\111\114\124\85\110\98\111\117\110\100\76\111\99\97\108\69\114\114\111\114\124\85\110\105\99\111\100\101\68\101\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\69\110\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\69\114\114\111\114\124\85\110\105\99\111\100\101\84\114\97\110\115\108\97\116\101\69\114\114\111\114\124\85\110\105\99\111\100\101\87\97\114\110\105\110\103\124\85\115\101\114\87\97\114\110\105\110\103\124\86\97\108\117\101\69\114\114\111\114\124\86\77\83\69\114\114\111\114\124\87\97\114\110\105\110\103\124\87\105\110\100\111\119\115\69\114\114\111\114\124\90\101\114\111\68\105\118\105\115\105\111\110\69\114\114\111\114\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\120\99\101\112\116\105\111\110")+    [ tok "(?<!\\.)(__import__|abs|all|any|bin|bool|bytearray|bytes|chr|classmethod|cmp|compile|complex|delattr|dict|dir|divmod|enumerate|eval|filter|float|format|frozenset|getattr|globals|hasattr|hash|hex|id|input|int|isinstance|issubclass|iter|len|list|locals|map|max|memoryview|min|next|object|oct|open|ord|pow|print|property|range|repr|reversed|round|set|setattr|slice|sorted|staticmethod|str|sum|super|tuple|type|vars|zip)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?<!\\.)(self|Ellipsis|NotImplemented)\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo")+    , tok "(?<!\\.)(ArithmeticError|AssertionError|AttributeError|BaseException|BufferError|BytesWarning|DeprecationWarning|EOFError|EnvironmentError|Exception|FloatingPointError|FutureWarning|GeneratorExit|IOError|ImportError|ImportWarning|IndentationError|IndexError|KeyError|KeyboardInterrupt|LookupError|MemoryError|NameError|NotImplementedError|OSError|OverflowError|PendingDeprecationWarning|ReferenceError|RuntimeError|RuntimeWarning|StopIteration|SyntaxError|SyntaxWarning|SystemError|SystemExit|TabError|TypeError|UnboundLocalError|UnicodeDecodeError|UnicodeEncodeError|UnicodeError|UnicodeTranslateError|UnicodeWarning|UserWarning|ValueError|VMSError|Warning|WindowsError|ZeroDivisionError)\\b" (Arbitrary "Name" :. Arbitrary "Exception")     ]  name' :: TokenMatcher name' =-    [ tok "\64\91\97\45\122\65\45\90\48\45\57\95\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\91\65\45\90\95\97\45\122\170\181\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1488\45\1514\1520\45\1522\1569\45\1594\1600\1601\45\1610\1646\45\1647\1649\45\1747\1749\1765\45\1766\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1901\1920\45\1957\1969\2308\45\2361\2365\2384\2392\45\2401\2429\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2493\2510\2524\45\2525\2527\45\2529\2544\45\2545\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2649\45\2652\2654\2674\45\2676\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2749\2768\2784\45\2785\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2877\2908\45\2909\2911\45\2913\2929\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3168\45\3169\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3261\3294\3296\45\3297\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3424\45\3425\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3585\45\3632\3634\3648\45\3653\3654\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3762\3773\3776\45\3780\3782\3804\45\3805\3840\3904\45\3911\3913\45\3946\3976\45\3979\4096\45\4129\4131\45\4135\4137\45\4138\4176\45\4181\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5920\45\5937\5952\45\5969\5984\45\5996\5998\45\6000\6016\45\6067\6103\6108\6176\45\6210\6211\6212\45\6263\6272\45\6312\6400\45\6428\6480\45\6509\6512\45\6516\6528\45\6569\6593\45\6599\6656\45\6678\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8305\8319\8336\45\8340\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65137\65139\65143\65145\65147\65149\65151\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65392\65393\45\65437\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\91\48\45\57\65\45\90\95\97\45\122\170\181\183\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\768\45\879\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1155\45\1158\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1425\45\1465\1467\45\1469\1471\1473\45\1474\1476\45\1477\1479\1488\45\1514\1520\45\1522\1552\45\1557\1569\45\1594\1600\1601\45\1610\1611\45\1630\1632\45\1641\1646\45\1647\1648\1649\45\1747\1749\1750\45\1756\1759\45\1764\1765\45\1766\1767\45\1768\1770\45\1773\1774\45\1775\1776\45\1785\1786\45\1788\1791\1808\1809\1810\45\1839\1840\45\1866\1869\45\1901\1920\45\1957\1958\45\1968\1969\2305\45\2306\2307\2308\45\2361\2364\2365\2366\45\2368\2369\45\2376\2377\45\2380\2381\2384\2385\45\2388\2392\45\2401\2402\45\2403\2406\45\2415\2429\2433\2434\45\2435\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2492\2493\2494\45\2496\2497\45\2500\2503\45\2504\2507\45\2508\2509\2510\2519\2524\45\2525\2527\45\2529\2530\45\2531\2534\45\2543\2544\45\2545\2561\45\2562\2563\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2620\2622\45\2624\2625\45\2626\2631\45\2632\2635\45\2637\2649\45\2652\2654\2662\45\2671\2672\45\2673\2674\45\2676\2689\45\2690\2691\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2748\2749\2750\45\2752\2753\45\2757\2759\45\2760\2761\2763\45\2764\2765\2768\2784\45\2785\2786\45\2787\2790\45\2799\2817\2818\45\2819\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2876\2877\2878\2879\2880\2881\45\2883\2887\45\2888\2891\45\2892\2893\2902\2903\2908\45\2909\2911\45\2913\2918\45\2927\2929\2946\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3006\45\3007\3008\3009\45\3010\3014\45\3016\3018\45\3020\3021\3031\3046\45\3055\3073\45\3075\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3134\45\3136\3137\45\3140\3142\45\3144\3146\45\3149\3157\45\3158\3168\45\3169\3174\45\3183\3202\45\3203\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3260\3261\3262\3263\3264\45\3268\3270\3271\45\3272\3274\45\3275\3276\45\3277\3285\45\3286\3294\3296\45\3297\3302\45\3311\3330\45\3331\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3390\45\3392\3393\45\3395\3398\45\3400\3402\45\3404\3405\3415\3424\45\3425\3430\45\3439\3458\45\3459\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3530\3535\45\3537\3538\45\3540\3542\3544\45\3551\3570\45\3571\3585\45\3632\3633\3634\45\3635\3636\45\3642\3648\45\3653\3654\3655\45\3662\3664\45\3673\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3761\3762\45\3763\3764\45\3769\3771\45\3772\3773\3776\45\3780\3782\3784\45\3789\3792\45\3801\3804\45\3805\3840\3864\45\3865\3872\45\3881\3893\3895\3897\3902\45\3903\3904\45\3911\3913\45\3946\3953\45\3966\3967\3968\45\3972\3974\45\3975\3976\45\3979\3984\45\3991\3993\45\4028\4038\4096\45\4129\4131\45\4135\4137\45\4138\4140\4141\45\4144\4145\4146\4150\45\4151\4152\4153\4160\45\4169\4176\45\4181\4182\45\4183\4184\45\4185\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4959\4969\45\4977\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5906\45\5908\5920\45\5937\5938\45\5940\5952\45\5969\5970\45\5971\5984\45\5996\5998\45\6000\6002\45\6003\6016\45\6067\6070\6071\45\6077\6078\45\6085\6086\6087\45\6088\6089\45\6099\6103\6108\6109\6112\45\6121\6155\45\6157\6160\45\6169\6176\45\6210\6211\6212\45\6263\6272\45\6312\6313\6400\45\6428\6432\45\6434\6435\45\6438\6439\45\6440\6441\45\6443\6448\45\6449\6450\6451\45\6456\6457\45\6459\6470\45\6479\6480\45\6509\6512\45\6516\6528\45\6569\6576\45\6592\6593\45\6599\6600\45\6601\6608\45\6617\6656\45\6678\6679\45\6680\6681\45\6683\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7616\45\7619\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8255\45\8256\8276\8305\8319\8336\45\8340\8400\45\8412\8417\8421\45\8427\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12330\45\12335\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12441\45\12442\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43010\43011\45\43013\43014\43015\45\43018\43019\43020\45\43042\43043\45\43044\43045\45\43046\43047\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64286\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65024\45\65039\65056\45\65059\65075\45\65076\65101\45\65103\65137\65139\65143\65145\65147\65149\65151\45\65276\65296\45\65305\65313\45\65338\65343\65345\45\65370\65382\45\65391\65392\65393\45\65437\65438\45\65439\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\42" (Arbitrary "\78\97\109\101")+    [ tok "@[a-zA-Z0-9_]+" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "[A-Z_a-z\170\181\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1488-\1514\1520-\1522\1569-\1594\1600\1601-\1610\1646-\1647\1649-\1747\1749\1765-\1766\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1901\1920-\1957\1969\2308-\2361\2365\2384\2392-\2401\2429\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2493\2510\2524-\2525\2527-\2529\2544-\2545\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2649-\2652\2654\2674-\2676\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2749\2768\2784-\2785\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2877\2908-\2909\2911-\2913\2929\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3168-\3169\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3261\3294\3296-\3297\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3424-\3425\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3585-\3632\3634\3648-\3653\3654\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3762\3773\3776-\3780\3782\3804-\3805\3840\3904-\3911\3913-\3946\3976-\3979\4096-\4129\4131-\4135\4137-\4138\4176-\4181\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5920-\5937\5952-\5969\5984-\5996\5998-\6000\6016-\6067\6103\6108\6176-\6210\6211\6212-\6263\6272-\6312\6400-\6428\6480-\6509\6512-\6516\6528-\6569\6593-\6599\6656-\6678\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8305\8319\8336-\8340\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12337-\12341\12344-\12346\12347\12348\12353-\12438\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43011-\43013\43015-\43018\43020-\43042\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65137\65139\65143\65145\65147\65149\65151-\65276\65313-\65338\65345-\65370\65382-\65391\65392\65393-\65437\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500][0-9A-Z_a-z\170\181\183\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\768-\879\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1155-\1158\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1425-\1465\1467-\1469\1471\1473-\1474\1476-\1477\1479\1488-\1514\1520-\1522\1552-\1557\1569-\1594\1600\1601-\1610\1611-\1630\1632-\1641\1646-\1647\1648\1649-\1747\1749\1750-\1756\1759-\1764\1765-\1766\1767-\1768\1770-\1773\1774-\1775\1776-\1785\1786-\1788\1791\1808\1809\1810-\1839\1840-\1866\1869-\1901\1920-\1957\1958-\1968\1969\2305-\2306\2307\2308-\2361\2364\2365\2366-\2368\2369-\2376\2377-\2380\2381\2384\2385-\2388\2392-\2401\2402-\2403\2406-\2415\2429\2433\2434-\2435\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2492\2493\2494-\2496\2497-\2500\2503-\2504\2507-\2508\2509\2510\2519\2524-\2525\2527-\2529\2530-\2531\2534-\2543\2544-\2545\2561-\2562\2563\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2620\2622-\2624\2625-\2626\2631-\2632\2635-\2637\2649-\2652\2654\2662-\2671\2672-\2673\2674-\2676\2689-\2690\2691\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2748\2749\2750-\2752\2753-\2757\2759-\2760\2761\2763-\2764\2765\2768\2784-\2785\2786-\2787\2790-\2799\2817\2818-\2819\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2876\2877\2878\2879\2880\2881-\2883\2887-\2888\2891-\2892\2893\2902\2903\2908-\2909\2911-\2913\2918-\2927\2929\2946\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3006-\3007\3008\3009-\3010\3014-\3016\3018-\3020\3021\3031\3046-\3055\3073-\3075\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3134-\3136\3137-\3140\3142-\3144\3146-\3149\3157-\3158\3168-\3169\3174-\3183\3202-\3203\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3260\3261\3262\3263\3264-\3268\3270\3271-\3272\3274-\3275\3276-\3277\3285-\3286\3294\3296-\3297\3302-\3311\3330-\3331\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3390-\3392\3393-\3395\3398-\3400\3402-\3404\3405\3415\3424-\3425\3430-\3439\3458-\3459\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3530\3535-\3537\3538-\3540\3542\3544-\3551\3570-\3571\3585-\3632\3633\3634-\3635\3636-\3642\3648-\3653\3654\3655-\3662\3664-\3673\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3761\3762-\3763\3764-\3769\3771-\3772\3773\3776-\3780\3782\3784-\3789\3792-\3801\3804-\3805\3840\3864-\3865\3872-\3881\3893\3895\3897\3902-\3903\3904-\3911\3913-\3946\3953-\3966\3967\3968-\3972\3974-\3975\3976-\3979\3984-\3991\3993-\4028\4038\4096-\4129\4131-\4135\4137-\4138\4140\4141-\4144\4145\4146\4150-\4151\4152\4153\4160-\4169\4176-\4181\4182-\4183\4184-\4185\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4959\4969-\4977\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5906-\5908\5920-\5937\5938-\5940\5952-\5969\5970-\5971\5984-\5996\5998-\6000\6002-\6003\6016-\6067\6070\6071-\6077\6078-\6085\6086\6087-\6088\6089-\6099\6103\6108\6109\6112-\6121\6155-\6157\6160-\6169\6176-\6210\6211\6212-\6263\6272-\6312\6313\6400-\6428\6432-\6434\6435-\6438\6439-\6440\6441-\6443\6448-\6449\6450\6451-\6456\6457-\6459\6470-\6479\6480-\6509\6512-\6516\6528-\6569\6576-\6592\6593-\6599\6600-\6601\6608-\6617\6656-\6678\6679-\6680\6681-\6683\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7616-\7619\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8255-\8256\8276\8305\8319\8336-\8340\8400-\8412\8417\8421-\8427\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12330-\12335\12337-\12341\12344-\12346\12347\12348\12353-\12438\12441-\12442\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43010\43011-\43013\43014\43015-\43018\43019\43020-\43042\43043-\43044\43045-\43046\43047\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64286\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65024-\65039\65056-\65059\65075-\65076\65101-\65103\65137\65139\65143\65145\65147\65149\65151-\65276\65296-\65305\65313-\65338\65343\65345-\65370\65382-\65391\65392\65393-\65437\65438-\65439\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500]*" (Arbitrary "Name")     ]  dqs' :: TokenMatcher dqs' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\92\92\124\92\92\34\124\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\\\\\|\\\\\"|\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")     , anyOf strings'     ]  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\94\40\92\115\42\41\40\34\34\34\40\63\58\46\124\92\110\41\42\63\34\34\34\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")])-    , tok "\94\40\92\115\42\41\40\39\39\39\40\63\58\46\124\92\110\41\42\63\39\39\39\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\99")])-    , tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\91\93\123\125\58\40\41\44\59\91\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\92" (Arbitrary "\84\101\120\116")-    , tok "\40\105\110\124\105\115\124\97\110\100\124\111\114\124\110\111\116\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\33\61\124\61\61\124\60\60\124\62\62\124\91\45\126\43\47\42\37\61\60\62\38\94\124\46\93" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "\\n" (Arbitrary "Text")+    , tok "^(\\s*)([rRuU]{,2}\"\"\"(?:.|\\n)*?\"\"\")" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")])+    , tok "^(\\s*)([rRuU]{,2}'''(?:.|\\n)*?''')" (ByGroups [(Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Doc")])+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "#.*$" (Arbitrary "Comment")+    , tok "[]{}:(),;[]" (Arbitrary "Punctuation")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "\\\\" (Arbitrary "Text")+    , tok "(in|is|and|or|not)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "!=|==|<<|>>|[-\126+/*%=<>&^|.]" (Arbitrary "Operator")     , anyOf keywords'-    , tokNext "\40\100\101\102\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo funcname')-    , tokNext "\40\99\108\97\115\115\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tokNext "\40\102\114\111\109\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo fromimport')-    , tokNext "\40\105\109\112\111\114\116\41\40\40\63\58\92\115\124\92\92\92\115\41\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo import')+    , tokNext "(def)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo funcname')+    , tokNext "(class)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tokNext "(from)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo fromimport')+    , tokNext "(import)((?:\\s|\\\\\\s)+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo import')     , anyOf builtins'     , anyOf backtick'-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tdqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo tsqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo dqs')-    , tokNext "\40\63\58\91\114\82\93\124\91\117\85\93\91\114\82\93\124\91\114\82\93\91\117\85\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo sqs')-    , tokNext "\91\117\85\93\63\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tdqs'])-    , tokNext "\91\117\85\93\63\39\39\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', tsqs'])-    , tokNext "\91\117\85\93\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', dqs'])-    , tokNext "\91\117\85\93\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (Combined [stringescape', sqs'])+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tdqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])'''" (Arbitrary "Literal" :. Arbitrary "String") (GoTo tsqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo dqs')+    , tokNext "(?:[rR]|[uU][rR]|[rR][uU])'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo sqs')+    , tokNext "[uU]?\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tdqs'])+    , tokNext "[uU]?'''" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', tsqs'])+    , tokNext "[uU]?\"" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', dqs'])+    , tokNext "[uU]?'" (Arbitrary "Literal" :. Arbitrary "String") (Combined [stringescape', sqs'])     , anyOf name'     , anyOf numbers'     ]  funcname' :: TokenMatcher funcname' =-    [ tokNext "\91\65\45\90\95\97\45\122\170\181\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1488\45\1514\1520\45\1522\1569\45\1594\1600\1601\45\1610\1646\45\1647\1649\45\1747\1749\1765\45\1766\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1901\1920\45\1957\1969\2308\45\2361\2365\2384\2392\45\2401\2429\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2493\2510\2524\45\2525\2527\45\2529\2544\45\2545\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2649\45\2652\2654\2674\45\2676\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2749\2768\2784\45\2785\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2877\2908\45\2909\2911\45\2913\2929\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3168\45\3169\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3261\3294\3296\45\3297\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3424\45\3425\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3585\45\3632\3634\3648\45\3653\3654\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3762\3773\3776\45\3780\3782\3804\45\3805\3840\3904\45\3911\3913\45\3946\3976\45\3979\4096\45\4129\4131\45\4135\4137\45\4138\4176\45\4181\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5920\45\5937\5952\45\5969\5984\45\5996\5998\45\6000\6016\45\6067\6103\6108\6176\45\6210\6211\6212\45\6263\6272\45\6312\6400\45\6428\6480\45\6509\6512\45\6516\6528\45\6569\6593\45\6599\6656\45\6678\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8305\8319\8336\45\8340\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65137\65139\65143\65145\65147\65149\65151\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65392\65393\45\65437\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\91\48\45\57\65\45\90\95\97\45\122\170\181\183\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\768\45\879\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1155\45\1158\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1425\45\1465\1467\45\1469\1471\1473\45\1474\1476\45\1477\1479\1488\45\1514\1520\45\1522\1552\45\1557\1569\45\1594\1600\1601\45\1610\1611\45\1630\1632\45\1641\1646\45\1647\1648\1649\45\1747\1749\1750\45\1756\1759\45\1764\1765\45\1766\1767\45\1768\1770\45\1773\1774\45\1775\1776\45\1785\1786\45\1788\1791\1808\1809\1810\45\1839\1840\45\1866\1869\45\1901\1920\45\1957\1958\45\1968\1969\2305\45\2306\2307\2308\45\2361\2364\2365\2366\45\2368\2369\45\2376\2377\45\2380\2381\2384\2385\45\2388\2392\45\2401\2402\45\2403\2406\45\2415\2429\2433\2434\45\2435\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2492\2493\2494\45\2496\2497\45\2500\2503\45\2504\2507\45\2508\2509\2510\2519\2524\45\2525\2527\45\2529\2530\45\2531\2534\45\2543\2544\45\2545\2561\45\2562\2563\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2620\2622\45\2624\2625\45\2626\2631\45\2632\2635\45\2637\2649\45\2652\2654\2662\45\2671\2672\45\2673\2674\45\2676\2689\45\2690\2691\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2748\2749\2750\45\2752\2753\45\2757\2759\45\2760\2761\2763\45\2764\2765\2768\2784\45\2785\2786\45\2787\2790\45\2799\2817\2818\45\2819\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2876\2877\2878\2879\2880\2881\45\2883\2887\45\2888\2891\45\2892\2893\2902\2903\2908\45\2909\2911\45\2913\2918\45\2927\2929\2946\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3006\45\3007\3008\3009\45\3010\3014\45\3016\3018\45\3020\3021\3031\3046\45\3055\3073\45\3075\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3134\45\3136\3137\45\3140\3142\45\3144\3146\45\3149\3157\45\3158\3168\45\3169\3174\45\3183\3202\45\3203\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3260\3261\3262\3263\3264\45\3268\3270\3271\45\3272\3274\45\3275\3276\45\3277\3285\45\3286\3294\3296\45\3297\3302\45\3311\3330\45\3331\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3390\45\3392\3393\45\3395\3398\45\3400\3402\45\3404\3405\3415\3424\45\3425\3430\45\3439\3458\45\3459\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3530\3535\45\3537\3538\45\3540\3542\3544\45\3551\3570\45\3571\3585\45\3632\3633\3634\45\3635\3636\45\3642\3648\45\3653\3654\3655\45\3662\3664\45\3673\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3761\3762\45\3763\3764\45\3769\3771\45\3772\3773\3776\45\3780\3782\3784\45\3789\3792\45\3801\3804\45\3805\3840\3864\45\3865\3872\45\3881\3893\3895\3897\3902\45\3903\3904\45\3911\3913\45\3946\3953\45\3966\3967\3968\45\3972\3974\45\3975\3976\45\3979\3984\45\3991\3993\45\4028\4038\4096\45\4129\4131\45\4135\4137\45\4138\4140\4141\45\4144\4145\4146\4150\45\4151\4152\4153\4160\45\4169\4176\45\4181\4182\45\4183\4184\45\4185\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4959\4969\45\4977\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5906\45\5908\5920\45\5937\5938\45\5940\5952\45\5969\5970\45\5971\5984\45\5996\5998\45\6000\6002\45\6003\6016\45\6067\6070\6071\45\6077\6078\45\6085\6086\6087\45\6088\6089\45\6099\6103\6108\6109\6112\45\6121\6155\45\6157\6160\45\6169\6176\45\6210\6211\6212\45\6263\6272\45\6312\6313\6400\45\6428\6432\45\6434\6435\45\6438\6439\45\6440\6441\45\6443\6448\45\6449\6450\6451\45\6456\6457\45\6459\6470\45\6479\6480\45\6509\6512\45\6516\6528\45\6569\6576\45\6592\6593\45\6599\6600\45\6601\6608\45\6617\6656\45\6678\6679\45\6680\6681\45\6683\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7616\45\7619\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8255\45\8256\8276\8305\8319\8336\45\8340\8400\45\8412\8417\8421\45\8427\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12330\45\12335\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12441\45\12442\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43010\43011\45\43013\43014\43015\45\43018\43019\43020\45\43042\43043\45\43044\43045\45\43046\43047\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64286\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65024\45\65039\65056\45\65059\65075\45\65076\65101\45\65103\65137\65139\65143\65145\65147\65149\65151\45\65276\65296\45\65305\65313\45\65338\65343\65345\45\65370\65382\45\65391\65392\65393\45\65437\65438\45\65439\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop+    [ tokNext "[A-Z_a-z\170\181\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1488-\1514\1520-\1522\1569-\1594\1600\1601-\1610\1646-\1647\1649-\1747\1749\1765-\1766\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1901\1920-\1957\1969\2308-\2361\2365\2384\2392-\2401\2429\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2493\2510\2524-\2525\2527-\2529\2544-\2545\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2649-\2652\2654\2674-\2676\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2749\2768\2784-\2785\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2877\2908-\2909\2911-\2913\2929\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3168-\3169\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3261\3294\3296-\3297\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3424-\3425\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3585-\3632\3634\3648-\3653\3654\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3762\3773\3776-\3780\3782\3804-\3805\3840\3904-\3911\3913-\3946\3976-\3979\4096-\4129\4131-\4135\4137-\4138\4176-\4181\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5920-\5937\5952-\5969\5984-\5996\5998-\6000\6016-\6067\6103\6108\6176-\6210\6211\6212-\6263\6272-\6312\6400-\6428\6480-\6509\6512-\6516\6528-\6569\6593-\6599\6656-\6678\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8305\8319\8336-\8340\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12337-\12341\12344-\12346\12347\12348\12353-\12438\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43011-\43013\43015-\43018\43020-\43042\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65137\65139\65143\65145\65147\65149\65151-\65276\65313-\65338\65345-\65370\65382-\65391\65392\65393-\65437\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500][0-9A-Z_a-z\170\181\183\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\768-\879\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1155-\1158\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1425-\1465\1467-\1469\1471\1473-\1474\1476-\1477\1479\1488-\1514\1520-\1522\1552-\1557\1569-\1594\1600\1601-\1610\1611-\1630\1632-\1641\1646-\1647\1648\1649-\1747\1749\1750-\1756\1759-\1764\1765-\1766\1767-\1768\1770-\1773\1774-\1775\1776-\1785\1786-\1788\1791\1808\1809\1810-\1839\1840-\1866\1869-\1901\1920-\1957\1958-\1968\1969\2305-\2306\2307\2308-\2361\2364\2365\2366-\2368\2369-\2376\2377-\2380\2381\2384\2385-\2388\2392-\2401\2402-\2403\2406-\2415\2429\2433\2434-\2435\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2492\2493\2494-\2496\2497-\2500\2503-\2504\2507-\2508\2509\2510\2519\2524-\2525\2527-\2529\2530-\2531\2534-\2543\2544-\2545\2561-\2562\2563\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2620\2622-\2624\2625-\2626\2631-\2632\2635-\2637\2649-\2652\2654\2662-\2671\2672-\2673\2674-\2676\2689-\2690\2691\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2748\2749\2750-\2752\2753-\2757\2759-\2760\2761\2763-\2764\2765\2768\2784-\2785\2786-\2787\2790-\2799\2817\2818-\2819\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2876\2877\2878\2879\2880\2881-\2883\2887-\2888\2891-\2892\2893\2902\2903\2908-\2909\2911-\2913\2918-\2927\2929\2946\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3006-\3007\3008\3009-\3010\3014-\3016\3018-\3020\3021\3031\3046-\3055\3073-\3075\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3134-\3136\3137-\3140\3142-\3144\3146-\3149\3157-\3158\3168-\3169\3174-\3183\3202-\3203\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3260\3261\3262\3263\3264-\3268\3270\3271-\3272\3274-\3275\3276-\3277\3285-\3286\3294\3296-\3297\3302-\3311\3330-\3331\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3390-\3392\3393-\3395\3398-\3400\3402-\3404\3405\3415\3424-\3425\3430-\3439\3458-\3459\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3530\3535-\3537\3538-\3540\3542\3544-\3551\3570-\3571\3585-\3632\3633\3634-\3635\3636-\3642\3648-\3653\3654\3655-\3662\3664-\3673\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3761\3762-\3763\3764-\3769\3771-\3772\3773\3776-\3780\3782\3784-\3789\3792-\3801\3804-\3805\3840\3864-\3865\3872-\3881\3893\3895\3897\3902-\3903\3904-\3911\3913-\3946\3953-\3966\3967\3968-\3972\3974-\3975\3976-\3979\3984-\3991\3993-\4028\4038\4096-\4129\4131-\4135\4137-\4138\4140\4141-\4144\4145\4146\4150-\4151\4152\4153\4160-\4169\4176-\4181\4182-\4183\4184-\4185\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4959\4969-\4977\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5906-\5908\5920-\5937\5938-\5940\5952-\5969\5970-\5971\5984-\5996\5998-\6000\6002-\6003\6016-\6067\6070\6071-\6077\6078-\6085\6086\6087-\6088\6089-\6099\6103\6108\6109\6112-\6121\6155-\6157\6160-\6169\6176-\6210\6211\6212-\6263\6272-\6312\6313\6400-\6428\6432-\6434\6435-\6438\6439-\6440\6441-\6443\6448-\6449\6450\6451-\6456\6457-\6459\6470-\6479\6480-\6509\6512-\6516\6528-\6569\6576-\6592\6593-\6599\6600-\6601\6608-\6617\6656-\6678\6679-\6680\6681-\6683\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7616-\7619\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8255-\8256\8276\8305\8319\8336-\8340\8400-\8412\8417\8421-\8427\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12330-\12335\12337-\12341\12344-\12346\12347\12348\12353-\12438\12441-\12442\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43010\43011-\43013\43014\43015-\43018\43019\43020-\43042\43043-\43044\43045-\43046\43047\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64286\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65024-\65039\65056-\65059\65075-\65076\65101-\65103\65137\65139\65143\65145\65147\65149\65151-\65276\65296-\65305\65313-\65338\65343\65345-\65370\65382-\65391\65392\65393-\65437\65438-\65439\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500]*" (Arbitrary "Name" :. Arbitrary "Function") Pop     ]  import' :: TokenMatcher import' =-    [ tok "\40\92\115\43\41\40\97\115\41\40\92\115\43\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")])-    , tok "\92\46" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tok "\91\65\45\90\95\97\45\122\170\181\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1488\45\1514\1520\45\1522\1569\45\1594\1600\1601\45\1610\1646\45\1647\1649\45\1747\1749\1765\45\1766\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1901\1920\45\1957\1969\2308\45\2361\2365\2384\2392\45\2401\2429\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2493\2510\2524\45\2525\2527\45\2529\2544\45\2545\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2649\45\2652\2654\2674\45\2676\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2749\2768\2784\45\2785\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2877\2908\45\2909\2911\45\2913\2929\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3168\45\3169\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3261\3294\3296\45\3297\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3424\45\3425\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3585\45\3632\3634\3648\45\3653\3654\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3762\3773\3776\45\3780\3782\3804\45\3805\3840\3904\45\3911\3913\45\3946\3976\45\3979\4096\45\4129\4131\45\4135\4137\45\4138\4176\45\4181\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5920\45\5937\5952\45\5969\5984\45\5996\5998\45\6000\6016\45\6067\6103\6108\6176\45\6210\6211\6212\45\6263\6272\45\6312\6400\45\6428\6480\45\6509\6512\45\6516\6528\45\6569\6593\45\6599\6656\45\6678\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8305\8319\8336\45\8340\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65137\65139\65143\65145\65147\65149\65151\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65392\65393\45\65437\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\91\48\45\57\65\45\90\95\97\45\122\170\181\183\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\768\45\879\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1155\45\1158\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1425\45\1465\1467\45\1469\1471\1473\45\1474\1476\45\1477\1479\1488\45\1514\1520\45\1522\1552\45\1557\1569\45\1594\1600\1601\45\1610\1611\45\1630\1632\45\1641\1646\45\1647\1648\1649\45\1747\1749\1750\45\1756\1759\45\1764\1765\45\1766\1767\45\1768\1770\45\1773\1774\45\1775\1776\45\1785\1786\45\1788\1791\1808\1809\1810\45\1839\1840\45\1866\1869\45\1901\1920\45\1957\1958\45\1968\1969\2305\45\2306\2307\2308\45\2361\2364\2365\2366\45\2368\2369\45\2376\2377\45\2380\2381\2384\2385\45\2388\2392\45\2401\2402\45\2403\2406\45\2415\2429\2433\2434\45\2435\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2492\2493\2494\45\2496\2497\45\2500\2503\45\2504\2507\45\2508\2509\2510\2519\2524\45\2525\2527\45\2529\2530\45\2531\2534\45\2543\2544\45\2545\2561\45\2562\2563\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2620\2622\45\2624\2625\45\2626\2631\45\2632\2635\45\2637\2649\45\2652\2654\2662\45\2671\2672\45\2673\2674\45\2676\2689\45\2690\2691\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2748\2749\2750\45\2752\2753\45\2757\2759\45\2760\2761\2763\45\2764\2765\2768\2784\45\2785\2786\45\2787\2790\45\2799\2817\2818\45\2819\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2876\2877\2878\2879\2880\2881\45\2883\2887\45\2888\2891\45\2892\2893\2902\2903\2908\45\2909\2911\45\2913\2918\45\2927\2929\2946\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3006\45\3007\3008\3009\45\3010\3014\45\3016\3018\45\3020\3021\3031\3046\45\3055\3073\45\3075\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3134\45\3136\3137\45\3140\3142\45\3144\3146\45\3149\3157\45\3158\3168\45\3169\3174\45\3183\3202\45\3203\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3260\3261\3262\3263\3264\45\3268\3270\3271\45\3272\3274\45\3275\3276\45\3277\3285\45\3286\3294\3296\45\3297\3302\45\3311\3330\45\3331\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3390\45\3392\3393\45\3395\3398\45\3400\3402\45\3404\3405\3415\3424\45\3425\3430\45\3439\3458\45\3459\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3530\3535\45\3537\3538\45\3540\3542\3544\45\3551\3570\45\3571\3585\45\3632\3633\3634\45\3635\3636\45\3642\3648\45\3653\3654\3655\45\3662\3664\45\3673\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3761\3762\45\3763\3764\45\3769\3771\45\3772\3773\3776\45\3780\3782\3784\45\3789\3792\45\3801\3804\45\3805\3840\3864\45\3865\3872\45\3881\3893\3895\3897\3902\45\3903\3904\45\3911\3913\45\3946\3953\45\3966\3967\3968\45\3972\3974\45\3975\3976\45\3979\3984\45\3991\3993\45\4028\4038\4096\45\4129\4131\45\4135\4137\45\4138\4140\4141\45\4144\4145\4146\4150\45\4151\4152\4153\4160\45\4169\4176\45\4181\4182\45\4183\4184\45\4185\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4959\4969\45\4977\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5906\45\5908\5920\45\5937\5938\45\5940\5952\45\5969\5970\45\5971\5984\45\5996\5998\45\6000\6002\45\6003\6016\45\6067\6070\6071\45\6077\6078\45\6085\6086\6087\45\6088\6089\45\6099\6103\6108\6109\6112\45\6121\6155\45\6157\6160\45\6169\6176\45\6210\6211\6212\45\6263\6272\45\6312\6313\6400\45\6428\6432\45\6434\6435\45\6438\6439\45\6440\6441\45\6443\6448\45\6449\6450\6451\45\6456\6457\45\6459\6470\45\6479\6480\45\6509\6512\45\6516\6528\45\6569\6576\45\6592\6593\45\6599\6600\45\6601\6608\45\6617\6656\45\6678\6679\45\6680\6681\45\6683\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7616\45\7619\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8255\45\8256\8276\8305\8319\8336\45\8340\8400\45\8412\8417\8421\45\8427\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12330\45\12335\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12441\45\12442\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43010\43011\45\43013\43014\43015\45\43018\43019\43020\45\43042\43043\45\43044\43045\45\43046\43047\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64286\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65024\45\65039\65056\45\65059\65075\45\65076\65101\45\65103\65137\65139\65143\65145\65147\65149\65151\45\65276\65296\45\65305\65313\45\65338\65343\65345\45\65370\65382\45\65391\65392\65393\45\65437\65438\45\65439\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tok "\40\92\115\42\41\40\44\41\40\92\115\42\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116")])-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    [ tok "(\\s+)(as)(\\s+)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text")])+    , tok "\\." (Arbitrary "Name" :. Arbitrary "Namespace")+    , tok "[A-Z_a-z\170\181\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1488-\1514\1520-\1522\1569-\1594\1600\1601-\1610\1646-\1647\1649-\1747\1749\1765-\1766\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1901\1920-\1957\1969\2308-\2361\2365\2384\2392-\2401\2429\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2493\2510\2524-\2525\2527-\2529\2544-\2545\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2649-\2652\2654\2674-\2676\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2749\2768\2784-\2785\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2877\2908-\2909\2911-\2913\2929\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3168-\3169\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3261\3294\3296-\3297\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3424-\3425\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3585-\3632\3634\3648-\3653\3654\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3762\3773\3776-\3780\3782\3804-\3805\3840\3904-\3911\3913-\3946\3976-\3979\4096-\4129\4131-\4135\4137-\4138\4176-\4181\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5920-\5937\5952-\5969\5984-\5996\5998-\6000\6016-\6067\6103\6108\6176-\6210\6211\6212-\6263\6272-\6312\6400-\6428\6480-\6509\6512-\6516\6528-\6569\6593-\6599\6656-\6678\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8305\8319\8336-\8340\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12337-\12341\12344-\12346\12347\12348\12353-\12438\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43011-\43013\43015-\43018\43020-\43042\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65137\65139\65143\65145\65147\65149\65151-\65276\65313-\65338\65345-\65370\65382-\65391\65392\65393-\65437\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500][0-9A-Z_a-z\170\181\183\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\768-\879\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1155-\1158\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1425-\1465\1467-\1469\1471\1473-\1474\1476-\1477\1479\1488-\1514\1520-\1522\1552-\1557\1569-\1594\1600\1601-\1610\1611-\1630\1632-\1641\1646-\1647\1648\1649-\1747\1749\1750-\1756\1759-\1764\1765-\1766\1767-\1768\1770-\1773\1774-\1775\1776-\1785\1786-\1788\1791\1808\1809\1810-\1839\1840-\1866\1869-\1901\1920-\1957\1958-\1968\1969\2305-\2306\2307\2308-\2361\2364\2365\2366-\2368\2369-\2376\2377-\2380\2381\2384\2385-\2388\2392-\2401\2402-\2403\2406-\2415\2429\2433\2434-\2435\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2492\2493\2494-\2496\2497-\2500\2503-\2504\2507-\2508\2509\2510\2519\2524-\2525\2527-\2529\2530-\2531\2534-\2543\2544-\2545\2561-\2562\2563\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2620\2622-\2624\2625-\2626\2631-\2632\2635-\2637\2649-\2652\2654\2662-\2671\2672-\2673\2674-\2676\2689-\2690\2691\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2748\2749\2750-\2752\2753-\2757\2759-\2760\2761\2763-\2764\2765\2768\2784-\2785\2786-\2787\2790-\2799\2817\2818-\2819\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2876\2877\2878\2879\2880\2881-\2883\2887-\2888\2891-\2892\2893\2902\2903\2908-\2909\2911-\2913\2918-\2927\2929\2946\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3006-\3007\3008\3009-\3010\3014-\3016\3018-\3020\3021\3031\3046-\3055\3073-\3075\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3134-\3136\3137-\3140\3142-\3144\3146-\3149\3157-\3158\3168-\3169\3174-\3183\3202-\3203\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3260\3261\3262\3263\3264-\3268\3270\3271-\3272\3274-\3275\3276-\3277\3285-\3286\3294\3296-\3297\3302-\3311\3330-\3331\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3390-\3392\3393-\3395\3398-\3400\3402-\3404\3405\3415\3424-\3425\3430-\3439\3458-\3459\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3530\3535-\3537\3538-\3540\3542\3544-\3551\3570-\3571\3585-\3632\3633\3634-\3635\3636-\3642\3648-\3653\3654\3655-\3662\3664-\3673\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3761\3762-\3763\3764-\3769\3771-\3772\3773\3776-\3780\3782\3784-\3789\3792-\3801\3804-\3805\3840\3864-\3865\3872-\3881\3893\3895\3897\3902-\3903\3904-\3911\3913-\3946\3953-\3966\3967\3968-\3972\3974-\3975\3976-\3979\3984-\3991\3993-\4028\4038\4096-\4129\4131-\4135\4137-\4138\4140\4141-\4144\4145\4146\4150-\4151\4152\4153\4160-\4169\4176-\4181\4182-\4183\4184-\4185\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4959\4969-\4977\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5906-\5908\5920-\5937\5938-\5940\5952-\5969\5970-\5971\5984-\5996\5998-\6000\6002-\6003\6016-\6067\6070\6071-\6077\6078-\6085\6086\6087-\6088\6089-\6099\6103\6108\6109\6112-\6121\6155-\6157\6160-\6169\6176-\6210\6211\6212-\6263\6272-\6312\6313\6400-\6428\6432-\6434\6435-\6438\6439-\6440\6441-\6443\6448-\6449\6450\6451-\6456\6457-\6459\6470-\6479\6480-\6509\6512-\6516\6528-\6569\6576-\6592\6593-\6599\6600-\6601\6608-\6617\6656-\6678\6679-\6680\6681-\6683\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7616-\7619\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8255-\8256\8276\8305\8319\8336-\8340\8400-\8412\8417\8421-\8427\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12330-\12335\12337-\12341\12344-\12346\12347\12348\12353-\12438\12441-\12442\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43010\43011-\43013\43014\43015-\43018\43019\43020-\43042\43043-\43044\43045-\43046\43047\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64286\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65024-\65039\65056-\65059\65075-\65076\65101-\65103\65137\65139\65143\65145\65147\65149\65151-\65276\65296-\65305\65313-\65338\65343\65345-\65370\65382-\65391\65392\65393-\65437\65438-\65439\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500]*" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tok "(\\s*)(,)(\\s*)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Operator"), (Arbitrary "Text")])+    , tokNext "" (Arbitrary "Text") Pop     ]  tdqs' :: TokenMatcher tdqs' =-    [ tokNext "\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\"\"\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf strings'     , anyOf nl'     ]  strings' :: TokenMatcher strings' =-    [ tok "\91\94\92\92\92\39\34\37\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\91\92\39\34\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\37" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "[^\\\\\\'\"%\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "[\\'\"\\\\]" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "%" (Arbitrary "Literal" :. Arbitrary "String")     ]  fromimport' :: TokenMatcher fromimport' =-    [ tokNext "\40\92\115\43\41\40\105\109\112\111\114\116\41\92\98" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100")]) Pop-    , tok "\92\46" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")-    , tok "\91\65\45\90\95\97\45\122\170\181\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1488\45\1514\1520\45\1522\1569\45\1594\1600\1601\45\1610\1646\45\1647\1649\45\1747\1749\1765\45\1766\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1901\1920\45\1957\1969\2308\45\2361\2365\2384\2392\45\2401\2429\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2493\2510\2524\45\2525\2527\45\2529\2544\45\2545\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2649\45\2652\2654\2674\45\2676\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2749\2768\2784\45\2785\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2877\2908\45\2909\2911\45\2913\2929\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3168\45\3169\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3261\3294\3296\45\3297\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3424\45\3425\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3585\45\3632\3634\3648\45\3653\3654\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3762\3773\3776\45\3780\3782\3804\45\3805\3840\3904\45\3911\3913\45\3946\3976\45\3979\4096\45\4129\4131\45\4135\4137\45\4138\4176\45\4181\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5920\45\5937\5952\45\5969\5984\45\5996\5998\45\6000\6016\45\6067\6103\6108\6176\45\6210\6211\6212\45\6263\6272\45\6312\6400\45\6428\6480\45\6509\6512\45\6516\6528\45\6569\6593\45\6599\6656\45\6678\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8305\8319\8336\45\8340\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65137\65139\65143\65145\65147\65149\65151\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65392\65393\45\65437\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\91\48\45\57\65\45\90\95\97\45\122\170\181\183\186\192\45\214\216\45\246\248\45\442\443\444\45\447\448\45\451\452\45\577\592\45\687\688\45\705\710\45\721\736\45\740\750\768\45\879\902\904\45\906\908\910\45\929\931\45\974\976\45\1013\1015\45\1153\1155\45\1158\1162\45\1230\1232\45\1273\1280\45\1295\1329\45\1366\1369\1377\45\1415\1425\45\1465\1467\45\1469\1471\1473\45\1474\1476\45\1477\1479\1488\45\1514\1520\45\1522\1552\45\1557\1569\45\1594\1600\1601\45\1610\1611\45\1630\1632\45\1641\1646\45\1647\1648\1649\45\1747\1749\1750\45\1756\1759\45\1764\1765\45\1766\1767\45\1768\1770\45\1773\1774\45\1775\1776\45\1785\1786\45\1788\1791\1808\1809\1810\45\1839\1840\45\1866\1869\45\1901\1920\45\1957\1958\45\1968\1969\2305\45\2306\2307\2308\45\2361\2364\2365\2366\45\2368\2369\45\2376\2377\45\2380\2381\2384\2385\45\2388\2392\45\2401\2402\45\2403\2406\45\2415\2429\2433\2434\45\2435\2437\45\2444\2447\45\2448\2451\45\2472\2474\45\2480\2482\2486\45\2489\2492\2493\2494\45\2496\2497\45\2500\2503\45\2504\2507\45\2508\2509\2510\2519\2524\45\2525\2527\45\2529\2530\45\2531\2534\45\2543\2544\45\2545\2561\45\2562\2563\2565\45\2570\2575\45\2576\2579\45\2600\2602\45\2608\2610\45\2611\2613\45\2614\2616\45\2617\2620\2622\45\2624\2625\45\2626\2631\45\2632\2635\45\2637\2649\45\2652\2654\2662\45\2671\2672\45\2673\2674\45\2676\2689\45\2690\2691\2693\45\2701\2703\45\2705\2707\45\2728\2730\45\2736\2738\45\2739\2741\45\2745\2748\2749\2750\45\2752\2753\45\2757\2759\45\2760\2761\2763\45\2764\2765\2768\2784\45\2785\2786\45\2787\2790\45\2799\2817\2818\45\2819\2821\45\2828\2831\45\2832\2835\45\2856\2858\45\2864\2866\45\2867\2869\45\2873\2876\2877\2878\2879\2880\2881\45\2883\2887\45\2888\2891\45\2892\2893\2902\2903\2908\45\2909\2911\45\2913\2918\45\2927\2929\2946\2947\2949\45\2954\2958\45\2960\2962\45\2965\2969\45\2970\2972\2974\45\2975\2979\45\2980\2984\45\2986\2990\45\3001\3006\45\3007\3008\3009\45\3010\3014\45\3016\3018\45\3020\3021\3031\3046\45\3055\3073\45\3075\3077\45\3084\3086\45\3088\3090\45\3112\3114\45\3123\3125\45\3129\3134\45\3136\3137\45\3140\3142\45\3144\3146\45\3149\3157\45\3158\3168\45\3169\3174\45\3183\3202\45\3203\3205\45\3212\3214\45\3216\3218\45\3240\3242\45\3251\3253\45\3257\3260\3261\3262\3263\3264\45\3268\3270\3271\45\3272\3274\45\3275\3276\45\3277\3285\45\3286\3294\3296\45\3297\3302\45\3311\3330\45\3331\3333\45\3340\3342\45\3344\3346\45\3368\3370\45\3385\3390\45\3392\3393\45\3395\3398\45\3400\3402\45\3404\3405\3415\3424\45\3425\3430\45\3439\3458\45\3459\3461\45\3478\3482\45\3505\3507\45\3515\3517\3520\45\3526\3530\3535\45\3537\3538\45\3540\3542\3544\45\3551\3570\45\3571\3585\45\3632\3633\3634\45\3635\3636\45\3642\3648\45\3653\3654\3655\45\3662\3664\45\3673\3713\45\3714\3716\3719\45\3720\3722\3725\3732\45\3735\3737\45\3743\3745\45\3747\3749\3751\3754\45\3755\3757\45\3760\3761\3762\45\3763\3764\45\3769\3771\45\3772\3773\3776\45\3780\3782\3784\45\3789\3792\45\3801\3804\45\3805\3840\3864\45\3865\3872\45\3881\3893\3895\3897\3902\45\3903\3904\45\3911\3913\45\3946\3953\45\3966\3967\3968\45\3972\3974\45\3975\3976\45\3979\3984\45\3991\3993\45\4028\4038\4096\45\4129\4131\45\4135\4137\45\4138\4140\4141\45\4144\4145\4146\4150\45\4151\4152\4153\4160\45\4169\4176\45\4181\4182\45\4183\4184\45\4185\4256\45\4293\4304\45\4346\4348\4352\45\4441\4447\45\4514\4520\45\4601\4608\45\4680\4682\45\4685\4688\45\4694\4696\4698\45\4701\4704\45\4744\4746\45\4749\4752\45\4784\4786\45\4789\4792\45\4798\4800\4802\45\4805\4808\45\4822\4824\45\4880\4882\45\4885\4888\45\4954\4959\4969\45\4977\4992\45\5007\5024\45\5108\5121\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5872\5888\45\5900\5902\45\5905\5906\45\5908\5920\45\5937\5938\45\5940\5952\45\5969\5970\45\5971\5984\45\5996\5998\45\6000\6002\45\6003\6016\45\6067\6070\6071\45\6077\6078\45\6085\6086\6087\45\6088\6089\45\6099\6103\6108\6109\6112\45\6121\6155\45\6157\6160\45\6169\6176\45\6210\6211\6212\45\6263\6272\45\6312\6313\6400\45\6428\6432\45\6434\6435\45\6438\6439\45\6440\6441\45\6443\6448\45\6449\6450\6451\45\6456\6457\45\6459\6470\45\6479\6480\45\6509\6512\45\6516\6528\45\6569\6576\45\6592\6593\45\6599\6600\45\6601\6608\45\6617\6656\45\6678\6679\45\6680\6681\45\6683\7424\45\7467\7468\45\7521\7522\45\7543\7544\7545\45\7578\7579\45\7615\7616\45\7619\7680\45\7835\7840\45\7929\7936\45\7957\7960\45\7965\7968\45\8005\8008\45\8013\8016\45\8023\8025\8027\8029\8031\45\8061\8064\45\8116\8118\45\8124\8126\8130\45\8132\8134\45\8140\8144\45\8147\8150\45\8155\8160\45\8172\8178\45\8180\8182\45\8188\8255\45\8256\8276\8305\8319\8336\45\8340\8400\45\8412\8417\8421\45\8427\8450\8455\8458\45\8467\8469\8472\8473\45\8477\8484\8486\8488\8490\45\8493\8494\8495\45\8497\8499\45\8500\8501\45\8504\8505\8508\45\8511\8517\45\8521\8544\45\8579\11264\45\11310\11312\45\11358\11392\45\11492\11520\45\11557\11568\45\11621\11631\11648\45\11670\11680\45\11686\11688\45\11694\11696\45\11702\11704\45\11710\11712\45\11718\11720\45\11726\11728\45\11734\11736\45\11742\12293\12294\12295\12321\45\12329\12330\45\12335\12337\45\12341\12344\45\12346\12347\12348\12353\45\12438\12441\45\12442\12445\45\12446\12447\12449\45\12538\12540\45\12542\12543\12549\45\12588\12593\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40891\40960\45\40980\40981\40982\45\42124\43008\45\43009\43010\43011\45\43013\43014\43015\45\43018\43019\43020\45\43042\43043\45\43044\43045\45\43046\43047\44032\45\55203\63744\45\64045\64048\45\64106\64112\45\64217\64256\45\64262\64275\45\64279\64285\64286\64287\45\64296\64298\45\64310\64312\45\64316\64318\64320\45\64321\64323\45\64324\64326\45\64433\64467\45\64605\64612\45\64829\64848\45\64911\64914\45\64967\65008\45\65017\65024\45\65039\65056\45\65059\65075\45\65076\65101\45\65103\65137\65139\65143\65145\65147\65149\65151\45\65276\65296\45\65305\65313\45\65338\65343\65345\45\65370\65382\45\65391\65392\65393\45\65437\65438\45\65439\65440\45\65470\65474\45\65479\65482\45\65487\65490\45\65495\65498\45\65500\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101")+    [ tokNext "(\\s+)(import)\\b" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword")]) Pop+    , tok "\\." (Arbitrary "Name" :. Arbitrary "Namespace")+    , tok "[A-Z_a-z\170\181\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1488-\1514\1520-\1522\1569-\1594\1600\1601-\1610\1646-\1647\1649-\1747\1749\1765-\1766\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1901\1920-\1957\1969\2308-\2361\2365\2384\2392-\2401\2429\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2493\2510\2524-\2525\2527-\2529\2544-\2545\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2649-\2652\2654\2674-\2676\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2749\2768\2784-\2785\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2877\2908-\2909\2911-\2913\2929\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3168-\3169\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3261\3294\3296-\3297\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3424-\3425\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3585-\3632\3634\3648-\3653\3654\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3762\3773\3776-\3780\3782\3804-\3805\3840\3904-\3911\3913-\3946\3976-\3979\4096-\4129\4131-\4135\4137-\4138\4176-\4181\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5920-\5937\5952-\5969\5984-\5996\5998-\6000\6016-\6067\6103\6108\6176-\6210\6211\6212-\6263\6272-\6312\6400-\6428\6480-\6509\6512-\6516\6528-\6569\6593-\6599\6656-\6678\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8305\8319\8336-\8340\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12337-\12341\12344-\12346\12347\12348\12353-\12438\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43011-\43013\43015-\43018\43020-\43042\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65137\65139\65143\65145\65147\65149\65151-\65276\65313-\65338\65345-\65370\65382-\65391\65392\65393-\65437\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500][0-9A-Z_a-z\170\181\183\186\192-\214\216-\246\248-\442\443\444-\447\448-\451\452-\577\592-\687\688-\705\710-\721\736-\740\750\768-\879\902\904-\906\908\910-\929\931-\974\976-\1013\1015-\1153\1155-\1158\1162-\1230\1232-\1273\1280-\1295\1329-\1366\1369\1377-\1415\1425-\1465\1467-\1469\1471\1473-\1474\1476-\1477\1479\1488-\1514\1520-\1522\1552-\1557\1569-\1594\1600\1601-\1610\1611-\1630\1632-\1641\1646-\1647\1648\1649-\1747\1749\1750-\1756\1759-\1764\1765-\1766\1767-\1768\1770-\1773\1774-\1775\1776-\1785\1786-\1788\1791\1808\1809\1810-\1839\1840-\1866\1869-\1901\1920-\1957\1958-\1968\1969\2305-\2306\2307\2308-\2361\2364\2365\2366-\2368\2369-\2376\2377-\2380\2381\2384\2385-\2388\2392-\2401\2402-\2403\2406-\2415\2429\2433\2434-\2435\2437-\2444\2447-\2448\2451-\2472\2474-\2480\2482\2486-\2489\2492\2493\2494-\2496\2497-\2500\2503-\2504\2507-\2508\2509\2510\2519\2524-\2525\2527-\2529\2530-\2531\2534-\2543\2544-\2545\2561-\2562\2563\2565-\2570\2575-\2576\2579-\2600\2602-\2608\2610-\2611\2613-\2614\2616-\2617\2620\2622-\2624\2625-\2626\2631-\2632\2635-\2637\2649-\2652\2654\2662-\2671\2672-\2673\2674-\2676\2689-\2690\2691\2693-\2701\2703-\2705\2707-\2728\2730-\2736\2738-\2739\2741-\2745\2748\2749\2750-\2752\2753-\2757\2759-\2760\2761\2763-\2764\2765\2768\2784-\2785\2786-\2787\2790-\2799\2817\2818-\2819\2821-\2828\2831-\2832\2835-\2856\2858-\2864\2866-\2867\2869-\2873\2876\2877\2878\2879\2880\2881-\2883\2887-\2888\2891-\2892\2893\2902\2903\2908-\2909\2911-\2913\2918-\2927\2929\2946\2947\2949-\2954\2958-\2960\2962-\2965\2969-\2970\2972\2974-\2975\2979-\2980\2984-\2986\2990-\3001\3006-\3007\3008\3009-\3010\3014-\3016\3018-\3020\3021\3031\3046-\3055\3073-\3075\3077-\3084\3086-\3088\3090-\3112\3114-\3123\3125-\3129\3134-\3136\3137-\3140\3142-\3144\3146-\3149\3157-\3158\3168-\3169\3174-\3183\3202-\3203\3205-\3212\3214-\3216\3218-\3240\3242-\3251\3253-\3257\3260\3261\3262\3263\3264-\3268\3270\3271-\3272\3274-\3275\3276-\3277\3285-\3286\3294\3296-\3297\3302-\3311\3330-\3331\3333-\3340\3342-\3344\3346-\3368\3370-\3385\3390-\3392\3393-\3395\3398-\3400\3402-\3404\3405\3415\3424-\3425\3430-\3439\3458-\3459\3461-\3478\3482-\3505\3507-\3515\3517\3520-\3526\3530\3535-\3537\3538-\3540\3542\3544-\3551\3570-\3571\3585-\3632\3633\3634-\3635\3636-\3642\3648-\3653\3654\3655-\3662\3664-\3673\3713-\3714\3716\3719-\3720\3722\3725\3732-\3735\3737-\3743\3745-\3747\3749\3751\3754-\3755\3757-\3760\3761\3762-\3763\3764-\3769\3771-\3772\3773\3776-\3780\3782\3784-\3789\3792-\3801\3804-\3805\3840\3864-\3865\3872-\3881\3893\3895\3897\3902-\3903\3904-\3911\3913-\3946\3953-\3966\3967\3968-\3972\3974-\3975\3976-\3979\3984-\3991\3993-\4028\4038\4096-\4129\4131-\4135\4137-\4138\4140\4141-\4144\4145\4146\4150-\4151\4152\4153\4160-\4169\4176-\4181\4182-\4183\4184-\4185\4256-\4293\4304-\4346\4348\4352-\4441\4447-\4514\4520-\4601\4608-\4680\4682-\4685\4688-\4694\4696\4698-\4701\4704-\4744\4746-\4749\4752-\4784\4786-\4789\4792-\4798\4800\4802-\4805\4808-\4822\4824-\4880\4882-\4885\4888-\4954\4959\4969-\4977\4992-\5007\5024-\5108\5121-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5872\5888-\5900\5902-\5905\5906-\5908\5920-\5937\5938-\5940\5952-\5969\5970-\5971\5984-\5996\5998-\6000\6002-\6003\6016-\6067\6070\6071-\6077\6078-\6085\6086\6087-\6088\6089-\6099\6103\6108\6109\6112-\6121\6155-\6157\6160-\6169\6176-\6210\6211\6212-\6263\6272-\6312\6313\6400-\6428\6432-\6434\6435-\6438\6439-\6440\6441-\6443\6448-\6449\6450\6451-\6456\6457-\6459\6470-\6479\6480-\6509\6512-\6516\6528-\6569\6576-\6592\6593-\6599\6600-\6601\6608-\6617\6656-\6678\6679-\6680\6681-\6683\7424-\7467\7468-\7521\7522-\7543\7544\7545-\7578\7579-\7615\7616-\7619\7680-\7835\7840-\7929\7936-\7957\7960-\7965\7968-\8005\8008-\8013\8016-\8023\8025\8027\8029\8031-\8061\8064-\8116\8118-\8124\8126\8130-\8132\8134-\8140\8144-\8147\8150-\8155\8160-\8172\8178-\8180\8182-\8188\8255-\8256\8276\8305\8319\8336-\8340\8400-\8412\8417\8421-\8427\8450\8455\8458-\8467\8469\8472\8473-\8477\8484\8486\8488\8490-\8493\8494\8495-\8497\8499-\8500\8501-\8504\8505\8508-\8511\8517-\8521\8544-\8579\11264-\11310\11312-\11358\11392-\11492\11520-\11557\11568-\11621\11631\11648-\11670\11680-\11686\11688-\11694\11696-\11702\11704-\11710\11712-\11718\11720-\11726\11728-\11734\11736-\11742\12293\12294\12295\12321-\12329\12330-\12335\12337-\12341\12344-\12346\12347\12348\12353-\12438\12441-\12442\12445-\12446\12447\12449-\12538\12540-\12542\12543\12549-\12588\12593-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40891\40960-\40980\40981\40982-\42124\43008-\43009\43010\43011-\43013\43014\43015-\43018\43019\43020-\43042\43043-\43044\43045-\43046\43047\44032-\55203\63744-\64045\64048-\64106\64112-\64217\64256-\64262\64275-\64279\64285\64286\64287-\64296\64298-\64310\64312-\64316\64318\64320-\64321\64323-\64324\64326-\64433\64467-\64605\64612-\64829\64848-\64911\64914-\64967\65008-\65017\65024-\65039\65056-\65059\65075-\65076\65101-\65103\65137\65139\65143\65145\65147\65149\65151-\65276\65296-\65305\65313-\65338\65343\65345-\65370\65382-\65391\65392\65393-\65437\65438-\65439\65440-\65470\65474-\65479\65482-\65487\65490-\65495\65498-\65500]*" (Arbitrary "Name" :. Arbitrary "Namespace")     ] 
src/Text/Highlighter/Lexers/Python3Traceback.hs view
@@ -5,28 +5,28 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\121\116\104\111\110\51"-    , lAliases = ["\112\121\51\116\98"]-    , lExtensions = ["\46\112\121\51\116\98"]-    , lMimetypes = ["\116\101\120\116\47\120\45\112\121\116\104\111\110\51\45\116\114\97\99\101\98\97\99\107"]+    { lName = "Python 3.0 Traceback"+    , lAliases = ["py3tb"]+    , lExtensions = [".py3tb"]+    , lMimetypes = ["text/x-python3-traceback"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\92\110" (Arbitrary "\84\101\120\116")-    , tokNext "\94\84\114\97\99\101\98\97\99\107\32\92\40\109\111\115\116\32\114\101\99\101\110\116\32\99\97\108\108\32\108\97\115\116\92\41\58\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\84\114\97\99\101\98\97\99\107") (GoTo intb')-    , tok "\94\68\117\114\105\110\103\32\104\97\110\100\108\105\110\103\32\111\102\32\116\104\101\32\97\98\111\118\101\32\101\120\99\101\112\116\105\111\110\44\32\97\110\111\116\104\101\114\32\101\120\99\101\112\116\105\111\110\32\111\99\99\117\114\114\101\100\58\92\110\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\84\114\97\99\101\98\97\99\107")-    , tok "\94\84\104\101\32\97\98\111\118\101\32\101\120\99\101\112\116\105\111\110\32\119\97\115\32\116\104\101\32\100\105\114\101\99\116\32\99\97\117\115\101\32\111\102\32\116\104\101\32\102\111\108\108\111\119\105\110\103\32\101\120\99\101\112\116\105\111\110\58\92\110\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\84\114\97\99\101\98\97\99\107")+    [ tok "\\n" (Arbitrary "Text")+    , tokNext "^Traceback \\(most recent call last\\):\\n" (Arbitrary "Generic" :. Arbitrary "Traceback") (GoTo intb')+    , tok "^During handling of the above exception, another exception occurred:\\n\\n" (Arbitrary "Generic" :. Arbitrary "Traceback")+    , tok "^The above exception was the direct cause of the following exception:\\n\\n" (Arbitrary "Generic" :. Arbitrary "Traceback")     ]  intb' :: TokenMatcher intb' =-    [ tok "\94\40\32\32\70\105\108\101\32\41\40\34\91\94\34\93\43\34\41\40\44\32\108\105\110\101\32\41\40\92\100\43\41\40\44\32\105\110\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\73\100\101\110\116\105\102\105\101\114"), (Arbitrary "\84\101\120\116")])-    , tok "\94\40\32\32\32\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Using Python3.lexer), (Arbitrary "\84\101\120\116")])-    , tok "\94\40\91\32\92\116\93\42\41\40\46\46\46\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116"), (Arbitrary "\84\101\120\116")])-    , tokNext "\94\40\46\43\41\40\58\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\73\100\101\110\116\105\102\105\101\114"), (Arbitrary "\84\101\120\116")]) Pop-    , tokNext "\94\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\58\63\92\110\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116")]) Pop+    [ tok "^(  File )(\"[^\"]+\")(, line )(\\d+)(, in )(.+)(\\n)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Text")])+    , tok "^(    )(.+)(\\n)" (ByGroups [(Arbitrary "Text"), (Using Python3.lexer), (Arbitrary "Text")])+    , tok "^([ \\t]*)(...)(\\n)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment"), (Arbitrary "Text")])+    , tokNext "^(.+)(: )(.+)(\\n)" (ByGroups [(Arbitrary "Generic" :. Arbitrary "Error"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Text")]) Pop+    , tokNext "^([a-zA-Z_][a-zA-Z0-9_]*)(:?\\n)" (ByGroups [(Arbitrary "Generic" :. Arbitrary "Error"), (Arbitrary "Text")]) Pop     ] 
src/Text/Highlighter/Lexers/PythonTraceback.hs view
@@ -5,28 +5,28 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\121\116\104\111\110"-    , lAliases = ["\112\121\116\98"]-    , lExtensions = ["\46\112\121\116\98"]-    , lMimetypes = ["\116\101\120\116\47\120\45\112\121\116\104\111\110\45\116\114\97\99\101\98\97\99\107"]+    { lName = "Python Traceback"+    , lAliases = ["pytb"]+    , lExtensions = [".pytb"]+    , lMimetypes = ["text/x-python-traceback"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tokNext "\94\84\114\97\99\101\98\97\99\107\32\92\40\109\111\115\116\32\114\101\99\101\110\116\32\99\97\108\108\32\108\97\115\116\92\41\58\92\110" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\84\114\97\99\101\98\97\99\107") (GoTo intb')-    , tokNext "\94\40\63\61\32\32\70\105\108\101\32\34\91\94\34\93\43\34\44\32\108\105\110\101\32\92\100\43\41" (Arbitrary "\71\101\110\101\114\105\99" :. Arbitrary "\84\114\97\99\101\98\97\99\107") (GoTo intb')-    , tok "\94\46\42\92\110" (Arbitrary "\79\116\104\101\114")+    [ tokNext "^Traceback \\(most recent call last\\):\\n" (Arbitrary "Generic" :. Arbitrary "Traceback") (GoTo intb')+    , tokNext "^(?=  File \"[^\"]+\", line \\d+)" (Arbitrary "Generic" :. Arbitrary "Traceback") (GoTo intb')+    , tok "^.*\\n" (Arbitrary "Other")     ]  intb' :: TokenMatcher intb' =-    [ tok "\94\40\32\32\70\105\108\101\32\41\40\34\91\94\34\93\43\34\41\40\44\32\108\105\110\101\32\41\40\92\100\43\41\40\44\32\105\110\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\73\100\101\110\116\105\102\105\101\114"), (Arbitrary "\84\101\120\116")])-    , tok "\94\40\32\32\70\105\108\101\32\41\40\34\91\94\34\93\43\34\41\40\44\32\108\105\110\101\32\41\40\92\100\43\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114"), (Arbitrary "\84\101\120\116")])-    , tok "\94\40\32\32\32\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Using Python.lexer), (Arbitrary "\84\101\120\116")])-    , tok "\94\40\91\32\92\116\93\42\41\40\46\46\46\41\40\92\110\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\67\111\109\109\101\110\116"), (Arbitrary "\84\101\120\116")])-    , tokNext "\94\40\46\43\41\40\58\32\41\40\46\43\41\40\92\110\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\73\100\101\110\116\105\102\105\101\114"), (Arbitrary "\84\101\120\116")]) Pop-    , tokNext "\94\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\58\63\92\110\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116")]) Pop+    [ tok "^(  File )(\"[^\"]+\")(, line )(\\d+)(, in )(.+)(\\n)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Text")])+    , tok "^(  File )(\"[^\"]+\")(, line )(\\d+)(\\n)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Builtin"), (Arbitrary "Text"), (Arbitrary "Literal" :. Arbitrary "Number"), (Arbitrary "Text")])+    , tok "^(    )(.+)(\\n)" (ByGroups [(Arbitrary "Text"), (Using Python.lexer), (Arbitrary "Text")])+    , tok "^([ \\t]*)(...)(\\n)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Comment"), (Arbitrary "Text")])+    , tokNext "^(.+)(: )(.+)(\\n)" (ByGroups [(Arbitrary "Generic" :. Arbitrary "Error"), (Arbitrary "Text"), (Arbitrary "Name"), (Arbitrary "Text")]) Pop+    , tokNext "^([a-zA-Z_][a-zA-Z0-9_]*)(:?\\n)" (ByGroups [(Arbitrary "Generic" :. Arbitrary "Error"), (Arbitrary "Text")]) Pop     ] 
src/Text/Highlighter/Lexers/Ragel.hs view
@@ -5,8 +5,8 @@  lexer :: Lexer lexer = Lexer-    { lName = "\82\97\103\101\108"-    , lAliases = ["\114\97\103\101\108"]+    { lName = "Ragel"+    , lAliases = ["ragel"]     , lExtensions = []     , lMimetypes = []     , lStart = root'@@ -15,53 +15,53 @@  host' :: TokenMatcher host' =-    [ tok "\40\91\94\123\125\92\39\34\47\35\93\43\124\91\94\92\92\93\91\92\92\93\91\123\125\93\124\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34\124\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39\124\47\47\46\42\36\92\110\63\124\47\92\42\40\46\124\92\110\41\42\63\92\42\47\124\92\35\46\42\36\92\110\63\124\47\40\63\33\92\42\41\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\124\47\41\43" (Arbitrary "\79\116\104\101\114")-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Push-    , tokNext "\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tok "([^{}\\'\"/#]+|[^\\\\][\\\\][{}]|\"(\\\\\\\\|\\\\\"|[^\"])*\"|'(\\\\\\\\|\\\\'|[^'])*'|//.*$\\n?|/\\*(.|\\n)*?\\*/|\\#.*$\\n?|/(?!\\*)(\\\\\\\\|\\\\/|[^/])*/|/)+" (Arbitrary "Other")+    , tokNext "{" (Arbitrary "Punctuation") Push+    , tokNext "}" (Arbitrary "Punctuation") Pop     ]  literals' :: TokenMatcher literals' =-    [ tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\91\40\92\92\92\92\124\92\92\92\93\124\91\94\92\93\93\41\42\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\47\40\63\33\92\42\41\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")+    [ tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\[(\\\\\\\\|\\\\\\]|[^\\]])*\\]" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "/(?!\\*)(\\\\\\\\|\\\\/|[^/])*/" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116" :. Arbitrary "\87\104\105\116\101\115\112\97\99\101")+    [ tok "\\s+" (Arbitrary "Text" :. Arbitrary "Whitespace")     ]  keywords' :: TokenMatcher keywords' =-    [ tok "\40\97\99\99\101\115\115\124\97\99\116\105\111\110\124\97\108\112\104\116\121\112\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\103\101\116\107\101\121\124\119\114\105\116\101\124\109\97\99\104\105\110\101\124\105\110\99\108\117\100\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\97\110\121\124\97\115\99\105\105\124\101\120\116\101\110\100\124\97\108\112\104\97\124\100\105\103\105\116\124\97\108\110\117\109\124\108\111\119\101\114\124\117\112\112\101\114\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\120\100\105\103\105\116\124\99\110\116\114\108\124\103\114\97\112\104\124\112\114\105\110\116\124\112\117\110\99\116\124\115\112\97\99\101\124\122\108\101\110\124\101\109\112\116\121\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "(access|action|alphtype)\\b" (Arbitrary "Keyword")+    , tok "(getkey|write|machine|include)\\b" (Arbitrary "Keyword")+    , tok "(any|ascii|extend|alpha|digit|alnum|lower|upper)\\b" (Arbitrary "Keyword")+    , tok "(xdigit|cntrl|graph|print|punct|space|zlen|empty)\\b" (Arbitrary "Keyword")     ]  operators' :: TokenMatcher operators' =-    [ tok "\44" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\124\124\38\124\45\124\45\45" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\46\124\60\58\124\58\62\124\58\62\62" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\58" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\45\62" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\62\124\92\36\124\37\124\60\124\64\124\60\62\41\40\47\124\101\111\102\92\98\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\62\124\92\36\124\37\124\60\124\64\124\60\62\41\40\33\124\101\114\114\92\98\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\62\124\92\36\124\37\124\60\124\64\124\60\62\41\40\92\94\124\108\101\114\114\92\98\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\62\124\92\36\124\37\124\60\124\64\124\60\62\41\40\126\124\116\111\92\98\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\62\124\92\36\124\37\124\60\124\64\124\60\62\41\40\92\42\124\102\114\111\109\92\98\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\62\124\64\124\92\36\124\37" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\42\124\92\63\124\92\43\124\123\91\48\45\57\93\42\44\91\48\45\57\93\42\125" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\33\124\92\94" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\40\124\92\41" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "," (Arbitrary "Operator")+    , tok "\\||&|-|--" (Arbitrary "Operator")+    , tok "\\.|<:|:>|:>>" (Arbitrary "Operator")+    , tok ":" (Arbitrary "Operator")+    , tok "->" (Arbitrary "Operator")+    , tok "(>|\\$|%|<|@|<>)(/|eof\\b)" (Arbitrary "Operator")+    , tok "(>|\\$|%|<|@|<>)(!|err\\b)" (Arbitrary "Operator")+    , tok "(>|\\$|%|<|@|<>)(\\^|lerr\\b)" (Arbitrary "Operator")+    , tok "(>|\\$|%|<|@|<>)(\126|to\\b)" (Arbitrary "Operator")+    , tok "(>|\\$|%|<|@|<>)(\\*|from\\b)" (Arbitrary "Operator")+    , tok ">|@|\\$|%" (Arbitrary "Operator")+    , tok "\\*|\\?|\\+|{[0-9]*,[0-9]*}" (Arbitrary "Operator")+    , tok "!|\\^" (Arbitrary "Operator")+    , tok "\\(|\\)" (Arbitrary "Operator")     ]  identifiers' :: TokenMatcher identifiers' =-    [ tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\95\48\45\57\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    [ tok "[a-zA-Z_][a-zA-Z_0-9]*" (Arbitrary "Name" :. Arbitrary "Variable")     ]  root' :: TokenMatcher@@ -73,19 +73,19 @@     , anyOf numbers'     , anyOf identifiers'     , anyOf operators'-    , tokNext "\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo host')-    , tok "\61" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    , tokNext "{" (Arbitrary "Punctuation") (GoTo host')+    , tok "=" (Arbitrary "Operator")+    , tok ";" (Arbitrary "Punctuation")     ]  comments' :: TokenMatcher comments' =-    [ tok "\92\35\46\42\36" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "\\#.*$" (Arbitrary "Comment")     ]  numbers' :: TokenMatcher numbers' =-    [ tok "\48\120\91\48\45\57\65\45\70\97\45\102\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\43\45\93\63\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "0x[0-9A-Fa-f]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[+-]?[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ] 
src/Text/Highlighter/Lexers/RagelEmbedded.hs view
@@ -6,9 +6,9 @@  lexer :: Lexer lexer = Lexer-    { lName = "\82\97\103\101\108"-    , lAliases = ["\114\97\103\101\108\45\101\109"]-    , lExtensions = ["\46\114\108"]+    { lName = "Embedded Ragel"+    , lAliases = ["ragel-em"]+    , lExtensions = [".rl"]     , lMimetypes = []     , lStart = root'     , lFlags = [multiline]@@ -16,14 +16,14 @@  root' :: TokenMatcher root' =-    [ tok "\40\91\94\37\92\39\34\47\35\93\43\124\37\40\63\61\91\94\37\93\124\36\41\124\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34\124\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39\124\47\92\42\40\46\124\92\110\41\42\63\92\42\47\124\47\47\46\42\36\92\110\63\124\92\35\46\42\36\92\110\63\124\47\40\63\33\92\42\41\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\124\47\41\43" (Arbitrary "\79\116\104\101\114")-    , tok "\40\37\37\41\40\63\33\91\123\37\93\41\40\46\42\41\40\36\124\59\41\40\92\110\63\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Using Ragel.lexer), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\84\101\120\116")])-    , tokNext "\40\37\37\37\37\124\37\37\41\123" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") (GoTo multiLineFsm')+    [ tok "([^%\\'\"/#]+|%(?=[^%]|$)|\"(\\\\\\\\|\\\\\"|[^\"])*\"|'(\\\\\\\\|\\\\'|[^'])*'|/\\*(.|\\n)*?\\*/|//.*$\\n?|\\#.*$\\n?|/(?!\\*)(\\\\\\\\|\\\\/|[^/])*/|/)+" (Arbitrary "Other")+    , tok "(%%)(?![{%])(.*)($|;)(\\n?)" (ByGroups [(Arbitrary "Punctuation"), (Using Ragel.lexer), (Arbitrary "Punctuation"), (Arbitrary "Text")])+    , tokNext "(%%%%|%%){" (Arbitrary "Punctuation") (GoTo multiLineFsm')     ]  multiLineFsm' :: TokenMatcher multiLineFsm' =-    [ tok "\40\40\91\94\125\92\39\34\92\91\47\35\93\124\125\40\63\61\91\94\37\93\124\36\41\124\125\37\40\63\61\91\94\37\93\124\36\41\124\91\94\92\92\93\91\92\92\93\91\123\125\93\124\40\62\124\92\36\124\37\124\60\124\64\124\60\62\41\47\124\47\40\63\33\92\42\41\40\92\92\92\92\124\92\92\47\124\91\94\47\93\41\42\47\92\42\124\47\40\63\61\91\94\47\92\42\93\124\36\41\41\43\124\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34\124\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39\124\92\91\40\92\92\92\92\124\92\92\92\93\124\91\94\92\93\93\41\42\92\93\124\47\92\42\40\46\124\92\110\41\42\63\92\42\47\124\47\47\46\42\36\92\110\63\124\92\35\46\42\36\92\110\63\41\43" (Using Ragel.lexer)-    , tokNext "\125\37\37" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    [ tok "(([^}\\'\"\\[/#]|}(?=[^%]|$)|}%(?=[^%]|$)|[^\\\\][\\\\][{}]|(>|\\$|%|<|@|<>)/|/(?!\\*)(\\\\\\\\|\\\\/|[^/])*/\\*|/(?=[^/\\*]|$))+|\"(\\\\\\\\|\\\\\"|[^\"])*\"|'(\\\\\\\\|\\\\'|[^'])*'|\\[(\\\\\\\\|\\\\\\]|[^\\]])*\\]|/\\*(.|\\n)*?\\*/|//.*$\\n?|\\#.*$\\n?)+" (Using Ragel.lexer)+    , tokNext "}%%" (Arbitrary "Punctuation") Pop     ] 
src/Text/Highlighter/Lexers/Redcode.hs view
@@ -5,9 +5,9 @@  lexer :: Lexer lexer = Lexer-    { lName = "\82\101\100\99\111\100\101"-    , lAliases = ["\114\101\100\99\111\100\101"]-    , lExtensions = ["\46\99\119"]+    { lName = "Redcode"+    , lAliases = ["redcode"]+    , lExtensions = [".cw"]     , lMimetypes = []     , lStart = root'     , lFlags = [multiline]@@ -15,14 +15,14 @@  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\59\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\92\98\40\68\65\84\124\77\79\86\124\65\68\68\124\83\85\66\124\77\85\76\124\68\73\86\124\77\79\68\124\74\77\80\124\74\77\90\124\74\77\78\124\68\74\78\124\67\77\80\124\83\76\84\124\83\80\76\124\79\82\71\124\69\81\85\124\69\78\68\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\92\98\40\65\124\66\124\65\66\124\66\65\124\70\124\88\124\73\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\91\65\45\90\97\45\122\95\93\91\65\45\90\97\45\122\95\48\45\57\93\43" (Arbitrary "\78\97\109\101")-    , tok "\91\45\43\42\47\37\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\35\36\64\60\62\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\46\44\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\45\43\93\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")+    [ tok "\\s+" (Arbitrary "Text")+    , tok ";.*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "\\b(DAT|MOV|ADD|SUB|MUL|DIV|MOD|JMP|JMZ|JMN|DJN|CMP|SLT|SPL|ORG|EQU|END)\\b" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "\\b(A|B|AB|BA|F|X|I)\\b" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "[A-Za-z_][A-Za-z_0-9]+" (Arbitrary "Name")+    , tok "[-+*/%]" (Arbitrary "Operator")+    , tok "[#$@<>]" (Arbitrary "Operator")+    , tok "[.,]" (Arbitrary "Punctuation")+    , tok "[-+]?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")     ] 
src/Text/Highlighter/Lexers/S.hs view
@@ -5,10 +5,10 @@  lexer :: Lexer lexer = Lexer-    { lName = "\83"-    , lAliases = ["\115\112\108\117\115", "\115", "\114"]-    , lExtensions = ["\46\83", "\46\82"]-    , lMimetypes = ["\116\101\120\116\47\83\45\112\108\117\115", "\116\101\120\116\47\83", "\116\101\120\116\47\82"]+    { lName = "S"+    , lAliases = ["splus", "s", "r"]+    , lExtensions = [".S", ".R"]+    , lMimetypes = ["text/S-plus", "text/S", "text/R"]     , lStart = root'     , lFlags = [multiline]     }@@ -16,9 +16,9 @@ statements' :: TokenMatcher statements' =     [ anyOf comments'-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\92\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string_squote')-    , tokNext "\92\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string_dquote')+    , tok "\\s+" (Arbitrary "Text")+    , tokNext "\\'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string_squote')+    , tokNext "\\\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string_dquote')     , anyOf builtin_symbols'     , anyOf numbers'     , anyOf keywords'@@ -29,58 +29,58 @@  string_dquote' :: TokenMatcher string_dquote' =-    [ tokNext "\91\94\92\34\93\42\92\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "[^\\\"]*\\\"" (Arbitrary "Literal" :. Arbitrary "String") Pop     ]  operators' :: TokenMatcher operators' =-    [ tok "\60\45\124\45\124\61\61\124\60\61\124\62\61\124\60\124\62\124\38\38\124\38\124\33\61\124\92\124\92\124\63" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\92\42\124\92\43\124\92\94\124\47\124\37\37\124\37\47\37\124\61" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\37\105\110\37\124\37\42\37" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tok "<-|-|==|<=|>=|<|>|&&|&|!=|\\|\\|?" (Arbitrary "Operator")+    , tok "\\*|\\+|\\^|/|%%|%/%|=" (Arbitrary "Operator")+    , tok "%in%|%*%" (Arbitrary "Operator")     ]  keywords' :: TokenMatcher keywords' =-    [ tok "\102\111\114\40\63\61\92\115\42\92\40\41\124\119\104\105\108\101\40\63\61\92\115\42\92\40\41\124\105\102\40\63\61\92\115\42\92\40\41\124\40\63\60\61\92\115\41\101\108\115\101\124\40\63\60\61\92\115\41\98\114\101\97\107\40\63\61\59\124\36\41\124\114\101\116\117\114\110\40\63\61\92\115\42\92\40\41\124\102\117\110\99\116\105\111\110\40\63\61\92\115\42\92\40\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\82\101\115\101\114\118\101\100")+    [ tok "for(?=\\s*\\()|while(?=\\s*\\()|if(?=\\s*\\()|(?<=\\s)else|(?<=\\s)break(?=;|$)|return(?=\\s*\\()|function(?=\\s*\\()" (Arbitrary "Keyword" :. Arbitrary "Reserved")     ]  numbers' :: TokenMatcher numbers' =-    [ tok "\40\63\60\33\91\48\45\57\97\45\122\65\45\90\92\41\92\125\92\93\96\92\34\93\41\40\63\61\92\115\42\41\91\45\92\43\93\63\91\48\45\57\93\43\40\92\46\91\48\45\57\93\42\41\63\40\69\91\48\45\57\93\91\45\92\43\93\63\40\92\46\91\48\45\57\93\42\41\63\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\46\91\48\45\57\93\42\40\69\91\48\45\57\93\91\45\92\43\93\63\40\92\46\91\48\45\57\93\42\41\63\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")+    [ tok "(?<![0-9a-zA-Z\\)\\}\\]`\\\"])(?=\\s*)[-\\+]?[0-9]+(\\.[0-9]*)?(E[0-9][-\\+]?(\\.[0-9]*)?)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\.[0-9]*(E[0-9][-\\+]?(\\.[0-9]*)?)?" (Arbitrary "Literal" :. Arbitrary "Number")     ]  valid_name' :: TokenMatcher valid_name' =-    [ tok "\91\97\45\122\65\45\90\93\91\48\45\57\97\45\122\65\45\90\92\46\95\93\43" (Arbitrary "\84\101\120\116")-    , tok "\96\46\43\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107")+    [ tok "[a-zA-Z][0-9a-zA-Z\\._]+" (Arbitrary "Text")+    , tok "`.+`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick")     ]  builtin_symbols' :: TokenMatcher builtin_symbols' =-    [ tok "\40\78\85\76\76\124\78\65\124\84\82\85\69\124\70\65\76\83\69\124\78\97\78\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\84\124\70\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\86\97\114\105\97\98\108\101")+    [ tok "(NULL|NA|TRUE|FALSE|NaN)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "(T|F)\\b" (Arbitrary "Keyword" :. Arbitrary "Variable")     ]  punctuation' :: TokenMatcher punctuation' =-    [ tok "\92\91\124\92\93\124\92\91\92\91\124\92\93\92\93\124\92\36\124\92\40\124\92\41\124\64\124\58\58\58\63\124\59\124\44" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok "\\[|\\]|\\[\\[|\\]\\]|\\$|\\(|\\)|@|:::?|;|," (Arbitrary "Punctuation")     ]  comments' :: TokenMatcher comments' =-    [ tok "\35\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")+    [ tok "#.*$" (Arbitrary "Comment" :. Arbitrary "Single")     ]  root' :: TokenMatcher root' =     [ anyOf statements'-    , tok "\92\123\124\92\125" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\46" (Arbitrary "\84\101\120\116")+    , tok "\\{|\\}" (Arbitrary "Punctuation")+    , tok "." (Arbitrary "Text")     ]  string_squote' :: TokenMatcher string_squote' =-    [ tokNext "\91\94\92\39\93\42\92\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "[^\\']*\\'" (Arbitrary "Literal" :. Arbitrary "String") Pop     ] 
src/Text/Highlighter/Lexers/Scala.hs view
@@ -5,81 +5,81 @@  lexer :: Lexer lexer = Lexer-    { lName = "\83\99\97\108\97"-    , lAliases = ["\115\99\97\108\97"]-    , lExtensions = ["\46\115\99\97\108\97"]-    , lMimetypes = ["\116\101\120\116\47\120\45\115\99\97\108\97"]+    { lName = "Scala"+    , lAliases = ["scala"]+    , lExtensions = [".scala"]+    , lMimetypes = ["text/x-scala"]     , lStart = root'     , lFlags = [multiline, dotall]     }  comment' :: TokenMatcher comment' =-    [ tok "\91\94\47\92\42\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Push-    , tokNext "\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\42\47\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tok "[^/\\*]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") Push+    , tokNext "\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[*/]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tokNext "\40\99\108\97\115\115\124\116\114\97\105\116\124\111\98\106\101\99\116\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo class')-    , tok "\39\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63" (Arbitrary "\84\101\120\116" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\91\94\92\83\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tok "\47\47\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo comment')-    , tok "\64\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63" (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")-    , tok "\40\97\98\115\116\114\97\99\116\124\99\97\40\63\58\115\101\124\116\99\104\41\124\100\40\63\58\101\102\124\111\41\124\101\40\63\58\108\115\101\124\120\116\101\110\100\115\41\124\102\40\63\58\105\110\97\108\40\63\58\108\121\41\63\124\111\114\40\63\58\83\111\109\101\41\63\41\124\105\40\63\58\102\124\109\112\108\105\99\105\116\41\124\108\97\122\121\124\109\97\116\99\104\124\110\101\119\124\111\118\101\114\114\105\100\101\124\112\114\40\63\58\105\118\97\116\101\124\111\116\101\99\116\101\100\41\124\114\101\40\63\58\113\117\105\114\101\115\124\116\117\114\110\41\124\115\40\63\58\101\97\108\101\100\124\117\112\101\114\41\124\116\40\63\58\104\40\63\58\105\115\124\114\111\119\41\124\114\121\41\124\118\97\91\108\114\93\124\119\40\63\58\104\105\108\101\124\105\116\104\41\124\121\105\101\108\100\41\92\98\124\40\60\91\37\58\45\93\124\61\62\124\62\58\124\91\35\61\64\95\8658\8592\93\41\40\8\124\40\63\61\92\115\41\124\36\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\58\40\63\33\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo type')-    , tok "\91\65\45\90\92\36\95\192\45\214\216\45\222\256\258\260\262\264\266\268\270\272\274\276\278\280\282\284\286\288\290\292\294\296\298\300\302\304\306\308\310\313\315\317\319\321\323\325\327\330\332\334\336\338\340\342\344\346\348\350\352\354\356\358\360\362\364\366\368\370\372\374\376\45\377\379\381\385\45\386\388\390\45\391\393\45\395\398\45\401\403\45\404\406\45\408\412\45\413\415\45\416\418\420\422\45\423\425\428\430\45\431\433\45\435\437\439\45\440\444\452\455\458\461\463\465\467\469\471\473\475\478\480\482\484\486\488\490\492\494\497\500\502\45\504\506\508\510\512\514\516\518\520\522\524\526\528\530\532\534\536\538\540\542\544\546\548\550\552\554\556\558\560\562\570\45\571\573\45\574\577\579\45\582\584\586\588\590\880\882\886\902\904\45\911\913\45\939\975\978\45\980\984\986\988\990\992\994\996\998\1000\1002\1004\1006\1012\1015\1017\45\1018\1021\45\1071\1120\1122\1124\1126\1128\1130\1132\1134\1136\1138\1140\1142\1144\1146\1148\1150\1152\1162\1164\1166\1168\1170\1172\1174\1176\1178\1180\1182\1184\1186\1188\1190\1192\1194\1196\1198\1200\1202\1204\1206\1208\1210\1212\1214\1216\45\1217\1219\1221\1223\1225\1227\1229\1232\1234\1236\1238\1240\1242\1244\1246\1248\1250\1252\1254\1256\1258\1260\1262\1264\1266\1268\1270\1272\1274\1276\1278\1280\1282\1284\1286\1288\1290\1292\1294\1296\1298\1300\1302\1304\1306\1308\1310\1312\1314\1329\45\1366\4256\45\4293\7680\7682\7684\7686\7688\7690\7692\7694\7696\7698\7700\7702\7704\7706\7708\7710\7712\7714\7716\7718\7720\7722\7724\7726\7728\7730\7732\7734\7736\7738\7740\7742\7744\7746\7748\7750\7752\7754\7756\7758\7760\7762\7764\7766\7768\7770\7772\7774\7776\7778\7780\7782\7784\7786\7788\7790\7792\7794\7796\7798\7800\7802\7804\7806\7808\7810\7812\7814\7816\7818\7820\7822\7824\7826\7828\7838\7840\7842\7844\7846\7848\7850\7852\7854\7856\7858\7860\7862\7864\7866\7868\7870\7872\7874\7876\7878\7880\7882\7884\7886\7888\7890\7892\7894\7896\7898\7900\7902\7904\7906\7908\7910\7912\7914\7916\7918\7920\7922\7924\7926\7928\7930\7932\7934\7944\45\7951\7960\45\7965\7976\45\7983\7992\45\7999\8008\45\8013\8025\45\8031\8040\45\8047\8120\45\8123\8136\45\8139\8152\45\8155\8168\45\8172\8184\45\8187\8450\8455\8459\45\8461\8464\45\8466\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8496\45\8499\8510\45\8511\8517\8579\11264\45\11310\11360\11362\45\11364\11367\11369\11371\11373\45\11375\11378\11381\11392\11394\11396\11398\11400\11402\11404\11406\11408\11410\11412\11414\11416\11418\11420\11422\11424\11426\11428\11430\11432\11434\11436\11438\11440\11442\11444\11446\11448\11450\11452\11454\11456\11458\11460\11462\11464\11466\11468\11470\11472\11474\11476\11478\11480\11482\11484\11486\11488\11490\42560\42562\42564\42566\42568\42570\42572\42574\42576\42578\42580\42582\42584\42586\42588\42590\42594\42596\42598\42600\42602\42604\42624\42626\42628\42630\42632\42634\42636\42638\42640\42642\42644\42646\42786\42788\42790\42792\42794\42796\42798\42802\42804\42806\42808\42810\42812\42814\42816\42818\42820\42822\42824\42826\42828\42830\42832\42834\42836\42838\42840\42842\42844\42846\42848\42850\42852\42854\42856\42858\42860\42862\42873\42875\42877\45\42878\42880\42882\42884\42886\42891\65313\45\65338\93\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tokNext "\40\105\109\112\111\114\116\124\112\97\99\107\97\103\101\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo import')-    , tokNext "\40\116\121\112\101\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo type')-    , tok "\34\34\34\40\63\58\46\124\92\110\41\42\63\34\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\39\92\92\46\39\124\39\91\94\92\92\93\39\124\39\92\92\117\91\48\45\57\97\45\102\93\123\52\125\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63" (Arbitrary "\78\97\109\101")-    , tok "\96\91\94\96\93\43\96" (Arbitrary "\78\97\109\101")-    , tokNext "\92\91" (Arbitrary "\79\112\101\114\97\116\111\114") (GoTo typeparam')-    , tok "\91\92\40\92\41\92\123\92\125\59\44\46\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\91\48\45\57\93\91\48\45\57\93\42\92\46\91\48\45\57\93\42\124\92\46\91\48\45\57\93\43\41\40\91\101\69\93\91\43\45\93\63\91\48\45\57\93\43\41\63\91\102\70\100\68\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\91\48\45\57\93\43\76\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\92\110" (Arbitrary "\84\101\120\116")+    [ tokNext "(class|trait|object)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo class')+    , tok "'[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?" (Arbitrary "Text" :. Arbitrary "Symbol")+    , tok "[^\\S\\n]+" (Arbitrary "Text")+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo comment')+    , tok "@[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tok "(abstract|ca(?:se|tch)|d(?:ef|o)|e(?:lse|xtends)|f(?:inal(?:ly)?|or(?:Some)?)|i(?:f|mplicit)|lazy|match|new|override|pr(?:ivate|otected)|re(?:quires|turn)|s(?:ealed|uper)|t(?:h(?:is|row)|ry)|va[lr]|w(?:hile|ith)|yield)\\b|(<[%:-]|=>|>:|[#=@_\8658\8592])(\8|(?=\\s)|$)" (Arbitrary "Keyword")+    , tokNext ":(?![-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)" (Arbitrary "Keyword") (GoTo type')+    , tok "[A-Z\\$_\192-\214\216-\222\256\258\260\262\264\266\268\270\272\274\276\278\280\282\284\286\288\290\292\294\296\298\300\302\304\306\308\310\313\315\317\319\321\323\325\327\330\332\334\336\338\340\342\344\346\348\350\352\354\356\358\360\362\364\366\368\370\372\374\376-\377\379\381\385-\386\388\390-\391\393-\395\398-\401\403-\404\406-\408\412-\413\415-\416\418\420\422-\423\425\428\430-\431\433-\435\437\439-\440\444\452\455\458\461\463\465\467\469\471\473\475\478\480\482\484\486\488\490\492\494\497\500\502-\504\506\508\510\512\514\516\518\520\522\524\526\528\530\532\534\536\538\540\542\544\546\548\550\552\554\556\558\560\562\570-\571\573-\574\577\579-\582\584\586\588\590\880\882\886\902\904-\911\913-\939\975\978-\980\984\986\988\990\992\994\996\998\1000\1002\1004\1006\1012\1015\1017-\1018\1021-\1071\1120\1122\1124\1126\1128\1130\1132\1134\1136\1138\1140\1142\1144\1146\1148\1150\1152\1162\1164\1166\1168\1170\1172\1174\1176\1178\1180\1182\1184\1186\1188\1190\1192\1194\1196\1198\1200\1202\1204\1206\1208\1210\1212\1214\1216-\1217\1219\1221\1223\1225\1227\1229\1232\1234\1236\1238\1240\1242\1244\1246\1248\1250\1252\1254\1256\1258\1260\1262\1264\1266\1268\1270\1272\1274\1276\1278\1280\1282\1284\1286\1288\1290\1292\1294\1296\1298\1300\1302\1304\1306\1308\1310\1312\1314\1329-\1366\4256-\4293\7680\7682\7684\7686\7688\7690\7692\7694\7696\7698\7700\7702\7704\7706\7708\7710\7712\7714\7716\7718\7720\7722\7724\7726\7728\7730\7732\7734\7736\7738\7740\7742\7744\7746\7748\7750\7752\7754\7756\7758\7760\7762\7764\7766\7768\7770\7772\7774\7776\7778\7780\7782\7784\7786\7788\7790\7792\7794\7796\7798\7800\7802\7804\7806\7808\7810\7812\7814\7816\7818\7820\7822\7824\7826\7828\7838\7840\7842\7844\7846\7848\7850\7852\7854\7856\7858\7860\7862\7864\7866\7868\7870\7872\7874\7876\7878\7880\7882\7884\7886\7888\7890\7892\7894\7896\7898\7900\7902\7904\7906\7908\7910\7912\7914\7916\7918\7920\7922\7924\7926\7928\7930\7932\7934\7944-\7951\7960-\7965\7976-\7983\7992-\7999\8008-\8013\8025-\8031\8040-\8047\8120-\8123\8136-\8139\8152-\8155\8168-\8172\8184-\8187\8450\8455\8459-\8461\8464-\8466\8469\8473-\8477\8484\8486\8488\8490-\8493\8496-\8499\8510-\8511\8517\8579\11264-\11310\11360\11362-\11364\11367\11369\11371\11373-\11375\11378\11381\11392\11394\11396\11398\11400\11402\11404\11406\11408\11410\11412\11414\11416\11418\11420\11422\11424\11426\11428\11430\11432\11434\11436\11438\11440\11442\11444\11446\11448\11450\11452\11454\11456\11458\11460\11462\11464\11466\11468\11470\11472\11474\11476\11478\11480\11482\11484\11486\11488\11490\42560\42562\42564\42566\42568\42570\42572\42574\42576\42578\42580\42582\42584\42586\42588\42590\42594\42596\42598\42600\42602\42604\42624\42626\42628\42630\42632\42634\42636\42638\42640\42642\42644\42646\42786\42788\42790\42792\42794\42796\42798\42802\42804\42806\42808\42810\42812\42814\42816\42818\42820\42822\42824\42826\42828\42830\42832\42834\42836\42838\42840\42842\42844\42846\42848\42850\42852\42854\42856\42858\42860\42862\42873\42875\42877-\42878\42880\42882\42884\42886\42891\65313-\65338][a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?\\b" (Arbitrary "Name" :. Arbitrary "Class")+    , tok "(true|false|null)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tokNext "(import|package)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo import')+    , tokNext "(type)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo type')+    , tok "\"\"\"(?:.|\\n)*?\"\"\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "'\\\\.'|'[^\\\\]'|'\\\\u[0-9a-f]{4}'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?" (Arbitrary "Name")+    , tok "`[^`]+`" (Arbitrary "Name")+    , tokNext "\\[" (Arbitrary "Operator") (GoTo typeparam')+    , tok "[\\(\\)\\{\\};,.]" (Arbitrary "Operator")+    , tok "[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+" (Arbitrary "Operator")+    , tok "([0-9][0-9]*\\.[0-9]*|\\.[0-9]+)([eE][+-]?[0-9]+)?[fFdD]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-f]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "[0-9]+L?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\n" (Arbitrary "Text")     ]  typeparam' :: TokenMatcher typeparam' =-    [ tok "\91\92\115\92\110\44\93\43" (Arbitrary "\84\101\120\116")-    , tok "\60\91\37\58\93\124\61\62\124\62\58\124\91\35\95\8658\93\124\102\111\114\83\111\109\101\124\116\121\112\101" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\40\91\92\93\92\41\92\125\93\41" (Arbitrary "\79\112\101\114\97\116\111\114") Pop-    , tokNext "\91\92\40\92\91\92\123\93" (Arbitrary "\79\112\101\114\97\116\111\114") Push-    , tok "\92\46\124\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\124\96\91\94\96\93\43\96" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")+    [ tok "[\\s\\n,]+" (Arbitrary "Text")+    , tok "<[%:]|=>|>:|[#_\8658]|forSome|type" (Arbitrary "Keyword")+    , tokNext "([\\]\\)\\}])" (Arbitrary "Operator") Pop+    , tokNext "[\\(\\[\\{]" (Arbitrary "Operator") Push+    , tok "\\.|[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+|`[^`]+`" (Arbitrary "Keyword" :. Arbitrary "Type")     ]  import' :: TokenMatcher import' =-    [ tokNext "\40\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\92\46\41\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+    [ tokNext "([a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|\\.)+" (Arbitrary "Name" :. Arbitrary "Namespace") Pop     ]  type' :: TokenMatcher type' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\60\91\37\58\93\124\62\58\124\91\35\95\8658\93\124\102\111\114\83\111\109\101\124\116\121\112\101" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\40\91\44\92\41\59\125\93\124\61\62\124\61\41\40\91\92\115\92\110\93\42\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116")]) Pop-    , tokNext "\91\92\40\92\123\93" (Arbitrary "\79\112\101\114\97\116\111\114") Push-    , tokNext "\40\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\124\96\91\94\96\93\43\96\41\40\63\58\92\46\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\124\96\91\94\96\93\43\96\41\41\42\41\40\92\115\42\41\40\92\91\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")]) (DoAll [Pop, (GoTo typeparam')])-    , tokNext "\40\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\124\96\91\94\96\93\43\96\41\40\63\58\92\46\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\124\96\91\94\96\93\43\96\41\41\42\41\40\92\115\42\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101"), (Arbitrary "\84\101\120\116")]) Pop-    , tok "\92\46\124\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\124\96\91\94\96\93\43\96" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "<[%:]|>:|[#_\8658]|forSome|type" (Arbitrary "Keyword")+    , tokNext "([,\\);}]|=>|=)([\\s\\n]*)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Text")]) Pop+    , tokNext "[\\(\\{]" (Arbitrary "Operator") Push+    , tokNext "((?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+|`[^`]+`)(?:\\.(?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+|`[^`]+`))*)(\\s*)(\\[)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Text"), (Arbitrary "Operator")]) (DoAll [Pop, (GoTo typeparam')])+    , tokNext "((?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+|`[^`]+`)(?:\\.(?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+|`[^`]+`))*)(\\s*)$" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Type"), (Arbitrary "Text")]) Pop+    , tok "\\.|[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+|`[^`]+`" (Arbitrary "Keyword" :. Arbitrary "Type")     ]  class' :: TokenMatcher class' =-    [ tokNext "\40\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\124\96\91\94\96\93\43\96\41\40\92\115\42\41\40\92\91\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")]) (GoTo typeparam')-    , tok "\91\92\115\92\110\93\43" (Arbitrary "\84\101\120\116")-    , tokNext "\123" (Arbitrary "\79\112\101\114\97\116\111\114") Pop-    , tokNext "\92\40" (Arbitrary "\79\112\101\114\97\116\111\114") Pop-    , tokNext "\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\40\63\58\91\97\45\122\65\45\90\92\36\95\170\181\186\192\45\214\216\45\246\248\45\687\880\45\883\886\45\887\891\45\893\902\904\45\1013\1015\45\1153\1162\45\1366\1377\45\1415\1488\45\1522\1569\45\1599\1601\45\1610\1646\45\1647\1649\45\1747\1749\1774\45\1775\1786\45\1788\1791\1808\1810\45\1839\1869\45\1957\1969\1994\45\2026\2308\45\2361\2365\2384\2392\45\2401\2418\45\2431\2437\45\2489\2493\2510\2524\45\2529\2544\45\2545\2565\45\2617\2649\45\2654\2674\45\2676\2693\45\2745\2749\2768\45\2785\2821\45\2873\2877\2908\45\2913\2929\2947\45\3001\3024\3077\45\3133\3160\45\3169\3205\45\3257\3261\3294\45\3297\3333\45\3389\3424\45\3425\3450\45\3455\3461\45\3526\3585\45\3632\3634\45\3635\3648\45\3653\3713\45\3760\3762\45\3763\3773\45\3780\3804\45\3840\3904\45\3948\3976\45\3979\4096\45\4138\4159\4176\45\4181\4186\45\4189\4193\4197\45\4198\4206\45\4208\4213\45\4225\4238\4256\45\4346\4352\45\4954\4992\45\5007\5024\45\5740\5743\45\5750\5761\45\5786\5792\45\5866\5870\45\5905\5920\45\5937\5952\45\5969\5984\45\6000\6016\45\6067\6108\6176\45\6210\6212\45\6312\6314\45\6428\6480\45\6569\6593\45\6599\6656\45\6678\6917\45\6963\6981\45\6987\7043\45\7072\7086\45\7087\7168\45\7203\7245\45\7247\7258\45\7287\7424\45\7467\7522\45\7543\7545\45\7578\7680\45\8124\8126\8130\45\8140\8144\45\8155\8160\45\8172\8178\45\8188\8305\8319\8450\8455\8458\45\8467\8469\8473\45\8477\8484\8486\8488\8490\45\8493\8495\45\8505\8508\45\8511\8517\45\8521\8526\8544\45\8584\11264\45\11388\11392\45\11492\11520\45\11621\11648\45\11742\12294\45\12295\12321\45\12329\12344\45\12346\12348\12353\45\12438\12447\12449\45\12538\12543\45\12686\12704\45\12727\12784\45\12799\13312\45\19893\19968\45\40980\40982\45\42124\42240\45\42507\42512\45\42527\42538\45\42606\42624\45\42647\42786\45\42863\42865\45\42887\42891\45\43009\43011\45\43013\43015\45\43018\43020\45\43042\43072\45\43123\43138\45\43187\43274\45\43301\43312\45\43334\43520\45\43560\43584\45\43586\43588\45\43595\44032\45\55203\63744\45\64285\64287\45\64296\64298\45\64829\64848\45\65019\65136\45\65276\65313\45\65338\65345\45\65370\65382\45\65391\65393\45\65437\65440\45\65500\93\124\91\48\45\57\93\41\42\40\63\58\40\63\60\61\95\41\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\41\63\124\91\45\126\92\94\92\42\33\37\38\92\92\60\62\92\124\43\61\58\47\63\64\166\45\167\169\172\174\176\45\177\182\215\247\1014\1154\1542\45\1544\1550\45\1551\1769\1789\45\1790\2038\2554\2928\3059\45\3064\3066\3199\3313\45\3314\3449\3841\45\3843\3859\45\3863\3866\45\3871\3892\3894\3896\4030\45\4037\4039\45\4047\4254\45\4255\4960\5008\45\5017\6464\6624\45\6655\7009\45\7018\7028\45\7036\8260\8274\8314\45\8316\8330\45\8332\8448\45\8449\8451\45\8454\8456\45\8457\8468\8470\45\8472\8478\45\8483\8485\8487\8489\8494\8506\45\8507\8512\45\8516\8522\45\8525\8527\8592\45\9000\9003\45\9290\9372\45\9449\9472\45\10087\10132\45\10180\10183\45\10213\10224\45\10626\10649\45\10711\10716\45\10747\10750\45\11092\11493\45\11498\11904\45\12283\12292\12306\45\12307\12320\12342\45\12343\12350\45\12351\12688\45\12689\12694\45\12703\12736\45\12771\12800\45\12830\12842\45\12880\12896\45\12927\12938\45\12976\12992\45\13311\19904\45\19967\42128\45\42182\43048\45\43051\64297\65021\65122\65124\45\65126\65291\65308\45\65310\65372\65374\65506\65508\65512\45\65518\65532\45\65533\93\43\124\96\91\94\96\93\43\96" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "([a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+|`[^`]+`)(\\s*)(\\[)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Text"), (Arbitrary "Operator")]) (GoTo typeparam')+    , tok "[\\s\\n]+" (Arbitrary "Text")+    , tokNext "{" (Arbitrary "Operator") Pop+    , tokNext "\\(" (Arbitrary "Operator") Pop+    , tokNext "[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500](?:[a-zA-Z\\$_\170\181\186\192-\214\216-\246\248-\687\880-\883\886-\887\891-\893\902\904-\1013\1015-\1153\1162-\1366\1377-\1415\1488-\1522\1569-\1599\1601-\1610\1646-\1647\1649-\1747\1749\1774-\1775\1786-\1788\1791\1808\1810-\1839\1869-\1957\1969\1994-\2026\2308-\2361\2365\2384\2392-\2401\2418-\2431\2437-\2489\2493\2510\2524-\2529\2544-\2545\2565-\2617\2649-\2654\2674-\2676\2693-\2745\2749\2768-\2785\2821-\2873\2877\2908-\2913\2929\2947-\3001\3024\3077-\3133\3160-\3169\3205-\3257\3261\3294-\3297\3333-\3389\3424-\3425\3450-\3455\3461-\3526\3585-\3632\3634-\3635\3648-\3653\3713-\3760\3762-\3763\3773-\3780\3804-\3840\3904-\3948\3976-\3979\4096-\4138\4159\4176-\4181\4186-\4189\4193\4197-\4198\4206-\4208\4213-\4225\4238\4256-\4346\4352-\4954\4992-\5007\5024-\5740\5743-\5750\5761-\5786\5792-\5866\5870-\5905\5920-\5937\5952-\5969\5984-\6000\6016-\6067\6108\6176-\6210\6212-\6312\6314-\6428\6480-\6569\6593-\6599\6656-\6678\6917-\6963\6981-\6987\7043-\7072\7086-\7087\7168-\7203\7245-\7247\7258-\7287\7424-\7467\7522-\7543\7545-\7578\7680-\8124\8126\8130-\8140\8144-\8155\8160-\8172\8178-\8188\8305\8319\8450\8455\8458-\8467\8469\8473-\8477\8484\8486\8488\8490-\8493\8495-\8505\8508-\8511\8517-\8521\8526\8544-\8584\11264-\11388\11392-\11492\11520-\11621\11648-\11742\12294-\12295\12321-\12329\12344-\12346\12348\12353-\12438\12447\12449-\12538\12543-\12686\12704-\12727\12784-\12799\13312-\19893\19968-\40980\40982-\42124\42240-\42507\42512-\42527\42538-\42606\42624-\42647\42786-\42863\42865-\42887\42891-\43009\43011-\43013\43015-\43018\43020-\43042\43072-\43123\43138-\43187\43274-\43301\43312-\43334\43520-\43560\43584-\43586\43588-\43595\44032-\55203\63744-\64285\64287-\64296\64298-\64829\64848-\65019\65136-\65276\65313-\65338\65345-\65370\65382-\65391\65393-\65437\65440-\65500]|[0-9])*(?:(?<=_)[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+)?|[-\126\\^\\*!%&\\\\<>\\|+=:/?@\166-\167\169\172\174\176-\177\182\215\247\1014\1154\1542-\1544\1550-\1551\1769\1789-\1790\2038\2554\2928\3059-\3064\3066\3199\3313-\3314\3449\3841-\3843\3859-\3863\3866-\3871\3892\3894\3896\4030-\4037\4039-\4047\4254-\4255\4960\5008-\5017\6464\6624-\6655\7009-\7018\7028-\7036\8260\8274\8314-\8316\8330-\8332\8448-\8449\8451-\8454\8456-\8457\8468\8470-\8472\8478-\8483\8485\8487\8489\8494\8506-\8507\8512-\8516\8522-\8525\8527\8592-\9000\9003-\9290\9372-\9449\9472-\10087\10132-\10180\10183-\10213\10224-\10626\10649-\10711\10716-\10747\10750-\11092\11493-\11498\11904-\12283\12292\12306-\12307\12320\12342-\12343\12350-\12351\12688-\12689\12694-\12703\12736-\12771\12800-\12830\12842-\12880\12896-\12927\12938-\12976\12992-\13311\19904-\19967\42128-\42182\43048-\43051\64297\65021\65122\65124-\65126\65291\65308-\65310\65372\65374\65506\65508\65512-\65518\65532-\65533]+|`[^`]+`" (Arbitrary "Name" :. Arbitrary "Class") Pop     ] 
src/Text/Highlighter/Lexers/Scheme.hs view
@@ -5,31 +5,31 @@  lexer :: Lexer lexer = Lexer-    { lName = "\83\99\104\101\109\101"-    , lAliases = ["\115\99\104\101\109\101", "\115\99\109"]-    , lExtensions = ["\46\115\99\109"]-    , lMimetypes = ["\116\101\120\116\47\120\45\115\99\104\101\109\101", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\115\99\104\101\109\101"]+    { lName = "Scheme"+    , lAliases = ["scheme", "scm"]+    , lExtensions = [".scm"]+    , lMimetypes = ["text/x-scheme", "application/x-scheme"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\59\46\42\36" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\45\63\92\100\43\92\46\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\45\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\39\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\124\45\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\35\92\92\40\91\40\41\47\39\92\34\46\39\95\33\194\167\36\37\38\32\63\61\43\45\93\123\49\125\124\91\97\45\122\65\45\90\48\45\57\93\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\40\35\116\124\35\102\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\40\39\124\35\124\96\124\44\64\124\44\124\92\46\41" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\108\97\109\98\100\97\32\124\100\101\102\105\110\101\32\124\105\102\32\124\101\108\115\101\32\124\99\111\110\100\32\124\97\110\100\32\124\111\114\32\124\99\97\115\101\32\124\108\101\116\32\124\108\101\116\92\42\32\124\108\101\116\114\101\99\32\124\98\101\103\105\110\32\124\100\111\32\124\100\101\108\97\121\32\124\115\101\116\92\33\32\124\92\61\92\62\32\124\113\117\111\116\101\32\124\113\117\97\115\105\113\117\111\116\101\32\124\117\110\113\117\111\116\101\32\124\117\110\113\117\111\116\101\92\45\115\112\108\105\99\105\110\103\32\124\100\101\102\105\110\101\92\45\115\121\110\116\97\120\32\124\108\101\116\92\45\115\121\110\116\97\120\32\124\108\101\116\114\101\99\92\45\115\121\110\116\97\120\32\124\115\121\110\116\97\120\92\45\114\117\108\101\115\32\41" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\63\60\61\39\92\40\41\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\124\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\63\60\61\35\92\40\41\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\124\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\63\60\61\92\40\41\40\92\42\32\124\92\43\32\124\92\45\32\124\92\47\32\124\92\60\32\124\92\60\92\61\32\124\92\61\32\124\92\62\32\124\92\62\92\61\32\124\97\98\115\32\124\97\99\111\115\32\124\97\110\103\108\101\32\124\97\112\112\101\110\100\32\124\97\112\112\108\121\32\124\97\115\105\110\32\124\97\115\115\111\99\32\124\97\115\115\113\32\124\97\115\115\118\32\124\97\116\97\110\32\124\98\111\111\108\101\97\110\92\63\32\124\99\97\97\97\97\114\32\124\99\97\97\97\100\114\32\124\99\97\97\97\114\32\124\99\97\97\100\97\114\32\124\99\97\97\100\100\114\32\124\99\97\97\100\114\32\124\99\97\97\114\32\124\99\97\100\97\97\114\32\124\99\97\100\97\100\114\32\124\99\97\100\97\114\32\124\99\97\100\100\97\114\32\124\99\97\100\100\100\114\32\124\99\97\100\100\114\32\124\99\97\100\114\32\124\99\97\108\108\92\45\119\105\116\104\92\45\99\117\114\114\101\110\116\92\45\99\111\110\116\105\110\117\97\116\105\111\110\32\124\99\97\108\108\92\45\119\105\116\104\92\45\105\110\112\117\116\92\45\102\105\108\101\32\124\99\97\108\108\92\45\119\105\116\104\92\45\111\117\116\112\117\116\92\45\102\105\108\101\32\124\99\97\108\108\92\45\119\105\116\104\92\45\118\97\108\117\101\115\32\124\99\97\108\108\92\47\99\99\32\124\99\97\114\32\124\99\100\97\97\97\114\32\124\99\100\97\97\100\114\32\124\99\100\97\97\114\32\124\99\100\97\100\97\114\32\124\99\100\97\100\100\114\32\124\99\100\97\100\114\32\124\99\100\97\114\32\124\99\100\100\97\97\114\32\124\99\100\100\97\100\114\32\124\99\100\100\97\114\32\124\99\100\100\100\97\114\32\124\99\100\100\100\100\114\32\124\99\100\100\100\114\32\124\99\100\100\114\32\124\99\100\114\32\124\99\101\105\108\105\110\103\32\124\99\104\97\114\92\45\92\62\105\110\116\101\103\101\114\32\124\99\104\97\114\92\45\97\108\112\104\97\98\101\116\105\99\92\63\32\124\99\104\97\114\92\45\99\105\92\60\92\61\92\63\32\124\99\104\97\114\92\45\99\105\92\60\92\63\32\124\99\104\97\114\92\45\99\105\92\61\92\63\32\124\99\104\97\114\92\45\99\105\92\62\92\61\92\63\32\124\99\104\97\114\92\45\99\105\92\62\92\63\32\124\99\104\97\114\92\45\100\111\119\110\99\97\115\101\32\124\99\104\97\114\92\45\108\111\119\101\114\92\45\99\97\115\101\92\63\32\124\99\104\97\114\92\45\110\117\109\101\114\105\99\92\63\32\124\99\104\97\114\92\45\114\101\97\100\121\92\63\32\124\99\104\97\114\92\45\117\112\99\97\115\101\32\124\99\104\97\114\92\45\117\112\112\101\114\92\45\99\97\115\101\92\63\32\124\99\104\97\114\92\45\119\104\105\116\101\115\112\97\99\101\92\63\32\124\99\104\97\114\92\60\92\61\92\63\32\124\99\104\97\114\92\60\92\63\32\124\99\104\97\114\92\61\92\63\32\124\99\104\97\114\92\62\92\61\92\63\32\124\99\104\97\114\92\62\92\63\32\124\99\104\97\114\92\63\32\124\99\108\111\115\101\92\45\105\110\112\117\116\92\45\112\111\114\116\32\124\99\108\111\115\101\92\45\111\117\116\112\117\116\92\45\112\111\114\116\32\124\99\111\109\112\108\101\120\92\63\32\124\99\111\110\115\32\124\99\111\115\32\124\99\117\114\114\101\110\116\92\45\105\110\112\117\116\92\45\112\111\114\116\32\124\99\117\114\114\101\110\116\92\45\111\117\116\112\117\116\92\45\112\111\114\116\32\124\100\101\110\111\109\105\110\97\116\111\114\32\124\100\105\115\112\108\97\121\32\124\100\121\110\97\109\105\99\92\45\119\105\110\100\32\124\101\111\102\92\45\111\98\106\101\99\116\92\63\32\124\101\113\92\63\32\124\101\113\117\97\108\92\63\32\124\101\113\118\92\63\32\124\101\118\97\108\32\124\101\118\101\110\92\63\32\124\101\120\97\99\116\92\45\92\62\105\110\101\120\97\99\116\32\124\101\120\97\99\116\92\63\32\124\101\120\112\32\124\101\120\112\116\32\124\102\108\111\111\114\32\124\102\111\114\92\45\101\97\99\104\32\124\102\111\114\99\101\32\124\103\99\100\32\124\105\109\97\103\92\45\112\97\114\116\32\124\105\110\101\120\97\99\116\92\45\92\62\101\120\97\99\116\32\124\105\110\101\120\97\99\116\92\63\32\124\105\110\112\117\116\92\45\112\111\114\116\92\63\32\124\105\110\116\101\103\101\114\92\45\92\62\99\104\97\114\32\124\105\110\116\101\103\101\114\92\63\32\124\105\110\116\101\114\97\99\116\105\111\110\92\45\101\110\118\105\114\111\110\109\101\110\116\32\124\108\99\109\32\124\108\101\110\103\116\104\32\124\108\105\115\116\32\124\108\105\115\116\92\45\92\62\115\116\114\105\110\103\32\124\108\105\115\116\92\45\92\62\118\101\99\116\111\114\32\124\108\105\115\116\92\45\114\101\102\32\124\108\105\115\116\92\45\116\97\105\108\32\124\108\105\115\116\92\63\32\124\108\111\97\100\32\124\108\111\103\32\124\109\97\103\110\105\116\117\100\101\32\124\109\97\107\101\92\45\112\111\108\97\114\32\124\109\97\107\101\92\45\114\101\99\116\97\110\103\117\108\97\114\32\124\109\97\107\101\92\45\115\116\114\105\110\103\32\124\109\97\107\101\92\45\118\101\99\116\111\114\32\124\109\97\112\32\124\109\97\120\32\124\109\101\109\98\101\114\32\124\109\101\109\113\32\124\109\101\109\118\32\124\109\105\110\32\124\109\111\100\117\108\111\32\124\110\101\103\97\116\105\118\101\92\63\32\124\110\101\119\108\105\110\101\32\124\110\111\116\32\124\110\117\108\108\92\45\101\110\118\105\114\111\110\109\101\110\116\32\124\110\117\108\108\92\63\32\124\110\117\109\98\101\114\92\45\92\62\115\116\114\105\110\103\32\124\110\117\109\98\101\114\92\63\32\124\110\117\109\101\114\97\116\111\114\32\124\111\100\100\92\63\32\124\111\112\101\110\92\45\105\110\112\117\116\92\45\102\105\108\101\32\124\111\112\101\110\92\45\111\117\116\112\117\116\92\45\102\105\108\101\32\124\111\117\116\112\117\116\92\45\112\111\114\116\92\63\32\124\112\97\105\114\92\63\32\124\112\101\101\107\92\45\99\104\97\114\32\124\112\111\114\116\92\63\32\124\112\111\115\105\116\105\118\101\92\63\32\124\112\114\111\99\101\100\117\114\101\92\63\32\124\113\117\111\116\105\101\110\116\32\124\114\97\116\105\111\110\97\108\92\63\32\124\114\97\116\105\111\110\97\108\105\122\101\32\124\114\101\97\100\32\124\114\101\97\100\92\45\99\104\97\114\32\124\114\101\97\108\92\45\112\97\114\116\32\124\114\101\97\108\92\63\32\124\114\101\109\97\105\110\100\101\114\32\124\114\101\118\101\114\115\101\32\124\114\111\117\110\100\32\124\115\99\104\101\109\101\92\45\114\101\112\111\114\116\92\45\101\110\118\105\114\111\110\109\101\110\116\32\124\115\101\116\92\45\99\97\114\92\33\32\124\115\101\116\92\45\99\100\114\92\33\32\124\115\105\110\32\124\115\113\114\116\32\124\115\116\114\105\110\103\32\124\115\116\114\105\110\103\92\45\92\62\108\105\115\116\32\124\115\116\114\105\110\103\92\45\92\62\110\117\109\98\101\114\32\124\115\116\114\105\110\103\92\45\92\62\115\121\109\98\111\108\32\124\115\116\114\105\110\103\92\45\97\112\112\101\110\100\32\124\115\116\114\105\110\103\92\45\99\105\92\60\92\61\92\63\32\124\115\116\114\105\110\103\92\45\99\105\92\60\92\63\32\124\115\116\114\105\110\103\92\45\99\105\92\61\92\63\32\124\115\116\114\105\110\103\92\45\99\105\92\62\92\61\92\63\32\124\115\116\114\105\110\103\92\45\99\105\92\62\92\63\32\124\115\116\114\105\110\103\92\45\99\111\112\121\32\124\115\116\114\105\110\103\92\45\102\105\108\108\92\33\32\124\115\116\114\105\110\103\92\45\108\101\110\103\116\104\32\124\115\116\114\105\110\103\92\45\114\101\102\32\124\115\116\114\105\110\103\92\45\115\101\116\92\33\32\124\115\116\114\105\110\103\92\60\92\61\92\63\32\124\115\116\114\105\110\103\92\60\92\63\32\124\115\116\114\105\110\103\92\61\92\63\32\124\115\116\114\105\110\103\92\62\92\61\92\63\32\124\115\116\114\105\110\103\92\62\92\63\32\124\115\116\114\105\110\103\92\63\32\124\115\117\98\115\116\114\105\110\103\32\124\115\121\109\98\111\108\92\45\92\62\115\116\114\105\110\103\32\124\115\121\109\98\111\108\92\63\32\124\116\97\110\32\124\116\114\97\110\115\99\114\105\112\116\92\45\111\102\102\32\124\116\114\97\110\115\99\114\105\112\116\92\45\111\110\32\124\116\114\117\110\99\97\116\101\32\124\118\97\108\117\101\115\32\124\118\101\99\116\111\114\32\124\118\101\99\116\111\114\92\45\92\62\108\105\115\116\32\124\118\101\99\116\111\114\92\45\102\105\108\108\92\33\32\124\118\101\99\116\111\114\92\45\108\101\110\103\116\104\32\124\118\101\99\116\111\114\92\45\114\101\102\32\124\118\101\99\116\111\114\92\45\115\101\116\92\33\32\124\118\101\99\116\111\114\92\63\32\124\119\105\116\104\92\45\105\110\112\117\116\92\45\102\114\111\109\92\45\102\105\108\101\32\124\119\105\116\104\92\45\111\117\116\112\117\116\92\45\116\111\92\45\102\105\108\101\32\124\119\114\105\116\101\32\124\119\114\105\116\101\92\45\99\104\97\114\32\124\122\101\114\111\92\63\32\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\40\63\60\61\92\40\41\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\124\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tok "\91\97\45\122\65\45\90\48\45\57\33\36\37\38\42\43\44\47\58\60\61\62\63\64\94\95\126\124\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\92\40\124\92\41\41" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok ";.*$" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "\\s+" (Arbitrary "Text")+    , tok "-?\\d+\\.\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "-?\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "'[a-zA-Z0-9!$%&*+,/:<=>?@^_\126|-]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "#\\\\([()/'\\\".'_!\194\167$%& ?=+-]{1}|[a-zA-Z0-9]+)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(#t|#f)" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "('|#|`|,@|,|\\.)" (Arbitrary "Operator")+    , tok "(lambda |define |if |else |cond |and |or |case |let |let\\* |letrec |begin |do |delay |set\\! |\\=\\> |quote |quasiquote |unquote |unquote\\-splicing |define\\-syntax |let\\-syntax |letrec\\-syntax |syntax\\-rules )" (Arbitrary "Keyword")+    , tok "(?<='\\()[a-zA-Z0-9!$%&*+,/:<=>?@^_\126|-]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(?<=#\\()[a-zA-Z0-9!$%&*+,/:<=>?@^_\126|-]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(?<=\\()(\\* |\\+ |\\- |\\/ |\\< |\\<\\= |\\= |\\> |\\>\\= |abs |acos |angle |append |apply |asin |assoc |assq |assv |atan |boolean\\? |caaaar |caaadr |caaar |caadar |caaddr |caadr |caar |cadaar |cadadr |cadar |caddar |cadddr |caddr |cadr |call\\-with\\-current\\-continuation |call\\-with\\-input\\-file |call\\-with\\-output\\-file |call\\-with\\-values |call\\/cc |car |cdaaar |cdaadr |cdaar |cdadar |cdaddr |cdadr |cdar |cddaar |cddadr |cddar |cdddar |cddddr |cdddr |cddr |cdr |ceiling |char\\-\\>integer |char\\-alphabetic\\? |char\\-ci\\<\\=\\? |char\\-ci\\<\\? |char\\-ci\\=\\? |char\\-ci\\>\\=\\? |char\\-ci\\>\\? |char\\-downcase |char\\-lower\\-case\\? |char\\-numeric\\? |char\\-ready\\? |char\\-upcase |char\\-upper\\-case\\? |char\\-whitespace\\? |char\\<\\=\\? |char\\<\\? |char\\=\\? |char\\>\\=\\? |char\\>\\? |char\\? |close\\-input\\-port |close\\-output\\-port |complex\\? |cons |cos |current\\-input\\-port |current\\-output\\-port |denominator |display |dynamic\\-wind |eof\\-object\\? |eq\\? |equal\\? |eqv\\? |eval |even\\? |exact\\-\\>inexact |exact\\? |exp |expt |floor |for\\-each |force |gcd |imag\\-part |inexact\\-\\>exact |inexact\\? |input\\-port\\? |integer\\-\\>char |integer\\? |interaction\\-environment |lcm |length |list |list\\-\\>string |list\\-\\>vector |list\\-ref |list\\-tail |list\\? |load |log |magnitude |make\\-polar |make\\-rectangular |make\\-string |make\\-vector |map |max |member |memq |memv |min |modulo |negative\\? |newline |not |null\\-environment |null\\? |number\\-\\>string |number\\? |numerator |odd\\? |open\\-input\\-file |open\\-output\\-file |output\\-port\\? |pair\\? |peek\\-char |port\\? |positive\\? |procedure\\? |quotient |rational\\? |rationalize |read |read\\-char |real\\-part |real\\? |remainder |reverse |round |scheme\\-report\\-environment |set\\-car\\! |set\\-cdr\\! |sin |sqrt |string |string\\-\\>list |string\\-\\>number |string\\-\\>symbol |string\\-append |string\\-ci\\<\\=\\? |string\\-ci\\<\\? |string\\-ci\\=\\? |string\\-ci\\>\\=\\? |string\\-ci\\>\\? |string\\-copy |string\\-fill\\! |string\\-length |string\\-ref |string\\-set\\! |string\\<\\=\\? |string\\<\\? |string\\=\\? |string\\>\\=\\? |string\\>\\? |string\\? |substring |symbol\\-\\>string |symbol\\? |tan |transcript\\-off |transcript\\-on |truncate |values |vector |vector\\-\\>list |vector\\-fill\\! |vector\\-length |vector\\-ref |vector\\-set\\! |vector\\? |with\\-input\\-from\\-file |with\\-output\\-to\\-file |write |write\\-char |zero\\? )" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "(?<=\\()[a-zA-Z0-9!$%&*+,/:<=>?@^_\126|-]+" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "[a-zA-Z0-9!$%&*+,/:<=>?@^_\126|-]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "(\\(|\\))" (Arbitrary "Punctuation")     ] 
+ src/Text/Highlighter/Lexers/Scss.hs view
@@ -0,0 +1,144 @@+module Text.Highlighter.Lexers.Scss (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "SCSS"+    , lAliases = ["scss"]+    , lExtensions = [".scss"]+    , lMimetypes = ["text/x-scss"]+    , lStart = root'+    , lFlags = [caseless, dotall]+    }++stringUrl' :: TokenMatcher+stringUrl' =+    [ tok "(\\\\#|#(?=[^\\n{])|[^\\n#)])+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tokNext "#\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tokNext "\\)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") Pop+    ]++attr' :: TokenMatcher+attr' =+    [ tok "[^\\s:=\"\\[]+" (Arbitrary "Name" :. Arbitrary "Attribute")+    , tokNext "#{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tokNext "[ \\t]*:" (Arbitrary "Operator") (GoTo value')+    ]++stringDouble' :: TokenMatcher+stringDouble' =+    [ tok "(\\\\.|#(?=[^\\n{])|[^\\n\"#])+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tokNext "#\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") Pop+    ]++class' :: TokenMatcher+class' =+    [ tok "[\\w-]+" (Arbitrary "Name" :. Arbitrary "Class")+    , tokNext "#\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tokNext "" (Arbitrary "Text") Pop+    ]++pseudoClass' :: TokenMatcher+pseudoClass' =+    [ tok "[\\w-]+" (Arbitrary "Name" :. Arbitrary "Decorator")+    , tokNext "#\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tokNext "" (Arbitrary "Text") Pop+    ]++value' :: TokenMatcher+value' =+    [ tok "[ \\t]+" (Arbitrary "Text")+    , tok "[!$][\\w-]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tokNext "url\\(" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo stringUrl')+    , tok "[a-z_-][\\w-]*(?=\\()" (Arbitrary "Name" :. Arbitrary "Function")+    , tok "(azimuth|background-attachment|background-color|background-image|background-position|background-repeat|background|border-bottom-color|border-bottom-style|border-bottom-width|border-left-color|border-left-style|border-left-width|border-right|border-right-color|border-right-style|border-right-width|border-top-color|border-top-style|border-top-width|border-bottom|border-collapse|border-left|border-width|border-color|border-spacing|border-style|border-top|border|caption-side|clear|clip|color|content|counter-increment|counter-reset|cue-after|cue-before|cue|cursor|direction|display|elevation|empty-cells|float|font-family|font-size|font-size-adjust|font-stretch|font-style|font-variant|font-weight|font|height|letter-spacing|line-height|list-style-type|list-style-image|list-style-position|list-style|margin-bottom|margin-left|margin-right|margin-top|margin|marker-offset|marks|max-height|max-width|min-height|min-width|opacity|orphans|outline|outline-color|outline-style|outline-width|overflow|padding-bottom|padding-left|padding-right|padding-top|padding|page|page-break-after|page-break-before|page-break-inside|pause-after|pause-before|pause|pitch|pitch-range|play-during|position|quotes|richness|right|size|speak-header|speak-numeral|speak-punctuation|speak|speech-rate|stress|table-layout|text-align|text-decoration|text-indent|text-shadow|text-transform|top|unicode-bidi|vertical-align|visibility|voice-family|volume|white-space|widows|width|word-spacing|z-index|bottom|left|above|absolute|always|armenian|aural|auto|avoid|baseline|behind|below|bidi-override|blink|block|bold|bolder|both|capitalize|center-left|center-right|center|circle|cjk-ideographic|close-quote|collapse|condensed|continuous|crop|crosshair|cross|cursive|dashed|decimal-leading-zero|decimal|default|digits|disc|dotted|double|e-resize|embed|extra-condensed|extra-expanded|expanded|fantasy|far-left|far-right|faster|fast|fixed|georgian|groove|hebrew|help|hidden|hide|higher|high|hiragana-iroha|hiragana|icon|inherit|inline-table|inline|inset|inside|invert|italic|justify|katakana-iroha|katakana|landscape|larger|large|left-side|leftwards|level|lighter|line-through|list-item|loud|lower-alpha|lower-greek|lower-roman|lowercase|ltr|lower|low|medium|message-box|middle|mix|monospace|n-resize|narrower|ne-resize|no-close-quote|no-open-quote|no-repeat|none|normal|nowrap|nw-resize|oblique|once|open-quote|outset|outside|overline|pointer|portrait|px|relative|repeat-x|repeat-y|repeat|rgb|ridge|right-side|rightwards|s-resize|sans-serif|scroll|se-resize|semi-condensed|semi-expanded|separate|serif|show|silent|slow|slower|small-caps|small-caption|smaller|soft|solid|spell-out|square|static|status-bar|super|sw-resize|table-caption|table-cell|table-column|table-column-group|table-footer-group|table-header-group|table-row|table-row-group|text|text-bottom|text-top|thick|thin|transparent|ultra-condensed|ultra-expanded|underline|upper-alpha|upper-latin|upper-roman|uppercase|url|visible|w-resize|wait|wider|x-fast|x-high|x-large|x-loud|x-low|x-small|x-soft|xx-large|xx-small|yes)\\b" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "(indigo|gold|firebrick|indianred|darkolivegreen|darkseagreen|mediumvioletred|mediumorchid|chartreuse|mediumslateblue|springgreen|crimson|lightsalmon|brown|turquoise|olivedrab|cyan|skyblue|darkturquoise|goldenrod|darkgreen|darkviolet|darkgray|lightpink|darkmagenta|lightgoldenrodyellow|lavender|yellowgreen|thistle|violet|orchid|ghostwhite|honeydew|cornflowerblue|darkblue|darkkhaki|mediumpurple|cornsilk|bisque|slategray|darkcyan|khaki|wheat|deepskyblue|darkred|steelblue|aliceblue|gainsboro|mediumturquoise|floralwhite|coral|lightgrey|lightcyan|darksalmon|beige|azure|lightsteelblue|oldlace|greenyellow|royalblue|lightseagreen|mistyrose|sienna|lightcoral|orangered|navajowhite|palegreen|burlywood|seashell|mediumspringgreen|papayawhip|blanchedalmond|peru|aquamarine|darkslategray|ivory|dodgerblue|lemonchiffon|chocolate|orange|forestgreen|slateblue|mintcream|antiquewhite|darkorange|cadetblue|moccasin|limegreen|saddlebrown|darkslateblue|lightskyblue|deeppink|plum|darkgoldenrod|sandybrown|magenta|tan|rosybrown|pink|lightblue|palevioletred|mediumseagreen|dimgray|powderblue|seagreen|snow|mediumblue|midnightblue|paleturquoise|palegoldenrod|whitesmoke|darkorchid|salmon|lightslategray|lawngreen|lightgreen|tomato|hotpink|lightyellow|lavenderblush|linen|mediumaquamarine|blueviolet|peachpuff)\\b" (Arbitrary "Name" :. Arbitrary "Entity")+    , tok "(black|silver|gray|white|maroon|red|purple|fuchsia|green|lime|olive|yellow|navy|blue|teal|aqua)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\!(important|default)" (Arbitrary "Name" :. Arbitrary "Exception")+    , tok "(true|false)" (Arbitrary "Name" :. Arbitrary "Pseudo")+    , tok "(and|or|not)" (Arbitrary "Operator" :. Arbitrary "Word")+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo inlineComment')+    , tok "//[^\\n]*" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "\\#[a-z0-9]{1,6}" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "(-?\\d+)(\\%|[a-z]+)?" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer"), (Arbitrary "Keyword" :. Arbitrary "Type")])+    , tok "(-?\\d*\\.\\d+)(\\%|[a-z]+)?" (ByGroups [(Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float"), (Arbitrary "Keyword" :. Arbitrary "Type")])+    , tokNext "#{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tok "[\126\\^\\*!&%<>\\|+=@:,./?-]+" (Arbitrary "Operator")+    , tok "[\\[\\]()]+" (Arbitrary "Punctuation")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo stringDouble')+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single") (GoTo stringSingle')+    , tok "[a-z_-][\\w-]*" (Arbitrary "Name")+    , tok "\\n" (Arbitrary "Text")+    , tokNext "[;{}]" (Arbitrary "Punctuation") (GoTo root')+    ]++for' :: TokenMatcher+for' =+    [ tok "(from|to|through)" (Arbitrary "Operator" :. Arbitrary "Word")+    , anyOf value'+    ]++stringSingle' :: TokenMatcher+stringSingle' =+    [ tok "(\\\\.|#(?=[^\\n{])|[^\\n'#])+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tokNext "#\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") Pop+    ]++inlineComment' :: TokenMatcher+inlineComment' =+    [ tok "(\\\\#|#(?=[^{])|\\*(?=[^/])|[^#*])+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "#\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tokNext "\\*/" (Arbitrary "Comment") Pop+    ]++selector' :: TokenMatcher+selector' =+    [ tok "[ \\t]+" (Arbitrary "Text")+    , tokNext "\\:" (Arbitrary "Name" :. Arbitrary "Decorator") (GoTo pseudoClass')+    , tokNext "\\." (Arbitrary "Name" :. Arbitrary "Class") (GoTo class')+    , tokNext "\\#" (Arbitrary "Name" :. Arbitrary "Namespace") (GoTo id')+    , tok "[a-zA-Z0-9_-]+" (Arbitrary "Name" :. Arbitrary "Tag")+    , tokNext "#\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tok "&" (Arbitrary "Keyword")+    , tok "[\126\\^\\*!&\\[\\]\\(\\)<>\\|+=@:;,./?-]" (Arbitrary "Operator")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo stringDouble')+    , tokNext "'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single") (GoTo stringSingle')+    , tok "\\n" (Arbitrary "Text")+    , tokNext "[;{}]" (Arbitrary "Punctuation") (GoTo root')+    ]++root' :: TokenMatcher+root' =+    [ tok "\\s+" (Arbitrary "Text")+    , tok "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/\\*.*?\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "@import" (Arbitrary "Keyword") (GoTo value')+    , tokNext "@for" (Arbitrary "Keyword") (GoTo for')+    , tokNext "@(debug|warn|if|while)" (Arbitrary "Keyword") (GoTo value')+    , tokNext "(@mixin)( [\\w-]+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Function")]) (GoTo value')+    , tokNext "(@include)( [\\w-]+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Decorator")]) (GoTo value')+    , tokNext "@extend" (Arbitrary "Keyword") (GoTo selector')+    , tokNext "@[a-z0-9_-]+" (Arbitrary "Keyword") (GoTo selector')+    , tokNext "(\\$[\\w-]\\w*)([ \\t]*:)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Operator")]) (GoTo value')+    , tokNext "(?=[^;{}][;}])" (Arbitrary "Name" :. Arbitrary "Attribute") (GoTo attr')+    , tokNext "(?=[^;{}:]+:[^a-z])" (Arbitrary "Name" :. Arbitrary "Attribute") (GoTo attr')+    , tokNext "" (Arbitrary "Text") (GoTo selector')+    ]++id' :: TokenMatcher+id' =+    [ tok "[\\w-]+" (Arbitrary "Name" :. Arbitrary "Namespace")+    , tokNext "#\\{" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") (GoTo interpolation')+    , tokNext "" (Arbitrary "Text") Pop+    ]++interpolation' :: TokenMatcher+interpolation' =+    [ tokNext "\\}" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Interpol") Pop+    , anyOf value'+    ]+
src/Text/Highlighter/Lexers/Smalltalk.hs view
@@ -5,114 +5,114 @@  lexer :: Lexer lexer = Lexer-    { lName = "\83\109\97\108\108\116\97\108\107"-    , lAliases = ["\115\109\97\108\108\116\97\108\107", "\115\113\117\101\97\107"]-    , lExtensions = ["\46\115\116"]-    , lMimetypes = ["\116\101\120\116\47\120\45\115\109\97\108\108\116\97\108\107"]+    { lName = "Smalltalk"+    , lAliases = ["smalltalk", "squeak"]+    , lExtensions = [".st"]+    , lMimetypes = ["text/x-smalltalk"]     , lStart = root'     , lFlags = [multiline]     }  objects' :: TokenMatcher objects' =-    [ tokNext "\92\91" (Arbitrary "\84\101\120\116") (GoTo blockvariables')-    , tokNext "\92\93" (Arbitrary "\84\101\120\116") (GoTo afterobject')-    , tokNext "\92\98\40\115\101\108\102\124\115\117\112\101\114\124\116\114\117\101\124\102\97\108\115\101\124\110\105\108\124\116\104\105\115\67\111\110\116\101\120\116\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110" :. Arbitrary "\80\115\101\117\100\111") (GoTo afterobject')-    , tokNext "\92\98\91\65\45\90\93\92\119\42\40\63\33\58\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") (GoTo afterobject')-    , tokNext "\92\98\91\97\45\122\93\92\119\42\40\63\33\58\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") (GoTo afterobject')-    , tokNext "\35\40\34\91\94\34\93\42\34\124\91\45\43\42\47\92\92\126\60\62\61\124\38\33\63\44\64\37\93\43\124\91\92\119\58\93\43\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108") (GoTo afterobject')+    [ tokNext "\\[" (Arbitrary "Text") (GoTo blockvariables')+    , tokNext "\\]" (Arbitrary "Text") (GoTo afterobject')+    , tokNext "\\b(self|super|true|false|nil|thisContext)\\b" (Arbitrary "Name" :. Arbitrary "Builtin" :. Arbitrary "Pseudo") (GoTo afterobject')+    , tokNext "\\b[A-Z]\\w*(?!:)\\b" (Arbitrary "Name" :. Arbitrary "Class") (GoTo afterobject')+    , tokNext "\\b[a-z]\\w*(?!:)\\b" (Arbitrary "Name" :. Arbitrary "Variable") (GoTo afterobject')+    , tokNext "#(\"[^\"]*\"|[-+*/\\\\\126<>=|&!?,@%]+|[\\w:]+)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol") (GoTo afterobject')     , anyOf literals'     ]  blockvariables' :: TokenMatcher blockvariables' =     [ anyOf whitespaces'-    , tok "\40\58\41\40\92\115\42\41\40\91\65\45\90\97\45\122\92\119\93\43\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")])-    , tokNext "\92\124" (Arbitrary "\79\112\101\114\97\116\111\114") Pop-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    , tok "(:)(\\s*)([A-Za-z\\w]+)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable")])+    , tokNext "\\|" (Arbitrary "Operator") Pop+    , tokNext "" (Arbitrary "Text") Pop     ]  _parenth_helper' :: TokenMatcher _parenth_helper' =     [ anyOf whitespaces'-    , tok "\40\92\100\43\114\41\63\45\63\92\100\43\40\92\46\92\100\43\41\63\40\101\45\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\45\43\42\47\92\92\126\60\62\61\124\38\35\33\63\44\64\37\92\119\43\58\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\92\39\91\94\92\39\93\42\92\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\36\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tokNext "\35\42\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108") (GoTo inner_parenth')+    , tok "(\\d+r)?-?\\d+(\\.\\d+)?(e-?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[-+*/\\\\\126<>=|&#!?,@%\\w+:]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "\\'[^\\']*\\'" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\$." (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tokNext "#*\\(" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol") (GoTo inner_parenth')     ]  afterobject' :: TokenMatcher afterobject' =-    [ tokNext "\33\32\33\36" (Arbitrary "\75\101\121\119\111\114\100") Pop+    [ tokNext "! !$" (Arbitrary "Keyword") Pop     , anyOf whitespaces'-    , tokNext "\92\98\40\105\102\84\114\117\101\58\124\105\102\70\97\108\115\101\58\124\119\104\105\108\101\84\114\117\101\58\124\119\104\105\108\101\70\97\108\115\101\58\124\116\105\109\101\115\82\101\112\101\97\116\58\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110") Pop-    , tok "\92\98\40\110\101\119\92\98\40\63\33\58\41\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tokNext "\92\58\61\124\92\95" (Arbitrary "\79\112\101\114\97\116\111\114") Pop-    , tokNext "\92\98\91\97\45\122\65\45\90\93\43\92\119\42\58" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop-    , tok "\92\98\91\97\45\122\65\45\90\93\43\92\119\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110")-    , tokNext "\92\119\43\58\63\124\91\45\43\42\47\92\92\126\60\62\61\124\38\33\63\44\64\37\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop-    , tokNext "\92\46" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop-    , tok "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\92\93\41\125\93" (Arbitrary "\84\101\120\116")-    , tokNext "\91\92\91\40\123\93" (Arbitrary "\84\101\120\116") Pop+    , tokNext "\\b(ifTrue:|ifFalse:|whileTrue:|whileFalse:|timesRepeat:)" (Arbitrary "Name" :. Arbitrary "Builtin") Pop+    , tok "\\b(new\\b(?!:))" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tokNext "\\:=|\\_" (Arbitrary "Operator") Pop+    , tokNext "\\b[a-zA-Z]+\\w*:" (Arbitrary "Name" :. Arbitrary "Function") Pop+    , tok "\\b[a-zA-Z]+\\w*" (Arbitrary "Name" :. Arbitrary "Function")+    , tokNext "\\w+:?|[-+*/\\\\\126<>=|&!?,@%]+" (Arbitrary "Name" :. Arbitrary "Function") Pop+    , tokNext "\\." (Arbitrary "Punctuation") Pop+    , tok ";" (Arbitrary "Punctuation")+    , tok "[\\])}]" (Arbitrary "Text")+    , tokNext "[\\[({]" (Arbitrary "Text") Pop     ]  literals' :: TokenMatcher literals' =-    [ tokNext "\92\39\91\94\92\39\93\42\92\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo afterobject')-    , tokNext "\92\36\46" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114") (GoTo afterobject')-    , tokNext "\35\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108") (GoTo parenth')-    , tokNext "\92\41" (Arbitrary "\84\101\120\116") (GoTo afterobject')-    , tokNext "\40\92\100\43\114\41\63\45\63\92\100\43\40\92\46\92\100\43\41\63\40\101\45\63\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114") (GoTo afterobject')+    [ tokNext "\\'[^\\']*\\'" (Arbitrary "Literal" :. Arbitrary "String") (GoTo afterobject')+    , tokNext "\\$." (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char") (GoTo afterobject')+    , tokNext "#\\(" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol") (GoTo parenth')+    , tokNext "\\)" (Arbitrary "Text") (GoTo afterobject')+    , tokNext "(\\d+r)?-?\\d+(\\.\\d+)?(e-?\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number") (GoTo afterobject')     ]  methodDefinition' :: TokenMatcher methodDefinition' =-    [ tok "\40\91\97\45\122\65\45\90\93\43\92\119\42\58\41\40\92\115\42\41\40\92\119\43\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")])-    , tok "\94\40\92\98\91\97\45\122\65\45\90\93\43\92\119\42\92\98\41\40\92\115\42\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116")])-    , tok "\94\40\91\45\43\42\47\92\92\126\60\62\61\124\38\33\63\44\64\37\93\43\41\40\92\115\42\41\40\92\119\43\41\40\92\115\42\41\36" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116")])+    [ tok "([a-zA-Z]+\\w*:)(\\s*)(\\w+)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable")])+    , tok "^(\\b[a-zA-Z]+\\w*\\b)(\\s*)$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text")])+    , tok "^([-+*/\\\\\126<>=|&!?,@%]+)(\\s*)(\\w+)(\\s*)$" (ByGroups [(Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text"), (Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text")])     ]  parenth' :: TokenMatcher parenth' =-    [ tokNext "\92\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108") (DoAll [(GoTo root'), (GoTo afterobject')])+    [ tokNext "\\)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol") (DoAll [(GoTo root'), (GoTo afterobject')])     , anyOf _parenth_helper'     ]  inner_parenth' :: TokenMatcher inner_parenth' =-    [ tokNext "\92\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108") Pop+    [ tokNext "\\)" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol") Pop     , anyOf _parenth_helper'     ]  whitespaces' :: TokenMatcher whitespaces' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\34\91\94\34\93\42\34" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "\"[^\"]*\"" (Arbitrary "Comment")     ]  squeakFileout' :: TokenMatcher squeakFileout' =-    [ tok "\94\34\91\94\34\93\42\34\33" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\94\39\91\94\39\93\42\39\33" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\94\40\33\41\40\92\119\43\41\40\32\99\111\109\109\101\110\116\83\116\97\109\112\58\32\41\40\46\42\63\41\40\32\112\114\105\111\114\58\32\46\42\63\33\92\110\41\40\46\42\63\41\40\33\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100")])-    , tok "\94\40\33\41\40\92\119\43\40\63\58\32\99\108\97\115\115\41\63\41\40\32\109\101\116\104\111\100\115\70\111\114\58\32\41\40\92\39\91\94\92\39\93\42\92\39\41\40\46\42\63\33\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\75\101\121\119\111\114\100")])-    , tok "\94\40\92\119\43\41\40\32\115\117\98\99\108\97\115\115\58\32\41\40\35\92\119\43\41\40\92\115\43\105\110\115\116\97\110\99\101\86\97\114\105\97\98\108\101\78\97\109\101\115\58\32\41\40\46\42\63\41\40\92\115\43\99\108\97\115\115\86\97\114\105\97\98\108\101\78\97\109\101\115\58\32\41\40\46\42\63\41\40\92\115\43\112\111\111\108\68\105\99\116\105\111\110\97\114\105\101\115\58\32\41\40\46\42\63\41\40\92\115\43\99\97\116\101\103\111\114\121\58\32\41\40\46\42\63\41\40\33\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\75\101\121\119\111\114\100")])-    , tok "\94\40\92\119\43\40\63\58\32\99\108\97\115\115\41\63\41\40\92\115\43\105\110\115\116\97\110\99\101\86\97\114\105\97\98\108\101\78\97\109\101\115\58\32\41\40\46\42\63\41\40\33\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103"), (Arbitrary "\75\101\121\119\111\114\100")])-    , tok "\40\33\92\110\41\40\92\93\46\42\41\40\33\32\33\41\36" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100")])-    , tok "\33\32\33\36" (Arbitrary "\75\101\121\119\111\114\100")+    [ tok "^\"[^\"]*\"!" (Arbitrary "Keyword")+    , tok "^'[^']*'!" (Arbitrary "Keyword")+    , tok "^(!)(\\w+)( commentStamp: )(.*?)( prior: .*?!\\n)(.*?)(!)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Keyword")])+    , tok "^(!)(\\w+(?: class)?)( methodsFor: )(\\'[^\\']*\\')(.*?!)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Keyword")])+    , tok "^(\\w+)( subclass: )(#\\w+)(\\s+instanceVariableNames: )(.*?)(\\s+classVariableNames: )(.*?)(\\s+poolDictionaries: )(.*?)(\\s+category: )(.*?)(!)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Keyword")])+    , tok "^(\\w+(?: class)?)(\\s+instanceVariableNames: )(.*?)(!)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Class"), (Arbitrary "Keyword"), (Arbitrary "Literal" :. Arbitrary "String"), (Arbitrary "Keyword")])+    , tok "(!\\n)(\\].*)(! !)$" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Keyword")])+    , tok "! !$" (Arbitrary "Keyword")     ]  root' :: TokenMatcher root' =-    [ tok "\40\60\41\40\92\119\43\58\41\40\46\42\63\41\40\62\41" (ByGroups [(Arbitrary "\84\101\120\116"), (Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116"), (Arbitrary "\84\101\120\116")])+    [ tok "(<)(\\w+:)(.*?)(>)" (ByGroups [(Arbitrary "Text"), (Arbitrary "Keyword"), (Arbitrary "Text"), (Arbitrary "Text")])     , anyOf squeakFileout'     , anyOf whitespaces'     , anyOf methodDefinition'-    , tok "\40\92\124\41\40\91\92\119\92\115\93\42\41\40\92\124\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\79\112\101\114\97\116\111\114")])+    , tok "(\\|)([\\w\\s]*)(\\|)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Operator")])     , anyOf objects'-    , tok "\92\94\124\92\58\61\124\92\95" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\92\93\40\123\125\46\59\33\93" (Arbitrary "\84\101\120\116")+    , tok "\\^|\\:=|\\_" (Arbitrary "Operator")+    , tok "[\\]({}.;!]" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Smarty.hs view
@@ -5,34 +5,34 @@  lexer :: Lexer lexer = Lexer-    { lName = "\80\104\112"-    , lAliases = ["\115\109\97\114\116\121"]-    , lExtensions = ["\46\116\112\108"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\115\109\97\114\116\121"]+    { lName = "Smarty"+    , lAliases = ["smarty"]+    , lExtensions = [".tpl"]+    , lMimetypes = ["application/x-smarty"]     , lStart = root'     , lFlags = [multiline, dotall]     }  root' :: TokenMatcher root' =-    [ tok "\91\94\123\93\43" (Arbitrary "\79\116\104\101\114")-    , tok "\40\92\123\41\40\92\42\46\42\63\92\42\41\40\92\125\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\67\111\109\109\101\110\116"), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tok "\40\92\123\112\104\112\92\125\41\40\46\42\63\41\40\92\123\47\112\104\112\92\125\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Using Php.lexer), (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")])-    , tokNext "\40\92\123\41\40\47\63\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41\40\92\115\42\41" (ByGroups [(Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99"), (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110"), (Arbitrary "\84\101\120\116")]) (GoTo smarty')-    , tokNext "\92\123" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo smarty')+    [ tok "[^{]+" (Arbitrary "Other")+    , tok "(\\{)(\\*.*?\\*)(\\})" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Comment"), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tok "(\\{php\\})(.*?)(\\{/php\\})" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Using Php.lexer), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tokNext "(\\{)(/?[a-zA-Z_][a-zA-Z0-9_]*)(\\s*)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Text")]) (GoTo smarty')+    , tokNext "\\{" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo smarty')     ]  smarty' :: TokenMatcher smarty' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\92\125" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\35\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\35" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\92\36\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\40\92\46\91\97\45\122\65\45\90\48\45\57\95\93\43\41\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\126\33\37\94\38\42\40\41\43\61\124\92\91\92\93\58\59\44\46\60\62\47\63\123\125\64\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41\8" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\91\48\45\57\93\40\92\46\91\48\45\57\93\42\41\63\40\101\69\91\43\45\93\91\48\45\57\93\41\63\91\102\108\70\76\100\68\93\63\124\48\91\120\88\93\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "\\}" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok "#[a-zA-Z_][a-zA-Z0-9_]*#" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "\\$[a-zA-Z_][a-zA-Z0-9_]*(\\.[a-zA-Z0-9_]+)*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[\126!%^&*()+=|\\[\\]:;,.<>/?{}@-]" (Arbitrary "Operator")+    , tok "(true|false|null)\8" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tok "[0-9](\\.[0-9]*)?(eE[+-][0-9])?[flFLdD]?|0[xX][0-9a-fA-F]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Attribute")     ] 
src/Text/Highlighter/Lexers/SourcesList.hs view
@@ -5,9 +5,9 @@  lexer :: Lexer lexer = Lexer-    { lName = "\68\101\98\105\97\110\32\83\111\117\114\99\101\108\105\115\116"-    , lAliases = ["\115\111\117\114\99\101\115\108\105\115\116", "\115\111\117\114\99\101\115\46\108\105\115\116"]-    , lExtensions = ["\115\111\117\114\99\101\115\46\108\105\115\116"]+    { lName = "Debian Sourcelist"+    , lAliases = ["sourceslist", "sources.list"]+    , lExtensions = ["sources.list"]     , lMimetypes = []     , lStart = root'     , lFlags = [multiline]@@ -15,34 +15,34 @@  distribution' :: TokenMatcher distribution' =-    [ tokNext "\35\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116") Pop-    , tok "\92\36\92\40\65\82\67\72\92\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\94\92\115\36\91\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") (GoTo escapedDistribution')-    , tok "\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\92\115\43" (Arbitrary "\84\101\120\116") (GoTo components')+    [ tokNext "#.*?$" (Arbitrary "Comment") Pop+    , tok "\\$\\(ARCH\\)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[^\\s$[]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\[" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") (GoTo escapedDistribution')+    , tok "\\$" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\\s+" (Arbitrary "Text") (GoTo components')     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\35\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\94\40\100\101\98\40\63\58\45\115\114\99\41\63\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo distribution')+    [ tok "\\s+" (Arbitrary "Text")+    , tok "#.*?$" (Arbitrary "Comment")+    , tokNext "^(deb(?:-src)?)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo distribution')     ]  escapedDistribution' :: TokenMatcher escapedDistribution' =-    [ tokNext "\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114") Pop-    , tok "\92\36\92\40\65\82\67\72\92\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\94\92\93\36\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")-    , tok "\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\79\116\104\101\114")+    [ tokNext "\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other") Pop+    , tok "\\$\\(ARCH\\)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[^\\]$]+" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")+    , tok "\\$" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Other")     ]  components' :: TokenMatcher components' =-    [ tokNext "\35\46\42\63\36" (Arbitrary "\67\111\109\109\101\110\116") (PopNum 2)-    , tokNext "\36" (Arbitrary "\84\101\120\116") (PopNum 2)-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\83\43" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\80\115\101\117\100\111")+    [ tokNext "#.*?$" (Arbitrary "Comment") (PopNum 2)+    , tokNext "$" (Arbitrary "Text") (PopNum 2)+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\S+" (Arbitrary "Keyword" :. Arbitrary "Pseudo")     ] 
src/Text/Highlighter/Lexers/Sql.hs view
@@ -5,34 +5,34 @@  lexer :: Lexer lexer = Lexer-    { lName = "\83\81\76"-    , lAliases = ["\115\113\108"]-    , lExtensions = ["\46\115\113\108"]-    , lMimetypes = ["\116\101\120\116\47\120\45\115\113\108"]+    { lName = "SQL"+    , lAliases = ["sql"]+    , lExtensions = [".sql"]+    , lMimetypes = ["text/x-sql"]     , lStart = root'     , lFlags = [caseless]     }  multilineComments' :: TokenMatcher multilineComments' =-    [ tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo multilineComments')-    , tokNext "\92\42\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") Pop-    , tok "\91\94\47\92\42\93\43" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")-    , tok "\91\47\42\93" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo multilineComments')+    , tokNext "\\*/" (Arbitrary "Comment" :. Arbitrary "Multiline") Pop+    , tok "[^/\\*]+" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "[/*]" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\45\45\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tokNext "\47\92\42" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101") (GoTo multilineComments')-    , tok "\40\65\66\79\82\84\124\65\66\83\124\65\66\83\79\76\85\84\69\124\65\67\67\69\83\83\124\65\68\65\124\65\68\68\124\65\68\77\73\78\124\65\70\84\69\82\124\65\71\71\82\69\71\65\84\69\124\65\76\73\65\83\124\65\76\76\124\65\76\76\79\67\65\84\69\124\65\76\84\69\82\124\65\78\65\76\89\83\69\124\65\78\65\76\89\90\69\124\65\78\68\124\65\78\89\124\65\82\69\124\65\83\124\65\83\67\124\65\83\69\78\83\73\84\73\86\69\124\65\83\83\69\82\84\73\79\78\124\65\83\83\73\71\78\77\69\78\84\124\65\83\89\77\77\69\84\82\73\67\124\65\84\124\65\84\79\77\73\67\124\65\85\84\72\79\82\73\90\65\84\73\79\78\124\65\86\71\124\66\65\67\75\87\65\82\68\124\66\69\70\79\82\69\124\66\69\71\73\78\124\66\69\84\87\69\69\78\124\66\73\84\86\65\82\124\66\73\84\95\76\69\78\71\84\72\124\66\79\84\72\124\66\82\69\65\68\84\72\124\66\89\124\67\124\67\65\67\72\69\124\67\65\76\76\124\67\65\76\76\69\68\124\67\65\82\68\73\78\65\76\73\84\89\124\67\65\83\67\65\68\69\124\67\65\83\67\65\68\69\68\124\67\65\83\69\124\67\65\83\84\124\67\65\84\65\76\79\71\124\67\65\84\65\76\79\71\95\78\65\77\69\124\67\72\65\73\78\124\67\72\65\82\65\67\84\69\82\73\83\84\73\67\83\124\67\72\65\82\65\67\84\69\82\95\76\69\78\71\84\72\124\67\72\65\82\65\67\84\69\82\95\83\69\84\95\67\65\84\65\76\79\71\124\67\72\65\82\65\67\84\69\82\95\83\69\84\95\78\65\77\69\124\67\72\65\82\65\67\84\69\82\95\83\69\84\95\83\67\72\69\77\65\124\67\72\65\82\95\76\69\78\71\84\72\124\67\72\69\67\75\124\67\72\69\67\75\69\68\124\67\72\69\67\75\80\79\73\78\84\124\67\76\65\83\83\124\67\76\65\83\83\95\79\82\73\71\73\78\124\67\76\79\66\124\67\76\79\83\69\124\67\76\85\83\84\69\82\124\67\79\65\76\83\69\67\69\124\67\79\66\79\76\124\67\79\76\76\65\84\69\124\67\79\76\76\65\84\73\79\78\124\67\79\76\76\65\84\73\79\78\95\67\65\84\65\76\79\71\124\67\79\76\76\65\84\73\79\78\95\78\65\77\69\124\67\79\76\76\65\84\73\79\78\95\83\67\72\69\77\65\124\67\79\76\85\77\78\124\67\79\76\85\77\78\95\78\65\77\69\124\67\79\77\77\65\78\68\95\70\85\78\67\84\73\79\78\124\67\79\77\77\65\78\68\95\70\85\78\67\84\73\79\78\95\67\79\68\69\124\67\79\77\77\69\78\84\124\67\79\77\77\73\84\124\67\79\77\77\73\84\84\69\68\124\67\79\77\80\76\69\84\73\79\78\124\67\79\78\68\73\84\73\79\78\95\78\85\77\66\69\82\124\67\79\78\78\69\67\84\124\67\79\78\78\69\67\84\73\79\78\124\67\79\78\78\69\67\84\73\79\78\95\78\65\77\69\124\67\79\78\83\84\82\65\73\78\84\124\67\79\78\83\84\82\65\73\78\84\83\124\67\79\78\83\84\82\65\73\78\84\95\67\65\84\65\76\79\71\124\67\79\78\83\84\82\65\73\78\84\95\78\65\77\69\124\67\79\78\83\84\82\65\73\78\84\95\83\67\72\69\77\65\124\67\79\78\83\84\82\85\67\84\79\82\124\67\79\78\84\65\73\78\83\124\67\79\78\84\73\78\85\69\124\67\79\78\86\69\82\83\73\79\78\124\67\79\78\86\69\82\84\124\67\79\80\89\124\67\79\82\82\69\83\80\79\78\84\73\78\71\124\67\79\85\78\84\124\67\82\69\65\84\69\124\67\82\69\65\84\69\68\66\124\67\82\69\65\84\69\85\83\69\82\124\67\82\79\83\83\124\67\85\66\69\124\67\85\82\82\69\78\84\124\67\85\82\82\69\78\84\95\68\65\84\69\124\67\85\82\82\69\78\84\95\80\65\84\72\124\67\85\82\82\69\78\84\95\82\79\76\69\124\67\85\82\82\69\78\84\95\84\73\77\69\124\67\85\82\82\69\78\84\95\84\73\77\69\83\84\65\77\80\124\67\85\82\82\69\78\84\95\85\83\69\82\124\67\85\82\83\79\82\124\67\85\82\83\79\82\95\78\65\77\69\124\67\89\67\76\69\124\68\65\84\65\124\68\65\84\65\66\65\83\69\124\68\65\84\69\84\73\77\69\95\73\78\84\69\82\86\65\76\95\67\79\68\69\124\68\65\84\69\84\73\77\69\95\73\78\84\69\82\86\65\76\95\80\82\69\67\73\83\73\79\78\124\68\65\89\124\68\69\65\76\76\79\67\65\84\69\124\68\69\67\76\65\82\69\124\68\69\70\65\85\76\84\124\68\69\70\65\85\76\84\83\124\68\69\70\69\82\82\65\66\76\69\124\68\69\70\69\82\82\69\68\124\68\69\70\73\78\69\68\124\68\69\70\73\78\69\82\124\68\69\76\69\84\69\124\68\69\76\73\77\73\84\69\82\124\68\69\76\73\77\73\84\69\82\83\124\68\69\82\69\70\124\68\69\83\67\124\68\69\83\67\82\73\66\69\124\68\69\83\67\82\73\80\84\79\82\124\68\69\83\84\82\79\89\124\68\69\83\84\82\85\67\84\79\82\124\68\69\84\69\82\77\73\78\73\83\84\73\67\124\68\73\65\71\78\79\83\84\73\67\83\124\68\73\67\84\73\79\78\65\82\89\124\68\73\83\67\79\78\78\69\67\84\124\68\73\83\80\65\84\67\72\124\68\73\83\84\73\78\67\84\124\68\79\124\68\79\77\65\73\78\124\68\82\79\80\124\68\89\78\65\77\73\67\124\68\89\78\65\77\73\67\95\70\85\78\67\84\73\79\78\124\68\89\78\65\77\73\67\95\70\85\78\67\84\73\79\78\95\67\79\68\69\124\69\65\67\72\124\69\76\83\69\124\69\78\67\79\68\73\78\71\124\69\78\67\82\89\80\84\69\68\124\69\78\68\124\69\78\68\45\69\88\69\67\124\69\81\85\65\76\83\124\69\83\67\65\80\69\124\69\86\69\82\89\124\69\88\67\69\80\84\124\69\83\67\69\80\84\73\79\78\124\69\88\67\76\85\68\73\78\71\124\69\88\67\76\85\83\73\86\69\124\69\88\69\67\124\69\88\69\67\85\84\69\124\69\88\73\83\84\73\78\71\124\69\88\73\83\84\83\124\69\88\80\76\65\73\78\124\69\88\84\69\82\78\65\76\124\69\88\84\82\65\67\84\124\70\65\76\83\69\124\70\69\84\67\72\124\70\73\78\65\76\124\70\73\82\83\84\124\70\79\82\124\70\79\82\67\69\124\70\79\82\69\73\71\78\124\70\79\82\84\82\65\78\124\70\79\82\87\65\82\68\124\70\79\85\78\68\124\70\82\69\69\124\70\82\69\69\90\69\124\70\82\79\77\124\70\85\76\76\124\70\85\78\67\84\73\79\78\124\71\124\71\69\78\69\82\65\76\124\71\69\78\69\82\65\84\69\68\124\71\69\84\124\71\76\79\66\65\76\124\71\79\124\71\79\84\79\124\71\82\65\78\84\124\71\82\65\78\84\69\68\124\71\82\79\85\80\124\71\82\79\85\80\73\78\71\124\72\65\78\68\76\69\82\124\72\65\86\73\78\71\124\72\73\69\82\65\82\67\72\89\124\72\79\76\68\124\72\79\83\84\124\73\68\69\78\84\73\84\89\124\73\71\78\79\82\69\124\73\76\73\75\69\124\73\77\77\69\68\73\65\84\69\124\73\77\77\85\84\65\66\76\69\124\73\77\80\76\69\77\69\78\84\65\84\73\79\78\124\73\77\80\76\73\67\73\84\124\73\78\124\73\78\67\76\85\68\73\78\71\124\73\78\67\82\69\77\69\78\84\124\73\78\68\69\88\124\73\78\68\73\84\67\65\84\79\82\124\73\78\70\73\88\124\73\78\72\69\82\73\84\83\124\73\78\73\84\73\65\76\73\90\69\124\73\78\73\84\73\65\76\76\89\124\73\78\78\69\82\124\73\78\79\85\84\124\73\78\80\85\84\124\73\78\83\69\78\83\73\84\73\86\69\124\73\78\83\69\82\84\124\73\78\83\84\65\78\84\73\65\66\76\69\124\73\78\83\84\69\65\68\124\73\78\84\69\82\83\69\67\84\124\73\78\84\79\124\73\78\86\79\75\69\82\124\73\83\124\73\83\78\85\76\76\124\73\83\79\76\65\84\73\79\78\124\73\84\69\82\65\84\69\124\74\79\73\78\124\75\69\89\124\75\69\89\95\77\69\77\66\69\82\124\75\69\89\95\84\89\80\69\124\76\65\78\67\79\77\80\73\76\69\82\124\76\65\78\71\85\65\71\69\124\76\65\82\71\69\124\76\65\83\84\124\76\65\84\69\82\65\76\124\76\69\65\68\73\78\71\124\76\69\70\84\124\76\69\78\71\84\72\124\76\69\83\83\124\76\69\86\69\76\124\76\73\75\69\124\76\73\77\73\84\124\76\73\83\84\69\78\124\76\79\65\68\124\76\79\67\65\76\124\76\79\67\65\76\84\73\77\69\124\76\79\67\65\76\84\73\77\69\83\84\65\77\80\124\76\79\67\65\84\73\79\78\124\76\79\67\65\84\79\82\124\76\79\67\75\124\76\79\87\69\82\124\77\65\80\124\77\65\84\67\72\124\77\65\88\124\77\65\88\86\65\76\85\69\124\77\69\83\83\65\71\69\95\76\69\78\71\84\72\124\77\69\83\83\65\71\69\95\79\67\84\69\84\95\76\69\78\71\84\72\124\77\69\83\83\65\71\69\95\84\69\88\84\124\77\69\84\72\79\68\124\77\73\78\124\77\73\78\85\84\69\124\77\73\78\86\65\76\85\69\124\77\79\68\124\77\79\68\69\124\77\79\68\73\70\73\69\83\124\77\79\68\73\70\89\124\77\79\78\84\72\124\77\79\82\69\124\77\79\86\69\124\77\85\77\80\83\124\78\65\77\69\83\124\78\65\84\73\79\78\65\76\124\78\65\84\85\82\65\76\124\78\67\72\65\82\124\78\67\76\79\66\124\78\69\87\124\78\69\88\84\124\78\79\124\78\79\67\82\69\65\84\69\68\66\124\78\79\67\82\69\65\84\69\85\83\69\82\124\78\79\78\69\124\78\79\84\124\78\79\84\72\73\78\71\124\78\79\84\73\70\89\124\78\79\84\78\85\76\76\124\78\85\76\76\124\78\85\76\76\65\66\76\69\124\78\85\76\76\73\70\124\79\66\74\69\67\84\124\79\67\84\69\84\95\76\69\78\71\84\72\124\79\70\124\79\70\70\124\79\70\70\83\69\84\124\79\73\68\83\124\79\76\68\124\79\78\124\79\78\76\89\124\79\80\69\78\124\79\80\69\82\65\84\73\79\78\124\79\80\69\82\65\84\79\82\124\79\80\84\73\79\78\124\79\80\84\73\79\78\83\124\79\82\124\79\82\68\69\82\124\79\82\68\73\78\65\76\73\84\89\124\79\85\84\124\79\85\84\69\82\124\79\85\84\80\85\84\124\79\86\69\82\76\65\80\83\124\79\86\69\82\76\65\89\124\79\86\69\82\82\73\68\73\78\71\124\79\87\78\69\82\124\80\65\68\124\80\65\82\65\77\69\84\69\82\124\80\65\82\65\77\69\84\69\82\83\124\80\65\82\65\77\69\84\69\82\95\77\79\68\69\124\80\65\82\65\77\65\84\69\82\95\78\65\77\69\124\80\65\82\65\77\65\84\69\82\95\79\82\68\73\78\65\76\95\80\79\83\73\84\73\79\78\124\80\65\82\65\77\69\84\69\82\95\83\80\69\67\73\70\73\67\95\67\65\84\65\76\79\71\124\80\65\82\65\77\69\84\69\82\95\83\80\69\67\73\70\73\67\95\78\65\77\69\124\80\65\82\65\77\65\84\69\82\95\83\80\69\67\73\70\73\67\95\83\67\72\69\77\65\124\80\65\82\84\73\65\76\124\80\65\83\67\65\76\124\80\69\78\68\65\78\84\124\80\76\65\67\73\78\71\124\80\76\73\124\80\79\83\73\84\73\79\78\124\80\79\83\84\70\73\88\124\80\82\69\67\73\83\73\79\78\124\80\82\69\70\73\88\124\80\82\69\79\82\68\69\82\124\80\82\69\80\65\82\69\124\80\82\69\83\69\82\86\69\124\80\82\73\77\65\82\89\124\80\82\73\79\82\124\80\82\73\86\73\76\69\71\69\83\124\80\82\79\67\69\68\85\82\65\76\124\80\82\79\67\69\68\85\82\69\124\80\85\66\76\73\67\124\82\69\65\68\124\82\69\65\68\83\124\82\69\67\72\69\67\75\124\82\69\67\85\82\83\73\86\69\124\82\69\70\124\82\69\70\69\82\69\78\67\69\83\124\82\69\70\69\82\69\78\67\73\78\71\124\82\69\73\78\68\69\88\124\82\69\76\65\84\73\86\69\124\82\69\78\65\77\69\124\82\69\80\69\65\84\65\66\76\69\124\82\69\80\76\65\67\69\124\82\69\83\69\84\124\82\69\83\84\65\82\84\124\82\69\83\84\82\73\67\84\124\82\69\83\85\76\84\124\82\69\84\85\82\78\124\82\69\84\85\82\78\69\68\95\76\69\78\71\84\72\124\82\69\84\85\82\78\69\68\95\79\67\84\69\84\95\76\69\78\71\84\72\124\82\69\84\85\82\78\69\68\95\83\81\76\83\84\65\84\69\124\82\69\84\85\82\78\83\124\82\69\86\79\75\69\124\82\73\71\72\84\124\82\79\76\69\124\82\79\76\76\66\65\67\75\124\82\79\76\76\85\80\124\82\79\85\84\73\78\69\124\82\79\85\84\73\78\69\95\67\65\84\65\76\79\71\124\82\79\85\84\73\78\69\95\78\65\77\69\124\82\79\85\84\73\78\69\95\83\67\72\69\77\65\124\82\79\87\124\82\79\87\83\124\82\79\87\95\67\79\85\78\84\124\82\85\76\69\124\83\65\86\69\95\80\79\73\78\84\124\83\67\65\76\69\124\83\67\72\69\77\65\124\83\67\72\69\77\65\95\78\65\77\69\124\83\67\79\80\69\124\83\67\82\79\76\76\124\83\69\65\82\67\72\124\83\69\67\79\78\68\124\83\69\67\85\82\73\84\89\124\83\69\76\69\67\84\124\83\69\76\70\124\83\69\78\83\73\84\73\86\69\124\83\69\82\73\65\76\73\90\65\66\76\69\124\83\69\82\86\69\82\95\78\65\77\69\124\83\69\83\83\73\79\78\124\83\69\83\83\73\79\78\95\85\83\69\82\124\83\69\84\124\83\69\84\79\70\124\83\69\84\83\124\83\72\65\82\69\124\83\72\79\87\124\83\73\77\73\76\65\82\124\83\73\77\80\76\69\124\83\73\90\69\124\83\79\77\69\124\83\79\85\82\67\69\124\83\80\65\67\69\124\83\80\69\67\73\70\73\67\124\83\80\69\67\73\70\73\67\84\89\80\69\124\83\80\69\67\73\70\73\67\95\78\65\77\69\124\83\81\76\124\83\81\76\67\79\68\69\124\83\81\76\69\82\82\79\82\124\83\81\76\69\88\67\69\80\84\73\79\78\124\83\81\76\83\84\65\84\69\124\83\81\76\87\65\82\78\73\78\73\71\124\83\84\65\66\76\69\124\83\84\65\82\84\124\83\84\65\84\69\124\83\84\65\84\69\77\69\78\84\124\83\84\65\84\73\67\124\83\84\65\84\73\83\84\73\67\83\124\83\84\68\73\78\124\83\84\68\79\85\84\124\83\84\79\82\65\71\69\124\83\84\82\73\67\84\124\83\84\82\85\67\84\85\82\69\124\83\84\89\80\69\124\83\85\66\67\76\65\83\83\95\79\82\73\71\73\78\124\83\85\66\76\73\83\84\124\83\85\66\83\84\82\73\78\71\124\83\85\77\124\83\89\77\77\69\84\82\73\67\124\83\89\83\73\68\124\83\89\83\84\69\77\124\83\89\83\84\69\77\95\85\83\69\82\124\84\65\66\76\69\124\84\65\66\76\69\95\78\65\77\69\124\32\84\69\77\80\124\84\69\77\80\76\65\84\69\124\84\69\77\80\79\82\65\82\89\124\84\69\82\77\73\78\65\84\69\124\84\72\65\78\124\84\72\69\78\124\84\73\77\69\83\84\65\77\80\124\84\73\77\69\90\79\78\69\95\72\79\85\82\124\84\73\77\69\90\79\78\69\95\77\73\78\85\84\69\124\84\79\124\84\79\65\83\84\124\84\82\65\73\76\73\78\71\124\84\82\65\78\83\65\84\73\79\78\124\84\82\65\78\83\65\67\84\73\79\78\83\95\67\79\77\77\73\84\84\69\68\124\84\82\65\78\83\65\67\84\73\79\78\83\95\82\79\76\76\69\68\95\66\65\67\75\124\84\82\65\78\83\65\84\73\79\78\95\65\67\84\73\86\69\124\84\82\65\78\83\70\79\82\77\124\84\82\65\78\83\70\79\82\77\83\124\84\82\65\78\83\76\65\84\69\124\84\82\65\78\83\76\65\84\73\79\78\124\84\82\69\65\84\124\84\82\73\71\71\69\82\124\84\82\73\71\71\69\82\95\67\65\84\65\76\79\71\124\84\82\73\71\71\69\82\95\78\65\77\69\124\84\82\73\71\71\69\82\95\83\67\72\69\77\65\124\84\82\73\77\124\84\82\85\69\124\84\82\85\78\67\65\84\69\124\84\82\85\83\84\69\68\124\84\89\80\69\124\85\78\67\79\77\77\73\84\84\69\68\124\85\78\68\69\82\124\85\78\69\78\67\82\89\80\84\69\68\124\85\78\73\79\78\124\85\78\73\81\85\69\124\85\78\75\78\79\87\78\124\85\78\76\73\83\84\69\78\124\85\78\78\65\77\69\68\124\85\78\78\69\83\84\124\85\78\84\73\76\124\85\80\68\65\84\69\124\85\80\80\69\82\124\85\83\65\71\69\124\85\83\69\82\124\85\83\69\82\95\68\69\70\73\78\69\68\95\84\89\80\69\95\67\65\84\65\76\79\71\124\85\83\69\82\95\68\69\70\73\78\69\68\95\84\89\80\69\95\78\65\77\69\124\85\83\69\82\95\68\69\70\73\78\69\68\95\84\89\80\69\95\83\67\72\69\77\65\124\85\83\73\78\71\124\86\65\67\85\85\77\124\86\65\76\73\68\124\86\65\76\73\68\65\84\79\82\124\86\65\76\85\69\83\124\86\65\82\73\65\66\76\69\124\86\69\82\66\79\83\69\124\86\69\82\83\73\79\78\124\86\73\69\87\124\86\79\76\65\84\73\76\69\124\87\72\69\78\124\87\72\69\78\69\86\69\82\124\87\72\69\82\69\124\87\73\84\72\124\87\73\84\72\79\85\84\124\87\79\82\75\124\87\82\73\84\69\124\89\69\65\82\124\90\79\78\69\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\65\82\82\65\89\124\66\73\71\73\78\84\124\66\73\78\65\82\89\124\66\73\84\124\66\76\79\66\124\66\79\79\76\69\65\78\124\67\72\65\82\124\67\72\65\82\65\67\84\69\82\124\68\65\84\69\124\68\69\67\124\68\69\67\73\77\65\76\124\70\76\79\65\84\124\73\78\84\124\73\78\84\69\71\69\82\124\73\78\84\69\82\86\65\76\124\78\85\77\66\69\82\124\78\85\77\69\82\73\67\124\82\69\65\76\124\83\69\82\73\65\76\124\83\77\65\76\76\73\78\84\124\86\65\82\67\72\65\82\124\86\65\82\89\73\78\71\124\73\78\84\56\124\83\69\82\73\65\76\56\124\84\69\88\84\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\43\42\47\60\62\61\126\33\64\35\37\94\38\124\96\63\94\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\39\40\39\39\124\91\94\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\34\40\34\34\124\91\94\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\121\109\98\111\108")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")-    , tok "\91\59\58\40\41\92\91\92\93\44\92\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "--.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single")+    , tokNext "/\\*" (Arbitrary "Comment" :. Arbitrary "Multiline") (GoTo multilineComments')+    , tok "(ABORT|ABS|ABSOLUTE|ACCESS|ADA|ADD|ADMIN|AFTER|AGGREGATE|ALIAS|ALL|ALLOCATE|ALTER|ANALYSE|ANALYZE|AND|ANY|ARE|AS|ASC|ASENSITIVE|ASSERTION|ASSIGNMENT|ASYMMETRIC|AT|ATOMIC|AUTHORIZATION|AVG|BACKWARD|BEFORE|BEGIN|BETWEEN|BITVAR|BIT_LENGTH|BOTH|BREADTH|BY|C|CACHE|CALL|CALLED|CARDINALITY|CASCADE|CASCADED|CASE|CAST|CATALOG|CATALOG_NAME|CHAIN|CHARACTERISTICS|CHARACTER_LENGTH|CHARACTER_SET_CATALOG|CHARACTER_SET_NAME|CHARACTER_SET_SCHEMA|CHAR_LENGTH|CHECK|CHECKED|CHECKPOINT|CLASS|CLASS_ORIGIN|CLOB|CLOSE|CLUSTER|COALSECE|COBOL|COLLATE|COLLATION|COLLATION_CATALOG|COLLATION_NAME|COLLATION_SCHEMA|COLUMN|COLUMN_NAME|COMMAND_FUNCTION|COMMAND_FUNCTION_CODE|COMMENT|COMMIT|COMMITTED|COMPLETION|CONDITION_NUMBER|CONNECT|CONNECTION|CONNECTION_NAME|CONSTRAINT|CONSTRAINTS|CONSTRAINT_CATALOG|CONSTRAINT_NAME|CONSTRAINT_SCHEMA|CONSTRUCTOR|CONTAINS|CONTINUE|CONVERSION|CONVERT|COPY|CORRESPONTING|COUNT|CREATE|CREATEDB|CREATEUSER|CROSS|CUBE|CURRENT|CURRENT_DATE|CURRENT_PATH|CURRENT_ROLE|CURRENT_TIME|CURRENT_TIMESTAMP|CURRENT_USER|CURSOR|CURSOR_NAME|CYCLE|DATA|DATABASE|DATETIME_INTERVAL_CODE|DATETIME_INTERVAL_PRECISION|DAY|DEALLOCATE|DECLARE|DEFAULT|DEFAULTS|DEFERRABLE|DEFERRED|DEFINED|DEFINER|DELETE|DELIMITER|DELIMITERS|DEREF|DESC|DESCRIBE|DESCRIPTOR|DESTROY|DESTRUCTOR|DETERMINISTIC|DIAGNOSTICS|DICTIONARY|DISCONNECT|DISPATCH|DISTINCT|DO|DOMAIN|DROP|DYNAMIC|DYNAMIC_FUNCTION|DYNAMIC_FUNCTION_CODE|EACH|ELSE|ENCODING|ENCRYPTED|END|END-EXEC|EQUALS|ESCAPE|EVERY|EXCEPT|ESCEPTION|EXCLUDING|EXCLUSIVE|EXEC|EXECUTE|EXISTING|EXISTS|EXPLAIN|EXTERNAL|EXTRACT|FALSE|FETCH|FINAL|FIRST|FOR|FORCE|FOREIGN|FORTRAN|FORWARD|FOUND|FREE|FREEZE|FROM|FULL|FUNCTION|G|GENERAL|GENERATED|GET|GLOBAL|GO|GOTO|GRANT|GRANTED|GROUP|GROUPING|HANDLER|HAVING|HIERARCHY|HOLD|HOST|IDENTITY|IGNORE|ILIKE|IMMEDIATE|IMMUTABLE|IMPLEMENTATION|IMPLICIT|IN|INCLUDING|INCREMENT|INDEX|INDITCATOR|INFIX|INHERITS|INITIALIZE|INITIALLY|INNER|INOUT|INPUT|INSENSITIVE|INSERT|INSTANTIABLE|INSTEAD|INTERSECT|INTO|INVOKER|IS|ISNULL|ISOLATION|ITERATE|JOIN|KEY|KEY_MEMBER|KEY_TYPE|LANCOMPILER|LANGUAGE|LARGE|LAST|LATERAL|LEADING|LEFT|LENGTH|LESS|LEVEL|LIKE|LIMIT|LISTEN|LOAD|LOCAL|LOCALTIME|LOCALTIMESTAMP|LOCATION|LOCATOR|LOCK|LOWER|MAP|MATCH|MAX|MAXVALUE|MESSAGE_LENGTH|MESSAGE_OCTET_LENGTH|MESSAGE_TEXT|METHOD|MIN|MINUTE|MINVALUE|MOD|MODE|MODIFIES|MODIFY|MONTH|MORE|MOVE|MUMPS|NAMES|NATIONAL|NATURAL|NCHAR|NCLOB|NEW|NEXT|NO|NOCREATEDB|NOCREATEUSER|NONE|NOT|NOTHING|NOTIFY|NOTNULL|NULL|NULLABLE|NULLIF|OBJECT|OCTET_LENGTH|OF|OFF|OFFSET|OIDS|OLD|ON|ONLY|OPEN|OPERATION|OPERATOR|OPTION|OPTIONS|OR|ORDER|ORDINALITY|OUT|OUTER|OUTPUT|OVERLAPS|OVERLAY|OVERRIDING|OWNER|PAD|PARAMETER|PARAMETERS|PARAMETER_MODE|PARAMATER_NAME|PARAMATER_ORDINAL_POSITION|PARAMETER_SPECIFIC_CATALOG|PARAMETER_SPECIFIC_NAME|PARAMATER_SPECIFIC_SCHEMA|PARTIAL|PASCAL|PENDANT|PLACING|PLI|POSITION|POSTFIX|PRECISION|PREFIX|PREORDER|PREPARE|PRESERVE|PRIMARY|PRIOR|PRIVILEGES|PROCEDURAL|PROCEDURE|PUBLIC|READ|READS|RECHECK|RECURSIVE|REF|REFERENCES|REFERENCING|REINDEX|RELATIVE|RENAME|REPEATABLE|REPLACE|RESET|RESTART|RESTRICT|RESULT|RETURN|RETURNED_LENGTH|RETURNED_OCTET_LENGTH|RETURNED_SQLSTATE|RETURNS|REVOKE|RIGHT|ROLE|ROLLBACK|ROLLUP|ROUTINE|ROUTINE_CATALOG|ROUTINE_NAME|ROUTINE_SCHEMA|ROW|ROWS|ROW_COUNT|RULE|SAVE_POINT|SCALE|SCHEMA|SCHEMA_NAME|SCOPE|SCROLL|SEARCH|SECOND|SECURITY|SELECT|SELF|SENSITIVE|SERIALIZABLE|SERVER_NAME|SESSION|SESSION_USER|SET|SETOF|SETS|SHARE|SHOW|SIMILAR|SIMPLE|SIZE|SOME|SOURCE|SPACE|SPECIFIC|SPECIFICTYPE|SPECIFIC_NAME|SQL|SQLCODE|SQLERROR|SQLEXCEPTION|SQLSTATE|SQLWARNINIG|STABLE|START|STATE|STATEMENT|STATIC|STATISTICS|STDIN|STDOUT|STORAGE|STRICT|STRUCTURE|STYPE|SUBCLASS_ORIGIN|SUBLIST|SUBSTRING|SUM|SYMMETRIC|SYSID|SYSTEM|SYSTEM_USER|TABLE|TABLE_NAME| TEMP|TEMPLATE|TEMPORARY|TERMINATE|THAN|THEN|TIMESTAMP|TIMEZONE_HOUR|TIMEZONE_MINUTE|TO|TOAST|TRAILING|TRANSATION|TRANSACTIONS_COMMITTED|TRANSACTIONS_ROLLED_BACK|TRANSATION_ACTIVE|TRANSFORM|TRANSFORMS|TRANSLATE|TRANSLATION|TREAT|TRIGGER|TRIGGER_CATALOG|TRIGGER_NAME|TRIGGER_SCHEMA|TRIM|TRUE|TRUNCATE|TRUSTED|TYPE|UNCOMMITTED|UNDER|UNENCRYPTED|UNION|UNIQUE|UNKNOWN|UNLISTEN|UNNAMED|UNNEST|UNTIL|UPDATE|UPPER|USAGE|USER|USER_DEFINED_TYPE_CATALOG|USER_DEFINED_TYPE_NAME|USER_DEFINED_TYPE_SCHEMA|USING|VACUUM|VALID|VALIDATOR|VALUES|VARIABLE|VERBOSE|VERSION|VIEW|VOLATILE|WHEN|WHENEVER|WHERE|WITH|WITHOUT|WORK|WRITE|YEAR|ZONE)\\b" (Arbitrary "Keyword")+    , tok "(ARRAY|BIGINT|BINARY|BIT|BLOB|BOOLEAN|CHAR|CHARACTER|DATE|DEC|DECIMAL|FLOAT|INT|INTEGER|INTERVAL|NUMBER|NUMERIC|REAL|SERIAL|SMALLINT|VARCHAR|VARYING|INT8|SERIAL8|TEXT)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[+*/<>=\126!@#%^&|`?^-]" (Arbitrary "Operator")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "'(''|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "\"(\"\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Symbol")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")+    , tok "[;:()\\[\\],\\.]" (Arbitrary "Punctuation")     ] 
src/Text/Highlighter/Lexers/SquidConf.hs view
@@ -5,32 +5,32 @@  lexer :: Lexer lexer = Lexer-    { lName = "\83\113\117\105\100\67\111\110\102"-    , lAliases = ["\115\113\117\105\100\99\111\110\102", "\115\113\117\105\100\46\99\111\110\102", "\115\113\117\105\100"]-    , lExtensions = ["\115\113\117\105\100\46\99\111\110\102"]-    , lMimetypes = ["\116\101\120\116\47\120\45\115\113\117\105\100\99\111\110\102"]+    { lName = "SquidConf"+    , lAliases = ["squidconf", "squid.conf", "squid"]+    , lExtensions = ["squid.conf"]+    , lMimetypes = ["text/x-squidconf"]     , lStart = root'     , lFlags = [caseless]     }  comment' :: TokenMatcher comment' =-    [ tokNext "\92\115\42\84\65\71\58\46\42" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101") Pop-    , tokNext "\46\42" (Arbitrary "\67\111\109\109\101\110\116") Pop+    [ tokNext "\\s*TAG:.*" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape") Pop+    , tokNext ".*" (Arbitrary "Comment") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\35" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')-    , tok "\92\98\40\63\58\97\99\108\124\97\108\119\97\121\115\95\100\105\114\101\99\116\124\97\110\110\111\117\110\99\101\95\104\111\115\116\124\97\110\110\111\117\110\99\101\95\112\101\114\105\111\100\124\97\110\110\111\117\110\99\101\95\112\111\114\116\124\97\110\110\111\117\110\99\101\95\116\111\124\97\110\111\110\121\109\105\122\101\95\104\101\97\100\101\114\115\124\97\112\112\101\110\100\95\100\111\109\97\105\110\124\97\115\95\119\104\111\105\115\95\115\101\114\118\101\114\124\97\117\116\104\95\112\97\114\97\109\95\98\97\115\105\99\124\97\117\116\104\101\110\116\105\99\97\116\101\95\99\104\105\108\100\114\101\110\124\97\117\116\104\101\110\116\105\99\97\116\101\95\112\114\111\103\114\97\109\124\97\117\116\104\101\110\116\105\99\97\116\101\95\116\116\108\124\98\114\111\107\101\110\95\112\111\115\116\115\124\98\117\102\102\101\114\101\100\95\108\111\103\115\124\99\97\99\104\101\95\97\99\99\101\115\115\95\108\111\103\124\99\97\99\104\101\95\97\110\110\111\117\110\99\101\124\99\97\99\104\101\95\100\105\114\124\99\97\99\104\101\95\100\110\115\95\112\114\111\103\114\97\109\124\99\97\99\104\101\95\101\102\102\101\99\116\105\118\101\95\103\114\111\117\112\124\99\97\99\104\101\95\101\102\102\101\99\116\105\118\101\95\117\115\101\114\124\99\97\99\104\101\95\104\111\115\116\124\99\97\99\104\101\95\104\111\115\116\95\97\99\108\124\99\97\99\104\101\95\104\111\115\116\95\100\111\109\97\105\110\124\99\97\99\104\101\95\108\111\103\124\99\97\99\104\101\95\109\101\109\124\99\97\99\104\101\95\109\101\109\95\104\105\103\104\124\99\97\99\104\101\95\109\101\109\95\108\111\119\124\99\97\99\104\101\95\109\103\114\124\99\97\99\104\101\109\103\114\95\112\97\115\115\119\100\124\99\97\99\104\101\95\112\101\101\114\124\99\97\99\104\101\95\112\101\101\114\95\97\99\99\101\115\115\124\99\97\104\99\101\95\114\101\112\108\97\99\101\109\101\110\116\95\112\111\108\105\99\121\124\99\97\99\104\101\95\115\116\111\112\108\105\115\116\124\99\97\99\104\101\95\115\116\111\112\108\105\115\116\95\112\97\116\116\101\114\110\124\99\97\99\104\101\95\115\116\111\114\101\95\108\111\103\124\99\97\99\104\101\95\115\119\97\112\124\99\97\99\104\101\95\115\119\97\112\95\104\105\103\104\124\99\97\99\104\101\95\115\119\97\112\95\108\111\103\124\99\97\99\104\101\95\115\119\97\112\95\108\111\119\124\99\108\105\101\110\116\95\100\98\124\99\108\105\101\110\116\95\108\105\102\101\116\105\109\101\124\99\108\105\101\110\116\95\110\101\116\109\97\115\107\124\99\111\110\110\101\99\116\95\116\105\109\101\111\117\116\124\99\111\114\101\100\117\109\112\95\100\105\114\124\100\101\97\100\95\112\101\101\114\95\116\105\109\101\111\117\116\124\100\101\98\117\103\95\111\112\116\105\111\110\115\124\100\101\108\97\121\95\97\99\99\101\115\115\124\100\101\108\97\121\95\99\108\97\115\115\124\100\101\108\97\121\95\105\110\105\116\105\97\108\95\98\117\99\107\101\116\95\108\101\118\101\108\124\100\101\108\97\121\95\112\97\114\97\109\101\116\101\114\115\124\100\101\108\97\121\95\112\111\111\108\115\124\100\101\110\121\95\105\110\102\111\124\100\110\115\95\99\104\105\108\100\114\101\110\124\100\110\115\95\100\101\102\110\97\109\101\115\124\100\110\115\95\110\97\109\101\115\101\114\118\101\114\115\124\100\110\115\95\116\101\115\116\110\97\109\101\115\124\101\109\117\108\97\116\101\95\104\116\116\112\100\95\108\111\103\124\101\114\114\95\104\116\109\108\95\116\101\120\116\124\102\97\107\101\95\117\115\101\114\95\97\103\101\110\116\124\102\105\114\101\119\97\108\108\95\105\112\124\102\111\114\119\97\114\100\101\100\95\102\111\114\124\102\111\114\119\97\114\100\95\115\110\109\112\100\95\112\111\114\116\124\102\113\100\110\99\97\99\104\101\95\115\105\122\101\124\102\116\112\103\101\116\95\111\112\116\105\111\110\115\124\102\116\112\103\101\116\95\112\114\111\103\114\97\109\124\102\116\112\95\108\105\115\116\95\119\105\100\116\104\124\102\116\112\95\112\97\115\115\105\118\101\124\102\116\112\95\117\115\101\114\124\104\97\108\102\95\99\108\111\115\101\100\95\99\108\105\101\110\116\115\124\104\101\97\100\101\114\95\97\99\99\101\115\115\124\104\101\97\100\101\114\95\114\101\112\108\97\99\101\124\104\105\101\114\97\114\99\104\121\95\115\116\111\112\108\105\115\116\124\104\105\103\104\95\114\101\115\112\111\110\115\101\95\116\105\109\101\95\119\97\114\110\105\110\103\124\104\105\103\104\95\112\97\103\101\95\102\97\117\108\116\95\119\97\114\110\105\110\103\124\104\116\99\112\95\112\111\114\116\124\104\116\116\112\95\97\99\99\101\115\115\124\104\116\116\112\95\97\110\111\110\121\109\105\122\101\114\124\104\116\116\112\100\95\97\99\99\101\108\124\104\116\116\112\100\95\97\99\99\101\108\95\104\111\115\116\124\104\116\116\112\100\95\97\99\99\101\108\95\112\111\114\116\124\104\116\116\112\100\95\97\99\99\101\108\95\117\115\101\115\95\104\111\115\116\95\104\101\97\100\101\114\124\104\116\116\112\100\95\97\99\99\101\108\95\119\105\116\104\95\112\114\111\120\121\124\104\116\116\112\95\112\111\114\116\124\104\116\116\112\95\114\101\112\108\121\95\97\99\99\101\115\115\124\105\99\112\95\97\99\99\101\115\115\124\105\99\112\95\104\105\116\95\115\116\97\108\101\124\105\99\112\95\112\111\114\116\124\105\99\112\95\113\117\101\114\121\95\116\105\109\101\111\117\116\124\105\100\101\110\116\95\108\111\111\107\117\112\124\105\100\101\110\116\95\108\111\111\107\117\112\95\97\99\99\101\115\115\124\105\100\101\110\116\95\116\105\109\101\111\117\116\124\105\110\99\111\109\105\110\103\95\104\116\116\112\95\97\118\101\114\97\103\101\124\105\110\99\111\109\105\110\103\95\105\99\112\95\97\118\101\114\97\103\101\124\105\110\115\105\100\101\95\102\105\114\101\119\97\108\108\124\105\112\99\97\99\104\101\95\104\105\103\104\124\105\112\99\97\99\104\101\95\108\111\119\124\105\112\99\97\99\104\101\95\115\105\122\101\124\108\111\99\97\108\95\100\111\109\97\105\110\124\108\111\99\97\108\95\105\112\124\108\111\103\102\105\108\101\95\114\111\116\97\116\101\124\108\111\103\95\102\113\100\110\124\108\111\103\95\105\99\112\95\113\117\101\114\105\101\115\124\108\111\103\95\109\105\109\101\95\104\100\114\115\124\109\97\120\105\109\117\109\95\111\98\106\101\99\116\95\115\105\122\101\124\109\97\120\105\109\117\109\95\115\105\110\103\108\101\95\97\100\100\114\95\116\114\105\101\115\124\109\99\97\115\116\95\103\114\111\117\112\115\124\109\99\97\115\116\95\105\99\112\95\113\117\101\114\121\95\116\105\109\101\111\117\116\124\109\99\97\115\116\95\109\105\115\115\95\97\100\100\114\124\109\99\97\115\116\95\109\105\115\115\95\101\110\99\111\100\101\95\107\101\121\124\109\99\97\115\116\95\109\105\115\115\95\112\111\114\116\124\109\101\109\111\114\121\95\112\111\111\108\115\124\109\101\109\111\114\121\95\112\111\111\108\115\95\108\105\109\105\116\124\109\101\109\111\114\121\95\114\101\112\108\97\99\101\109\101\110\116\95\112\111\108\105\99\121\124\109\105\109\101\95\116\97\98\108\101\124\109\105\110\95\104\116\116\112\95\112\111\108\108\95\99\110\116\124\109\105\110\95\105\99\112\95\112\111\108\108\95\99\110\116\124\109\105\110\105\109\117\109\95\100\105\114\101\99\116\95\104\111\112\115\124\109\105\110\105\109\117\109\95\111\98\106\101\99\116\95\115\105\122\101\124\109\105\110\105\109\117\109\95\114\101\116\114\121\95\116\105\109\101\111\117\116\124\109\105\115\115\95\97\99\99\101\115\115\124\110\101\103\97\116\105\118\101\95\100\110\115\95\116\116\108\124\110\101\103\97\116\105\118\101\95\116\116\108\124\110\101\105\103\104\98\111\114\95\116\105\109\101\111\117\116\124\110\101\105\103\104\98\111\114\95\116\121\112\101\95\100\111\109\97\105\110\124\110\101\116\100\98\95\104\105\103\104\124\110\101\116\100\98\95\108\111\119\124\110\101\116\100\98\95\112\105\110\103\95\112\101\114\105\111\100\124\110\101\116\100\98\95\112\105\110\103\95\114\97\116\101\124\110\101\118\101\114\95\100\105\114\101\99\116\124\110\111\95\99\97\99\104\101\124\112\97\115\115\116\104\114\111\117\103\104\95\112\114\111\120\121\124\112\99\111\110\110\95\116\105\109\101\111\117\116\124\112\105\100\95\102\105\108\101\110\97\109\101\124\112\105\110\103\101\114\95\112\114\111\103\114\97\109\124\112\111\115\105\116\105\118\101\95\100\110\115\95\116\116\108\124\112\114\101\102\101\114\95\100\105\114\101\99\116\124\112\114\111\120\121\95\97\117\116\104\124\112\114\111\120\121\95\97\117\116\104\95\114\101\97\108\109\124\113\117\101\114\121\95\105\99\109\112\124\113\117\105\99\107\95\97\98\111\114\116\124\113\117\105\99\107\95\97\98\111\114\116\124\113\117\105\99\107\95\97\98\111\114\116\95\109\97\120\124\113\117\105\99\107\95\97\98\111\114\116\95\109\105\110\124\113\117\105\99\107\95\97\98\111\114\116\95\112\99\116\124\114\97\110\103\101\95\111\102\102\115\101\116\95\108\105\109\105\116\124\114\101\97\100\95\116\105\109\101\111\117\116\124\114\101\100\105\114\101\99\116\95\99\104\105\108\100\114\101\110\124\114\101\100\105\114\101\99\116\95\112\114\111\103\114\97\109\124\114\101\100\105\114\101\99\116\95\114\101\119\114\105\116\101\115\95\104\111\115\116\95\104\101\97\100\101\114\124\114\101\102\101\114\101\110\99\101\95\97\103\101\124\114\101\102\101\114\101\110\99\101\95\97\103\101\124\114\101\102\114\101\115\104\95\112\97\116\116\101\114\110\124\114\101\108\111\97\100\95\105\110\116\111\95\105\109\115\124\114\101\113\117\101\115\116\95\98\111\100\121\95\109\97\120\95\115\105\122\101\124\114\101\113\117\101\115\116\95\115\105\122\101\124\114\101\113\117\101\115\116\95\116\105\109\101\111\117\116\124\115\104\117\116\100\111\119\110\95\108\105\102\101\116\105\109\101\124\115\105\110\103\108\101\95\112\97\114\101\110\116\95\98\121\112\97\115\115\124\115\105\116\101\115\101\108\101\99\116\95\116\105\109\101\111\117\116\124\115\110\109\112\95\97\99\99\101\115\115\124\115\110\109\112\95\105\110\99\111\109\105\110\103\95\97\100\100\114\101\115\115\124\115\110\109\112\95\112\111\114\116\124\115\111\117\114\99\101\95\112\105\110\103\124\115\115\108\95\112\114\111\120\121\124\115\116\111\114\101\95\97\118\103\95\111\98\106\101\99\116\95\115\105\122\101\124\115\116\111\114\101\95\111\98\106\101\99\116\115\95\112\101\114\95\98\117\99\107\101\116\124\115\116\114\105\112\95\113\117\101\114\121\95\116\101\114\109\115\124\115\119\97\112\95\108\101\118\101\108\49\95\100\105\114\115\124\115\119\97\112\95\108\101\118\101\108\50\95\100\105\114\115\124\116\99\112\95\105\110\99\111\109\105\110\103\95\97\100\100\114\101\115\115\124\116\99\112\95\111\117\116\103\111\105\110\103\95\97\100\100\114\101\115\115\124\116\99\112\95\114\101\99\118\95\98\117\102\115\105\122\101\124\116\101\115\116\95\114\101\97\99\104\97\98\105\108\105\116\121\124\117\100\112\95\104\105\116\95\111\98\106\124\117\100\112\95\104\105\116\95\111\98\106\95\115\105\122\101\124\117\100\112\95\105\110\99\111\109\105\110\103\95\97\100\100\114\101\115\115\124\117\100\112\95\111\117\116\103\111\105\110\103\95\97\100\100\114\101\115\115\124\117\110\105\113\117\101\95\104\111\115\116\110\97\109\101\124\117\110\108\105\110\107\100\95\112\114\111\103\114\97\109\124\117\114\105\95\119\104\105\116\101\115\112\97\99\101\124\117\115\101\114\97\103\101\110\116\95\108\111\103\124\118\105\115\105\98\108\101\95\104\111\115\116\110\97\109\101\124\119\97\105\115\95\114\101\108\97\121\124\119\97\105\115\95\114\101\108\97\121\95\104\111\115\116\124\119\97\105\115\95\114\101\108\97\121\95\112\111\114\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\63\58\112\114\111\120\121\45\111\110\108\121\124\119\101\105\103\104\116\124\116\116\108\124\110\111\45\113\117\101\114\121\124\100\101\102\97\117\108\116\124\114\111\117\110\100\45\114\111\98\105\110\124\109\117\108\116\105\99\97\115\116\45\114\101\115\112\111\110\100\101\114\124\111\110\124\111\102\102\124\97\108\108\124\100\101\110\121\124\97\108\108\111\119\124\118\105\97\124\112\97\114\101\110\116\124\110\111\45\100\105\103\101\115\116\124\104\101\97\112\124\108\114\117\124\114\101\97\108\109\124\99\104\105\108\100\114\101\110\124\99\114\101\100\101\110\116\105\97\108\115\116\116\108\124\110\111\110\101\124\100\105\115\97\98\108\101\124\111\102\102\108\105\110\101\95\116\111\103\103\108\101\124\100\105\115\107\100\124\113\49\124\113\50\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\111\110\115\116\97\110\116")-    , tok "\92\98\40\63\58\115\104\117\116\100\111\119\110\124\105\110\102\111\124\112\97\114\97\109\101\116\101\114\124\115\101\114\118\101\114\95\108\105\115\116\124\99\108\105\101\110\116\95\108\105\115\116\124\115\113\117\105\100\92\46\99\111\110\102\41\92\98" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\115\116\97\116\115\47\92\98\40\63\58\115\104\117\116\100\111\119\110\124\105\110\102\111\124\112\97\114\97\109\101\116\101\114\124\115\101\114\118\101\114\95\108\105\115\116\124\99\108\105\101\110\116\95\108\105\115\116\124\115\113\117\105\100\92\46\99\111\110\102\41\92\98" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\108\111\103\47\92\98\40\63\58\115\104\117\116\100\111\119\110\124\105\110\102\111\124\112\97\114\97\109\101\116\101\114\124\115\101\114\118\101\114\95\108\105\115\116\124\99\108\105\101\110\116\95\108\105\115\116\124\115\113\117\105\100\92\46\99\111\110\102\41\92\98\61" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\98\40\63\58\117\114\108\95\114\101\103\101\120\124\117\114\108\112\97\116\104\95\114\101\103\101\120\124\114\101\102\101\114\101\114\95\114\101\103\101\120\124\112\111\114\116\124\112\114\111\116\111\124\114\101\113\95\109\105\109\101\95\116\121\112\101\124\114\101\112\95\109\105\109\101\95\116\121\112\101\124\109\101\116\104\111\100\124\98\114\111\119\115\101\114\124\117\115\101\114\124\115\114\99\124\100\115\116\124\116\105\109\101\124\100\115\116\100\111\109\97\105\110\124\105\100\101\110\116\124\115\110\109\112\95\99\111\109\109\117\110\105\116\121\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\63\58\92\100\123\49\44\51\125\92\46\41\123\51\125\92\100\123\49\44\51\125\92\98\40\63\58\47\40\63\58\92\98\40\63\58\92\100\123\49\44\51\125\92\46\41\123\51\125\92\100\123\49\44\51\125\92\98\41\124\92\100\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\98\92\100\43\92\98" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\83\43" (Arbitrary "\84\101\120\116")+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "#" (Arbitrary "Comment") (GoTo comment')+    , tok "\\b(?:acl|always_direct|announce_host|announce_period|announce_port|announce_to|anonymize_headers|append_domain|as_whois_server|auth_param_basic|authenticate_children|authenticate_program|authenticate_ttl|broken_posts|buffered_logs|cache_access_log|cache_announce|cache_dir|cache_dns_program|cache_effective_group|cache_effective_user|cache_host|cache_host_acl|cache_host_domain|cache_log|cache_mem|cache_mem_high|cache_mem_low|cache_mgr|cachemgr_passwd|cache_peer|cache_peer_access|cahce_replacement_policy|cache_stoplist|cache_stoplist_pattern|cache_store_log|cache_swap|cache_swap_high|cache_swap_log|cache_swap_low|client_db|client_lifetime|client_netmask|connect_timeout|coredump_dir|dead_peer_timeout|debug_options|delay_access|delay_class|delay_initial_bucket_level|delay_parameters|delay_pools|deny_info|dns_children|dns_defnames|dns_nameservers|dns_testnames|emulate_httpd_log|err_html_text|fake_user_agent|firewall_ip|forwarded_for|forward_snmpd_port|fqdncache_size|ftpget_options|ftpget_program|ftp_list_width|ftp_passive|ftp_user|half_closed_clients|header_access|header_replace|hierarchy_stoplist|high_response_time_warning|high_page_fault_warning|htcp_port|http_access|http_anonymizer|httpd_accel|httpd_accel_host|httpd_accel_port|httpd_accel_uses_host_header|httpd_accel_with_proxy|http_port|http_reply_access|icp_access|icp_hit_stale|icp_port|icp_query_timeout|ident_lookup|ident_lookup_access|ident_timeout|incoming_http_average|incoming_icp_average|inside_firewall|ipcache_high|ipcache_low|ipcache_size|local_domain|local_ip|logfile_rotate|log_fqdn|log_icp_queries|log_mime_hdrs|maximum_object_size|maximum_single_addr_tries|mcast_groups|mcast_icp_query_timeout|mcast_miss_addr|mcast_miss_encode_key|mcast_miss_port|memory_pools|memory_pools_limit|memory_replacement_policy|mime_table|min_http_poll_cnt|min_icp_poll_cnt|minimum_direct_hops|minimum_object_size|minimum_retry_timeout|miss_access|negative_dns_ttl|negative_ttl|neighbor_timeout|neighbor_type_domain|netdb_high|netdb_low|netdb_ping_period|netdb_ping_rate|never_direct|no_cache|passthrough_proxy|pconn_timeout|pid_filename|pinger_program|positive_dns_ttl|prefer_direct|proxy_auth|proxy_auth_realm|query_icmp|quick_abort|quick_abort|quick_abort_max|quick_abort_min|quick_abort_pct|range_offset_limit|read_timeout|redirect_children|redirect_program|redirect_rewrites_host_header|reference_age|reference_age|refresh_pattern|reload_into_ims|request_body_max_size|request_size|request_timeout|shutdown_lifetime|single_parent_bypass|siteselect_timeout|snmp_access|snmp_incoming_address|snmp_port|source_ping|ssl_proxy|store_avg_object_size|store_objects_per_bucket|strip_query_terms|swap_level1_dirs|swap_level2_dirs|tcp_incoming_address|tcp_outgoing_address|tcp_recv_bufsize|test_reachability|udp_hit_obj|udp_hit_obj_size|udp_incoming_address|udp_outgoing_address|unique_hostname|unlinkd_program|uri_whitespace|useragent_log|visible_hostname|wais_relay|wais_relay_host|wais_relay_port)\\b" (Arbitrary "Keyword")+    , tok "\\b(?:proxy-only|weight|ttl|no-query|default|round-robin|multicast-responder|on|off|all|deny|allow|via|parent|no-digest|heap|lru|realm|children|credentialsttl|none|disable|offline_toggle|diskd|q1|q2)\\b" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "\\b(?:shutdown|info|parameter|server_list|client_list|squid\\.conf)\\b" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "stats/\\b(?:shutdown|info|parameter|server_list|client_list|squid\\.conf)\\b" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "log/\\b(?:shutdown|info|parameter|server_list|client_list|squid\\.conf)\\b=" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\b(?:url_regex|urlpath_regex|referer_regex|port|proto|req_mime_type|rep_mime_type|method|browser|user|src|dst|time|dstdomain|ident|snmp_community)\\b" (Arbitrary "Keyword")+    , tok "\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b(?:/(?:\\b(?:\\d{1,3}\\.){3}\\d{1,3}\\b)|\\d+)?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\b\\d+\\b" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\S+" (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Tcl.hs view
@@ -5,56 +5,56 @@  lexer :: Lexer lexer = Lexer-    { lName = "\84\99\108"-    , lAliases = ["\116\99\108"]-    , lExtensions = ["\46\116\99\108"]-    , lMimetypes = ["\116\101\120\116\47\120\45\116\99\108", "\116\101\120\116\47\120\45\115\99\114\105\112\116\46\116\99\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\45\116\99\108"]+    { lName = "Tcl"+    , lAliases = ["tcl"]+    , lExtensions = [".tcl"]+    , lMimetypes = ["text/x-tcl", "text/x-script.tcl", "application/x-tcl"]     , lStart = root'     , lFlags = [multiline]     }  comment' :: TokenMatcher comment' =-    [ tokNext "\46\42\91\94\92\92\93\92\110" (Arbitrary "\67\111\109\109\101\110\116") Pop-    , tok "\46\42\92\92\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tokNext ".*[^\\\\]\\n" (Arbitrary "Comment") Pop+    , tok ".*\\\\\\n" (Arbitrary "Comment")     ]  stringSquare' :: TokenMatcher stringSquare' =-    [ tokNext "\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") (GoTo stringSquare')-    , tok "\40\63\115\41\40\92\92\92\92\124\92\92\91\48\45\55\93\43\124\92\92\46\124\92\92\92\110\124\91\94\92\93\92\92\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tokNext "\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") Pop+    [ tokNext "\\[" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo stringSquare')+    , tok "(?s)(\\\\\\\\|\\\\[0-7]+|\\\\.|\\\\\\n|[^\\]\\\\])" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tokNext "\\]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") Pop     ]  string' :: TokenMatcher string' =-    [ tokNext "\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") (GoTo stringSquare')-    , tok "\40\63\115\41\40\92\92\92\92\124\92\92\91\48\45\55\93\43\124\92\92\46\124\91\94\34\92\92\93\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") Pop+    [ tokNext "\\[" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo stringSquare')+    , tok "(?s)(\\\\\\\\|\\\\[0-7]+|\\\\.|[^\"\\\\])" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") Pop     ]  commandInParen' :: TokenMatcher commandInParen' =-    [ tokNext "\92\98\40\97\102\116\101\114\124\97\112\112\108\121\124\97\114\114\97\121\124\98\114\101\97\107\124\99\97\116\99\104\124\99\111\110\116\105\110\117\101\124\101\108\115\101\105\102\124\101\108\115\101\124\101\114\114\111\114\124\101\118\97\108\124\101\120\112\114\124\102\111\114\124\102\111\114\101\97\99\104\124\103\108\111\98\97\108\124\105\102\124\110\97\109\101\115\112\97\99\101\124\112\114\111\99\124\114\101\110\97\109\101\124\114\101\116\117\114\110\124\115\101\116\124\115\119\105\116\99\104\124\116\104\101\110\124\116\114\97\99\101\124\117\110\115\101\116\124\117\112\100\97\116\101\124\117\112\108\101\118\101\108\124\117\112\118\97\114\124\118\97\114\105\97\98\108\101\124\118\119\97\105\116\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo paramsInParen')-    , tokNext "\92\98\40\97\112\112\101\110\100\124\98\103\101\114\114\111\114\124\98\105\110\97\114\121\124\99\100\124\99\104\97\110\124\99\108\111\99\107\124\99\108\111\115\101\124\99\111\110\99\97\116\124\100\100\101\124\100\105\99\116\124\101\110\99\111\100\105\110\103\124\101\111\102\124\101\120\101\99\124\101\120\105\116\124\102\98\108\111\99\107\101\100\124\102\99\111\110\102\105\103\117\114\101\124\102\99\111\112\121\124\102\105\108\101\124\102\105\108\101\101\118\101\110\116\124\102\108\117\115\104\124\102\111\114\109\97\116\124\103\101\116\115\124\103\108\111\98\124\104\105\115\116\111\114\121\124\104\116\116\112\124\105\110\99\114\124\105\110\102\111\124\105\110\116\101\114\112\124\106\111\105\110\124\108\97\112\112\101\110\100\124\108\97\115\115\105\103\110\124\108\105\110\100\101\120\124\108\105\110\115\101\114\116\124\108\105\115\116\124\108\108\101\110\103\116\104\124\108\111\97\100\124\108\111\97\100\84\107\124\108\114\97\110\103\101\124\108\114\101\112\101\97\116\124\108\114\101\112\108\97\99\101\124\108\114\101\118\101\114\115\101\124\108\115\101\97\114\99\104\124\108\115\101\116\124\108\115\111\114\116\124\109\97\116\104\102\117\110\99\124\109\97\116\104\111\112\124\109\101\109\111\114\121\124\109\115\103\99\97\116\124\111\112\101\110\124\112\97\99\107\97\103\101\124\112\105\100\124\112\107\103\58\58\99\114\101\97\116\101\124\112\107\103\95\109\107\73\110\100\101\120\124\112\108\97\116\102\111\114\109\124\112\108\97\116\102\111\114\109\58\58\115\104\101\108\108\124\112\117\116\115\124\112\119\100\124\114\101\95\115\121\110\116\97\120\124\114\101\97\100\124\114\101\102\99\104\97\110\124\114\101\103\101\120\112\124\114\101\103\105\115\116\114\121\124\114\101\103\115\117\98\124\115\99\97\110\124\115\101\101\107\124\115\111\99\107\101\116\124\115\111\117\114\99\101\124\115\112\108\105\116\124\115\116\114\105\110\103\124\115\117\98\115\116\124\116\101\108\108\124\116\105\109\101\124\116\109\124\117\110\107\110\111\119\110\124\117\110\108\111\97\100\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110") (GoTo paramsInParen')-    , tokNext "\40\91\92\119\92\46\92\45\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") (GoTo paramsInParen')-    , tokNext "\35" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')+    [ tokNext "\\b(after|apply|array|break|catch|continue|elseif|else|error|eval|expr|for|foreach|global|if|namespace|proc|rename|return|set|switch|then|trace|unset|update|uplevel|upvar|variable|vwait|while)\\b" (Arbitrary "Keyword") (GoTo paramsInParen')+    , tokNext "\\b(append|bgerror|binary|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|exit|fblocked|fconfigure|fcopy|file|fileevent|flush|format|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|loadTk|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|mathfunc|mathop|memory|msgcat|open|package|pid|pkg::create|pkg_mkIndex|platform|platform::shell|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|scan|seek|socket|source|split|string|subst|tell|time|tm|unknown|unload)\\b" (Arbitrary "Name" :. Arbitrary "Builtin") (GoTo paramsInParen')+    , tokNext "([\\w\\.\\-]+)" (Arbitrary "Name" :. Arbitrary "Variable") (GoTo paramsInParen')+    , tokNext "#" (Arbitrary "Comment") (GoTo comment')     ]  data' :: TokenMatcher data' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\48\120\91\97\45\102\65\45\70\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\48\45\55\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\92\100\43\92\46\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\92\36\40\91\92\119\92\46\92\45\92\58\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\40\91\92\119\92\46\92\45\92\58\93\43\41" (Arbitrary "\84\101\120\116")+    [ tok "\\s+" (Arbitrary "Text")+    , tok "0x[a-fA-F0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\d+\\.\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\$([\\w\\.\\-\\:]+)" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "([\\w\\.\\-\\:]+)" (Arbitrary "Text")     ]  brace' :: TokenMatcher brace' =-    [ tokNext "\125" (Arbitrary "\75\101\121\119\111\114\100") Pop+    [ tokNext "}" (Arbitrary "Keyword") Pop     , anyOf commandInBrace'     , anyOf basic'     , anyOf data'@@ -62,7 +62,7 @@  paren' :: TokenMatcher paren' =-    [ tokNext "\92\41" (Arbitrary "\75\101\121\119\111\114\100") Pop+    [ tokNext "\\)" (Arbitrary "Keyword") Pop     , anyOf commandInParen'     , anyOf basic'     , anyOf data'@@ -70,13 +70,13 @@  paramsInParen' :: TokenMatcher paramsInParen' =-    [ tokNext "\92\41" (Arbitrary "\75\101\121\119\111\114\100") (DoAll [Pop, Pop])+    [ tokNext "\\)" (Arbitrary "Keyword") (DoAll [Pop, Pop])     , anyOf params'     ]  bracket' :: TokenMatcher bracket' =-    [ tokNext "\92\93" (Arbitrary "\75\101\121\119\111\114\100") Pop+    [ tokNext "\\]" (Arbitrary "Keyword") Pop     , anyOf commandInBracket'     , anyOf basic'     , anyOf data'@@ -84,48 +84,48 @@  command' :: TokenMatcher command' =-    [ tokNext "\92\98\40\97\102\116\101\114\124\97\112\112\108\121\124\97\114\114\97\121\124\98\114\101\97\107\124\99\97\116\99\104\124\99\111\110\116\105\110\117\101\124\101\108\115\101\105\102\124\101\108\115\101\124\101\114\114\111\114\124\101\118\97\108\124\101\120\112\114\124\102\111\114\124\102\111\114\101\97\99\104\124\103\108\111\98\97\108\124\105\102\124\110\97\109\101\115\112\97\99\101\124\112\114\111\99\124\114\101\110\97\109\101\124\114\101\116\117\114\110\124\115\101\116\124\115\119\105\116\99\104\124\116\104\101\110\124\116\114\97\99\101\124\117\110\115\101\116\124\117\112\100\97\116\101\124\117\112\108\101\118\101\108\124\117\112\118\97\114\124\118\97\114\105\97\98\108\101\124\118\119\97\105\116\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo params')-    , tokNext "\92\98\40\97\112\112\101\110\100\124\98\103\101\114\114\111\114\124\98\105\110\97\114\121\124\99\100\124\99\104\97\110\124\99\108\111\99\107\124\99\108\111\115\101\124\99\111\110\99\97\116\124\100\100\101\124\100\105\99\116\124\101\110\99\111\100\105\110\103\124\101\111\102\124\101\120\101\99\124\101\120\105\116\124\102\98\108\111\99\107\101\100\124\102\99\111\110\102\105\103\117\114\101\124\102\99\111\112\121\124\102\105\108\101\124\102\105\108\101\101\118\101\110\116\124\102\108\117\115\104\124\102\111\114\109\97\116\124\103\101\116\115\124\103\108\111\98\124\104\105\115\116\111\114\121\124\104\116\116\112\124\105\110\99\114\124\105\110\102\111\124\105\110\116\101\114\112\124\106\111\105\110\124\108\97\112\112\101\110\100\124\108\97\115\115\105\103\110\124\108\105\110\100\101\120\124\108\105\110\115\101\114\116\124\108\105\115\116\124\108\108\101\110\103\116\104\124\108\111\97\100\124\108\111\97\100\84\107\124\108\114\97\110\103\101\124\108\114\101\112\101\97\116\124\108\114\101\112\108\97\99\101\124\108\114\101\118\101\114\115\101\124\108\115\101\97\114\99\104\124\108\115\101\116\124\108\115\111\114\116\124\109\97\116\104\102\117\110\99\124\109\97\116\104\111\112\124\109\101\109\111\114\121\124\109\115\103\99\97\116\124\111\112\101\110\124\112\97\99\107\97\103\101\124\112\105\100\124\112\107\103\58\58\99\114\101\97\116\101\124\112\107\103\95\109\107\73\110\100\101\120\124\112\108\97\116\102\111\114\109\124\112\108\97\116\102\111\114\109\58\58\115\104\101\108\108\124\112\117\116\115\124\112\119\100\124\114\101\95\115\121\110\116\97\120\124\114\101\97\100\124\114\101\102\99\104\97\110\124\114\101\103\101\120\112\124\114\101\103\105\115\116\114\121\124\114\101\103\115\117\98\124\115\99\97\110\124\115\101\101\107\124\115\111\99\107\101\116\124\115\111\117\114\99\101\124\115\112\108\105\116\124\115\116\114\105\110\103\124\115\117\98\115\116\124\116\101\108\108\124\116\105\109\101\124\116\109\124\117\110\107\110\111\119\110\124\117\110\108\111\97\100\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110") (GoTo params')-    , tokNext "\40\91\92\119\92\46\92\45\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") (GoTo params')-    , tokNext "\35" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')+    [ tokNext "\\b(after|apply|array|break|catch|continue|elseif|else|error|eval|expr|for|foreach|global|if|namespace|proc|rename|return|set|switch|then|trace|unset|update|uplevel|upvar|variable|vwait|while)\\b" (Arbitrary "Keyword") (GoTo params')+    , tokNext "\\b(append|bgerror|binary|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|exit|fblocked|fconfigure|fcopy|file|fileevent|flush|format|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|loadTk|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|mathfunc|mathop|memory|msgcat|open|package|pid|pkg::create|pkg_mkIndex|platform|platform::shell|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|scan|seek|socket|source|split|string|subst|tell|time|tm|unknown|unload)\\b" (Arbitrary "Name" :. Arbitrary "Builtin") (GoTo params')+    , tokNext "([\\w\\.\\-]+)" (Arbitrary "Name" :. Arbitrary "Variable") (GoTo params')+    , tokNext "#" (Arbitrary "Comment") (GoTo comment')     ]  params' :: TokenMatcher params' =-    [ tokNext "\59" (Arbitrary "\75\101\121\119\111\114\100") Pop-    , tokNext "\92\110" (Arbitrary "\84\101\120\116") Pop-    , tok "\40\101\108\115\101\124\101\108\115\101\105\102\124\116\104\101\110\41" (Arbitrary "\75\101\121\119\111\114\100")+    [ tokNext ";" (Arbitrary "Keyword") Pop+    , tokNext "\\n" (Arbitrary "Text") Pop+    , tok "(else|elseif|then)" (Arbitrary "Keyword")     , anyOf basic'     , anyOf data'     ]  basic' :: TokenMatcher basic' =-    [ tokNext "\92\40" (Arbitrary "\75\101\121\119\111\114\100") (GoTo paren')-    , tokNext "\92\91" (Arbitrary "\75\101\121\119\111\114\100") (GoTo bracket')-    , tokNext "\92\123" (Arbitrary "\75\101\121\119\111\114\100") (GoTo brace')-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101") (GoTo string')-    , tok "\40\101\113\124\110\101\124\105\110\124\110\105\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\33\61\124\61\61\124\60\60\124\62\62\124\60\61\124\62\61\124\38\38\124\92\124\92\124\124\92\42\92\42\124\91\45\43\126\33\42\47\37\60\62\38\94\124\63\58\93" (Arbitrary "\79\112\101\114\97\116\111\114")+    [ tokNext "\\(" (Arbitrary "Keyword") (GoTo paren')+    , tokNext "\\[" (Arbitrary "Keyword") (GoTo bracket')+    , tokNext "\\{" (Arbitrary "Keyword") (GoTo brace')+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double") (GoTo string')+    , tok "(eq|ne|in|ni)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "!=|==|<<|>>|<=|>=|&&|\\|\\||\\*\\*|[-+\126!*/%<>&^|?:]" (Arbitrary "Operator")     ]  paramsInBracket' :: TokenMatcher paramsInBracket' =-    [ tokNext "\92\93" (Arbitrary "\75\101\121\119\111\114\100") (DoAll [Pop, Pop])+    [ tokNext "\\]" (Arbitrary "Keyword") (DoAll [Pop, Pop])     , anyOf params'     ]  commandInBracket' :: TokenMatcher commandInBracket' =-    [ tokNext "\92\98\40\97\102\116\101\114\124\97\112\112\108\121\124\97\114\114\97\121\124\98\114\101\97\107\124\99\97\116\99\104\124\99\111\110\116\105\110\117\101\124\101\108\115\101\105\102\124\101\108\115\101\124\101\114\114\111\114\124\101\118\97\108\124\101\120\112\114\124\102\111\114\124\102\111\114\101\97\99\104\124\103\108\111\98\97\108\124\105\102\124\110\97\109\101\115\112\97\99\101\124\112\114\111\99\124\114\101\110\97\109\101\124\114\101\116\117\114\110\124\115\101\116\124\115\119\105\116\99\104\124\116\104\101\110\124\116\114\97\99\101\124\117\110\115\101\116\124\117\112\100\97\116\101\124\117\112\108\101\118\101\108\124\117\112\118\97\114\124\118\97\114\105\97\98\108\101\124\118\119\97\105\116\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo paramsInBracket')-    , tokNext "\92\98\40\97\112\112\101\110\100\124\98\103\101\114\114\111\114\124\98\105\110\97\114\121\124\99\100\124\99\104\97\110\124\99\108\111\99\107\124\99\108\111\115\101\124\99\111\110\99\97\116\124\100\100\101\124\100\105\99\116\124\101\110\99\111\100\105\110\103\124\101\111\102\124\101\120\101\99\124\101\120\105\116\124\102\98\108\111\99\107\101\100\124\102\99\111\110\102\105\103\117\114\101\124\102\99\111\112\121\124\102\105\108\101\124\102\105\108\101\101\118\101\110\116\124\102\108\117\115\104\124\102\111\114\109\97\116\124\103\101\116\115\124\103\108\111\98\124\104\105\115\116\111\114\121\124\104\116\116\112\124\105\110\99\114\124\105\110\102\111\124\105\110\116\101\114\112\124\106\111\105\110\124\108\97\112\112\101\110\100\124\108\97\115\115\105\103\110\124\108\105\110\100\101\120\124\108\105\110\115\101\114\116\124\108\105\115\116\124\108\108\101\110\103\116\104\124\108\111\97\100\124\108\111\97\100\84\107\124\108\114\97\110\103\101\124\108\114\101\112\101\97\116\124\108\114\101\112\108\97\99\101\124\108\114\101\118\101\114\115\101\124\108\115\101\97\114\99\104\124\108\115\101\116\124\108\115\111\114\116\124\109\97\116\104\102\117\110\99\124\109\97\116\104\111\112\124\109\101\109\111\114\121\124\109\115\103\99\97\116\124\111\112\101\110\124\112\97\99\107\97\103\101\124\112\105\100\124\112\107\103\58\58\99\114\101\97\116\101\124\112\107\103\95\109\107\73\110\100\101\120\124\112\108\97\116\102\111\114\109\124\112\108\97\116\102\111\114\109\58\58\115\104\101\108\108\124\112\117\116\115\124\112\119\100\124\114\101\95\115\121\110\116\97\120\124\114\101\97\100\124\114\101\102\99\104\97\110\124\114\101\103\101\120\112\124\114\101\103\105\115\116\114\121\124\114\101\103\115\117\98\124\115\99\97\110\124\115\101\101\107\124\115\111\99\107\101\116\124\115\111\117\114\99\101\124\115\112\108\105\116\124\115\116\114\105\110\103\124\115\117\98\115\116\124\116\101\108\108\124\116\105\109\101\124\116\109\124\117\110\107\110\111\119\110\124\117\110\108\111\97\100\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110") (GoTo paramsInBracket')-    , tokNext "\40\91\92\119\92\46\92\45\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") (GoTo paramsInBracket')-    , tokNext "\35" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')+    [ tokNext "\\b(after|apply|array|break|catch|continue|elseif|else|error|eval|expr|for|foreach|global|if|namespace|proc|rename|return|set|switch|then|trace|unset|update|uplevel|upvar|variable|vwait|while)\\b" (Arbitrary "Keyword") (GoTo paramsInBracket')+    , tokNext "\\b(append|bgerror|binary|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|exit|fblocked|fconfigure|fcopy|file|fileevent|flush|format|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|loadTk|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|mathfunc|mathop|memory|msgcat|open|package|pid|pkg::create|pkg_mkIndex|platform|platform::shell|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|scan|seek|socket|source|split|string|subst|tell|time|tm|unknown|unload)\\b" (Arbitrary "Name" :. Arbitrary "Builtin") (GoTo paramsInBracket')+    , tokNext "([\\w\\.\\-]+)" (Arbitrary "Name" :. Arbitrary "Variable") (GoTo paramsInBracket')+    , tokNext "#" (Arbitrary "Comment") (GoTo comment')     ]  paramsInBrace' :: TokenMatcher paramsInBrace' =-    [ tokNext "\125" (Arbitrary "\75\101\121\119\111\114\100") (DoAll [Pop, Pop])+    [ tokNext "}" (Arbitrary "Keyword") (DoAll [Pop, Pop])     , anyOf params'     ] @@ -134,14 +134,14 @@     [ anyOf command'     , anyOf basic'     , anyOf data'-    , tok "\125" (Arbitrary "\75\101\121\119\111\114\100")+    , tok "}" (Arbitrary "Keyword")     ]  commandInBrace' :: TokenMatcher commandInBrace' =-    [ tokNext "\92\98\40\97\102\116\101\114\124\97\112\112\108\121\124\97\114\114\97\121\124\98\114\101\97\107\124\99\97\116\99\104\124\99\111\110\116\105\110\117\101\124\101\108\115\101\105\102\124\101\108\115\101\124\101\114\114\111\114\124\101\118\97\108\124\101\120\112\114\124\102\111\114\124\102\111\114\101\97\99\104\124\103\108\111\98\97\108\124\105\102\124\110\97\109\101\115\112\97\99\101\124\112\114\111\99\124\114\101\110\97\109\101\124\114\101\116\117\114\110\124\115\101\116\124\115\119\105\116\99\104\124\116\104\101\110\124\116\114\97\99\101\124\117\110\115\101\116\124\117\112\100\97\116\101\124\117\112\108\101\118\101\108\124\117\112\118\97\114\124\118\97\114\105\97\98\108\101\124\118\119\97\105\116\124\119\104\105\108\101\41\92\98" (Arbitrary "\75\101\121\119\111\114\100") (GoTo paramsInBrace')-    , tokNext "\92\98\40\97\112\112\101\110\100\124\98\103\101\114\114\111\114\124\98\105\110\97\114\121\124\99\100\124\99\104\97\110\124\99\108\111\99\107\124\99\108\111\115\101\124\99\111\110\99\97\116\124\100\100\101\124\100\105\99\116\124\101\110\99\111\100\105\110\103\124\101\111\102\124\101\120\101\99\124\101\120\105\116\124\102\98\108\111\99\107\101\100\124\102\99\111\110\102\105\103\117\114\101\124\102\99\111\112\121\124\102\105\108\101\124\102\105\108\101\101\118\101\110\116\124\102\108\117\115\104\124\102\111\114\109\97\116\124\103\101\116\115\124\103\108\111\98\124\104\105\115\116\111\114\121\124\104\116\116\112\124\105\110\99\114\124\105\110\102\111\124\105\110\116\101\114\112\124\106\111\105\110\124\108\97\112\112\101\110\100\124\108\97\115\115\105\103\110\124\108\105\110\100\101\120\124\108\105\110\115\101\114\116\124\108\105\115\116\124\108\108\101\110\103\116\104\124\108\111\97\100\124\108\111\97\100\84\107\124\108\114\97\110\103\101\124\108\114\101\112\101\97\116\124\108\114\101\112\108\97\99\101\124\108\114\101\118\101\114\115\101\124\108\115\101\97\114\99\104\124\108\115\101\116\124\108\115\111\114\116\124\109\97\116\104\102\117\110\99\124\109\97\116\104\111\112\124\109\101\109\111\114\121\124\109\115\103\99\97\116\124\111\112\101\110\124\112\97\99\107\97\103\101\124\112\105\100\124\112\107\103\58\58\99\114\101\97\116\101\124\112\107\103\95\109\107\73\110\100\101\120\124\112\108\97\116\102\111\114\109\124\112\108\97\116\102\111\114\109\58\58\115\104\101\108\108\124\112\117\116\115\124\112\119\100\124\114\101\95\115\121\110\116\97\120\124\114\101\97\100\124\114\101\102\99\104\97\110\124\114\101\103\101\120\112\124\114\101\103\105\115\116\114\121\124\114\101\103\115\117\98\124\115\99\97\110\124\115\101\101\107\124\115\111\99\107\101\116\124\115\111\117\114\99\101\124\115\112\108\105\116\124\115\116\114\105\110\103\124\115\117\98\115\116\124\116\101\108\108\124\116\105\109\101\124\116\109\124\117\110\107\110\111\119\110\124\117\110\108\111\97\100\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110") (GoTo paramsInBrace')-    , tokNext "\40\91\92\119\92\46\92\45\93\43\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101") (GoTo paramsInBrace')-    , tokNext "\35" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')+    [ tokNext "\\b(after|apply|array|break|catch|continue|elseif|else|error|eval|expr|for|foreach|global|if|namespace|proc|rename|return|set|switch|then|trace|unset|update|uplevel|upvar|variable|vwait|while)\\b" (Arbitrary "Keyword") (GoTo paramsInBrace')+    , tokNext "\\b(append|bgerror|binary|cd|chan|clock|close|concat|dde|dict|encoding|eof|exec|exit|fblocked|fconfigure|fcopy|file|fileevent|flush|format|gets|glob|history|http|incr|info|interp|join|lappend|lassign|lindex|linsert|list|llength|load|loadTk|lrange|lrepeat|lreplace|lreverse|lsearch|lset|lsort|mathfunc|mathop|memory|msgcat|open|package|pid|pkg::create|pkg_mkIndex|platform|platform::shell|puts|pwd|re_syntax|read|refchan|regexp|registry|regsub|scan|seek|socket|source|split|string|subst|tell|time|tm|unknown|unload)\\b" (Arbitrary "Name" :. Arbitrary "Builtin") (GoTo paramsInBrace')+    , tokNext "([\\w\\.\\-]+)" (Arbitrary "Name" :. Arbitrary "Variable") (GoTo paramsInBrace')+    , tokNext "#" (Arbitrary "Comment") (GoTo comment')     ] 
src/Text/Highlighter/Lexers/Tcsh.hs view
@@ -5,63 +5,63 @@  lexer :: Lexer lexer = Lexer-    { lName = "\84\99\115\104"-    , lAliases = ["\116\99\115\104", "\99\115\104"]-    , lExtensions = ["\46\116\99\115\104", "\46\99\115\104"]-    , lMimetypes = ["\97\112\112\108\105\99\97\116\105\111\110\47\120\45\99\115\104"]+    { lName = "Tcsh"+    , lAliases = ["tcsh", "csh"]+    , lExtensions = [".tcsh", ".csh"]+    , lMimetypes = ["application/x-csh"]     , lStart = root'     , lFlags = [multiline]     }  curly' :: TokenMatcher curly' =-    [ tokNext "\125" (Arbitrary "\75\101\121\119\111\114\100") Pop-    , tok "\58\45" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\91\97\45\122\65\45\90\48\45\57\95\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")-    , tok "\91\94\125\58\34\92\39\96\36\93\43" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\58" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")+    [ tokNext "}" (Arbitrary "Keyword") Pop+    , tok ":-" (Arbitrary "Keyword")+    , tok "[a-zA-Z0-9_]+" (Arbitrary "Name" :. Arbitrary "Variable")+    , tok "[^}:\"\\'`$]+" (Arbitrary "Punctuation")+    , tok ":" (Arbitrary "Punctuation")     , anyOf root'     ]  backticks' :: TokenMatcher backticks' =-    [ tokNext "\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107") Pop+    [ tokNext "`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick") Pop     , anyOf root'     ]  root' :: TokenMatcher root' =     [ anyOf basic'-    , tokNext "\92\36\92\40" (Arbitrary "\75\101\121\119\111\114\100") (GoTo paren')-    , tokNext "\92\36\123\35\63" (Arbitrary "\75\101\121\119\111\114\100") (GoTo curly')-    , tokNext "\96" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107") (GoTo backticks')+    , tokNext "\\$\\(" (Arbitrary "Keyword") (GoTo paren')+    , tokNext "\\${#?" (Arbitrary "Keyword") (GoTo curly')+    , tokNext "`" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick") (GoTo backticks')     , anyOf data'     ]  basic' :: TokenMatcher basic' =-    [ tok "\92\98\40\105\102\124\101\110\100\105\102\124\101\108\115\101\124\119\104\105\108\101\124\116\104\101\110\124\102\111\114\101\97\99\104\124\99\97\115\101\124\100\101\102\97\117\108\116\124\99\111\110\116\105\110\117\101\124\103\111\116\111\124\98\114\101\97\107\115\119\124\101\110\100\124\115\119\105\116\99\104\124\101\110\100\115\119\41\92\115\42\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\97\108\105\97\115\124\97\108\108\111\99\124\98\103\124\98\105\110\100\107\101\121\124\98\114\101\97\107\124\98\117\105\108\116\105\110\115\124\98\121\101\124\99\97\108\108\101\114\124\99\100\124\99\104\100\105\114\124\99\111\109\112\108\101\116\101\124\100\105\114\115\124\101\99\104\111\124\101\99\104\111\116\99\124\101\118\97\108\124\101\120\101\99\124\101\120\105\116\124\102\103\124\102\105\108\101\116\101\115\116\124\103\101\116\120\118\101\114\115\124\103\108\111\98\124\103\101\116\115\112\97\116\104\124\104\97\115\104\115\116\97\116\124\104\105\115\116\111\114\121\124\104\117\112\124\105\110\108\105\98\124\106\111\98\115\124\107\105\108\108\124\108\105\109\105\116\124\108\111\103\124\108\111\103\105\110\124\108\111\103\111\117\116\124\108\115\45\70\124\109\105\103\114\97\116\101\124\110\101\119\103\114\112\124\110\105\99\101\124\110\111\104\117\112\124\110\111\116\105\102\121\124\111\110\105\110\116\114\124\112\111\112\100\124\112\114\105\110\116\101\110\118\124\112\117\115\104\100\124\114\101\104\97\115\104\124\114\101\112\101\97\116\124\114\111\111\116\110\111\100\101\124\112\111\112\100\124\112\117\115\104\100\124\115\101\116\124\115\104\105\102\116\124\115\99\104\101\100\124\115\101\116\101\110\118\124\115\101\116\112\97\116\104\124\115\101\116\116\99\124\115\101\116\116\121\124\115\101\116\120\118\101\114\115\124\115\104\105\102\116\124\115\111\117\114\99\101\124\115\116\111\112\124\115\117\115\112\101\110\100\124\115\111\117\114\99\101\124\115\117\115\112\101\110\100\124\116\101\108\108\116\99\124\116\105\109\101\124\117\109\97\115\107\124\117\110\97\108\105\97\115\124\117\110\99\111\109\112\108\101\116\101\124\117\110\104\97\115\104\124\117\110\105\118\101\114\115\101\124\117\110\108\105\109\105\116\124\117\110\115\101\116\124\117\110\115\101\116\101\110\118\124\118\101\114\124\119\97\105\116\124\119\97\114\112\124\119\97\116\99\104\108\111\103\124\119\104\101\114\101\124\119\104\105\99\104\41\92\115\42\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\35\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\92\92\91\92\119\92\87\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\40\92\98\92\119\43\41\40\92\115\42\41\40\61\41" (ByGroups [(Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101"), (Arbitrary "\84\101\120\116"), (Arbitrary "\79\112\101\114\97\116\111\114")])-    , tok "\91\92\91\92\93\123\125\40\41\61\93\43" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\60\60\92\115\42\40\92\39\63\41\92\92\63\40\92\119\43\41\91\92\119\92\87\93\43\63\92\50" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "\\b(if|endif|else|while|then|foreach|case|default|continue|goto|breaksw|end|switch|endsw)\\s*\\b" (Arbitrary "Keyword")+    , tok "\\b(alias|alloc|bg|bindkey|break|builtins|bye|caller|cd|chdir|complete|dirs|echo|echotc|eval|exec|exit|fg|filetest|getxvers|glob|getspath|hashstat|history|hup|inlib|jobs|kill|limit|log|login|logout|ls-F|migrate|newgrp|nice|nohup|notify|onintr|popd|printenv|pushd|rehash|repeat|rootnode|popd|pushd|set|shift|sched|setenv|setpath|settc|setty|setxvers|shift|source|stop|suspend|source|suspend|telltc|time|umask|unalias|uncomplete|unhash|universe|unlimit|unset|unsetenv|ver|wait|warp|watchlog|where|which)\\s*\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "#.*\\n" (Arbitrary "Comment")+    , tok "\\\\[\\w\\W]" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "(\\b\\w+)(\\s*)(=)" (ByGroups [(Arbitrary "Name" :. Arbitrary "Variable"), (Arbitrary "Text"), (Arbitrary "Operator")])+    , tok "[\\[\\]{}()=]+" (Arbitrary "Operator")+    , tok "<<\\s*(\\'?)\\\\?(\\w+)[\\w\\W]+?\\2" (Arbitrary "Literal" :. Arbitrary "String")     ]  paren' :: TokenMatcher paren' =-    [ tokNext "\92\41" (Arbitrary "\75\101\121\119\111\114\100") Pop+    [ tokNext "\\)" (Arbitrary "Keyword") Pop     , anyOf root'     ]  data' :: TokenMatcher data' =-    [ tok "\40\63\115\41\34\40\92\92\92\92\124\92\92\91\48\45\55\93\43\124\92\92\46\124\91\94\34\92\92\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\40\63\115\41\39\40\92\92\92\92\124\92\92\91\48\45\55\93\43\124\92\92\46\124\91\94\39\92\92\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\91\94\61\92\115\92\110\92\91\92\93\123\125\40\41\36\34\92\39\96\92\92\93\43" (Arbitrary "\84\101\120\116")-    , tok "\92\100\43\40\63\61\32\124\92\90\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\92\36\35\63\40\92\119\43\124\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    [ tok "(?s)\"(\\\\\\\\|\\\\[0-7]+|\\\\.|[^\"\\\\])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "(?s)'(\\\\\\\\|\\\\[0-7]+|\\\\.|[^'\\\\])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "\\s+" (Arbitrary "Text")+    , tok "[^=\\s\\n\\[\\]{}()$\"\\'`\\\\]+" (Arbitrary "Text")+    , tok "\\d+(?= |\\Z)" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\$#?(\\w+|.)" (Arbitrary "Name" :. Arbitrary "Variable")     ] 
src/Text/Highlighter/Lexers/Tex.hs view
@@ -5,60 +5,60 @@  lexer :: Lexer lexer = Lexer-    { lName = "\84\101\88"-    , lAliases = ["\116\101\120", "\108\97\116\101\120"]-    , lExtensions = ["\46\116\101\120", "\46\97\117\120", "\46\116\111\99"]-    , lMimetypes = ["\116\101\120\116\47\120\45\116\101\120", "\116\101\120\116\47\120\45\108\97\116\101\120"]+    { lName = "TeX"+    , lAliases = ["tex", "latex"]+    , lExtensions = [".tex", ".aux", ".toc"]+    , lMimetypes = ["text/x-tex", "text/x-latex"]     , lStart = root'     , lFlags = [multiline]     }  displaymath' :: TokenMatcher displaymath' =-    [ tokNext "\92\92\92\93" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\92\36\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\36" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tokNext "\\\\\\]" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "\\$\\$" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\$" (Arbitrary "Name" :. Arbitrary "Builtin")     , anyOf math'     ]  general' :: TokenMatcher general' =-    [ tok "\37\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\91\123\125\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\38\95\94\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    [ tok "%.*?\\n" (Arbitrary "Comment")+    , tok "[{}]" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[&_^]" (Arbitrary "Name" :. Arbitrary "Builtin")     ]  command' :: TokenMatcher command' =-    [ tok "\92\91\46\42\63\92\93" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")-    , tok "\92\42" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "" (Arbitrary "\84\101\120\116") Pop+    [ tok "\\[.*?\\]" (Arbitrary "Name" :. Arbitrary "Attribute")+    , tok "\\*" (Arbitrary "Keyword")+    , tokNext "" (Arbitrary "Text") Pop     ]  inlinemath' :: TokenMatcher inlinemath' =-    [ tokNext "\92\92\92\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tokNext "\\\\\\)" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "\\$" (Arbitrary "Literal" :. Arbitrary "String") Pop     , anyOf math'     ]  root' :: TokenMatcher root' =-    [ tokNext "\92\92\92\91" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107") (GoTo displaymath')-    , tokNext "\92\92\92\40" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo inlinemath')-    , tokNext "\92\36\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\66\97\99\107\116\105\99\107") (GoTo displaymath')-    , tokNext "\92\36" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo inlinemath')-    , tokNext "\92\92\40\91\97\45\122\65\45\90\93\43\124\46\41" (Arbitrary "\75\101\121\119\111\114\100") (GoTo command')+    [ tokNext "\\\\\\[" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick") (GoTo displaymath')+    , tokNext "\\\\\\(" (Arbitrary "Literal" :. Arbitrary "String") (GoTo inlinemath')+    , tokNext "\\$\\$" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Backtick") (GoTo displaymath')+    , tokNext "\\$" (Arbitrary "Literal" :. Arbitrary "String") (GoTo inlinemath')+    , tokNext "\\\\([a-zA-Z]+|.)" (Arbitrary "Keyword") (GoTo command')     , anyOf general'-    , tok "\91\94\92\92\36\37\38\95\94\123\125\93\43" (Arbitrary "\84\101\120\116")+    , tok "[^\\\\$%&_^{}]+" (Arbitrary "Text")     ]  math' :: TokenMatcher math' =-    [ tok "\92\92\40\91\97\45\122\65\45\90\93\43\124\46\41" (Arbitrary "\78\97\109\101" :. Arbitrary "\86\97\114\105\97\98\108\101")+    [ tok "\\\\([a-zA-Z]+|.)" (Arbitrary "Name" :. Arbitrary "Variable")     , anyOf general'-    , tok "\91\48\45\57\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\91\45\61\33\43\42\47\40\41\92\91\92\93\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\91\94\61\33\43\42\47\40\41\92\91\92\93\92\92\36\37\38\95\94\123\125\48\45\57\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")+    , tok "[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "[-=!+*/()\\[\\]]" (Arbitrary "Operator")+    , tok "[^=!+*/()\\[\\]\\\\$%&_^{}0-9-]+" (Arbitrary "Name" :. Arbitrary "Builtin")     ] 
src/Text/Highlighter/Lexers/Vala.hs view
@@ -5,85 +5,85 @@  lexer :: Lexer lexer = Lexer-    { lName = "\86\97\108\97"-    , lAliases = ["\118\97\108\97", "\118\97\112\105"]-    , lExtensions = ["\46\118\97\108\97", "\46\118\97\112\105"]-    , lMimetypes = ["\116\101\120\116\47\120\45\118\97\108\97"]+    { lName = "Vala"+    , lAliases = ["vala", "vapi"]+    , lExtensions = [".vala", ".vapi"]+    , lMimetypes = ["text/x-vala"]     , lStart = root'     , lFlags = [multiline]     }  statements' :: TokenMatcher statements' =-    [ tokNext "\76\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\76\63\39\40\92\92\46\124\92\92\91\48\45\55\93\123\49\44\51\125\124\92\92\120\91\97\45\102\65\45\70\48\45\57\93\123\49\44\50\125\124\91\94\92\92\92\39\92\110\93\41\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\67\104\97\114")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\41\91\101\69\93\91\43\45\93\63\92\100\43\91\108\76\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\46\92\100\43\124\92\100\43\91\102\70\93\41\91\102\70\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\48\120\91\48\45\57\97\45\102\65\45\70\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\48\91\48\45\55\93\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\79\99\116")-    , tok "\92\100\43\91\76\108\93\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\91\126\33\37\94\38\42\43\61\124\63\58\60\62\47\45\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tok "\40\92\91\41\40\67\111\109\112\97\99\116\124\73\109\109\117\116\97\98\108\101\124\40\63\58\66\111\111\108\101\97\110\124\83\105\109\112\108\101\41\84\121\112\101\41\40\92\93\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114"), (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")])-    , tok "\40\92\91\41\40\67\67\111\100\101\124\40\63\58\73\110\116\101\103\101\114\124\70\108\111\97\116\105\110\103\41\84\121\112\101\41" (ByGroups [(Arbitrary "\80\117\110\99\116\117\97\116\105\111\110"), (Arbitrary "\78\97\109\101" :. Arbitrary "\68\101\99\111\114\97\116\111\114")])-    , tok "\91\40\41\92\91\92\93\44\46\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\40\97\115\124\98\97\115\101\124\98\114\101\97\107\124\99\97\115\101\124\99\97\116\99\104\124\99\111\110\115\116\114\117\99\116\124\99\111\110\116\105\110\117\101\124\100\101\102\97\117\108\116\124\100\101\108\101\116\101\124\100\111\124\101\108\115\101\124\101\110\117\109\124\102\105\110\97\108\108\121\124\102\111\114\124\102\111\114\101\97\99\104\124\103\101\116\124\105\102\124\105\110\124\105\115\124\108\111\99\107\124\110\101\119\124\111\117\116\124\112\97\114\97\109\115\124\114\101\116\117\114\110\124\115\101\116\124\115\105\122\101\111\102\124\115\119\105\116\99\104\124\116\104\105\115\124\116\104\114\111\119\124\116\114\121\124\116\121\112\101\111\102\124\119\104\105\108\101\124\121\105\101\108\100\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\40\97\98\115\116\114\97\99\116\124\99\111\110\115\116\124\100\101\108\101\103\97\116\101\124\100\121\110\97\109\105\99\124\101\110\115\117\114\101\115\124\101\120\116\101\114\110\124\105\110\108\105\110\101\124\105\110\116\101\114\110\97\108\124\111\118\101\114\114\105\100\101\124\111\119\110\101\100\124\112\114\105\118\97\116\101\124\112\114\111\116\101\99\116\101\100\124\112\117\98\108\105\99\124\114\101\102\124\114\101\113\117\105\114\101\115\124\115\105\103\110\97\108\124\115\116\97\116\105\99\124\116\104\114\111\119\115\124\117\110\111\119\110\101\100\124\118\97\114\124\118\105\114\116\117\97\108\124\118\111\108\97\116\105\108\101\124\119\101\97\107\124\121\105\101\108\100\115\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tokNext "\40\110\97\109\101\115\112\97\99\101\124\117\115\105\110\103\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\78\97\109\101\115\112\97\99\101"), (Arbitrary "\84\101\120\116")]) (GoTo namespace')-    , tokNext "\40\99\108\97\115\115\124\101\114\114\111\114\100\111\109\97\105\110\124\105\110\116\101\114\102\97\99\101\124\115\116\114\117\99\116\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110"), (Arbitrary "\84\101\120\116")]) (GoTo class')-    , tok "\40\92\46\41\40\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\41" (ByGroups [(Arbitrary "\79\112\101\114\97\116\111\114"), (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")])-    , tok "\40\118\111\105\100\124\98\111\111\108\124\99\104\97\114\124\100\111\117\98\108\101\124\102\108\111\97\116\124\105\110\116\124\105\110\116\56\124\105\110\116\49\54\124\105\110\116\51\50\124\105\110\116\54\52\124\108\111\110\103\124\115\104\111\114\116\124\115\105\122\101\95\116\124\115\115\105\122\101\95\116\124\115\116\114\105\110\103\124\116\105\109\101\95\116\124\117\99\104\97\114\124\117\105\110\116\124\117\105\110\116\56\124\117\105\110\116\49\54\124\117\105\110\116\51\50\124\117\105\110\116\54\52\124\117\108\111\110\103\124\117\110\105\99\104\97\114\124\117\115\104\111\114\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\116\114\117\101\124\102\97\108\115\101\124\110\117\108\108\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101")+    [ tokNext "L?\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "L?'(\\\\.|\\\\[0-7]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\'\\n])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+[lL]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "0x[0-9a-fA-F]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "0[0-7]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\d+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "[\126!%^&*+=|?:<>/-]" (Arbitrary "Operator")+    , tok "(\\[)(Compact|Immutable|(?:Boolean|Simple)Type)(\\])" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Decorator"), (Arbitrary "Punctuation")])+    , tok "(\\[)(CCode|(?:Integer|Floating)Type)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Decorator")])+    , tok "[()\\[\\],.]" (Arbitrary "Punctuation")+    , tok "(as|base|break|case|catch|construct|continue|default|delete|do|else|enum|finally|for|foreach|get|if|in|is|lock|new|out|params|return|set|sizeof|switch|this|throw|try|typeof|while|yield)\\b" (Arbitrary "Keyword")+    , tok "(abstract|const|delegate|dynamic|ensures|extern|inline|internal|override|owned|private|protected|public|ref|requires|signal|static|throws|unowned|var|virtual|volatile|weak|yields)\\b" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tokNext "(namespace|using)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo namespace')+    , tokNext "(class|errordomain|interface|struct)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Declaration"), (Arbitrary "Text")]) (GoTo class')+    , tok "(\\.)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Operator"), (Arbitrary "Name" :. Arbitrary "Attribute")])+    , tok "(void|bool|char|double|float|int|int8|int16|int32|int64|long|short|size_t|ssize_t|string|time_t|uchar|uint|uint8|uint16|uint32|uint64|ulong|unichar|ushort)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(true|false|null)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")     ]  whitespace' :: TokenMatcher whitespace' =-    [ tokNext "\94\92\115\42\35\105\102\92\115\43\48" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") (GoTo if0')-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\92\92\110" (Arbitrary "\84\101\120\116")-    , tok "\47\47\40\92\110\124\40\46\124\92\110\41\42\63\91\94\92\92\93\92\110\41" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\47\40\92\92\92\110\41\63\91\42\93\40\46\124\92\110\41\42\63\91\42\93\40\92\92\92\110\41\63\47" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\77\117\108\116\105\108\105\110\101")+    [ tokNext "^\\s*#if\\s+0" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo if0')+    , tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "//(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")     ]  statement' :: TokenMatcher statement' =     [ anyOf whitespace'     , anyOf statements'-    , tok "\91\123\125\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tokNext "\59" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110") Pop+    , tok "[{}]" (Arbitrary "Punctuation")+    , tokNext ";" (Arbitrary "Punctuation") Pop     ]  if0' :: TokenMatcher if0' =-    [ tokNext "\94\92\115\42\35\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Push-    , tokNext "\94\92\115\42\35\101\108\40\63\58\115\101\124\105\102\41\46\42\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tokNext "\94\92\115\42\35\101\110\100\105\102\46\42\63\40\63\60\33\92\92\41\92\110" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99") Pop-    , tok "\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")+    [ tokNext "^\\s*#if.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Push+    , tokNext "^\\s*#el(?:se|if).*\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tokNext "^\\s*#endif.*?(?<!\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    , tok ".*?\\n" (Arbitrary "Comment")     ]  namespace' :: TokenMatcher namespace' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace") Pop     ]  root' :: TokenMatcher root' =     [ anyOf whitespace'-    , tokNext "" (Arbitrary "\84\101\120\116") (GoTo statement')+    , tokNext "" (Arbitrary "Text") (GoTo statement')     ]  class' :: TokenMatcher class' =-    [ tokNext "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop     ]  string' :: TokenMatcher string' =-    [ tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\92\92\40\91\92\92\97\98\102\110\114\116\118\34\92\39\93\124\120\91\97\45\102\65\45\70\48\45\57\93\123\50\44\52\125\124\91\48\45\55\93\123\49\44\51\125\41" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\69\115\99\97\112\101")-    , tok "\91\94\92\92\34\92\110\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92\92\110" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tok "\92\92" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")     ] 
src/Text/Highlighter/Lexers/VbNet.hs view
@@ -5,60 +5,75 @@  lexer :: Lexer lexer = Lexer-    { lName = "\86\66\46\110\101\116"-    , lAliases = ["\118\98\46\110\101\116", "\118\98\110\101\116"]-    , lExtensions = ["\46\118\98", "\46\98\97\115"]-    , lMimetypes = ["\116\101\120\116\47\120\45\118\98\110\101\116", "\116\101\120\116\47\120\45\118\98\97"]+    { lName = "VB.net"+    , lAliases = ["vb.net", "vbnet"]+    , lExtensions = [".vb", ".bas"]+    , lMimetypes = ["text/x-vbnet", "text/x-vba"]     , lStart = root'     , lFlags = [caseless, multiline]     } -classname' :: TokenMatcher-classname' =-    [ tokNext "\91\97\45\122\95\93\91\97\45\122\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\67\108\97\115\115") Pop-    ]--namespace' :: TokenMatcher-namespace' =-    [ tokNext "\91\97\45\122\95\93\91\97\45\122\48\45\57\95\46\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\78\97\109\101\115\112\97\99\101") Pop+dim' :: TokenMatcher+dim' =+    [ tokNext "[a-z_][a-z0-9_]*" (Arbitrary "Name" :. Arbitrary "Variable") Pop+    , tokNext "" (Arbitrary "Text") Pop     ] -root' :: TokenMatcher-root' =-    [ tok "\94\92\115\42\60\46\42\63\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101")-    , tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tok "\92\110" (Arbitrary "\84\101\120\116")-    , tok "\114\101\109\92\98\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\39\46\42\63\92\110" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\35\73\102\92\115\46\42\63\92\115\84\104\101\110\124\35\69\108\115\101\73\102\92\115\46\42\63\92\115\84\104\101\110\124\35\69\110\100\92\115\43\73\102\124\35\67\111\110\115\116\124\35\69\120\116\101\114\110\97\108\83\111\117\114\99\101\46\42\63\92\110\124\35\69\110\100\92\115\43\69\120\116\101\114\110\97\108\83\111\117\114\99\101\124\35\82\101\103\105\111\110\46\42\63\92\110\124\35\69\110\100\92\115\43\82\101\103\105\111\110\124\35\69\120\116\101\114\110\97\108\67\104\101\99\107\115\117\109" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\91\92\40\92\41\123\125\33\35\44\46\58\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\79\112\116\105\111\110\92\115\43\40\83\116\114\105\99\116\124\69\120\112\108\105\99\105\116\124\67\111\109\112\97\114\101\41\92\115\43\40\79\110\124\79\102\102\124\66\105\110\97\114\121\124\84\101\120\116\41" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\68\101\99\108\97\114\97\116\105\111\110")-    , tok "\40\63\60\33\92\46\41\40\65\100\100\72\97\110\100\108\101\114\124\65\108\105\97\115\124\66\121\82\101\102\124\66\121\86\97\108\124\67\97\108\108\124\67\97\115\101\124\67\97\116\99\104\124\67\66\111\111\108\124\67\66\121\116\101\124\67\67\104\97\114\124\67\68\97\116\101\124\67\68\101\99\124\67\68\98\108\124\67\73\110\116\124\67\76\110\103\124\67\79\98\106\124\67\111\110\115\116\124\67\111\110\116\105\110\117\101\124\67\83\66\121\116\101\124\67\83\104\111\114\116\124\67\83\110\103\124\67\83\116\114\124\67\84\121\112\101\124\67\85\73\110\116\124\67\85\76\110\103\124\67\85\83\104\111\114\116\124\68\101\99\108\97\114\101\124\68\101\102\97\117\108\116\124\68\101\108\101\103\97\116\101\124\68\105\109\124\68\105\114\101\99\116\67\97\115\116\124\68\111\124\69\97\99\104\124\69\108\115\101\124\69\108\115\101\73\102\124\69\110\100\124\69\110\100\73\102\124\69\110\117\109\124\69\114\97\115\101\124\69\114\114\111\114\124\69\118\101\110\116\124\69\120\105\116\124\70\97\108\115\101\124\70\105\110\97\108\108\121\124\70\111\114\124\70\114\105\101\110\100\124\70\117\110\99\116\105\111\110\124\71\101\116\124\71\108\111\98\97\108\124\71\111\83\117\98\124\71\111\84\111\124\72\97\110\100\108\101\115\124\73\102\124\73\109\112\108\101\109\101\110\116\115\124\73\109\112\111\114\116\115\124\73\110\104\101\114\105\116\115\124\73\110\116\101\114\102\97\99\101\124\76\101\116\124\76\105\98\124\76\111\111\112\124\77\101\124\77\111\100\117\108\101\124\77\117\115\116\73\110\104\101\114\105\116\124\77\117\115\116\79\118\101\114\114\105\100\101\124\77\121\66\97\115\101\124\77\121\67\108\97\115\115\124\78\97\109\101\115\112\97\99\101\124\78\97\114\114\111\119\105\110\103\124\78\101\119\124\78\101\120\116\124\78\111\116\124\78\111\116\104\105\110\103\124\78\111\116\73\110\104\101\114\105\116\97\98\108\101\124\78\111\116\79\118\101\114\114\105\100\97\98\108\101\124\79\102\124\79\110\124\79\112\101\114\97\116\111\114\124\79\112\116\105\111\110\124\79\112\116\105\111\110\97\108\124\79\118\101\114\108\111\97\100\115\124\79\118\101\114\114\105\100\97\98\108\101\124\79\118\101\114\114\105\100\101\115\124\80\97\114\97\109\65\114\114\97\121\124\80\97\114\116\105\97\108\124\80\114\105\118\97\116\101\124\80\114\111\112\101\114\116\121\124\80\114\111\116\101\99\116\101\100\124\80\117\98\108\105\99\124\82\97\105\115\101\69\118\101\110\116\124\82\101\97\100\79\110\108\121\124\82\101\68\105\109\124\82\101\109\111\118\101\72\97\110\100\108\101\114\124\82\101\115\117\109\101\124\82\101\116\117\114\110\124\83\101\108\101\99\116\124\83\101\116\124\83\104\97\100\111\119\115\124\83\104\97\114\101\100\124\83\105\110\103\108\101\124\83\116\97\116\105\99\124\83\116\101\112\124\83\116\111\112\124\83\116\114\117\99\116\117\114\101\124\83\117\98\124\83\121\110\99\76\111\99\107\124\84\104\101\110\124\84\104\114\111\119\124\84\111\124\84\114\117\101\124\84\114\121\124\84\114\121\67\97\115\116\124\87\101\110\100\124\85\115\105\110\103\124\87\104\101\110\124\87\104\105\108\101\124\87\105\100\101\110\105\110\103\124\87\105\116\104\124\87\105\116\104\69\118\101\110\116\115\124\87\114\105\116\101\79\110\108\121\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tokNext "\40\63\60\33\92\46\41\40\70\117\110\99\116\105\111\110\124\83\117\98\124\80\114\111\112\101\114\116\121\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo funcname')-    , tokNext "\40\63\60\33\92\46\41\40\67\108\97\115\115\124\83\116\114\117\99\116\117\114\101\124\69\110\117\109\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo classname')-    , tokNext "\40\63\60\33\92\46\41\40\78\97\109\101\115\112\97\99\101\124\73\109\112\111\114\116\115\41\40\92\115\43\41" (ByGroups [(Arbitrary "\75\101\121\119\111\114\100"), (Arbitrary "\84\101\120\116")]) (GoTo namespace')-    , tok "\40\63\60\33\92\46\41\40\66\111\111\108\101\97\110\124\66\121\116\101\124\67\104\97\114\124\68\97\116\101\124\68\101\99\105\109\97\108\124\68\111\117\98\108\101\124\73\110\116\101\103\101\114\124\76\111\110\103\124\79\98\106\101\99\116\124\83\66\121\116\101\124\83\104\111\114\116\124\83\105\110\103\108\101\124\83\116\114\105\110\103\124\86\97\114\105\97\110\116\124\85\73\110\116\101\103\101\114\124\85\76\111\110\103\124\85\83\104\111\114\116\41\92\98" (Arbitrary "\75\101\121\119\111\114\100" :. Arbitrary "\84\121\112\101")-    , tok "\40\63\60\33\92\46\41\40\65\100\100\114\101\115\115\79\102\124\65\110\100\124\65\110\100\65\108\115\111\124\65\115\124\71\101\116\84\121\112\101\124\73\110\124\73\115\124\73\115\78\111\116\124\76\105\107\101\124\77\111\100\124\79\114\124\79\114\69\108\115\101\124\84\121\112\101\79\102\124\88\111\114\41\92\98" (Arbitrary "\79\112\101\114\97\116\111\114" :. Arbitrary "\87\111\114\100")-    , tok "\38\61\124\91\42\93\61\124\47\61\124\92\92\61\124\92\94\61\124\92\43\61\124\45\61\124\60\60\61\124\62\62\61\124\60\60\124\62\62\124\58\61\124\60\61\124\62\61\124\60\62\124\91\45\38\42\47\92\92\94\43\61\60\62\93" (Arbitrary "\79\112\101\114\97\116\111\114")-    , tokNext "\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") (GoTo string')-    , tok "\91\97\45\122\65\45\90\95\93\91\97\45\122\65\45\90\48\45\57\95\93\42\91\37\38\64\33\35\36\93\63" (Arbitrary "\78\97\109\101")-    , tok "\35\46\42\63\35" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\68\97\116\101")-    , tok "\40\92\100\43\92\46\92\100\42\124\92\100\42\92\46\92\100\43\41\40\91\102\70\93\91\43\45\93\63\91\48\45\57\93\43\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\70\108\111\97\116")-    , tok "\92\100\43\40\91\83\73\76\68\70\82\93\124\85\83\124\85\73\124\85\76\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\38\72\91\48\45\57\97\45\102\93\43\40\91\83\73\76\68\70\82\93\124\85\83\124\85\73\124\85\76\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\38\79\91\48\45\55\93\43\40\91\83\73\76\68\70\82\93\124\85\83\124\85\73\124\85\76\41\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\73\110\116\101\103\101\114")-    , tok "\95\92\110" (Arbitrary "\84\101\120\116")+end' :: TokenMatcher+end' =+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "(Function|Sub|Property|Class|Structure|Enum|Module|Namespace)\\b" (Arbitrary "Keyword") Pop+    , tokNext "" (Arbitrary "Text") Pop     ]  string' :: TokenMatcher string' =-    [ tok "\34\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")-    , tokNext "\34\67\63" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tok "\91\94\34\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103")+    [ tok "\"\"" (Arbitrary "Literal" :. Arbitrary "String")+    , tokNext "\"C?" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "[^\"]+" (Arbitrary "Literal" :. Arbitrary "String")     ] +namespace' :: TokenMatcher+namespace' =+    [ tokNext "[a-z_][a-z0-9_.]*" (Arbitrary "Name" :. Arbitrary "Namespace") Pop+    ]+ funcname' :: TokenMatcher funcname' =-    [ tokNext "\91\97\45\122\95\93\91\97\45\122\48\45\57\95\93\42" (Arbitrary "\78\97\109\101" :. Arbitrary "\70\117\110\99\116\105\111\110") Pop+    [ tokNext "[a-z_][a-z0-9_]*" (Arbitrary "Name" :. Arbitrary "Function") Pop+    ]++classname' :: TokenMatcher+classname' =+    [ tokNext "[a-z_][a-z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop+    ]++root' :: TokenMatcher+root' =+    [ tok "^\\s*<.*?>" (Arbitrary "Name" :. Arbitrary "Attribute")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\n" (Arbitrary "Text")+    , tok "rem\\b.*?\\n" (Arbitrary "Comment")+    , tok "'.*?\\n" (Arbitrary "Comment")+    , tok "#If\\s.*?\\sThen|#ElseIf\\s.*?\\sThen|#End\\s+If|#Const|#ExternalSource.*?\\n|#End\\s+ExternalSource|#Region.*?\\n|#End\\s+Region|#ExternalChecksum" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "[\\(\\){}!#,.:]" (Arbitrary "Punctuation")+    , tok "Option\\s+(Strict|Explicit|Compare)\\s+(On|Off|Binary|Text)" (Arbitrary "Keyword" :. Arbitrary "Declaration")+    , tok "(?<!\\.)(AddHandler|Alias|ByRef|ByVal|Call|Case|Catch|CBool|CByte|CChar|CDate|CDec|CDbl|CInt|CLng|CObj|Continue|CSByte|CShort|CSng|CStr|CType|CUInt|CULng|CUShort|Declare|Default|Delegate|DirectCast|Do|Each|Else|ElseIf|EndIf|Erase|Error|Event|Exit|False|Finally|For|Friend|Get|Global|GoSub|GoTo|Handles|If|Implements|Inherits|Interface|Let|Lib|Loop|Me|MustInherit|MustOverride|MyBase|MyClass|Narrowing|New|Next|Not|Nothing|NotInheritable|NotOverridable|Of|On|Operator|Option|Optional|Overloads|Overridable|Overrides|ParamArray|Partial|Private|Protected|Public|RaiseEvent|ReadOnly|ReDim|RemoveHandler|Resume|Return|Select|Set|Shadows|Shared|Single|Static|Step|Stop|SyncLock|Then|Throw|To|True|Try|TryCast|Wend|Using|When|While|Widening|With|WithEvents|WriteOnly)\\b" (Arbitrary "Keyword")+    , tokNext "(?<!\\.)End\\b" (Arbitrary "Keyword") (GoTo end')+    , tokNext "(?<!\\.)(Dim|Const)\\b" (Arbitrary "Keyword") (GoTo dim')+    , tokNext "(?<!\\.)(Function|Sub|Property)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo funcname')+    , tokNext "(?<!\\.)(Class|Structure|Enum)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tokNext "(?<!\\.)(Module|Namespace|Imports)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo namespace')+    , tok "(?<!\\.)(Boolean|Byte|Char|Date|Decimal|Double|Integer|Long|Object|SByte|Short|Single|String|Variant|UInteger|ULong|UShort)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "(?<!\\.)(AddressOf|And|AndAlso|As|GetType|In|Is|IsNot|Like|Mod|Or|OrElse|TypeOf|Xor)\\b" (Arbitrary "Operator" :. Arbitrary "Word")+    , tok "&=|[*]=|/=|\\\\=|\\^=|\\+=|-=|<<=|>>=|<<|>>|:=|<=|>=|<>|[-&*/\\\\^+=<>]" (Arbitrary "Operator")+    , tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "[a-zA-Z_][a-zA-Z0-9_]*[%&@!#$]?" (Arbitrary "Name")+    , tok "#.*?#" (Arbitrary "Literal" :. Arbitrary "Date")+    , tok "(\\d+\\.\\d*|\\d*\\.\\d+)([fF][+-]?[0-9]+)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "\\d+([SILDFR]|US|UI|UL)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "&H[0-9a-f]+([SILDFR]|US|UI|UL)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "&O[0-7]+([SILDFR]|US|UI|UL)?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "_\\n" (Arbitrary "Text")     ] 
+ src/Text/Highlighter/Lexers/Velocity.hs view
@@ -0,0 +1,63 @@+module Text.Highlighter.Lexers.Velocity (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "Velocity"+    , lAliases = ["velocity"]+    , lExtensions = [".vm", ".fhtml"]+    , lMimetypes = []+    , lStart = root'+    , lFlags = [multiline, dotall]+    }++variable' :: TokenMatcher+variable' =+    [ tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Variable")+    , tokNext "\\(" (Arbitrary "Punctuation") (GoTo funcparams')+    , tokNext "(\\.)([a-zA-Z_][a-zA-Z0-9_]*)" (ByGroups [(Arbitrary "Punctuation"), (Arbitrary "Name" :. Arbitrary "Variable")]) Push+    , tokNext "\\}" (Arbitrary "Punctuation") Pop+    , tokNext "" (Arbitrary "Other") Pop+    ]++rangeoperator' :: TokenMatcher+rangeoperator' =+    [ tok "\\.\\." (Arbitrary "Operator")+    , anyOf funcparams'+    , tokNext "\\]" (Arbitrary "Operator") Pop+    ]++root' :: TokenMatcher+root' =+    [ tok "[^{#$]+" (Arbitrary "Other")+    , tok "(#)(\\*.*?\\*)(#)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Comment"), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tok "(##)(.*?$)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Comment")])+    , tokNext "(#\\{?)([a-zA-Z_][a-zA-Z0-9_]*)(\\}?)(\\s?\\()" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Punctuation")]) (GoTo directiveparams')+    , tok "(#\\{?)([a-zA-Z_][a-zA-Z0-9_]*)(\\}|\\b)" (ByGroups [(Arbitrary "Comment" :. Arbitrary "Preproc"), (Arbitrary "Name" :. Arbitrary "Function"), (Arbitrary "Comment" :. Arbitrary "Preproc")])+    , tokNext "\\$\\{?" (Arbitrary "Punctuation") (GoTo variable')+    ]++funcparams' :: TokenMatcher+funcparams' =+    [ tokNext "\\$\\{?" (Arbitrary "Punctuation") (GoTo variable')+    , tok "\\s+" (Arbitrary "Text")+    , tok "," (Arbitrary "Punctuation")+    , tok "\"(\\\\\\\\|\\\\\"|[^\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "0[xX][0-9a-fA-F]+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\b[0-9]+\\b" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "(true|false|null)\\b" (Arbitrary "Keyword" :. Arbitrary "Constant")+    , tokNext "\\(" (Arbitrary "Punctuation") Push+    , tokNext "\\)" (Arbitrary "Punctuation") Pop+    ]++directiveparams' :: TokenMatcher+directiveparams' =+    [ tok "(&&|\\|\\||==?|!=?|[-<>+*%&\\|\\^/])|\\b(eq|ne|gt|lt|ge|le|not|in)\\b" (Arbitrary "Operator")+    , tokNext "\\[" (Arbitrary "Operator") (GoTo rangeoperator')+    , tok "\\b[a-zA-Z_][a-zA-Z0-9_]*\\b" (Arbitrary "Name" :. Arbitrary "Function")+    , anyOf funcparams'+    ]+
+ src/Text/Highlighter/Lexers/Verilog.hs view
@@ -0,0 +1,78 @@+module Text.Highlighter.Lexers.Verilog (lexer) where++import Text.Regex.PCRE.Light+import Text.Highlighter.Types++lexer :: Lexer+lexer = Lexer+    { lName = "verilog"+    , lAliases = ["v"]+    , lExtensions = [".v", ".sv"]+    , lMimetypes = ["text/x-verilog"]+    , lStart = root'+    , lFlags = [multiline]+    }++classname' :: TokenMatcher+classname' =+    [ tokNext "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Class") Pop+    ]++macro' :: TokenMatcher+macro' =+    [ tok "[^/\\n]+" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "/[*](.|\\n)*?[*]/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tokNext "//.*?\\n" (Arbitrary "Comment" :. Arbitrary "Single") Pop+    , tok "/" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(?<=\\\\)\\n" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "\\n" (Arbitrary "Comment" :. Arbitrary "Preproc") Pop+    ]++root' :: TokenMatcher+root' =+    [ tokNext "^\\s*`define" (Arbitrary "Comment" :. Arbitrary "Preproc") (GoTo macro')+    , tok "\\n" (Arbitrary "Text")+    , tok "\\s+" (Arbitrary "Text")+    , tok "\\\\\\n" (Arbitrary "Text")+    , tok "/(\\\\\\n)?/(\\n|(.|\\n)*?[^\\\\]\\n)" (Arbitrary "Comment" :. Arbitrary "Single")+    , tok "/(\\\\\\n)?[*](.|\\n)*?[*](\\\\\\n)?/" (Arbitrary "Comment" :. Arbitrary "Multiline")+    , tok "[{}#@]" (Arbitrary "Punctuation")+    , tokNext "L?\"" (Arbitrary "Literal" :. Arbitrary "String") (GoTo string')+    , tok "L?'(\\\\.|\\\\[0-7]{1,3}|\\\\x[a-fA-F0-9]{1,2}|[^\\\\\\'\\n])'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Char")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+)[eE][+-]?\\d+[lL]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "(\\d+\\.\\d*|\\.\\d+|\\d+[fF])[fF]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Float")+    , tok "([0-9]+)|(\\'h)[0-9a-fA-F]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "([0-9]+)|(\\'b)[0-1]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "([0-9]+)|(\\'d)[0-9]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "([0-9]+)|(\\'o)[0-7]+" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Oct")+    , tok "\\'[01xz]" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "\\d+[Ll]?" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Integer")+    , tok "\\*/" (Arbitrary "Error")+    , tok "[\126!%^&*+=|?:<>/-]" (Arbitrary "Operator")+    , tok "[()\\[\\],.;\\']" (Arbitrary "Punctuation")+    , tok "`[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name" :. Arbitrary "Constant")+    , tok "^\\s*(package)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")])+    , tokNext "^\\s*(import)(\\s+)" (ByGroups [(Arbitrary "Keyword" :. Arbitrary "Namespace"), (Arbitrary "Text")]) (GoTo import')+    , tok "(always|always_comb|always_ff|always_latch|and|assign|automatic|begin|break|buf|bufif0|bufif1|case|casex|casez|cmos|const|continue|deassign|default|defparam|disable|do|edge|else|end|endcase|endfunction|endgenerate|endmodule|endpackage|endprimitive|endspecify|endtable|endtask|enum|event|final|for|force|forever|fork|function|generate|genvar|highz0|highz1|if|initial|inout|input|integer|join|large|localparam|macromodule|medium|module|nand|negedge|nmos|nor|not|notif0|notif1|or|output|packed|parameter|pmos|posedge|primitive|pull0|pull1|pulldown|pullup|rcmos|ref|release|repeat|return|rnmos|rpmos|rtran|rtranif0|rtranif1|scalared|signed|small|specify|specparam|strength|string|strong0|strong1|struct|table|task|tran|tranif0|tranif1|type|typedef|unsigned|var|vectored|void|wait|weak0|weak1|while|xnor|xor)\\b" (Arbitrary "Keyword")+    , tok "(`accelerate|`autoexpand_vectornets|`celldefine|`default_nettype|`else|`elsif|`endcelldefine|`endif|`endprotect|`endprotected|`expand_vectornets|`ifdef|`ifndef|`include|`noaccelerate|`noexpand_vectornets|`noremove_gatenames|`noremove_netnames|`nounconnected_drive|`protect|`protected|`remove_gatenames|`remove_netnames|`resetall|`timescale|`unconnected_drive|`undef)\\b" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "(\\$bits|\\$bitstoreal|\\$bitstoshortreal|\\$countdrivers|\\$display|\\$fclose|\\$fdisplay|\\$finish|\\$floor|\\$fmonitor|\\$fopen|\\$fstrobe|\\$fwrite|\\$getpattern|\\$history|\\$incsave|\\$input|\\$itor|\\$key|\\$list|\\$log|\\$monitor|\\$monitoroff|\\$monitoron|\\$nokey|\\$nolog|\\$printtimescale|\\$random|\\$readmemb|\\$readmemh|\\$realtime|\\$realtobits|\\$reset|\\$reset_count|\\$reset_value|\\$restart|\\$rtoi|\\$save|\\$scale|\\$scope|\\$shortrealtobits|\\$showscopes|\\$showvariables|\\$showvars|\\$sreadmemb|\\$sreadmemh|\\$stime|\\$stop|\\$strobe|\\$time|\\$timeformat|\\$write)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tokNext "(class)(\\s+)" (ByGroups [(Arbitrary "Keyword"), (Arbitrary "Text")]) (GoTo classname')+    , tok "(byte|shortint|int|longint|interger|time|bit|logic|reg|supply0|supply1|tri|triand|trior|tri0|tri1|trireg|uwire|wire|wand|worshortreal|real|realtime)\\b" (Arbitrary "Keyword" :. Arbitrary "Type")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*:(?!:)" (Arbitrary "Name" :. Arbitrary "Label")+    , tok "[a-zA-Z_][a-zA-Z0-9_]*" (Arbitrary "Name")+    ]++string' :: TokenMatcher+string' =+    [ tokNext "\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tok "\\\\([\\\\abfnrtv\"\\']|x[a-fA-F0-9]{2,4}|[0-7]{1,3})" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Escape")+    , tok "[^\\\\\"\\n]+" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\\\n" (Arbitrary "Literal" :. Arbitrary "String")+    , tok "\\\\" (Arbitrary "Literal" :. Arbitrary "String")+    ]++import' :: TokenMatcher+import' =+    [ tokNext "[a-zA-Z0-9_:]+\\*?" (Arbitrary "Name" :. Arbitrary "Namespace") Pop+    ]+
src/Text/Highlighter/Lexers/Vim.hs view
@@ -5,29 +5,29 @@  lexer :: Lexer lexer = Lexer-    { lName = "\86\105\109\76"-    , lAliases = ["\118\105\109"]-    , lExtensions = ["\46\118\105\109", "\46\118\105\109\114\99"]-    , lMimetypes = ["\116\101\120\116\47\120\45\118\105\109"]+    { lName = "VimL"+    , lAliases = ["vim"]+    , lExtensions = [".vim", ".vimrc"]+    , lMimetypes = ["text/x-vim"]     , lStart = root'     , lFlags = [multiline]     }  root' :: TokenMatcher root' =-    [ tok "\94\92\115\42\34\46\42" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\40\63\60\61\92\115\41\34\91\94\92\45\58\46\37\35\61\42\93\46\42" (Arbitrary "\67\111\109\109\101\110\116")-    , tok "\91\32\92\116\93\43" (Arbitrary "\84\101\120\116")-    , tok "\47\40\92\92\92\92\124\92\92\47\124\91\94\92\110\47\93\41\42\47" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\82\101\103\101\120")-    , tok "\34\40\92\92\92\92\124\92\92\34\124\91\94\92\110\34\93\41\42\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\68\111\117\98\108\101")-    , tok "\39\40\92\92\92\92\124\92\92\39\124\91\94\92\110\39\93\41\42\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103" :. Arbitrary "\83\105\110\103\108\101")-    , tok "\45\63\92\100\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114")-    , tok "\35\91\48\45\57\97\45\102\93\123\54\125" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\78\117\109\98\101\114" :. Arbitrary "\72\101\120")-    , tok "\94\58" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\91\40\41\60\62\43\61\33\124\44\126\45\93" (Arbitrary "\80\117\110\99\116\117\97\116\105\111\110")-    , tok "\92\98\40\108\101\116\124\105\102\124\101\108\115\101\124\101\110\100\105\102\124\101\108\115\101\105\102\124\102\117\110\124\102\117\110\99\116\105\111\110\124\101\110\100\102\117\110\99\116\105\111\110\41\92\98" (Arbitrary "\75\101\121\119\111\114\100")-    , tok "\92\98\40\78\79\78\69\124\98\111\108\100\124\105\116\97\108\105\99\124\117\110\100\101\114\108\105\110\101\124\100\97\114\107\124\108\105\103\104\116\41\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\66\117\105\108\116\105\110")-    , tok "\92\98\92\119\43\92\98" (Arbitrary "\78\97\109\101" :. Arbitrary "\79\116\104\101\114")-    , tok "\46" (Arbitrary "\84\101\120\116")+    [ tok "^\\s*\".*" (Arbitrary "Comment")+    , tok "(?<=\\s)\"[^\\-:.%#=*].*" (Arbitrary "Comment")+    , tok "[ \\t]+" (Arbitrary "Text")+    , tok "/(\\\\\\\\|\\\\/|[^\\n/])*/" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Regex")+    , tok "\"(\\\\\\\\|\\\\\"|[^\\n\"])*\"" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Double")+    , tok "'(\\\\\\\\|\\\\'|[^\\n'])*'" (Arbitrary "Literal" :. Arbitrary "String" :. Arbitrary "Single")+    , tok "-?\\d+" (Arbitrary "Literal" :. Arbitrary "Number")+    , tok "#[0-9a-f]{6}" (Arbitrary "Literal" :. Arbitrary "Number" :. Arbitrary "Hex")+    , tok "^:" (Arbitrary "Punctuation")+    , tok "[()<>+=!|,\126-]" (Arbitrary "Punctuation")+    , tok "\\b(let|if|else|endif|elseif|fun|function|endfunction)\\b" (Arbitrary "Keyword")+    , tok "\\b(NONE|bold|italic|underline|dark|light)\\b" (Arbitrary "Name" :. Arbitrary "Builtin")+    , tok "\\b\\w+\\b" (Arbitrary "Name" :. Arbitrary "Other")+    , tok "." (Arbitrary "Text")     ] 
src/Text/Highlighter/Lexers/Xml.hs view
@@ -5,45 +5,45 @@  lexer :: Lexer lexer = Lexer-    { lName = "\88\77\76"-    , lAliases = ["\120\109\108"]-    , lExtensions = ["\46\120\109\108", "\46\120\115\108", "\46\114\115\115", "\46\120\115\108\116", "\46\120\115\100", "\46\119\115\100\108"]-    , lMimetypes = ["\116\101\120\116\47\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\109\108", "\105\109\97\103\101\47\115\118\103\43\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\114\115\115\43\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\97\116\111\109\43\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\115\108\43\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\115\108\116\43\120\109\108"]+    { lName = "XML"+    , lAliases = ["xml"]+    , lExtensions = [".xml", ".xsl", ".rss", ".xslt", ".xsd", ".wsdl"]+    , lMimetypes = ["text/xml", "application/xml", "image/svg+xml", "application/rss+xml", "application/atom+xml", "application/xsl+xml", "application/xslt+xml"]     , lStart = root'     , lFlags = [multiline, dotall]     }  comment' :: TokenMatcher comment' =-    [ tok "\91\94\45\93\43" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\45\45\62" (Arbitrary "\67\111\109\109\101\110\116") Pop-    , tok "\45" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "[^-]+" (Arbitrary "Comment")+    , tokNext "-->" (Arbitrary "Comment") Pop+    , tok "-" (Arbitrary "Comment")     ]  tag' :: TokenMatcher tag' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\91\97\45\122\65\45\90\48\45\57\95\46\58\45\93\43\92\115\42\61" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101") (GoTo attr')-    , tokNext "\47\63\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "[a-zA-Z0-9_.:-]+\\s*=" (Arbitrary "Name" :. Arbitrary "Attribute") (GoTo attr')+    , tokNext "/?\\s*>" (Arbitrary "Name" :. Arbitrary "Tag") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\91\94\60\38\93\43" (Arbitrary "\84\101\120\116")-    , tok "\38\92\83\42\63\59" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")-    , tok "\92\60\92\33\92\91\67\68\65\84\65\92\91\46\42\63\92\93\92\93\92\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\60\33\45\45" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')-    , tok "\60\92\63\46\42\63\92\63\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\60\33\91\94\62\93\42\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\60\92\115\42\91\97\45\122\65\45\90\48\45\57\58\46\95\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (GoTo tag')-    , tok "\60\92\115\42\47\92\115\42\91\97\45\122\65\45\90\48\45\57\58\46\95\45\93\43\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")+    [ tok "[^<&]+" (Arbitrary "Text")+    , tok "&\\S*?;" (Arbitrary "Name" :. Arbitrary "Entity")+    , tok "\\<\\!\\[CDATA\\[.*?\\]\\]\\>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "<!--" (Arbitrary "Comment") (GoTo comment')+    , tok "<\\?.*?\\?>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "<![^>]*>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "<\\s*[a-zA-Z0-9:._-]+" (Arbitrary "Name" :. Arbitrary "Tag") (GoTo tag')+    , tok "<\\s*/\\s*[a-zA-Z0-9:._-]+\\s*>" (Arbitrary "Name" :. Arbitrary "Tag")     ]  attr' :: TokenMatcher attr' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\91\94\92\115\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "'.*?'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "[^\\s>]+" (Arbitrary "Literal" :. Arbitrary "String") Pop     ] 
src/Text/Highlighter/Lexers/Xslt.hs view
@@ -5,45 +5,45 @@  lexer :: Lexer lexer = Lexer-    { lName = "\88\83\76\84"-    , lAliases = ["\120\115\108\116"]-    , lExtensions = ["\46\120\115\108", "\46\120\115\108\116"]-    , lMimetypes = ["\116\101\120\116\47\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\109\108", "\105\109\97\103\101\47\115\118\103\43\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\114\115\115\43\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\97\116\111\109\43\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\115\108\43\120\109\108", "\97\112\112\108\105\99\97\116\105\111\110\47\120\115\108\116\43\120\109\108"]+    { lName = "XSLT"+    , lAliases = ["xslt"]+    , lExtensions = [".xsl", ".xslt"]+    , lMimetypes = ["text/xml", "application/xml", "image/svg+xml", "application/rss+xml", "application/atom+xml", "application/xsl+xml", "application/xslt+xml"]     , lStart = root'     , lFlags = [multiline, dotall]     }  comment' :: TokenMatcher comment' =-    [ tok "\91\94\45\93\43" (Arbitrary "\67\111\109\109\101\110\116")-    , tokNext "\45\45\62" (Arbitrary "\67\111\109\109\101\110\116") Pop-    , tok "\45" (Arbitrary "\67\111\109\109\101\110\116")+    [ tok "[^-]+" (Arbitrary "Comment")+    , tokNext "-->" (Arbitrary "Comment") Pop+    , tok "-" (Arbitrary "Comment")     ]  tag' :: TokenMatcher tag' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\91\97\45\122\65\45\90\48\45\57\95\46\58\45\93\43\92\115\42\61" (Arbitrary "\78\97\109\101" :. Arbitrary "\65\116\116\114\105\98\117\116\101") (GoTo attr')-    , tokNext "\47\63\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "[a-zA-Z0-9_.:-]+\\s*=" (Arbitrary "Name" :. Arbitrary "Attribute") (GoTo attr')+    , tokNext "/?\\s*>" (Arbitrary "Name" :. Arbitrary "Tag") Pop     ]  root' :: TokenMatcher root' =-    [ tok "\91\94\60\38\93\43" (Arbitrary "\84\101\120\116")-    , tok "\38\92\83\42\63\59" (Arbitrary "\78\97\109\101" :. Arbitrary "\69\110\116\105\116\121")-    , tok "\92\60\92\33\92\91\67\68\65\84\65\92\91\46\42\63\92\93\92\93\92\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\60\33\45\45" (Arbitrary "\67\111\109\109\101\110\116") (GoTo comment')-    , tok "\60\92\63\46\42\63\92\63\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tok "\60\33\91\94\62\93\42\62" (Arbitrary "\67\111\109\109\101\110\116" :. Arbitrary "\80\114\101\112\114\111\99")-    , tokNext "\60\92\115\42\91\97\45\122\65\45\90\48\45\57\58\46\95\45\93\43" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103") (GoTo tag')-    , tok "\60\92\115\42\47\92\115\42\91\97\45\122\65\45\90\48\45\57\58\46\95\45\93\43\92\115\42\62" (Arbitrary "\78\97\109\101" :. Arbitrary "\84\97\103")+    [ tok "[^<&]+" (Arbitrary "Text")+    , tok "&\\S*?;" (Arbitrary "Name" :. Arbitrary "Entity")+    , tok "\\<\\!\\[CDATA\\[.*?\\]\\]\\>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "<!--" (Arbitrary "Comment") (GoTo comment')+    , tok "<\\?.*?\\?>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tok "<![^>]*>" (Arbitrary "Comment" :. Arbitrary "Preproc")+    , tokNext "<\\s*[a-zA-Z0-9:._-]+" (Arbitrary "Name" :. Arbitrary "Tag") (GoTo tag')+    , tok "<\\s*/\\s*[a-zA-Z0-9:._-]+\\s*>" (Arbitrary "Name" :. Arbitrary "Tag")     ]  attr' :: TokenMatcher attr' =-    [ tok "\92\115\43" (Arbitrary "\84\101\120\116")-    , tokNext "\34\46\42\63\34" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\39\46\42\63\39" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop-    , tokNext "\91\94\92\115\62\93\43" (Arbitrary "\76\105\116\101\114\97\108" :. Arbitrary "\83\116\114\105\110\103") Pop+    [ tok "\\s+" (Arbitrary "Text")+    , tokNext "\".*?\"" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "'.*?'" (Arbitrary "Literal" :. Arbitrary "String") Pop+    , tokNext "[^\\s>]+" (Arbitrary "Literal" :. Arbitrary "String") Pop     ] 
src/Text/Highlighter/Types.hs view
@@ -1,4 +1,4 @@-{-# LANGUAGE BangPatterns #-}+{-# LANGUAGE BangPatterns, TypeSynonymInstances #-} module Text.Highlighter.Types where  import Data.Char (toLower)@@ -29,6 +29,7 @@ data NextState     = Continue     | GoTo TokenMatcher+    | CapturesTo Callback     | Pop     | PopNum Int     | Push@@ -36,6 +37,8 @@     | Combined [TokenMatcher]     deriving Show +type Callback = [String] -> TokenMatcher+ data Token =     Token         { tType :: TokenType@@ -158,8 +161,11 @@     deriving Show  instance Show Lexer where-    show l = "<Lexer " ++ lName l ++ ">"-    +    show l = "(Lexer " ++ lName l ++ ")"++instance Show Callback where+    show _ = "Callback"+ tok :: String -> TokenType -> Match tok s tt = Match s tt Continue